glTranslatef
대신에 객체 정점을 수정하는 경우 성능이 향상됩니까?Android OpenGL ES - glTranslatef를 사용하거나 정점을 직접 업데이트하십시오.
NPC 객체의 버텍스는 다음과 같이 설정됩니다. 그들은 X와 Y를 이동할 때이 그들 때문에 내가 화면에 그려집니다 NPC 개체의 컬렉션이 순간 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
};
에 대한 이전 호출의 화면 폭의 1/10이 될 수 있습니다 값이 업데이트되어 정확한 숫자로 NPC를 그리기 위해 onDraw
이 액세스합니다.
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)
이 - 화면 크기 및 비율
npc.draw(gl)
에 관련된 계산을 만드는 방법 gl.glTranslatef()
호출하면서 밀어 매트릭스 팝 - 클라이언트 상태 수와 배열
가 증가있을 것이다 무 이동 함수가 꼭지점과 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);
}
나는 내가 어떤 성능 향상을 볼 수 있는지 확인하기 위해 간단한 테스트를 만들려고 해요,하지만 난 사람이 어떤 이전의 경험이 있다면 물어보고 싶었다.