嘿所有, 我正在为Android编写一个小型3D引擎,以便更好地学习平台和opengl。我希望最终能够将它作为小型3D游戏的基础。
我正在尝试立即实现照明,并且通常遵循NeHe opengl android端口教程。我有一个简单的旋转立方体和1个不应改变位置的灯。在设备上渲染场景时,灯光显示为“暗淡”,并在立方体旋转时重新变亮。
这是行为的SWF视频: http://drop.io/obzfq4g
我的“引擎”的代码位于:http://github.com/mlasky/Smashout-Android-3D-Engine/
相关位是:
http://github.com/mlasky/Smashout-Android-3D-Engine/blob/master/src/com/supernovamobile/smashout/SmashoutGLRenderer.java
这是我正在初始化opengl并设置场景的地方。
和
http://github.com/mlasky/Smashout-Android-3D-Engine/blob/master/src/com/supernovamobile/smashout/SMMesh.java 这是实际旋转/绘制立方体网格的代码。
我希望我能够提出一个更好的问题;但是我非常困惑/困惑甚至不能想到一个聪明的问题,除了“有谁知道什么可能导致我看到的那种行为?”
感谢您提供的任何帮助。
编辑:视频中动画的缓慢/波动也是screencap软件的结果。它在鸸all的整个旋转过程中都很平滑。
答案 0 :(得分:1)
从视频中看起来你的法线不正确。
对于轴对齐的立方体,cube.xml中的法线似乎已关闭。它们应该是轴对齐的,而不是它们。你从哪里得到这个模型?
如果mVNormalsBuffer
为空,This answer也可能相关。
答案 1 :(得分:1)
您正在使用
gl.glNormalPointer(3, GL10.GL_FLOAT, mVNormalsBuffer);
错误。
应该是:
gl.glNormalPointer(GL10.GL_FLOAT,0, mVNormalsBuffer);