KR100759355B1 - 3차원 입체 랜더링 방법 - Google Patents

3차원 입체 랜더링 방법 Download PDF

Info

Publication number
KR100759355B1
KR100759355B1 KR1020050072368A KR20050072368A KR100759355B1 KR 100759355 B1 KR100759355 B1 KR 100759355B1 KR 1020050072368 A KR1020050072368 A KR 1020050072368A KR 20050072368 A KR20050072368 A KR 20050072368A KR 100759355 B1 KR100759355 B1 KR 100759355B1
Authority
KR
South Korea
Prior art keywords
left eye
image
screen
depth buffer
right eye
Prior art date
Application number
KR1020050072368A
Other languages
English (en)
Other versions
KR20070017785A (ko
Inventor
강주백
Original Assignee
(주) 시선커뮤니티
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 시선커뮤니티 filed Critical (주) 시선커뮤니티
Priority to KR1020050072368A priority Critical patent/KR100759355B1/ko
Publication of KR20070017785A publication Critical patent/KR20070017785A/ko
Application granted granted Critical
Publication of KR100759355B1 publication Critical patent/KR100759355B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 3차원(3D) 입체 랜더링 방법에 관한 것으로, 보다 상세하게는 좌안 이미지와 우안 이미지를 이용하여 3차원 입체화면을 구성할 때 깊이 버퍼(Z 버퍼)를 이용함으로써, 기존 기술처럼 별도로 좌안 이미지와 우안 이미지를 저장하고 다시 좌안 이미지와 우안 이미지를 합성하는 연산이 필요없는 편광 안경 방식의 디스플레이에 사용되는 고속 3차원 입체 랜더링 방법에 관한 것이다.
3차원 입체 랜더링, 깊이 버퍼(Z 버퍼)

Description

3차원 입체 랜더링 방법{3 dimensional solid rendering method}
도 1a 내지 도 1h는 종래 기술에 따른 3차원 입체 영상을 구현하는 단계를 나타낸 도면
도 2는 본 발명의 실시예에 따른 3차원 입체 랜더링 방법의 단계를 나타내는 블럭도
도 3은 도 2의 각 단계 중 투영 행렬로의 변환 단계를 상세히 도시한 순서도
도 4a 내지 도 4d는 도 3의 알고리즘에 의해 원본이미지를 3차원 입체 이미지로 변환하는 각 단계를 도시한 도면
본 발명은 3차원 입체 랜더링 방법에 관한 것으로, 보다 상세하게는 좌안 이미지와 우안 이미지를 이용하여 3차원 입체화면을 구성할 때 깊이 버퍼(Z 버퍼)를 이용함으로써, 기존 기술처럼 별도로 좌안 이미지와 우안 이미지를 저장하고 다시 좌안 이미지와 우안 이미지를 합성하는 연산이 필요없는 편광 안경 방식의 디스플레이에 사용되는 고속 3차원 입체 랜더링 방법에 관한 것이다.
최근에는 컴퓨터 게임, 영화 등 엔터테인먼트 분야에서 3차원 입체 영상을 사용하는 경우가 많다. 3차원 입체 영상은 기존의 평면 방식의 영상에 비해 입체감이 더해져 사실감과 현장감을 더해주며, 게이머나 영화 관객의 입장에서는 마치 자신이 게임 속이나 영화 속에서 직접 스토리를 전개해 나가는 듯한 생생함을 느낄 수 있다.
이러한 입체 영상은 표시하는 기술에 따라 안경 방식, 무안경 방식, 완전 3차원 방식, 인터랙티브 방식 등으로 나뉘어 진다. 그 중에서 가장 보편적으로 사용되는 방식은 안경 방식이다. 안경 방식은 특수한 입체 안경을 써서 입체를 느끼도록 하는 방법으로, 편광 방식, 시분할 방식, 기타 방식으로 나눌 수 있다. 이러한 방식들 중에서 편광 방식이 가장 많이 사용되고 있다. 편광 방식은 빛을 수직과 수평 방향으로 투과시켜 눈에 도달하는 이미지를 인위적으로 서로 다르게 보여주는 방식이다.
이러한 편광 안경 방식의 3차원 입체 화면을 구성하는 기존의 방식은, 3차원로 되어 있는 좌안 이미지와 우안 이미지를 만들고, 서로 한 라인(예를 들어, 좌안 이미지에서는 홀수 라인을, 우안 이미지에서는 짝수 라인)씩 뽑아서 이를 합성하는 연산을 한다. 상기 연산이 수행되면 전체적인 하나의 화면이 구성되게 된다.
도 1a 내지 도 1h는 종래 기술에 따른 3차원 입체 영상을 구현하는 단계를 나타낸 도면이다. 도 1a는 랜더링 하고자 하는 원본 이미지를 나타낸다. 3차원으로 랜더링 될 원본 이미지에 대하여 카메라의 위치를 좌우로 이동하여 도 1b와 같은 좌안 이미지와, 도 1c와 같은 우안 이미지가 생성된다(좌안, 우안 회전 이미지 생 성단계). 그 후, 좌안과 우안으로 랜더링된 데이터가 도 1d 및 도 1e와 같이 입체 화면 구성에 필요한 부분으로 영역이 나뉘어진다(좌안, 우안 영역 표시 이미지 생성단계). 그 후, 도 1f 및 도 1g와 같이 나누어진 영역에서 필요한 부분만 제외되고 나머지 부분이 지워진다(좌안, 우안 필터링 단계). 마지막으로, 도 1h와 같이 좌안 이미지와 우안 이미지가 합해지면 3차원 입체 이미지가 만들어진다(3차원 입체 완성 단계).
그러나, 상기와 같은 종래 방식은 좌안 이미지를 저장할 제 1 메모리 공간과, 우안 이미지를 저장할 제 2 메모리 공간과, 좌안 이미지와 우안 이미지를 합쳐서 하나로 보여 줄 제 3 메모리 공간이 필요하다. 또한, 좌안 이미지와 우안 이미지를 합치기 위해서 별도의 연산이 필요하게 된다. 이 경우, 메모리 공간이 과다하게 요구될 뿐만 아니라, 두 이미지를 합치는 연산을 수행하기 위해 별도의 회로 구성이 필요하다는 문제점이 있다.
본 발명에서는 상술한 문제점을 해결하기 위해 안출된 것으로, 좌안 이미지와 우안 이미지의 깊이 버퍼(Z 버퍼)를 상이하게 설정함으로써 3차원 입체 화면 구현에 필요한 메모리 공간을 줄이고, 이미지를 합하기 위한 별도의 연산이 필요없는 고속 3차원 입체 랜더링 방법을 제공하는 것을 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 3차원 입체 랜더링 방법은, 원본 이미지에 대한 정점 데이터를 생성하는 제 1단계; 상기 정점 데이터를 월드 행렬을 이 용하여 월드 좌표로 변환하는 제 2단계; 상기 제 2단계의 변환 결과를 카메라 행렬을 이용하여 카메라 좌표로 변환하는 제 3단계; 상기 제 3단계의 변환 결과를 투영 행렬을 이용하여 변환하되, 좌안 랜더링 과정과 우안 랜더링 과정을 구비하는 제 4단계;를 포함하여 이루어지는 것을 특징으로 한다.
또한, 상기 제 4단계는 랜더링 하고자 하는 원본 이미지에 대해 카메라를 좌측으로 이동하여 좌안 전체 이미지를 생성하는 좌안 랜더링 단계;와 상기 좌안 전체 이미지를 입체 화면 구성에 필요한 영역으로 구분하는 영역 구분 단계;와 상기 영역 구분 단계에 의해 구분된 좌안 전체 이미지의 부분 중 화면의 좌안에 해당하는 부분인 좌안 투영 이미지의 깊이 버퍼는 화면의 제일 앞쪽에 해당하는 값으로 설정하고, 화면의 우안에 해당하는 부분인 우안 투영 이미지의 깊이 버퍼는 화면의 제일 뒤쪽에 해당하는 값으로 설정하는 깊이 버퍼 설정 단계;와 상기 카메라를 원본 이미지에 대해 우측으로 이동하여 깊이 버퍼 설정 단계를 거친 좌안 전체 이미지에 우안 전체 이미지를 생성하는 우안 랜더링 단계;를 포함하여 이루어질 수 있다.
또한, 상기 영역 구분 단계에서 상기 좌안 투영 이미지는 상기 좌안 전체 이미지의 최상단으로부터 아래로 셀 때, 홀수 행 전체이거나 또는 짝수행 전체가 되도록 이루어질 수 있다. 또한, 상기 깊이 버퍼는 상기 좌안 랜더링 단계 이전에 화면의 제일 뒤쪽에 해당하는 값으로 초기화되도록 이루어질 수 있다. 이 경우, 상기 깊이 버퍼는 상기 우안 랜더링 단계 이전에 좌안 투영 이미지의 깊이 버퍼를 화면의 제일 앞쪽에 해당하는 값으로 갱신하고, 우안 투영 이미지의 깊이 버퍼를 초기 값 상태로 유지되도록 이루어질 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
먼저 본 발명에 따른 3차원 입체 랜더링 방법의 전체 단계를 각 순서에 따라 설명한다. 도 2는 본 발명의 실시예에 따른 3차원 입체 랜더링 방법의 단계를 나타내는 블럭도이다.
본 발명에 따른 3차원 입체 랜더링 방법은, 도 2를 참조하면, 정점 데이터 생성 단계(S100)(이하, 제 1단계라 한다), 월드 행렬을 이용한 변환 단계(S200)(이하, 제 2단계라 한다), 카메라 행렬을 이용한 변환 단계(S300)(이하, 제 3단계라 한다), 좌안 랜더링 및 우안 랜더링 단계(S400)(이하, 제 4단계라 한다)를 포함하여 이루어진다.
상기 제 1단계(S100)는, 폴리곤(polygon)으로 구성되어 있는 데이터들로 3차원 좌표상에 사물을 만들어 주는 것을 말한다. 상기 폴리곤은 3차원 컴퓨터그래픽에서 입체형상을 표현할 때 사용하는 가장 작은 단위인 다각형을 말한다. 3차원 컴퓨터그래픽은 입체도형을 그릴 때 물체 표면을 작은 삼각형 모양의 폴리곤으로 분할한다. 상기 폴리곤으로 분할하는 이유는, 분할한 폴리곤을 수치데이터로 바꾸면물체의 보이지 않는 부분을 계산할 수 있고 화면에 영상으로 나타낼 수 있기 때문이다. 상기 폴리곤은 대부분 계산하기 쉬운 삼각형이 쓰인다. 삼각형 폴리곤이 모이면 사각형 폴리곤을 만들게 된다. 또한, 상기 폴리곤 방식은 당업자가 일반적으 로 실시하고 있는 기술이므로, 자세한 설명은 생략하기로 한다.
상기 제 2단계(S200)는, 정점 데이터들을 어느 특정한 위치의 점으로 이동시키거나 회전시키는 행렬, 즉 월드 행렬을 이용하여 정점 데이터들을 월드좌표로 변환하는 단계이다. 다시 말해서, 어떤 3차원 원본 이미지를 구성하고 있는 정점들이 이동 변환 또는 회전 변환을 통해 3차원 월드에 배치되는 과정이다. 여기서 정점 데이터들의 변환을 위해 행렬을 사용하는 이유는 계산 속도를 빠르게 하기 위해서이다. 이러한 변환 행렬들은 일종의 함수(function) 기능을 하게 된다. 따라서, 수많은 정점 데이터들이 순차적으로 대입되면 얻고자 하는 특정한 데이터로 변환시킬 수 있게 된다. 다시 말하면, 3차원 원본 이미지의 각 정점 데이터에 월드 행렬을 곱해 주면 3차원 월드 상에 각각의 위치로 이동하게 된다. 이러한 월드 행렬을 이용하는 것은 당업자가 일반적으로 실시하고 있는 기술이므로, 자세한 설명은 생략하기로 한다.
상기 제 3단계(S300)는, 상기 월드 행렬을 이용하여 3차원 월드에 배치된 이미지들을 카메라의 위치에서 보는 것처럼 회전하고 이동하는 단계이다. 즉, 카메라가 존재하는 곳을 원점으로 하고, 카메라가 바라보는 방향을 기준으로 한 새로운 카메라 좌표계를 만든 뒤, 이 좌표계로 월드 좌표계를 변환하는 것이다. 카메라 좌표계로의 변환은 월드 좌표에 카메라 행렬을 곱해 줌으로써 변환된다. 이러한 카메라 행렬을 이용하는 것은 당업자가 일반적으로 실시하고 있는 기술이므로, 자세한 설명은 생략하기로 한다.
상기 제 4단계(S400)는, 카메라 행렬을 이용한 변환을 마친 3차원 이미지들 을 2D 평면인 모니터에 표현해 주기 위한 단계이다. 즉, 상기 제 4단계(S400)는 3차원 좌표계를 2차원 좌표계로 변환하는 것으로, 직교 투영(orthographic projection)과 원근 투영(perspective projection)이 사용된다. 직교 투영법은 CAD/CAM 등의 모델링에서 사용되는 방법으로 깊이 버퍼값의 거리에 따른 오차가 없기 때문에 정밀한 모델링이나 측량 등에 유리한 반면, 현실감은 떨어진다. 원근 투영법은 거리에 따라서 물체가 멀어지는 것을 표현한 변환 방법이다. 본 발명에서 상기 제 4단계(S400)의 수행 방법을 직교 투영법 또는 원근 투영법으로 한정하는 것은 아니며, 상기 직교 투영법과 원근 투영법은 당업자가 일반적으로 실시하고 있는 기술이므로, 여기서 자세한 설명은 생략하기로 한다. 이하에서는, 상기 제 4단계(S400)에 대하여 보다 상세히 설명하기로 한다.
도 3은 도 2의 각 단계 중 제 4단계를 상세히 도시한 순서도이다.
상기 제 4단계는, 3차원 입체 랜더링의 과정 중에서 카메라 행렬을 이용한 변환을 마친 3차원 이미지들을 2D 평면인 모니터에 표현해 주기 위한 단계이다. 상기 제 4단계는 좌안 랜더링 단계(S450)와 우안 랜더링 단계(S500)를 포함하여 이루어진다. 또한, 상기 제 4단계는 화면 초기화 단계(S410), 깊이 버퍼를 뒤쪽으로 초기화하는 단계(S420), 루프(Loop)값을 영(0)으로 설정하는 단계(S430), 카메라를 좌안에 해당하는 곳으로 이동하는 단계(S440), 루프값을 한 단위 증가시키는 단계(S460), 좌안 투영 이미지의 깊이 버퍼를 앞쪽으로 설정하는 단계(S470), 우안 투영 이미지의 깊이 버퍼를 초기값으로 유지하는 단계(S480), 카메라를 우안에 해당 하는 곳으로 이동하는 단계(S490)를 더 포함하여 형성될 수 있다.
상기 화면 초기화 단계(S410)는, 이전에 수행되고 있던 작업을 중단하고 새로운 작업을 수행하기 위해 화면의 설정값을 원래의 값으로 되돌리는 단계이다. 화면의 설정값은 해상도, 계조(gray scale) 등이 있다. 이전의 작업을 위해 각종 화면 설정값들이 특정한 값으로 설정되어 있는 상태를 상정할 수 있다. 상기 화면 초기화 단계(S410)는 이러한 설정값들을 원래의 초기값으로 재설정하여 이전 작업에 의해 본 작업이 영향을 받지 않도록 한다.
상기 깊이 버퍼를 뒤쪽으로 초기화하는 단계(S420)는, 상기 화면 초기화 단계(S410) 이후에 이루어질 수도 있고, 상기 화면 초기화 단계(S410)와 동시에 이루어질 수도 있다. 상기 깊이 버퍼값 역시 화면의 설정값들 중 하나에 해당한다고 볼 수 있으므로, 상기 화면 초기화 단계(S410)와 상기 깊이 버퍼를 뒤쪽으로 초기화하는 단계(S420)는 하나의 단계로 이루어질 수 있게 된다. 여기서 깊이 버퍼라 함은 3차원에서 입체 구성을 하는 경우에, 앞쪽의 물체와 뒤쪽의 물체가 겹쳐 있을 때 앞쪽에 있는 물체만 그려주는데 사용되는 3차원 엔진의 내부에 있는 거리 비교 버퍼를 말한다. 깊이 버퍼의 값을 앞쪽에 해당하는 값으로 세팅을 한다는 것은, 화면에서 제일 앞 부분(관찰자에게 가까운 방향)으로 물체를 옮긴 것과 같이 처리되기 때문에, 깊이 버퍼의 값을 앞쪽으로 세팅한 부분은 다음 랜더링 시에 그 세팅한 부분의 화면데이터는 지워지지 않고 그대로 남길 수 있게 된다는 것을 의미한다. 따라서, 깊이 버퍼를 화면의 뒤쪽에 해당하는 값으로 초기화하고 나서 랜더링을 하면, 다른 화면과 겹쳐질 때의 우선 순위가 항상 최후가 된다. 즉, 깊이 버퍼가 뒤 쪽으로 초기화되어 있으므로 다른 화면이 들어오게 되면 항상 초기화면은 지워지고 나중에 들어온 화면이 남아 있게 되는 것이다.
상기 루프값을 0으로 설정하는 단계(S430)는, 좌안 랜더링(S450)이 끝나면 우안 랜더링(S500)이 이루어지고, 상기 우안 랜더링(S500)이 끝나면 루프를 빠져 나와 수행하던 작업이 종료될 수 있도록 하기 위해 초기 루프값을 간단한 숫자인 0으로 설정하는 단계이다. 루프를 활용하는 방법 중 하나는, 루프값을 초기값으로 설정한 후, 특정한 단계를 수행한 후에 루프값을 변동시키고 그 값에 따라 각각 다른 작업이 수행될 수 있도록 작업의 진행 방향을 분기시키는 것이다. 또한, 특정한 순간의 루프값이 특정한 조건을 만족하면 루프를 빠져 나와 작업이 종료되지만, 그렇지 않은 경우에는 일련의 과정이 반복되게 된다. 여기서는 루프값이 0으로 설정되어 있으므로, 다음 단계인 카메라를 좌안에 해당하는 곳으로 이동하는 단계(S440)로 진행된다.
상기 카메라를 좌안에 해당하는 곳으로 이동하는 단계(S440)는, 상기 좌안 랜더링(S450)을 통하여 좌안 전체 이미지를 생성하기 위하여 소정의 위치로 카메라를 이동하는 단계이다. 이 때, 얼마의 각도만큼 이동할 것인지는 원하는 3차원 입체 화면이 어떤 것인지에 달려 있다. 연결 상태가 다소 부자연스러워 질 수 있지만, 겉보기에 입체의 요철(凹凸) 정도가 큰 화면을 만들고자 한다면 보다 큰 각도로 이동하는 편이 좋을 것이다. 반면에, 연결 상태가 상대적으로 자연스럽고, 겉보기에 입체의 요철(凹凸) 정도가 작은 무난한 화면을 만들고자 한다면 보다 작은 각도로 이동하는 편이 좋을 것이다.
상기 좌안 랜더링 단계(S450)는, 카메라를 좌안에 해당하는 곳으로 이동한 후 좌안 전체 이미지를 생성하는 단계이다. 상기 좌안 전체 이미지는 카메라를 상기 원본 이미지에 대해서 좌측 방향으로 소정의 각도로 회전한 위치에서 상기 원본 이미지를 화면에 표현한 것이다. 상기 좌안 랜더링 단계(S450)를 통하여 상기 좌안 전체 이미지를 생성한 후에 좌안 투영 이미지 부분과 우안 투영 이미지 부분으로 영역을 구분하게 되는데, 이에 대해서는 뒤에 상술하기로 한다. 상기 좌안 랜더링 단계(S450)를 통하여 형성된 좌안 전체 이미지는 제 1메모리 영역에 저장된다.
상기 루프값을 한 단위 증가시키는 단계(S460)는, 상기 루프값을 0으로 설정하는 단계(S430)를 통하여 초기화시킨 루프값을 한 단위 증가시켜 다른 진행라인으로 분기해 주기 위한 단계이다. 상기 좌안 랜더링(S450)이 끝난 상태에서의 루프값은 초기값과 같은 0이다. 따라서, 루프값이 한 단위 증가되면 1이 된다. 그 후, 루프값이 1보다 큰 지 여부를 판단하는 과정을 거치게 된다. 현재 상태에서 루프값은 1이므로 1보다 크지 않기 때문에 "아니오"를 따라 진행 라인이 이동된다. 그 후, 다시 한번 현재의 루프값을 판단하는 단계를 거치게 된다. 여기서 루프값이 1이므로, 진행 라인은 우측으로 분기하여 상기 좌안 투영 이미지의 깊이 버퍼를 앞쪽으로 설정하는 단계(S470)로 이동하게 된다.
상기 좌안 투영 이미지의 깊이 버퍼를 앞쪽으로 설정하는 단계(S470)는, 최초에 화면 전체에 대하여 뒤쪽으로 초기화되어 있던 깊이 버퍼의 값을 화면의 일부, 즉 좌안 투영 이미지 영역에 대하여 앞쪽으로 설정하는 단계이다. 상기 깊이 버퍼를 뒤쪽으로 초기화하는 단계(S420)를 통해 화면의 뒤쪽에 해당하는 값으로 초 기화된 깊이 버퍼의 값은 상기 좌안 랜더링(S450) 단계를 거치면서 상기 좌안 전체 이미지에 적용되게 된다. 즉, 깊이 버퍼는 좌안 전체 이미지에 걸쳐 뒤쪽으로 초기화된 상태에 있다. 상기 좌안 전체 이미지 중에서, 앞으로 좌안에 해당되는 부분이 될 영역을 좌안 투영 이미지라 하고, 앞으로 우안에 해당되는 부분이 될 영역을 우안 투영 이미지라 하기로 한다. 좌안 투영 이미지의 깊이 버퍼를 앞쪽으로 설정하였으므로, 좌안 투영 이미지 영역은 그 화면에 다른 어떠한 화면이 겹치더라도 지워지지 않고 남아 있게 된다. 이 때, 좌안 투영 이미지 영역은 상기 좌안 전체 이미지의 최상단에 위치한 행을 기준으로, 홀수 행 전체가 될 수도 있고 짝수 행 전체가 될 수도 있다. 즉, 각 행으로 구분된 화면 중 홀수 행에 해당하는 부분은 좌안 투영 이미지 부분으로, 짝수 행에 해당하는 부분은 우안 투영 이미지 부분으로 설정할 수 있고, 그 반대로의 형성도 가능하다.
상기 우안 투영 이미지의 깊이 버퍼를 초기값으로 유지하는 단계(S480)는, 우안에 해당하는 부분의 깊이 버퍼는 초기화된 상태(화면의 가장 뒤쪽에 해당하는 값)로 유지하는 단계이다. 상기 우안 투영 이미지의 깊이 버퍼를 초기값으로 유지하는 단계(S480)는 최초에 설정한 깊이 버퍼값을 변동없이 그대로 유지하는 것이므로, 별도의 단계로 형성하지 않을 수도 있다. 우안 투영 이미지의 깊이 버퍼값은 화면의 가장 뒤쪽에 해당하는 값으로 유지되고 있으므로, 여기에 다른 화면이 겹칠 경우 우안 투영 이미지 부분은 다른 화면에 의해 가려지게 된다.
상기 카메라를 우안에 해당하는 곳으로 이동하는 단계(S490)는, 상기 우안 랜더링(S500)을 통하여 좌우안 합성 이미지를 생성하기 위하여 소정의 위치로 카메 라를 이동하는 단계이다. 이 때, 얼마의 각도만큼 이동할 것인지는 원하는 3차원 입체 화면이 어떤 것인지에 달려 있다. 연결 상태가 다소 부자연스러워 질 수 있지만, 겉보기에 입체의 요철(凹凸) 정도가 큰 화면을 만들고자 한다면 보다 큰 각도로 이동하는 편이 좋을 것이다. 반면에, 연결 상태가 상대적으로 자연스럽고, 겉보기에 입체의 요철(凹凸) 정도가 작은 무난한 화면을 만들고자 한다면 보다 작은 각도로 이동하는 편이 좋을 것이다.
상기 우안 랜더링 단계(S500)는, 상기 좌안 랜더링 단계(S450)를 통하여 좌안 전체 이미지를 형성하고, 상기 좌안 전체 이미지를 좌안 투영 이미지와 우안 투영 이미지로 나눈 후 깊이 버퍼값을 다르게 설정한 상태에서 우안 전체 이미지를 랜더링 하는 단계이다. 이렇게 하여 우안 랜더링(S500)을 하게 되면, 앞서 진행한 좌안 랜더링(S450)시 깊이 버퍼가 화면의 앞쪽으로 설정된 부분(좌안 투영 이미지)은 우안 랜더링(S500)에 영향을 받지 않으므로 화면에 그대로 남아 있게 된다. 그러나, 좌안 랜더링(S450)시 깊이 버퍼가 화면의 뒤쪽으로 설정된 부분(우안 투영 이미지)은 최초의 초기화된 상태 그대로 유지하였으므로 우안 랜더링(S500)에 영향을 받게 되어 지워지고, 새로 우안 랜더링(S500)된 부분이 남아 있게 된다. 상기 우안 랜더링 단계(S500)를 통하여 생성된 좌우안 합성 이미지는 제 1 메모리 상에 저장된다. 우안 랜더링 단계(S500) 후에는 다시 Loop의 값이 한 단위 증가하게 되어 2가 된다. Loop 값이 1보다 크게 되었으므로 "예"를 따라가면 Loop를 빠져 나오게 되고, 과정은 종료된다. 따라서, 화면의 좌안에 해당하는 부분과 화면의 우안에 해당하는 부분이 자연스럽게 한 라인씩 서로 결합되어 3차원 입체 화면을 구성하게 된다.
다음으로, 상기 원리에 따라 실제의 원본 이미지가 3차원 입체 이미지로 변경되는 과정을 설명한다. 도 4a 내지 도 4d는 도 3의 알고리즘에 의해 원본 이미지를 3차원 입체 이미지(좌우안 합성 이미지)로 변환하는 각 단계를 도시한 도면이다.
도 4a는 3차원 입체 화면으로 만들고자 하는 원본 이미지이다. 이 때, 깊이 버퍼는 화면의 가장 뒤쪽에 해당하는 값으로 초기화해 둔다. 카메라를 좌안에 해당하는 곳으로 이동하여 좌안 랜더링을 실시하면 도 4b와 같은 좌안 전체 이미지를 얻는다(좌안 랜더링 단계). 상기 좌안 전체 이미지는 제 1 메모리에 저장된다. 좌안 랜더링된 이미지를 입체 화면 구성에 필요한 부분으로 나누면 도 4c와 같은 좌안 영역 표시 이미지를 얻는다. 도 4c에서 L1, L2, L3,...Ln은 좌안 전체 이미지 중 홀수행으로서 좌안 투영 이미지를 나타내고, R1, R2, R3,...Rn은 좌안 전체 이미지 중 짝수행으로서 우안 투영 이미지를 나타낸다. 이렇게 하여 좌안 투영 이미지(L1~Ln)와 우안 투영 이미지(R1~Rn)가 구분된다(영역 구분 단계). 이 중에서 좌안 투영 이미지(L1~Ln)의 깊이 버퍼는 화면의 앞쪽에 해당하는 값으로 설정한다. 원래의 깊이 버퍼의 값은 화면의 가장 뒤쪽에 해당하는 값으로 초기화된 상태였으므로, 그 값을 변경시키면 된다. 그리고, 우안 투영 이미지(R1~Rn)의 깊이 버퍼 값은 초기화된 상태 그대로 유지한다(깊이 버퍼 설정 단계). 그 후, 우안으로 카메라를 이동시킨 후 이미지를 랜더링하면 도 4d와 같은 3차원 입체 완성 이미지(좌우안 합성 이미지)를 얻을 수 있다(우안 랜더링 단계). 상기 좌우안 합성 이미지는 제 1 메모리에 저장된다. 이렇게 되면, 화면의 좌안에 해당하는 부분과 화면의 우안에 해당하는 부분이 한 라인씩 교대로 배열되므로, 편광 안경을 착용하고 화면을 보게 되면 입체감을 느낄 수 있다.
이렇게 3차원 엔진의 깊이 버퍼를 사용하여 랜더링을 함으로써, 좌안 이미지를 저장하고, 상기 좌안 이미지와 우안 이미지를 합성하여 하나로 보여 줄 제 1 메모리 공간만 필요하게 된다. 즉, 우안 이미지를 저장할 제 2 메모리 공간과 좌우안 합성이미지를 저장할 제 3 메모리 공간이 불필요하게 되므로, 메모리 공간을 줄일 수 있다. 또한, 좌안 이미지와 우안 이미지를 합치기 위해서 별도의 이미지 합성 연산이 불필요하게 되므로, 기존 방식보다 빠른 속도로 3차원 입체 화면을 구현할 수 있다.
이상 설명한 바와 같이, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 특허청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형의 실시가 가능한 것은 물론이고, 그와 같은 변경은 특허청구범위 기재의 범위 내에 있게 된다.
본 발명에 따른 3차원 입체 랜더링 방법에 의하면, 투영 행렬로 변환하는 과정에서 좌안 랜더링과 우안 랜더링을 실시하되, 깊이 버퍼(Z 버퍼)를 이용함으로써 별도의 이미지 합성 연산이 불필요할 뿐만 아니라 메모리 공간도 줄일 수 있게 되 어 빠른 속도로 3차원 입체 화면을 구현할 수 있는 효과가 있다.

Claims (5)

  1. 원본 이미지에 대한 정점 데이터를 생성하는 제 1단계;
    상기 정점 데이터를 월드 행렬을 이용하여 월드 좌표로 변환하는 제 2단계;
    상기 제 2단계의 변환 결과를 카메라 행렬을 이용하여 카메라 좌표로 변환하는 제 3단계; 및
    상기 제 3단계의 변환 결과를 투영 행렬을 이용하여 변환하되, 좌안 랜더링 과정과 우안 랜더링 과정을 구비하는 제 4단계를 포함하며,
    상기 제4단계는
    랜더링 하고자 하는 원본 이미지에 대해 카메라를 좌측으로 이동하여 좌안 전체 이미지를 생성하는 좌안 랜더링 단계와,
    상기 좌안 전체 이미지를 입체 화면 구성에 필요한 영역으로 구분하는 영역 구분 단계와,
    상기 영역 구분 단계에 의해 구분된 상기 좌안 전체 이미지의 부분 중 화면의 좌안에 해당하는 부분인 좌안 투영 이미지의 깊이 버퍼는 화면의 제일 앞쪽에 해당하는 값으로 설정하고, 화면의 우안에 해당하는 부분인 우안 투영 이미지의 깊이 버퍼는 화면의 제일 뒤쪽에 해당하는 값으로 설정하는 깊이 버퍼 설정 단계 및
    상기 카메라를 상기 원본 이미지에 대해 우측으로 이동하여 상기 깊이 버퍼 설정 단계를 거친 좌안 전체 이미지에 우안 전체 이미지를 생성하는 우안 랜더링 단계를 포함하는 것을 특징으로 하는 3차원 입체 랜더링 방법.
  2. 삭제
  3. 제 1항에 있어서,
    상기 영역 구분 단계에서 상기 좌안 투영 이미지는 상기 좌안 전체 이미지의 최상단에서부터 아래로 셀 때, 홀수 행 전체 또는 짝수 행 전체가 되도록 이루어지는 것을 특징으로 하는 3차원 입체 랜더링 방법.
  4. 제 1항에 있어서,
    상기 깊이 버퍼는 상기 좌안 랜더링 단계 이전에 화면의 제일 뒤쪽에 해당하는 값으로 초기화되어 있는 것을 특징으로 하는 3차원 입체 랜더링 방법.
  5. 제 4항에 있어서,
    상기 깊이 버퍼는 상기 우안 랜더링 단계 이전에 상기 좌안 투영 이미지의 깊이 버퍼를 화면의 제일 앞쪽에 해당하는 값으로 갱신하고, 상기 우안 투영 이미지의 깊이 버퍼를 상기 초기값 상태로 유지하는 것을 특징으로 하는 3차원 입체 랜더링 방법.
KR1020050072368A 2005-08-08 2005-08-08 3차원 입체 랜더링 방법 KR100759355B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050072368A KR100759355B1 (ko) 2005-08-08 2005-08-08 3차원 입체 랜더링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050072368A KR100759355B1 (ko) 2005-08-08 2005-08-08 3차원 입체 랜더링 방법

Publications (2)

Publication Number Publication Date
KR20070017785A KR20070017785A (ko) 2007-02-13
KR100759355B1 true KR100759355B1 (ko) 2007-09-17

Family

ID=41629109

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050072368A KR100759355B1 (ko) 2005-08-08 2005-08-08 3차원 입체 랜더링 방법

Country Status (1)

Country Link
KR (1) KR100759355B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112235562B (zh) * 2020-10-12 2023-09-15 聚好看科技股份有限公司 一种3d显示终端、控制器及图像处理方法
CN115278202A (zh) * 2022-07-29 2022-11-01 联想(北京)有限公司 显示方法及装置

Also Published As

Publication number Publication date
KR20070017785A (ko) 2007-02-13

Similar Documents

Publication Publication Date Title
US5966132A (en) Three-dimensional image synthesis which represents images differently in multiple three dimensional spaces
JP4555722B2 (ja) 立体映像生成装置
CN105513112B (zh) 图像处理方法和装置
US8884947B2 (en) Image processing apparatus and image processing method
JP3759971B2 (ja) 3次元像を陰影付けする方法
JP2005295004A (ja) 立体画像処理方法および立体画像処理装置
JP4982862B2 (ja) プログラム、情報記憶媒体及び画像生成システム
JP5055214B2 (ja) 画像処理装置、画像処理方法
US20120306860A1 (en) Image generation system, image generation method, and information storage medium
CN104781852A (zh) 用于渲染三维场景的计算机绘图方法
US10217259B2 (en) Method of and apparatus for graphics processing
JP4772952B2 (ja) 立体視画像生成装置及び情報記憶媒体
US9401044B1 (en) Method for conformal visualization
KR100759355B1 (ko) 3차원 입체 랜더링 방법
KR20200131817A (ko) 여러 장치에 대한 3d 개체 시각화 및 조작을 용이하게 하는 방법 및 장치
JP2006163547A (ja) 立体画像生成プログラム、立体画像生成システム及び立体画像生成装置。
KR20010047046A (ko) 제트버퍼를 이용한 입체영상 생성방법
KR20030068445A (ko) 화상 처리 방법
JP4806578B2 (ja) プログラム、情報記憶媒体及び画像生成システム
US20100177098A1 (en) Image generation system, image generation method, and computer program product
JP4931038B2 (ja) 立体視画像装置、ゲーム装置、立体視画像映写装置、立体視画像データ生成方法、制御プログラムおよび可読記録媒体
JP3364456B2 (ja) 3次元シミュレータ装置及び画像合成方法
JP3144637B2 (ja) 3次元レンダリング方法
JP7030010B2 (ja) 立体映像奥行き圧縮装置および立体映像奥行き圧縮プログラム
JP2000030080A (ja) Vrシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110915

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20120814

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee