2012-01-02 4 views
3

OpenGL에서 MC 알고리즘을 구현 중입니다.Marching 큐브 및 텍스처 좌표 관련 문제

텍스처 좌표가있는 점에 도달 할 때까지 모든 것이 잘 진행되었습니다.

어떻게 구현해야할지 모르겠다!

내 진행 :

img

편집 : 은 내가 보관하고 싶은 것은 내 생성 MC 삼각형에 약간의 질감을 넣어하는 것입니다. 내가 이해하는 한, OpenGL uv 좌표를 말할 필요가 있지만, 어떻게 계산해야하는지는 모른다.

+0

행군 형 큐브 기반 표면의 텍스처 좌표로 수행 할 작업을 설명하지 않았습니다. 서페이스의 매개 변수화 방법은 귀하가 결정합니다. –

+0

비슷한 문제가 있는데, 나는 triplanar 텍스처링을 알아 내려고 노력하고 있지만, 나에게 있어도 기본 큐브에 이미 쉐이더를 알아 냈음에도 불구하고 uv 비트를 이해할 수는 없다. – War

+0

여기 triplanar textureuring : const float TextureScale = 0.02; vec2 coordZ = vec2 (ObjectVertex.xy * TextureScale); vec2 coordY = vec2 (ObjectVertex.xz * TextureScale); vec2 coordX = vec2 (ObjectVertex.yz * TextureScale); vec3 colorZ = texture2DArray (texBlocks, vec3 (coordZ, 인덱스 * 4 + 2)). xyz; vec3 colorY = texture2DArray (texBlocks, vec3 (coordY, 인덱스 * 4 + 2)). xyz; vec3 colorX = texture2DArray (texBlocks, vec3 (coordX, index * 4 + 2)). xyz; – Jeffers

답변

4

행진 큐브 알고리즘에 대한 일반적인 텍스처 좌표 생성 알고리즘은 환경 매핑을 사용하는 것입니다.

간단히 말해서 모든 돌출면의면 법선을 평균하여 각 꼭지점의 꼭지점 법선을 계산 한 다음 법선의 z 좌표를 무시하고 (x/2 + 0.5, y/2 + 0.5)를 (u, v) 텍스처 좌표.

중간에 좋은 흰 점이있는 텍스처를 설정하고 텍스처의 나머지 부분을 채우는 일부 구조체는 터미네이터 2 개의 은색 로봇 스타일로 보입니다.

+0

유망한 소리! "모든 불타는 얼굴"- 내 현재 삼각형과 같은 꼭지점을 가진 인근 삼각형을 찾아야한다는 의미입니까? "z 좌표를 무시하십시오"- 정상에서 제거 하시겠습니까? 감사합니다. – Jeffers

+0

예, thta가 아이디어입니다. –

3

OpenGL uv 좌표를 알려줘야하지만 계산 방법을 알 필요가 없습니다.

큰 문제가 있습니다. 엠씨에서 나오는 토폴로지는 무엇이든 될 수 있습니다. OpenGL의 텍스처 토폴로지는 (하이퍼) 토러스 (GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D) 또는 구 (GL_TEXTURE_CUBE_MAP)입니다.

필연적으로 당신은 당신의 표면을 소위지도로 잘라야합니다. 이것은 중요한 작업이지만, 높은 곡률을 지닌 지역을 대상으로 한 전략입니다. 더러운 자세한 내용은 종이

"최소 제곱 자동 텍스처 아틀라스 세대에 대한 등각지도"

브루노 레비, 실뱅 페티트 징, 니콜라스 레이와 제롬 타이츠

http://alice.loria.fr/index.php/[email protected]

를 참조하십시오 .