如何以编程方式将颜色从一个UV展开传递到另一个UV展开?

emeijp43  于 2022-10-18  发布在  其他
关注(0)|答案(1)|浏览(130)

从图中可以看出,假设一个模型有两种UV展开方式,即UV-1和UV-1。然后我让一位艺术家根据UV-1绘制模型并得到纹理贴图1。我如何通过编程将颜色从UV-1转换到UV-2(例如,Python)?我知道的一种方法是将纹理贴图1Map为顶点颜色,然后将顶点颜色渲染为UV-2。但这种方法会丢失一些颜色细节。那么我该怎么做呢?

qgelzfjb

qgelzfjb1#

使用顶点位置的UV-2坐标和跨三角形内插的UV-1坐标在纹理贴图2上渲染模型。在碎片着色器中,使用插入的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);
}

相关问题