创建一个 Eclipse 游戏插件,第 2 部分: 构建和发射 BB 枪
2009-12-14 00:00:00 来源:WEB开发网构造函数设置 SceneGrip,并把所有的侦听器添加到 OpenGL 画布,用 SceneGrip 作为侦听类。
接下来是初始化 OpenGL 上下文。
初始化 OpenGL 参数
OpenGL 有许多可以配置的参数。我们在 initGL 方法中定义了一些参数,如清单 5 所示。
清单 5. 初始化 OpenGL 上下文protected void initGL() {
super.initGL();
GL.glLightfv(GL.GL_LIGHT1,
GL.GL_DIFFUSE,
new float[] {1.0f, 1.0f, 1.0f, 1.0f});
GL.glLightfv(GL.GL_LIGHT1,
GL.GL_AMBIENT,
new float[] {0.5f, 0.5f, 0.5f, 1.0f});
GL.glLightfv(GL.GL_LIGHT1,
GL.GL_POSITION,
new float[] {-50.f, 50.0f, 100.0f, 1.0f});
GL.glEnable(GL.GL_LIGHT1);
GL.glEnable(GL.GL_LIGHTING);
GL.glEnable(GL.GL_COLOR_MATERIAL);
GL.glColorMaterial(GL.GL_FRONT, GL.GL_AMBIENT_AND_DIFFUSE);
...
我们要初始化 GL.GL_LIGHT1 的灯光和光源。首先,设置漫射灯和环境灯的颜色,然后设置漫射灯的位置。接下来,开启 lighting 和 light1。然后开启着色,最后一行指定环境灯和漫射灯可以影响着色对象的颜色。接下来,初始化将在本教程后面创建的定制对象。
初始化定制对象
还有几个特性需要开启,还有很多对象需要初始化。在这里,要创建二次曲面(quadric) 的句柄,二次曲面是复杂的形状,例如球体、平面、柱子。最后完成对 OpenGL 上下文的初始化,如清单 6 所示。
更多精彩
赞助商链接