我正在尝试实现一篇图形论文中的算法,其中一部分是将已知半径的球体渲染到缓冲区。他们说通过在顶点着色器中计算位置和大小,然后在片段着色器中进行适当的着色来渲染球体。
你猜想他们是如何做到这一点的吗?位置和半径都以世界坐标为基础,投影是透视的。这是否意味着球体会被投影成圆形?
我正在尝试实现一篇图形论文中的算法,其中一部分是将已知半径的球体渲染到缓冲区。他们说通过在顶点着色器中计算位置和大小,然后在片段着色器中进行适当的着色来渲染球体。
你猜想他们是如何做到这一点的吗?位置和半径都以世界坐标为基础,投影是透视的。这是否意味着球体会被投影成圆形?
除非它在相机中心,否则球体将被投影为椭圆形,正如brainjam所说。
Xavier Ho链接的文章描述了球体投影(即二次投影)的概括。这是一篇非常好的阅读材料,我也推荐它。然而,如果您只对球体投影和更精确地限制投影的四边形感兴趣,则Robust Stencil Shadows的机械原理,第6页:剪刀优化详细介绍了如何实现。