1

ねえ、私はプラットフォームとopenglをよりよく学ぶために、Android用の小さな3Dエンジンを書いています。最終的には小さな3Dゲームのベースとして使用したいと思っています。

私は今、照明を実装しようとしています。一般的には、NeHeopenglandroidポートのチュートリアルに従います。単純な回転する立方体と、位置を変えてはならない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 これは、立方体メッシュを実際に回転/描画するためのコードです。

もっと良い質問を立てられたらいいのにと思います。しかし、私は非常に行き詰まっていて混乱していて、「私が見ているような行動を引き起こす可能性があるものを誰かが知っていますか?」以外に尋ねるインテリジェントな質問を考えることさえできません。

あなたが提供できるどんな助けにも感謝します。

編集:また、ビデオのアニメーションの遅さ/途切れは、スクリーンキャップソフトウェアの結果です。エミューの回転全体を通してスムーズです。

4

2 に答える 2

1

ビデオから、あなたの法線が間違っているように見えます。

軸に沿った立方体の場合、cube.xmlの法線はずれているように見えます。それらは、それらが何であれ、軸に沿っている必要があります。モデルはどこで入手しましたか?

mVNormalsBufferが空の場合、この回答も関連している可能性があります。

于 2010-10-07T14:49:59.793 に答える
1

使用しています

gl.glNormalPointer(3, GL10.GL_FLOAT, mVNormalsBuffer);

間違い。

そのはず:

gl.glNormalPointer(GL10.GL_FLOAT,0, mVNormalsBuffer);
于 2011-09-23T23:55:19.147 に答える