2008-12-11 64 views
1

我使用3D纹理进行原始数据的体绘制。原始数据可以是Luminance-Alpha或RGBA。为3D RGBA纹理改变Alpha值

目前,我读取原始数据并设置alpha值,使得最远的行(或切片)将是不透明的(Alpha = 1),并且最近的切片将是“透明的”(比如alpha = 0.1) alpha值被内插。

在opengl中有什么办法可以动态地改变这些alpha值。即基于旋转等事件?这样最远的切片总是不透明的?

我正在使用场景图工具(www.openrm.org)进行基于纹理的体绘制。

我想我不是在寻找代码,而是我可以在使用OpenGL的GPU中有效地做到这一点。


“每片阿尔法重量”,这正是我打算做这一个会谈(看看到底是伪代码)现在

http://www.ifi.uzh.ch/staff/stern/SciVis_WS2004/chstern/v100105/VolumeRendering/kulick/

,关键是要重新 - 每个切片的alpha重量随着方向的变化而计算。

回答

3

听起来像着色器一个完美的工作......

但是,如果您使用的轴对准片,你可以设置一个glColor4f与α-分量< = 1.0,也可以设置在CPU上创建它们glTexEnv到GL_MODULATE。颜色值然后将与您的纹理的颜色值相乘。