gpt4 book ai didi

ios - OpenGL ES 2 (iOS) 体积线实现

转载 作者:行者123 更新时间:2023-11-29 13:42:16 25 4
gpt4 key购买 nike

我一直在研究 Philip Rideout 创建的体积线着色器设置:http://prideout.net/blog/?p=61

不幸的是,他的实现不适用于 OpenGL ES 2。在我开始深入研究如何使用 OpenGL ES 2 设置做类似的事情之前,我想讨论一下如何实现,当然,如果任何人都已经有了这个工作,也许他们可以分享一些想法。

要在 OGL ES 2 上工作,似乎需要创建一组顶点,这些顶点与根据线信息创建的棱柱体形成三角形带。

最佳答案

我已经完成了他在 OpenGL ES 2.0 中描述的光线跟踪圆柱冒名顶替者。它比桌面 OpenGL 稍微复杂一点,但它是可能的。

为此,我为每个圆柱体输入了四个顶点(在圆柱体中心线的起点处),以及圆柱体从头到尾的方向向量。在顶点着色器中,我在屏幕空间中移动了四个顶点以覆盖将容纳光线跟踪圆柱体的区域。在片段着色器中,我绘制了该圆柱体的光线追踪表示。

此示意图演示了一般过程:

Cylinder raytraced impostors

使这在 OpenGL ES 2.0 上变得有点困难的是我们无法写入 gl_FragDepth 来处理两个实心圆柱体的重叠。我最后做了一个预 channel ,我将圆柱体的每个片段的深度渲染到屏幕外纹理,然后在光线跟踪阶段使用该深度纹理来丢弃不可见的片段。

可以找到有关此过程的更详细的描述 here ,我使用它的应用程序的源代码可以从 here 下载。 .我警告你,深度和光线追踪数学对于我在那个应用程序中的圆柱体来说并不完美,我仍在努力解决这个问题。

关于ios - OpenGL ES 2 (iOS) 体积线实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8733235/

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