片段着色器-画一条线?

斯特凡

我对如何使用片段着色器绘制具有特定宽度(或多条线)的线感兴趣。我偶然发现了这个帖子,似乎可以解释它。

我面临的挑战是了解其背后的逻辑。

几个问题:

  1. 在此示例中,我们的坐标空间为(0.0-1.0,0.0-1.0),对吗?
  2. 如果是这样,“ uv”变量的目的是什么。由于厚度为500,因此“ uv”变量将非常小。因此,从它到桥1和2的距离(存储在a和b变量中)?
  3. 最后,h变量背后的逻辑是什么?
帕维尔·贝利(Pavel Beliy)

我将尝试一一回答您所有的问题:

1)是的,这实际上是正确的。

2)在3d计算机图形学中,通常使用0到1(或-1到1)之间的浮点值来表示坐标(在特定边界内)。首先,这使得确定给定值是否跨越所述边界变得非常容易,并且抽象出了作为离散图像单元的“像素”的概念;此外,这种通用做法几乎可以在其他任何地方找到(例如设备坐标或纹理坐标)

不要担心您正在使用的值小于一个。实际上,在计算机图形学中,您通常会处理浮点运算,而FLOAT类型非常擅长在“ 1”点附近表示实数值行。

3)h的公式由2个部分组成:平方根部分和2 / c系数。平方根部分应该在scholl数学类中广为人知-这是一个三角形面积(在a,b,c之间)的Heron公式。2 / c提取所述三角形的高度,该高度存储在h中,也是点uv与三角形的“地线”之间的距离。然后,该距离用于确定uv相对于线p1-p2在哪里。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章