2009-08-31 2 views
1

내가 이루고자하는 전반적인 목표는 신장, 체중, 신체 유형 등을 변경할 수있는 맞춤형 아바타 시스템을 구현하는 것입니다. 어떻게 이루어 집니까? 간단한 예로, 머리/눈/손가락/기타가 펴지는 것을 원하지 않는 아바타의 높이를 변경하면 몸통과 다리가 크기를 변경하고 그 밖의 모든 것이 그대로 유지되기를 원할 것입니다 (어쩌면 재배치). 또 다른 예는 "맥주 배"를 추가하는 것입니다. 그런 종류의 모핑을위한 기존 기술은 무엇입니까?3D 모델링 - 모핑

각 변형 된 조각은 별도의 메쉬입니까?

그렇다면 두 조작 된 부분을 어떻게 믿을만한 방식으로 다시 붙일 것인가 (크기가 변경됨).

그렇지 않은 경우 조작을 다른 부분이 아닌 메쉬의 한 섹션으로 어떻게 제한합니까?

특정 솔루션뿐만 아니라 일반적인 기술을 찾고 있습니다. 이것은 일반적인 3D 그래픽 문제이지만 Kit3D/Silverlight/C#으로 작업하고 있습니다. 이것은 내가 게시 한 다른 질문과 유사하지만 훨씬 더 일반적입니다.

답변

2

MakeHuman 프로젝트를 살펴보십시오. (경고, 일부 잠재적으로 안전하지 않은 스크린 샷이 메인 페이지에있을 수 있습니다. 대부분 흐리게 표시되지만 공정한 경고입니다.)

MakeHuman이 사용하는 인체 메쉬는 일련의 대상이있는 간단한 기본 메쉬입니다 4 축 또는 5 축으로 조정할 수 있습니다. 프로그램의 대부분은 파이썬으로 작성되었으므로 비교적 쉽게 파헤쳐 야합니다. document site에는 일부 백서 및 기타 문서가 있습니다.

+1

"작업에 안전하지 않음"부분은 실제로 작업의 일부입니다. 이것은 매우 흥미 롭습니다. 오픈 소스입니다. – colithium

1

지오메트리가 메쉬 기반 인 경우 비선형 변환 ("변형"이라고 함)을 시도하고 생성하는 것이 좋습니다.

예를 들어, 3D 세계에 N 개의 피벗 점을 삽입 한 다음 메쉬의 각 정점 (점)이 주어진 피벗의 영향을받는 정도를 결정할 수 있습니다. 당신은 예를 들어 역 스퀘어 웨이팅, 또는 Gaussian falloff, 또는 3D Voronoi의 일종을 사용할 수 있습니다. 또는 ... 피벗 포인트를 이동하고 웨이트 맵을 기반으로 메쉬 정점을 변형합니다.

모든 메쉬의 모든 정점에 대해이 작업을 수행하고 메쉬가 잘 구성된 경우 틈이나 원하지 않는 교차로로 끝나지 않아야합니다.

또 다른 접근법은 폴 오프가있는 로컬 변형을 사용하는 것입니다. 예를 들어 3D 스케일링을 수행하십시오. 배율 연산의 중심점 C를 정의하지만 배율 인수는이 기준점으로부터의 거리에 따라 다릅니다. 따라서 C에 가까운 메쉬 부분은 많은 스케일을 가지며 멀리있는 부분은 거의 스케일되지 않습니다.

+0

비슷한 해결책을 시도해 왔지만 수학 배경이 분명히 당신만큼 강하지는 않습니다. 나는 이것이 해결책이라고 확신하고 있으며, 나는 그것이 MakeHuman 사람들이 한 것이라고 생각합니다. 그것은 잘 구성된 메쉬를 얻는 문제 일뿐입니다 (우리에게는 몇 가지 문제가 있습니다. 우리는 전문 모델러가 없습니다). – colithium

+0

다음은 방사형 기초 기능 사용에 대한 간단한 자습서입니다. http://cg.alexandra.dk/tag/geometry-deformation/ – greyfade