我什么时候应该使用多个纹理单位?

Xav*_*ier 5 opengl

我应该何时通过glActiveTexture命令(TEXTURE 0和TEXTURE 1)使用多个纹理单元?从我看到的例子中我可以在纹理单元TEXTURE0上使用多个纹理.

Nic*_*las 6

存在使用多个纹理(绘制对象A与纹理X,绘制纹理ý对象B)之间的差多纹理.多纹理意味着绘制具有纹理X Y的对象A. 结果颜色基于各种"纹理环境"状态(或者如果您使用它们则为着色器); 这个状态告诉OpenGL如何将两个纹理的值组合成一种颜色.

如果您使用固定功能,则每个纹理都有自己的纹理坐标集.计算的最终颜色值基于这些纹理坐标在其相应纹理上获取的颜色.这些纹理颜色通过纹理环境提供,纹理环境是应用于计算最终颜色的那些颜色的一系列操作.

如果你正在使用着色器,那么你可以做任何你想做的事情.动态制作纹理坐标,使用任意操作组合纹理"颜色"等.

纹理单元用于进行多重纹理.


Cri*_*ina 5

例如,当您使用时,您需要多纹理:法线贴图,视差贴图,地形纹理.

对于法线贴图,您需要模型的漫反射纹理单元,还需要法线贴图,您需要对两个贴图进行采样,但是无法为两个纹理激活相同的通道,需要激活TEXTURE0并将TEXTURE1它们绑定到各自的id纹理.

激活它们并使用颜色缓冲区中的这些纹理绘制模型后,您可以将它们用于其他纹理.

将它们视为标志以激活GPU上的不同纹理通道.