gpt4 book ai didi

opengl - 使用顶点着色器计算球体的边界四边形

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

我正在尝试从图形纸实现一种算法,该算法的一部分是将已知半径的球体渲染到缓冲区。他们说,他们通过在顶点着色器中计算位置和大小,然后在片段着色器中进行适当的着色来渲染球体。

你猜猜他们实际上是如何做到这一点的?位置和半径在世界坐标中已知,并且投影是透视的。这是否意味着球体将被投影为圆?

最佳答案

我找到了一篇描述您需要什么的论文 - 计算边界二次函数。请参阅:

http://web4.cs.ucl.ac.uk/staff/t.weyrich/projects/quadrics/pbg06.pdf

第 3.2 节,边界框计算。该论文还提到在顶点着色器上执行此操作,因此这可能就是您所追求的。

一些个人想法:

不过,您可以通过按球体的半径近似球体的大小来近似边界框。将其转换为屏幕空间,您将得到一个比正确的边界框稍大的值,但不会相差那么远。当然,当相机距离该点太近或者球体太大时,这种方法就会失败。但除此之外,计算起来应该是非常理想的,因为它只是两个相似的直角三角形之间的比率。

如果你能算出弦长,那么比率将产生精确的答案,但目前这有点超出了我的范围。

alt text http://xavierho.com/temp/Sphere-Screen-Space.png

当然,这只是一个粗略的近似值,有时会有很大误差,但它会让事情进展得快速、简单。

否则,请参阅上面链接的论文并使用正确的方法。 =]

关于opengl - 使用顶点着色器计算球体的边界四边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2727164/

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