gpt4 book ai didi

opengl - 片段着色器 - 画一条线?

转载 作者:行者123 更新时间:2023-12-02 02:38:02 25 4
gpt4 key购买 nike

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

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

几个问题:

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

最佳答案

我会尽力一一回答您的所有问题:

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

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

不要担心您正在使用的值小于 1;事实上,在计算机图形学中,您通常处理浮点算术,而 FLOAT 类型非常擅长表达“1”点周围的实数值线。

3) h 的公式由 2 部分组成:平方根部分和 2/c 系数。平方根部分在学校数学课上应该是众所周知的——这是三角形面积(a、b、c 之间)的 Heron 公式。 2/c 提取所述三角形的高度,该高度存储在 h 中,也是点 uv 与三角形“地线”之间的距离。然后用这个距离来决定 uv 相对于线 p1-p2 的位置。

关于opengl - 片段着色器 - 画一条线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19499990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com