2017-11-01 15 views
0

3D 재구성 코드 용 테스트 데이터를 생성해야합니다. 이를 위해 나는 panda3d를 사용하기로 결정했습니다. 나는 간단한 앱을 만들고 그 장면을 볼 수있다. 이제 장면의 깊이지도를 만들 필요가 있습니다. 즉, 화면의 각 픽셀에 대해 깊이, 즉 카메라에서 3D 공간의 가장 가까운 대상까지의 거리 (카메라 평면에 수직으로 이동)를 계산해야합니다. 어떤 API 함수가 더 적합합니까?panda3d로 깊이 맵 생성

답변

0

고급 그림자 샘플에서 설명한 것처럼 원칙적으로 그림자 매핑과 유사합니다. 깊이 버퍼를 렌더링하려면 오프 스크린 버퍼와 카메라를 만들어야합니다. 직교 렌즈를 사용하지 않으면 최종 깊이 값이 선형이 아니므로 렌즈의 근거리 및 원거리 값을 사용하여 선형 값으로 변환해야합니다. 근거리 및 원거리는 원하는 깊이 값 범위를 얻도록 구성되어야합니다.

또는 쉐이더를 사용하여 색상 버퍼에 적절한 거리 값을 쓸 수 있습니다.이 값은 나중에 원근 투영을 취소하지 않고도 원근 카메라의 거리 값을 저장하려는 경우 또는 원할 경우 특히 유용합니다 원래의 세계 공간 위치를 저장합니다.

CPU의 값에 액세스 할 수 있도록하려면 버퍼를 CPU 액세스 가능 메모리로 렌더링 한 결과를 Panda3D에 전달하도록 텍스처를 바인딩 할 때 RTM_bind_or_copy 대신 RTM_copy_ram 값을 사용해야합니다.