2011-07-26 4 views
9

나는 3D TV를 가지고 있으며 적어도 내 자신의 창조물의 예쁜 3D 이미지를 표시하려고하지 않으면 나는 책임을 회피 할 것이라고 생각한다.3D 이미지를 3D TV로 출력하려면 어떻게합니까?

이전에 OpenGL 프로그래밍의 기본적인 양을 수행 했으므로 관련 개념을 이해할 수 있습니다. - 간단한 Tetrahedron 또는 Cube를 렌더링하여 약간 회전 할 수 있다고 가정합니다. 이 3DTV에서 3D로 이미지를 표시하려면 어떻게해야합니까?

3D가 작동하는 원리 (두 개의 다른 각도에서 각 이미지에 대해 두 번씩 동일한 이미지를 렌더링 함)를 이해합니다. 내 질문은 실제로이 작업을 수행하는 데 필요한 물류에 관한 것입니다 (SDK가 필요합니까? 등). 내 의도는이 질문도 (가능한 경우)

  • 내 노트북은 내가하려는 것입니다 이는 HDMI 출력을 가지고 다른 3D 기술과 관련이 있다고하지만 ..)

    • 내가 가진 TV는 편광 3D를 사용 (VGA/컴포넌트 비디오 케이블을 사용하는 것보다 어떤 차이가 있습니까?)
    • 과거에는 는 쉽게/단지 정말 가능한 몇 가지 다른 기술을 사용하여이 작업을 수행하지만 경우, GLUT/OpenGL을 실험은
  • +0

    [HDMI 1.4a 호환 입체 신호를 OpenGL 응용 프로그램에서 3DTV로 출력하려면 어떻게합니까?] (https://stackoverflow.com/questions/7032991/how-can-i-output-a) -hdmi-1-4a-compatible-stereoscopic-signal-from-opengl-appli) – user2284570

    답변

    7

    가장 큰 문제는, 당신의 GPU를 점점 입체 형식을 보내는 것입니다 괜찮 이잖아. HDMI 연결의 경우 이는 드라이버의 도움 없이는 작동하지 않습니다.

    glDrawBuffer(GL_BACK_LEFT); 
    render_left_eye(); 
    
    glDrawBuffer(GL_BACK_RIGHT); 
    render_right_eye(); 
    
    glDrawBuffer(GL_BACK); // renders to both eyes simultanously 
    render_screen_level_and_nonstereoscopic(); 
    
    SwapBuffers(); 
    

    는 불행하게도 OpenGL은 쿼드 버퍼가 전문 간주됩니다 : 당신이 전문가 급 GPU (쿼드, FireGL의), 그들은 가능성이 지원 OpenGL을 quadbuffers가있는 경우 모두 앞면과 뒷면, 왼쪽과 오른쪽 눈에 대한 프레임 버퍼를 얻을 즉, 학년 물건.

    대신 NVidia는 관례 입체 소설 라이브러리와이를 제어하는 ​​확장 기능을 제공합니다. 주된 추론은 공유 조각이 한 번만 렌더링 된 다음 적절한 시차가 적용된 상태에서 두 눈으로 전송된다는 것입니다. 그러나 입체경 검사로 인한 반 전문적인 경험으로 인해 이러한 종류의 반자동/자동 입체 촬영은이를 잘라 내지 못합니다. 입체경 검사는 전체 "생산"파이프 라인을 엄격하게 제어해야합니다. 코끼리 꿈을 가지고 나는 렌더러의 핵심 코드를 수정하는 한 멀리 갔다.

    NVidia에서 입체감 검사 프로세스에 대한 정확한 제어가 필요한 몇 가지 사례 시나리오를 사람들에게 보냈습니다. 조명을보고 가전 하드웨어의 쿼드 버퍼 스테레오에 액세스 할 수 있기를 바랍니다. 나는 3D가 작동하는 방법의 기초를 이해

    참고 실제로 두 개의 서로 다른 각도에서하지만 렌더링하지 않는

    (2 개 다른 각도, 각 눈 하나에서 두 번 같은 이미지를 렌더링) 이동 시차와 렌즈 시프트. 그렇지 않으면 시계에 매우 불쾌한 사다리꼴/키스톤 왜곡이 발생합니다. 사실 입체 렌더링 과정에서 광학 축을 약간 분산시켜야한다고 생각합니다. 즉 순진한 것과는 완전히 반대되는 것으로 생각합니다. do - and over "는 렌즈 시프트로 보상합니다. 저는 현재 이것에 관한 작은 연구를 준비 중입니다.하지만 여전히 테스트 그룹과 컨트롤 그룹을 수집해야합니다.)


    1 : 여하튼, 나는 single-handedly stereographed 코끼리 꿈, rendered it 및이에게 award at a 3D movie festival을받은 사람입니다.

    +0

    종합적인 답변을 해 주셔서 감사합니다! 실제로 쿼드로 그래픽 카드가있는 다른 노트북을 사려고 생각하고 있었기 때문에 두 가지 방법으로 실험 할 기회를 얻을 수 있습니다. – Justin

    +0

    사실, 그들의 문서에서 nVidia 3D 쓰레기는 렌더 타겟과 모든 그리기 호출을 복제할지 여부와 같은 휴리스틱 스를 결정하고 시차 계산을하기 위해 버텍스 쉐이더를 수정하여 작동합니다. 그것에 대해 독창적 인 점은 nVidia의 어떤 사람이 당신보다 훨씬 똑똑하고 아마도 당신이 쓰는 것보다 훨씬 더 많은 것을 알고 있기 때문입니다. 3D를 올바르게 지원하는 데 열심히 노력하는 것, 즉 쿼드 버퍼를 궁금해 할 것입니다. HW의 특별한 것을 묻는 것처럼 아닙니다. – Damon

    +0

    @Damon : 이유는 간단합니다. 진정한 쿼드 버퍼 스테레오는 NVIDIA의 고급 전문 GPU를 판매하는 곳입니다. 소비자 GPU에서 작동하도록하는 드라이버 스위치를 단순히 뒤집 으면 가격이 비싼 전문가 용 GPU에서 많은 이익을 잃을 수 있습니다. 운이 좋으면 Direct3D 12에 QBS가 필요하므로 NVIDIA (및 AMD)는 OpenGL에서이를 노출합니다. –

    0

    수동 3D TV를 사용하기 때문에 왼쪽 및 오른쪽 눈보기가 대체 스캔 라인에서 렌더링됩니다.

    따라서 왼쪽 눈보기는 짝수 번호의 주사선으로, 오른쪽 눈보기는 홀수 번째 주사선 (또는 그 반대)으로 렌더링하는 것이 좋습니다. OpenGL 스텐실 작업을 통해 또는보다 현대적으로 사용자 정의 조각 쉐이더를 사용하여 수행 할 수 있습니다.

    이렇게하면 datenwolf가 설명하는 전체 쿼드 버퍼링 비디오 카드/GL_BACK_LEFT/GL_BACK_RIGHT 방식을 피할 수 있습니다. 그리고 저는 쿼드 버퍼 스테레오 3D를 실제 3D TV로 향하게하는 비디오 드라이버를 만나 본적이 없기 때문에 그러한 접근법을 피하고자합니다.

    나는 datenwolf의 조언에 동의합니다. 오른쪽 및 왼쪽 눈의 시점을 생성하려면 장면 회전이 아닌 비대칭 절두체 이동을 사용해야합니다.