在三个glsl中uv和位置之间的区别?

时间:2018-06-14 04:20:21

标签: three.js glsl

vec2 uv = vec2(position.x / 360.0 + 0.5,position.y / 180.0 + 0.5);

什么时候使用uv和使用位置?它们可以在它们之间转换吗?

1 个答案:

答案 0 :(得分:0)

UV和位置是两个不同坐标系中的点。

UV坐标也称为纹理坐标。

纹理坐标可以是任何二维坐标,通常在建模软件中或在用于生成三维模型的代码中创建/定义。

对于模型中的每个点(顶点),存在0到2组纹理坐标。这些集通常被称为“UV通道”

所以......几乎所有模型都有顶点。但并非所有模型都有纹理坐标,因此没有保证在它们之间进行转换的方法,因为它们都不存在。 :)如果它们确实存在且都被设置为可预测的东西,那么有时你可以在它们之间进行转换,但这种用途有限,因为通常有更简单的方法来找到与UV相关的点。

也就是说,在确定要渲染模型的哪个部分方面,有时候UV坐标很有用。例如,在一个草色着色器......你可能有许多小方块代表草丛,遍布你的世界......所有这些丛顶点的位置将遍布整个地方,但紫外线将在通常为0到1的范围,并且是草纹理上的纹素的坐标。因此,如果你只想变形草叶的顶部,你可以检查UV.v是否< 0.5,并且知道你正在处理一个顶部的顶点。

无论如何,这是一个很大的主题,所以这里有一个教程...检查出来!

http://www.opengl-tutorial.org/beginners-tutorials/tutorial-5-a-textured-cube/