私のアプリがオブジェクトの頂点を使用する代わりに変更する場合、パフォーマンスは向上しglTranslatef
ますか?
NPCオブジェクトの頂点は次のように設定されます。これにより、前回の呼び出しにより、画面幅の1/10にすることができます。gl.glScalef()
protected float[] vertices = {
0f, 0f, -1f, //Bottom Left
1f, 0f, -1f, //Bottom Right
0f, 1f, -1f, //Top Left
1f, 1f, -1f //Top Right
};
現時点では、画面上に描画されるNPCオブジェクトのコレクションがあり、それらが移動するとX値とY値が更新さonDraw
れ、正しい場所にNPCを描画するためのアクセスが更新されます。
onDraw(GL10 gl){
for(int i=0; i<npcs.size(); i++){
NPC npc = npcs.get(i);
npc.move();
translate(npc.x, npc.y);
npc.draw(gl);
}
}
translate(x,y)
gl.glTranslatef()
-画面サイズと比率に関連して計算を行うメソッドを呼び出している間、マトリックスをプッシュおよびポップします
npc.draw(gl)
-クライアントの状態を有効にし、配列を描画します
移動関数が頂点とNPCオブジェクトを変更した場合、パフォーマンスは向上しますか?例えば;
move(){
// ... do normal movement calculations
float[] vewVertices = {
x, y, 0f,
x+npc.width, y, z,
x, y+npc.height, z,
x+npc.width, y+npc.height, z
}
vertexBuffer.put(newVertices);
vertexBuffer.position(0);
}
パフォーマンスの向上が見られるかどうかを確認するための簡単なテストを作成しようとしていますが、これまでにこれを経験したことがあるかどうかを尋ねたいと思いました。