2010-07-30 2 views
3

나는 단순한 모델 엔진으로 3d 지형 엔진을 코딩했습니다.모델 텍스처링

내 지형의 사각형 높이 맵을 사용하므로 삼각형을 텍스처링하는 것은 매우 간단합니다.

그러나 내 모델링에 텍스처가 붙어 있습니다. 사용과 같은 답변이 도움이되지 않습니다 또는 사용 3DS를 믹서기 있도록

나는 사용자 정의 모델 형식을 사용합니다.

그 이유는 내가 OpenGL을 프로그래밍 자신을 가르 칠 수있는이 취미 프로젝트를 시작하고, 나는 내 친구가 1999 년에 쓴 정말 된 터보 파스칼 소프트웨어 렌더러에서 준비 모델을 가지고 있기 때문에, 난 그냥 유지한다는 것입니다 그들을 사용하여.

내 질문은 :

텍스처 내 모델로 구성되어 삼각형 좌표를 생성하는 잘 알려진 알고리즘이 있습니까? 그렇지 않다면 어떤 전략을 따라야합니까?

답변

4

텍스처 좌표를 자동으로 생성하는 방법은 많이 있지만, 왜곡이나 과도한 불연속이없는 좌표를 제공하는 쉬운 방법은 모르겠습니다.

가장 쉬운 방법은 현재 모델 형식을 좀 더 표준적인 것으로 변환하는 작은 프로그램을 작성하는 것입니다. 나는 이것을 과거에 해왔고 XNA .x 형식이 변환하기 쉽다는 것을 알았습니다. 시도하는 다른 모든 작업은 궁극적으로이 작업을 수행 한 다음 3D 모델링 패키지에서 사용할 수있는 도구를 사용하는 것보다 시간이 오래 걸리고 어려울 것이라고 생각합니다.

변환을 원하지 않는다고 확실하다면, 제 조언은 단순한 것을 목표로 삼아 결과가 좋지 않을 것이라고 받아들이는 것입니다. 하나의 쉬운 접근법은 구형 투영법입니다. 기본적으로 모델 중심에서 정점으로 이동하는 벡터에 해당하는 "위도"와 "경도"에 따라 텍스처 좌표를 정점에 할당합니다.

비슷하게 쉽지만 종종 문자와 같은 것들이 더 좋을 때 모든 정면을 향한 폴리곤을 x 좌표와 y 좌표로 투영하고 마찬가지로 마주 보는 폴리곤을 오프셋하여 두 세트가 서로 옆에 있도록합니다. .

원통형 투영을 시도해 볼 수도 있습니다. 이러한 각 투영법은 특정 유형의 모양에 적합합니다. 그러나 일반적으로 블렌더와 같은 적절한 UV 언 래핑보다 훨씬 더 악화 될 것입니다.

1

작은 블렌더 수입업자와 해당 수출업자를 작성할 수도 있습니다. 각각은 100 줄 이상의 파이썬을 가져 가야합니다 (귀하의 모델 형식은 단순한 것처럼 보입니다). 자동 uv 매핑 알고리즘은 입니다.은 2x100보다 더 복잡합니다. LOC

또 다른 해결책은 오래된 형식을 사용하고 찾은 첫 번째 .obj 로더 (또는 아무것도)를 사용하십시오.