0
나는이 정점 당 6 바이트로 실행 일부 포장 정점 데이터 :GLES2.0 glVertexAttribPointer : 이상한 보폭 및 오프셋 값을 사용하면 성능이 저하됩니까?
glVertexAttribPointer Shader.pos3d_loc, 3, GL_UNSIGNED_BYTE, True, 6, 0
glVertexAttribPointer Shader.norm_loc, 3, GL_UNSIGNED_BYTE, True, 6, 3
4 바이트의 배수가 아닌 진보와 오프셋을 사용하여 유도 어떠한 성능 저하 (예 : 숨겨진 메모리 복사)이 있습니까?
이 시점에서 복사가 수행되지 않습니다. 꼭지점 버퍼에 데이터를 복사하거나 필요에 따라 하나씩 값에 액세스합니다. 이 값들은 OpenGL에게 버퍼 해석 방법을 알려주는 것입니다. 예를 들어 normal [i] .x = (float) ((ubyte) ((void *) ptr) [stride * i])) 여기서 ubyte는 GL_UNSIGNED_BYTE 매개 변수에서 온 것입니다. –
고마워요. 저는 함수가하는 일을 이해 합니다만, GL이 상당한 성능 비용으로 내부적으로 데이터를 변환하는 정렬 및 형식 관련 문제가 있음을 알고 있습니다. 홀수 보폭과 정렬을 지정하면 GL이 최종 렌더링 호출이 발생할 때 내부적으로 데이터를 다시 버퍼링하게되는지 궁금했습니다. – Peeling