OpenGL에서 MC 알고리즘을 구현 중입니다.Marching 큐브 및 텍스처 좌표 관련 문제
텍스처 좌표가있는 점에 도달 할 때까지 모든 것이 잘 진행되었습니다.
어떻게 구현해야할지 모르겠다!
내 진행 :
편집 : 은 내가 보관하고 싶은 것은 내 생성 MC 삼각형에 약간의 질감을 넣어하는 것입니다. 내가 이해하는 한, OpenGL uv 좌표를 말할 필요가 있지만, 어떻게 계산해야하는지는 모른다.
OpenGL에서 MC 알고리즘을 구현 중입니다.Marching 큐브 및 텍스처 좌표 관련 문제
텍스처 좌표가있는 점에 도달 할 때까지 모든 것이 잘 진행되었습니다.
어떻게 구현해야할지 모르겠다!
내 진행 :
편집 : 은 내가 보관하고 싶은 것은 내 생성 MC 삼각형에 약간의 질감을 넣어하는 것입니다. 내가 이해하는 한, OpenGL uv 좌표를 말할 필요가 있지만, 어떻게 계산해야하는지는 모른다.
행진 큐브 알고리즘에 대한 일반적인 텍스처 좌표 생성 알고리즘은 환경 매핑을 사용하는 것입니다.
간단히 말해서 모든 돌출면의면 법선을 평균하여 각 꼭지점의 꼭지점 법선을 계산 한 다음 법선의 z 좌표를 무시하고 (x/2 + 0.5, y/2 + 0.5)를 (u, v) 텍스처 좌표.
중간에 좋은 흰 점이있는 텍스처를 설정하고 텍스처의 나머지 부분을 채우는 일부 구조체는 터미네이터 2 개의 은색 로봇 스타일로 보입니다.
유망한 소리! "모든 불타는 얼굴"- 내 현재 삼각형과 같은 꼭지점을 가진 인근 삼각형을 찾아야한다는 의미입니까? "z 좌표를 무시하십시오"- 정상에서 제거 하시겠습니까? 감사합니다. – Jeffers
예, thta가 아이디어입니다. –
OpenGL uv 좌표를 알려줘야하지만 계산 방법을 알 필요가 없습니다.
큰 문제가 있습니다. 엠씨에서 나오는 토폴로지는 무엇이든 될 수 있습니다. OpenGL의 텍스처 토폴로지는 (하이퍼) 토러스 (GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D) 또는 구 (GL_TEXTURE_CUBE_MAP)입니다.
필연적으로 당신은 당신의 표면을 소위지도로 잘라야합니다. 이것은 중요한 작업이지만, 높은 곡률을 지닌 지역을 대상으로 한 전략입니다. 더러운 자세한 내용은 종이
"최소 제곱 자동 텍스처 아틀라스 세대에 대한 등각지도"
브루노 레비, 실뱅 페티트 징, 니콜라스 레이와 제롬 타이츠
를 참조하십시오 .
행군 형 큐브 기반 표면의 텍스처 좌표로 수행 할 작업을 설명하지 않았습니다. 서페이스의 매개 변수화 방법은 귀하가 결정합니다. –
비슷한 문제가 있는데, 나는 triplanar 텍스처링을 알아 내려고 노력하고 있지만, 나에게 있어도 기본 큐브에 이미 쉐이더를 알아 냈음에도 불구하고 uv 비트를 이해할 수는 없다. – War
여기 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