2012-06-19 5 views
1

나는 큰 메쉬로 메쉬를 그려보고 싶다. (~ 120k 버텍스를 생각해 보라). 인덱스 버퍼로 java.nio.ShortBuffer을 사용하고 있기 때문에 모든 인덱스를 단일 인덱스 버퍼에 넣으려고하면 인덱스 버퍼로 사용할 수 없으므로 작동하지 않습니다. 최대 값은 2^15 - 1입니다. 반면 ~ 2^17 정점이 필요합니다. 메쉬를 여러 조각으로 나누어야합니까? 의 네 번째 인수로 Buffer의 다른 하위 클래스를 사용할 수 있습니까?큰 인덱스 버퍼 (안드로이드)

+1

당신은 어떤 IndexBuffer를 참조하고 있습니까? 이것은 엄격하게 OpenGL-es의 일부가 아닙니다. – rotoglup

+0

글쎄, opengl-es는 아마도 잘못된 태그 일 것입니다. 사실, 필자는 다음과 같이 잘못 입력했다 : 네 번째 매개 변수 ogf'GL10.glDrawElements'로 사용할'java.nio.ShortBuffer'를 의미합니다. – miniBill

답변

1

대규모 편집 다음 미니 빌 설명!

실제로 OpenGL-ES는 인덱스의 경우 GL_UNSIGNED_BYTE 또는 GL_UNSIGNED_SHORT 만 지원합니다. 가장 많이 사용되는 것은 GL_UNSIGNED_SHORT이며 2^16-1 정점을 허용합니다. 다른 유형은 OpenGL에서만 지원됩니다.

당신은 또한 당신은 java.nio.IntBuffer에 저장할 수있는, 내가 생각하는, 인덱스에 대한 GL_INT 또는 GL_UNSIGNED_INT를 사용할 수 있습니다.

지오메트리를 분할해야하는 것처럼 보입니다.

+1

사실, 구글에 따르면 OpenGL-ES는'GL_INT' 인덱스 버퍼를 허용하지 않습니다. 아니면 적어도, 그것은 안드로이드에하지 않습니다 – miniBill

+0

@ miniBill 이것을 지적 주셔서 감사합니다, 너무 많이 OpenGL에 익숙한 내 대답을 수정 ... – rotoglup

관련 문제