在飞行中更改Alpha值以获得3D RGBA纹理

时间:2008-12-11 17:43:25

标签: opengl

我正在使用3D纹理进行原始数据的体积渲染。原始数据可以是Luminance-Alpha或RGBA。

目前,我读取原始数据并设置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重量。

1 个答案:

答案 0 :(得分:3)

对于着色器来说,这听起来很完美......

但是,如果您使用轴对齐切片并在CPU上创建它们,则可以设置glColor4f,其中alpha分量< = 1.0,并将glTexEnv设置为GL_MODULATE。然后将颜色值与纹理的颜色值相乘。