如何模拟GL_DEPTH_CLAMP_NV?
我有一个平台,此扩展不可用(非 NVIDIA)。 我怎样才能模拟这个功能? 我需要它来解决使用 z-fail 算法渲染模板阴影体积时的远平面裁剪问题。
I have a platform where this extension is not available ( non NVIDIA ).
How could I emulate this functionality ?
I need it to solve far plane clipping problem when rendering stencil shadow volumes with z-fail algorithm.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
既然你说你正在使用 OpenGL ES,而且还提到尝试限制 gl_FragDepth,我假设你正在使用 OpenGL ES 2.0,所以这里有一个着色器技巧:
你可以通过对 z 分量使用单独的变量来模拟 ARB_depth_clamp 。
顶点着色器:
片段着色器:
Since you say you're using OpenGL ES, but also mentioned trying to clamp gl_FragDepth, I'm assuming you're using OpenGL ES 2.0, so here's a shader trick:
You can emulate ARB_depth_clamp by using a separate varying for the z-component.
Vertex Shader:
Fragment shader:
“回退”到
ARB_depth_clamp
?检查
NV_depth_clamp
是否存在?例如,我的 ATI 卡支持五个“仅 NVidia”GL 扩展。"Fall back" to
ARB_depth_clamp
?Check if
NV_depth_clamp
exists anyway? For example my ATI card supports five "NVidia-only" GL extensions.