首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维jpeg纹理三角形网格的UVW映射

二维jpeg纹理三角形网格的UVW映射
EN

Stack Overflow用户
提问于 2014-09-08 21:57:52
回答 1查看 737关注 0票数 1

最近,我从Turbosquid下载了一个3d三角形网格(.obj格式),它附带了一个2D jpeg图像作为纹理。我计划在我正在开发的程序中使用这个网格,在那里我将从头开始编写自己的代码,解析.obj文件,然后纹理并呈现网格。

在大多数情况下,我的程序目前都可以很好地处理这个问题,但是有几件事情我不知道如何处理,但我不知道如何处理这个特定的.obj文件。

1) UV坐标不在0,1.0仍然是最小值,但似乎没有上界。我假设这意味着纹理环绕网格不止一次,所以我决定提取每个坐标的十进制值并使用它。因此,对于每个坐标,我目前正在执行以下操作:

代码语言:javascript
复制
double u = ReadInValue();
double v = ReadInValue();
u = u - (int)u;  
v = v - (int)v;

所以,一个紫外线coord,等于1.35,3.29,等于0.35,0.29。在应用时,纹理看起来仍然有点不一样,所以我不确定这是否是正确的做法。

2)有一个额外的W坐标。我意识到,如果我处理的是一个三维体纹理文件,W坐标将以与UV坐标相同的方式工作,并将被简单地用于查找三维的值。然而,我得到的纹理文件是二维的。那么我该如何处理这个额外的W坐标呢?我能忽略它吗?我是否必须将UV坐标除以W项(就好像它是同质坐标一样)?我不太确定该怎么办。

EN

回答 1

Stack Overflow用户

发布于 2014-09-09 08:33:49

1)不能只提取纹理坐标的一个小数部分并期望它工作。对于超过1,1或低于0,0的三角形,这将被打破。例如,带有顶点UVs 0,0和5,5的线条-这应该意味着纹理将被包装5次,但是在计算中,两个顶点都得到0,0。GPU在使用大于1.0甚至是负值的UV方面没有问题,所以只需使用您所拥有的。

2)我们不知道你的模型具体是什么,它可以做三维纹理,所以它有三维和弦,但既然你说它与2D纹理,那么我不认为是这样的。我建议使用第一个答案,只有u,v和弦,看看你得到了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25733745

复制
相关文章

相似问题

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