从图中可以看出,假设一个模型有两种紫外展开方式,即UV-1和UV-1。然后我要求艺术家根据UV-1绘制模型,并得到纹理图1。我如何以编程方式将颜色从UV-1转换到UV-2 (例如python)?我知道的一种方法是将纹理映射1映射到顶点颜色,然后将顶点颜色呈现到UV-2。但是这种方法会失去一些颜色细节。那我该怎么做?

发布于 2022-09-27 18:31:37
在纹理地图2上渲染你的模型,顶点位置使用UV-2坐标,在三角形上插入UV-1坐标。在片段着色器中,使用插值的UV-1坐标来采样纹理映射1,这样您就只能受到纹理映射的分辨率的限制,而不是模型的分辨率。
编辑:顶点着色器:
in vec2 UV1;
in vec2 UV2;
out vec2 fUV1;
void main() {
gl_Position = vec4(UV2, 0, 1);
fUV1 = UV1;
}碎片着色器:
in vec2 fUV1;
uniform sampler2D TEX1;
out vec4 OUT;
void main() {
OUT = texture(TEX1, fUV1);
}https://stackoverflow.com/questions/73869845
复制相似问题