2012-05-17 4 views
1

일련의 볼륨 이미지에서 3D 볼륨을 렌더링해야하는 프로젝트에 참여했습니다. 이미지는 문제의 대상물의 세로 조각과 같은 두 가지 기술로 만들어졌습니다.2D 이미지 스택에서 3D 볼륨 렌더링

데이터 세트는 this question과 유사하지만 Asker가 Matlab 솔루션을 찾고 있습니다.

목표는이 도면을 실시간 (1Hz 업데이트 속도)에 가까운 무언가에두고 내 연구에서 openGL이 그리기를위한 가장 빠른 옵션 인 것처럼 보입니다. OpenGL에서 내장 된 함수가 다음 psuedocode 알고리즘 이외의 다른 OpenGL에서 볼륨을 렌더링합니까?

foreach(Image in Folder) 
    foreach(Pixel in Image) 
     pointColour(pixelColour) 
     pointLocation(Pixel.X,Pixel.Y,Image.Z) 
     drawPoint 

이미지 간 보간에 신경 쓰지 않아도 현재 간격은 충분히 작아서 필요하지 않습니다.

+0

3D 텍스처를 만드는 것뿐만 아니라 3D 볼륨을 렌더링하려는 경우 질문을 수정하십시오. – Ani

답변

3

볼륨 렌더링을 고려하는 경우 두려워요. volume rendering integral을 먼저 이해해야합니다. 화면의 픽셀 결과 컬러가 현재의 픽셀과 일치하는 모든 보셀의 함수이기 때문입니다 시야각.

기존 그래픽 하드웨어를 사용하여 실시간으로 볼륨을 렌더링하는 두 가지 방법이 있습니다.

  1. 볼륨을 3D 텍스처 (프록시 형상)와 교차하는 2D 뷰 정렬 슬라이스 세트로 렌더링합니다. 설명 here.
  2. 프로그래머블 그래픽 하드웨어 인 튜토리얼 here을 사용하는 레이 캐스터를 사용하십시오.

이것은 쉽게 해결할 수있는 문제는 아니지만 필요한 작업에 따라 조금 더 간단 할 수 있습니다. 예를 들면 : 대화식 전달 기능을 갖고 싶습니까? 원근법보기를 원하십니까 또는 직각 투영법으로 충분합니까? 등위면을 렌더링하고 있습니까? MPR-type보기에만이 항목을 사용하고 있습니까?

+0

도움말 및 링크를 제공해 주셔서 감사합니다. 내가 가지고있는 것과 비슷한 데이터로 시작하는 것처럼 보이지만 MPR 유형보기가 필요하지 않으므로 여기서 수행되는 작업을 자세히 살펴볼 것입니다. 직교 뷰가 모두 필요합니다. Iso-surfaces는 필요하지도 않을뿐만 아니라 대화 형 전달 함수와도 관련이 없습니다. – Adam