如何仅为一个对象禁用GL_DEPTH_TEST

时间:2012-12-15 11:48:34

标签: opengl-es

我有一个问题...... 是否可以仅为一个对象禁用GL10.GL_DEPTH_TEST? 在我的例子中,有一个Groundplane,带有Alphashadow纹理,我想要禁用 我的Carmodel的DEPTH_TEST,假阴影。其他对象不应该禁用DEPTH_TEST,所以我不会看到它们的阴影。

这是一个截图(阴影不是完美的翻译成他们的对象,但我认为你会得到我的问题)https://dl.dropbox.com/u/18265107/special/screenshot.png

1 个答案:

答案 0 :(得分:2)

您禁用深度测试的任何内容都会显示在其他内容之上。对于你喜欢的任何事情,你可以选择做或不做。但是,我不认为它会修复你的阴影。

要实现您想要的功能,禁用深度测试是不够的,您需要以正确的顺序呈现内容:

  1. 渲染地面。
  2. 渲染汽车。
  3. 渲染阴影,禁用深度测试。
  4. 渲染剩下的环境。
  5. 然而,这假设地面是平坦的,并且阴影不会投射到其他场景对象上,这可能看起来不对。