문제

내가하고 싶은 것은 OpenGL과 함께 (큰) 지형을 그리는 것입니다. 그래서 나는 정점 세트가 있습니다. VRAM의 정점 버퍼 객체에 저장하는 256 x 256이라고 가정 해 봅시다. 올바르게 삼각 측량을 했으므로 얼굴에 대한 인덱스 버퍼가 있습니다.

// vertexes
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vertexBufferId);
glVertexPointer(3, GL_FLOAT, 0, 0);
// textures
glBindBufferARB(GL_ARRAY_BUFFER_ARB, texCoordBufferId);
glTexCoordPointer(2, GL_FLOAT, 0, 0);
// indexes
glBindBufferARB(GL_ELEMENT_ARRAY_BUFFER_ARB, indexBufferId);
// draw it
glDrawRangeElements(GL11.TRIANGLES, 0, size - 1, size, GL_UNSIGNED_INT, 0);

또한 각 삼각형에 적용 해야하는 사각형 텍스처를로드했습니다. 텍스처 코디에 문제가 있습니다.

각 정점은 4 개의 삼각형에 포함되어 있으므로 4 개의 텍스처 코디가 필요합니다. 그러나 gldrawRangeElements ()는 정점만큼 많은 텍스처 좌표가 필요합니다.

그래서 나는 VBO로 이것을하는 방법을 보지 못합니다. 어쩌면 내 문제를 해결하기위한 더 나은 개념이 있거나 좋은 생각이 부족할 수도 있습니다.

미리 감사드립니다.

도움이 되었습니까?

해결책

텍스처가 각 쿼드에서 자체적으로 반복 (또는 미러) 해야하는 경우 가장 좋은 방법은 배열의 (x, y) 위치 수와 일치하는 텍스처 좌표를 사용하는 것입니다. 예를 들어, 정점의 첫 번째 라인의 경우 이러한 텍스처 좌표를 사용합니다 : (0.0, 0.0), (1.0, 0.0), (2.0, 0.0) ... (255.0, 0.0).

다른 팁

질감이 원활하게 타일을 원하기 때문에 각 정점에 대한 적절한 텍스처 좌표를 계산하고 정점처럼 전달하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top