2013-07-13 1 views
1

나는 바퀴를 재발 명하고 싶지 않기 때문에 3D 렌더링 엔진을위한 기본적인 3D 편집기로 도움이되는 좋은 데이터 구조를 찾고 있습니다. 기본적으로 다음과 같은 데이터 구조를 찾고 있습니다. 제 경우에 한정되는 필요한 데이터 저장 :어떻게 voxel 데이터/openvdb 구조가 작동합니까?

  • 형상
  • 로컬 및 글로벌 좌표 또는라고도 변형이 재료에 대한 실제 정의를 잡고 다른 구조
  • 재료 또는 포인터

이제 이것이 3D 렌더링의 첫 번째 접근 방식이지만, 래스터 라이저가 작동하는 방식, 이미지를 생성하기 위해 삼각형, 점 및 선이 GPU에서 처리되는 방식에 대한 좋은 토대가 있습니다. 문제는 지금 무엇을 얻지 못합니까? 이 새로운 "voxel 기반"데이터 구조는 심지어 OpenVDB이 나를위한 올바른 구조인지 여부입니다.

이 엔진에 대한 대부분의 "입력"은 기본적으로 삼각형과 점과 같이 obj 형 파일에서 발생한다고 생각하지만 여전히 최신의 가장 큰 것을 놓치지 않으려 고합니다. 그래서 물어 봅니다. 실제 무엇입니까? OpenVDB와 삼각형 메쉬를 포함하는 일반적인 데이터 구조의 차이점은 무엇입니까? OpenVDB의 실제 응용 프로그램은 무엇입니까?

답변

6

2D에서 벡터와 래스터 아트의 차이점을 이해한다면 삼각형과 보셀의 차이점과 유사합니다. 벡터 아트는 선형 세그먼트와 지오메트리를 사용하여 모양을 표현합니다. 삼각형은 3D로 메시를 나타냅니다. 대안으로, 이미지는 보셀이 3D 볼륨을 표현하는 데 사용되는 것처럼 모양을 나타 내기 위해 격자에 배열 된 픽셀을 사용합니다. 예를 들어 구가 삼각형을 가진 메쉬로 표시되거나 켜기/끄기 복셀 세트로 표시 될 수 있습니다 3D 그리드에서. 3D 텍스처를 GPU에 저장할 수있어 효율적인 레이 캐스팅, 순회 등을 가능하게합니다. 연기와 체액에 특히 유용합니다.

OpenVDB는 CPU 기반이지만 하나의 3D 볼륨을 확장하여 다중 해상도를 제공합니다. 많은 더 작은 NxNxN 볼륨이 훨씬 더 큰 볼륨을 만들기 위해 하나의 트리로 결합됩니다.

사용하는 표현은 수행하려는 3D 편집 작업의 종류에 따라 크게 달라집니다. 나무와 유기물을 만들고 싶습니까? 유체를 편집하고 모델링 하시겠습니까? 캐릭터를 모델링 하시겠습니까? 정말 기본적인, 즉 입문 3D 편집기의 경우 삼각형과 메쉬를 유비 쿼터스로 제안하고 GPU 파이프 라인을 설계하는 방법을 제안합니다.