【问题标题】:"Rendering" polygons that are transparent OpenGL“渲染”透明 OpenGL 的多边形
【发布时间】:2012-01-16 10:59:45
【问题描述】:

我正在开发一个引擎,我处理玩家不应该到达的边界的方式是将实际的多边形作为这些边界。现在,我想知道如何“渲染” polgon 但让它不可见。

我的主要问题是:OpenGL 是否有办法在本地执行此操作?

如果不是,如果我以通常在纹理中加载的方式创建纹理,但该纹理只是单个像素,该怎么办?我可以将 alpha 通道设置为特定的像素颜色,然后像通常使用蒙版纹理一样使用 alpha 蒙版。

有什么建议吗?

【问题讨论】:

  • "现在,我想知道如何“渲染” polgon 但让它不可见。"你如何渲染不可见的东西;重点是什么?为什么你渲染的内容会影响玩家可以去和不能去的地方?听起来您的引擎很混乱;绘制的内容不应影响行为(事情可以去哪里)。
  • @Nico Bolas 我使用我的 BSP 树来计算碰撞。碰撞会影响整个多边形。现在我想了想,我仍然可以在不渲染多边形的情况下计算碰撞。对吗?
  • 没错。您的 BSP 多边形不必与您实际渲染的内容相匹配。
  • @Nico Bolas 谢谢。我将继续查看您个人资料中的教程。看起来是一种很好的学习方式。

标签: opengl render polygon


【解决方案1】:

如果您想将边界渲染为透明多边形 - 您可以使用此处给出的混合方法:http://www.opengl.org/resources/faq/technical/transparency.htm

这就是你要找的吗?

【讨论】:

    【解决方案2】:

    我的主要问题是:OpenGL 是否有办法在本地执行此操作?

    不!

    OpenGL 只绘制颜色漂亮的三角形、线条并指向帧缓冲区,仅此而已。

    • 这不是场景图。
    • 它不是几何库。
    • 它不是一个碰撞检测框架。

    【讨论】:

      【解决方案3】:

      问题 cmets 解决了您遇到的问题但是有一种方法可以做您实际提出的问题,所以我还是把它放在这里。

      据我了解,问题是关于在深度缓冲区(可能还有模板)中渲染某些东西,但在其他地方没有。为此,您只需在绘制透明多边形之前像这样使用glColorMask

      glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
      

      然后恢复颜色蒙版。

      【讨论】:

        猜你喜欢
        • 2011-08-16
        • 1970-01-01
        • 1970-01-01
        • 2011-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多