我应该何时通过glActiveTexture命令(TEXTURE 0和TEXTURE 1)使用多个纹理单元?从我看到的例子中我可以在纹理单元TEXTURE0上使用多个纹理.
存在使用多个纹理(绘制对象A与纹理X,绘制纹理ý对象B)之间的差多纹理.多纹理意味着绘制具有纹理X 和 Y的对象A. 结果颜色基于各种"纹理环境"状态(或者如果您使用它们则为着色器); 这个状态告诉OpenGL如何将两个纹理的值组合成一种颜色.
如果您使用固定功能,则每个纹理都有自己的纹理坐标集.计算的最终颜色值基于这些纹理坐标在其相应纹理上获取的颜色.这些纹理颜色通过纹理环境提供,纹理环境是应用于计算最终颜色的那些颜色的一系列操作.
如果你正在使用着色器,那么你可以做任何你想做的事情.动态制作纹理坐标,使用任意操作组合纹理"颜色"等.
纹理单元用于进行多重纹理.
例如,当您使用时,您需要多纹理:法线贴图,视差贴图,地形纹理.
对于法线贴图,您需要模型的漫反射纹理单元,还需要法线贴图,您需要对两个贴图进行采样,但是无法为两个纹理激活相同的通道,需要激活TEXTURE0
并将TEXTURE1
它们绑定到各自的id纹理.
激活它们并使用颜色缓冲区中的这些纹理绘制模型后,您可以将它们用于其他纹理.
将它们视为标志以激活GPU上的不同纹理通道.