代码之家  ›  专栏  ›  技术社区  ›  Andrey

如何将明暗器应用于特定对象

  •  3
  • Andrey  · 技术社区  · 14 年前

    我的现场有几个物体。我只想将我的明暗器应用于其中一个。环境:OpenGL 2,C++,GLUT,格柳。

    2 回复  |  直到 11 年前
        1
  •  6
  •   Mike Daniels    14 年前

    着色程序仅在安装后有效。只有在安装程序时进行的绘制调用才会使用着色器。必须安装明暗器,绘制对象,然后卸载明暗器。

    编辑 :通过“安装”我的意思是使用的明暗器 glUseProgram 使用您的明暗器手柄。“uninstall”是指安装另一个着色器或调用 胶析程序 与…争论 0 . 见 glUseProgram . 我的“安装/卸载”术语就是从这里开始的。

        2
  •  2
  •   Jonas B    14 年前

    在您的drawCall中,使用该明暗器绘制该对象,而不使用该明暗器绘制其他对象。不能再简单了;p您可以在对象类中使用枚举,在该类中,您可以指定为该对象启用的明暗器,并且只在应该时通过该明暗器传递它们。当然,如果它是一个全屏幕的像素遮影器,那么当它处理每个像素并呈现一个新的图像来显示时,你会遇到麻烦。除非您有一种将对象作为参数传递的方法和只在该对象的位置应用更改的算法。