首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何以编程方式将颜色从一个UV展开转换到另一个UV展开?

如何以编程方式将颜色从一个UV展开转换到另一个UV展开?
EN

Stack Overflow用户
提问于 2022-09-27 15:06:22
回答 1查看 45关注 0票数 1

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-27 18:31:37

在纹理地图2上渲染你的模型,顶点位置使用UV-2坐标,在三角形上插入UV-1坐标。在片段着色器中,使用插值的UV-1坐标来采样纹理映射1,这样您就只能受到纹理映射的分辨率的限制,而不是模型的分辨率。

编辑:顶点着色器:

代码语言:javascript
复制
in vec2 UV1;
in vec2 UV2;
out vec2 fUV1;
void main() {
    gl_Position = vec4(UV2, 0, 1);
    fUV1 = UV1;
}

碎片着色器:

代码语言:javascript
复制
in vec2 fUV1;
uniform sampler2D TEX1;
out vec4 OUT;
void main() {
    OUT = texture(TEX1, fUV1);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73869845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档