2011-09-28 6 views
3

LWJGL의 slick-util 확장자로 Java에로드 된 쿼드의 3D 세계에서 미리 생성 된 PNG 파일의 텍스처 좌표를 사용하려고합니다.텍스처 매핑에 이상한 문제

텍스처 파일의 형식이 192x96 픽셀이며 올바른 형식입니다. 그것은 6x3 32x32 타일로 구성되어 있습니다.

3d 쿼드는 1.5f 넓이로 길다. 그들은 적절하게 이격되어 있습니다.

올바른 질감 좌표를 얻는 데 문제가 있습니다. 0.0f를 y 좌표로 0.333333f에 놓으면 표시되는 탑 타일의 높이보다 약간 더 높게됩니다. 그러나 0.0f-0.25f를 넣으면 정확히 1/3이됩니다. 이것은 타일 높이입니다. 아직 X 좌표의 마법 번호를 찾지 못했지만 어쩌면 누군가가 왜 텍스처 좌표에 따라 96의 1/4이 24인지 또는 내가 잘못한 것을 설명 할 수 있습니다. 내 쿼드 크기와 질감이 충돌 할 수 있다고 생각합니다. 큐브

Screenshot http://i52.tinypic.com/2qbafqp.jpg

상단이 텍스처 좌표 (0.0, 0.0f로), (0.0, 0.333333f) (0.166666f, 0.333333f) (0.166666f, 0.0f로)를 사용하는 왼쪽 상단에서 오른쪽 상단으로 시계 반대 방향으로 움직여 적용됩니다. 다시 말하지만, 메인 텍스처 파일은 192x96 (96은 높이)으로 배열 된 32x32 타일입니다.

공지 사항 타일 중 하나의 상단에 흰 선을 배치하여 테두리를 보았고 아래쪽에 검은 선이 표시되고 그 아래에 다음 선의 맨 위에 흰색 선이 표시되었습니다. 텍스처가 너무 멀리 흐려집니다. 다른 텍스처는 여러분이 볼 수있는 것처럼 그들 자신의 낯선 좌표를 가지고 있습니다.

텍스처의 좌표를 이미지의 상단이 하단이 아니라 1.0 인 것으로 가정하면 쿼드가 있어야하는 가운데에 사각형 구멍이있는 홀수 번째 사각형이 생성됩니다.

TEX_ENV GL_MODULATE를 (를) 사용하고 있습니다.

답변

4

텍스처 크기는 일반적으로 2의 거듭 제곱입니다. 192x96 텍스처의 크기를 256x128 또는 256x256 텍스처 크기로 변경 한 것으로 의심됩니다. 이것은 실제로 당신이 발견 한 값을 설명하지는 않지만 ... 그러나 생각합니다. 질감을 256x256으로 크기를 조정하면 (크기를 늘리고 크기를 조정하지 마십시오!) 텍스처 좌표를 계산하면 문제가 발생합니다. 떨어져.

+0

이것은 정확했다, 고마워. – Sean

0

자바에 대해서는 잘 모르지만 객관적인 C 및 OpenGL ES의 이미지 애플릿은 아트라스에서 텍스처를 선택할 때 참조하는 것보다 텍스처를 작게 만들 필요가 있습니다.

'출혈을 방지하기 위해 텍스처 이미지 사이에 충분한 간격을 유지 했습니까?

+0

간격이 없으며 모두 단단합니다. 그러나 좌표가 0.25f에서 완벽하게 작동하기 때문에이 문제는 의심 스럽습니다. 쿼드 크기가 texure 좌표를 늘리는 지 궁금해하기 시작합니다. 1.5x0.25가 0.33에 매우 가깝기 때문에 올바른 것입니다. 지금 확인해. – Sean