【问题标题】:the difference between uv and position in threejs glsl?threejs glsl中的uv和位置的区别?
【发布时间】:2018-06-14 15:12:56
【问题描述】:

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

什么时候用uv,什么时候用position?并且它们之间可以相互转换吗?

【问题讨论】:

    标签: three.js glsl


    【解决方案1】:

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

    UV 坐标也称为纹理坐标。

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

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

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

    也就是说,有时 UV 坐标对于确定您正在渲染的模型的哪一部分很有用。例如在草着色器中...您可能有很多代表草丛的小方块,散布在您的世界中...所有这些草丛顶点的位置将遍布整个地方,但 UV 将在范围通常为 0 到 1,是草地纹理上纹理像素的坐标。因此,如果您只想变形草叶的顶部,您可以检查 UV.v 是否

    不管怎样,这是一个很大的话题,所以这里有一个关于它的教程……看看吧!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-19
      • 2017-08-21
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      • 2016-01-28
      相关资源
      最近更新 更多