【发布时间】:2011-08-08 17:27:34
【问题描述】:
基本上,我想为三角形的每个角赋予 3 个纹理,并从一个纹理插值到另一个纹理,就像在角上使用 glColor() 插值颜色一样。
编辑:由于这似乎无法通过纹理组合器实现,我愿意使用着色器来实现。
这是我现在拥有的片段着色器代码:
vec4 c = gl_Color;
gl_FragColor = texture2D(Texture0, TexCoord0)*c.r+texture2D(Texture1, TexCoord1)*c.g+texture2D(Texture2, TexCoord2)*c.b;
我正在使用 glColor();将颜色 (1,0,0), (0,1,0), (0,0,1) 推到每个三角形的角落,然后我读取颜色以查看我需要相应混合多少纹理.
现在的问题是我不能再在我的顶点上使用颜色了,所以我问,告诉我的片段着色器如何混合纹理+能够在三角形的每个角上使用 glColor() 的最佳方法是什么涂一些颜色?
Edit2:我设法通过发送一个 3d texcoord 来告诉它混合比例,但这是最好的方法吗?我想听听更多关于这方面的想法。
【问题讨论】:
标签: c++ opengl multitexturing