상기 기술적 과제를 해결하기 위한 본 발명에 따른 렌더링 방법은 그래픽스 데이터가 나타내는 소정의 객체에 관한 정보에 기초하여 상기 소정의 객체의 클론 객체들을 생성하는 단계; 및 상기 생성된 클론 객체들을 포함하는 상기 그래픽스 데이터를 렌더링하는 단계를 포함하는 것을 특징으로 한다.
상기 다른 기술적 과제를 해결하기 위하여, 본 발명은 상기된 렌더링 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 또 다른 기술적 과제를 해결하기 위한 본 발명에 따른 렌더링 장치는 그래픽스 데이터 중 소정의 객체에 관한 정보에 기초하여 상기 소정의 객체의 클론 객체들을 생성하는 생성부; 및 상기 생성된 클론 객체들을 포함하는 그래픽스 데이터를 렌더링하는 렌더링부를 포함한다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 3차원 그래픽스 렌더링 장치의 구성도이다.
도 3을 참조하면, 본 실시예에 따른 3D 그래픽스 렌더링 장치는 데이터 분석부(31), 클론 객체 생성부(32), 투명도 설정부(33), 렌더링부(34), 및 출력부(35)로 구성된다. 상기된 바와 같이, 모션 블러(motion blur) 효과란 어떤 객체(object)가 움직임으로써 이 객체가 번져 보이는 효과를 의미한다. 그런데, 3차원 그래픽스 데이터의 시점(viewpoint), 예를 들면 카메라가 움직이는 경우에 해당 하는 동영상에 모션 블러 효과를 부여하기 위해서는 누적 버퍼들(12-13)이 필요하지만, 카메라는 고정되어 있고, 객체가 움직이는 경우에 해당하는 동영상에 모션 블러 효과를 부여하기 위해서는 누적 버퍼들(12-13)이 반드시 필요하지 않다. 전자의 경우는 동영상을 구성하는 프레임들 각각의 이미지가 완전히 달라지지만, 후자의 경우는 동영상을 구성하는 프레임들 각각의 이미지 중 배경은 동일하고, 객체의 위치, 방향 등만이 달라지게 된다. 따라서, 동영상을 구성하는 프레임들 중 어느 하나의 프레임 상에서 시간의 흐름에 따라 모션 블러 효과가 적용될 객체의 클론 객체들을 생성하고, 이 클론 객체들에 대해 적절한 투명도를 설정하여 렌더링함으로써 누적 버퍼들(12-13)을 사용하여 획득된 이미지들과 동일 내지 유사한 이미지들을 획득할 수 있다. 본 실시예에 따른 3D 그래픽스 렌더링 장치는 이와 같은 아이디어를 구체적으로 구현한 장치이다.
데이터 분석부(31)는 3차원 그래픽스 데이터를 입력받고, 이와 같이 입력된 3차원 그래픽스 데이터를 분석한다. 또한, 데이터 분석부(31)는 이와 같은 분석함으로써 3차원 그래픽스 데이터로부터 모션 블러 효과가 적용될 객체(object)에 관한 정보를 검출한다. 여기에서, 모션 블러 효과가 적용될 객체에 관한 정보는 이 객체의 기하학적(geometric) 정보, 질감(material) 정보, 및 이와 같은 정보들의 변화를 나타내는 애니메이션(animation) 정보 등으로 구성된다. 즉, 데이터 분석부(31)는 3차원 그래픽스 데이터의 분석 결과에 기초하여 3차원 그래픽스 데이터가 나타내는 객체들 중 모션 블러 효과가 적용될 정도의 움직임이 있는 객체에 관한 정보를 검출한다.
클론 객체 생성부(32)는 데이터 분석부(31)에 의해 검출된 정보 중 모션 블러 효과가 적용될 객체의 애니메이션 정보를 이용하여 이 객체의 클론(clone) 객체들을 생성한다. 여기에서, 클론 객체 생성부(32)에 의해 생성되는 클론 객체들의 개수는 도 1에 도시된 누적 버퍼들(12-13)의 개수에 해당한다. 따라서, 클론 객체 생성부(32)에 의해 생성되는 클론 객체들의 개수가 많으면 많을수록 모션 블러 효과는 증가되며, 결과적으로 인간의 눈에 보다 더 부드럽게, 속도감 있게 보이게 된다. 이와 같은 클론 객체들의 개수는 사용자에 의해 설정될 수도 있고, 본 실시예가 적용되는 모바일 장치 등의 하드웨어 자원 및 모션 블러 효과가 적용될 객체의 특성에 따라 자동적으로 설정될 수도 있다.
보다 상세하게 설명하면, 클론 객체 생성부(32)는 모션 블러 효과가 적용될 객체의 애니메이션 정보가 나타내는 시간 구간에서 적어도 두 개 이상의 시점(time point)들을 결정한다. 예를 들어, 모션 블러 효과가 적용될 객체의 애니메이션 정보가 나타내는 시간 구간이 0 ~ 1라면, 클론 객체 생성부(32)는 이 시간 구간 0 ~ 1에서 0.3 및 0.7을 선택할 수 있다. 또한, 클록 객체 생성부(32)는 이와 같이 결정된 두 개 이상의 시점들에 해당하는 애니메이션 정보를 이용하여 모션 블러 효과가 적용될 객체의 클론 객체들을 생성한다. 상기된 예에서, 클록 객체 생성부(32)는 이 0.3 및 0.7에 해당하는 애니메이션 정보, 즉 0.3 및 0.7에 해당하는 위치 값, 방향 값, 색상 값 등을 이용하여 0.3 및 0.7에 해당하는 두 개의 클록 객체들을 생성한다. 이와 같이 생성된 클론 객체들은 원래의 객체와 같은 정보를 가지고 있지만, 애니메이션의 값만 다르기 때문에 원래의 객체의 클론 객체라고 볼 수 있 다.
투명도 설정부(33)는 클론 객체 생성부(32)에 의해 생성된 클론 객체들의 개수에 기초하여 클론 객체 생성부(32)에 의해 생성된 클론 객체들 각각의 투명도 알파를 설정한다. 예를 들면, 투명도 설정부(33)는 모션 블러가 적용될 객체의 투명도 알파를 클론 객체 생성부(32)에 의해 생성된 클론 객체들의 개수로 나누고, 이와 같이 나누어진 결과 값을 클론 객체 생성부(32)에 의해 생성된 클론 객체들 각각의 투명도 알파의 값으로 설정한다. 투명도 설정부(33)의 역할은 클론 객체 생성부(32)에 의해 생성된 두 개 이상의 클론 객체들 각각에 투명도를 부여함으로써 이 클론 객체들에 대한 렌더링 결과가 누적 버퍼들(12-13)을 이용한 렌더링 결과와 동일 내지 유사한 효과를 줄 수 있도록 하는데 그 목적이 있다.
일반적으로, 투명도 알파의 값은 0부터 1까지의 범위에 분포한다. 여기에서, 알파의 값이 0이면 완전 투명 색을 나타내고, 알파의 값이 1이면 완전 불투명 색을 나타낸다. 일반적으로 모션 블러 효과가 적용되는 객체는 불투명 객체, 즉 알파의 값이 1인 객체이다. 따라서, 투명도 설정부(33)는 클론 객체들의 투명도 알파 값들의 합이 1이 되도록 클론 객체들 각각의 투명 값을 설정한다. 상기된 예와 같이 두 개의 클록 객체들이 생성된 경우라면, 투명도 설정부(33)는 두 개의 클록 객체들 각각의 투명도 알파를 0.5로 설정한다.
렌더링부(34)는 투명도 설정부(33)에 의해 설정된 투명도를 갖는 클론 객체들을 포함하는 3차원 그래픽스 데이터를 백 버퍼(351)에 렌더링한다. 보다 상세하게 설명하면, 렌더링부(34)는 투명도 설정부(33)에 의해 설정된 투명도를 갖는 클 론 객체들을 포함하는 3차원 그래픽스 데이터를 투명 객체와 불투명 객체를 분리하고, 불투명 객체로 분리된 객체를 먼저 렌더링하고, 다음으로 투명 객체로 분리된 객체를 렌더링한다. 특히, 렌더링부(34)는 3차원 그래픽스 데이터의 시점, 예를 들면 카메라로부터 먼 순서대로 투명 객체를 렌더링한다. 이와 같이, 불투명 객체와 투명 객체를 효과적으로 렌더링하는 방법에 대해서는 한국특허출원 2004-0027154에 자세하게 기재되어 있다. 결국, 렌더링부(34)는 투명도 설정부(33)에 의해 설정된 투명도를 갖는 클론 객체들을 차례로 백 버퍼(351)에 렌더링함으로써 모션 블러 효과가 나타나게 된다. 백 버퍼(351)에 렌더링된 결과 중 클론 객체들이 서로 겹쳐지는 부분의 투명도 알파는 다음 수학식 1에 따라 계산될 수 있다.
Alpha c = Alpha a + Alpha b * (1 - Alpha a)
상기된 예와 같이 두 개의 클록 객체들 각각의 투명도 알파가 0.5로 설정된 경우라면, 클론 객체들이 서로 겹쳐지는 부분의 투명도 알파는 0.5 + 0.5 * (1 - 0.5) = 0.75가 된다.
그런데, 도 1에 도시된 누적 버퍼들(12-13)을 사용한 종래의 3차원 그래픽스 렌더링 장치는 본 실시예와 같이 두 개의 클론 객체들에 투명도를 부여한 후에 렌더링하는 것이 아니라, 누적 버퍼들(12-13) 각각에 저장된 렌더링 결과에 해당하는 이미지들의 평균을 산출하기 때문에 불투명 객체들이 서로 겹쳐지지 않는 부분의 투명도 알파는 본 실시예와 같이 (불투명 객체의 투명도)/(누적 버퍼의 개수), 즉 1/2 = 0.5가 되나, 불투명 객체들이 서로 겹쳐지는 부분의 투명도 알파는 (불투명 객체의 투명도의 합)/(누적 버퍼의 개수), 즉 2/2 = 1이 된다. 따라서, 불투명 객체들이 서로 겹쳐지는 부분의 투명도 알파는 약간 달라지게 된다. 다만, 누적 버퍼들(12-13)을 사용한 종래의 모션 블러 효과에 보다 더 근접할 수 있도록 하기 위하여, 투명도 설정부(33)는 상기된 결과 값에 소정의 가중치 등을 부가하여 클론 객체들 각각의 투명도를 설정할 수 있음을 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
출력부(35)는 렌더링부(34)에서의 렌더링 결과에 해당하는 이미지를 CRT(Cathode Ray Tube) 모니터, LCD(Liquid Crystal Display) 모니터 등과 같은 디스플레이 장치(미 도시)에 출력한다. 출력부(35)는 출력 화면을 구성하는 프레임들에 해당하는 이미지들을 부드럽게 교체하기 위하여 백 버퍼(back buffer)(351)와 프론트 버퍼(front buffer)(352)를 구비한다. 즉, 출력부(35)는 프론트 버퍼(352)에 저장된 이미지를 디스플레이 장치에 출력하고, 그 동안에 렌더링부(34)는 3차원 그래픽스 데이터를 백 버퍼(351)에 렌더링한다. 렌더링부(34)에 의한 백 버퍼(351)로의 렌더링이 완료되면, 즉, 백 버퍼(351)에 렌더링부(34)에서의 렌더링에 따라 하나의 이미지가 완성되어 저장되면, 출력부(35)는 프론트 버퍼(352)에 저장된 이미지를 백 버퍼(351)에 저장된 이미지로 교체한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 3차원 그래픽스 렌더링 방법의 흐름도이다.
도 4를 참조하면, 본 실시예에 따른 3차원 그래픽스 렌더링 방법은 도 3에 도시된 3차원 그래픽스 렌더링 장치에서 시계열적으로 처리되는 단계들로 구성된 다. 따라서, 이하 생략된 내용이라 하더라도 도 3에 도시된 3차원 그래픽스 렌더링 장치에 관하여 이상에서 기술된 내용은 본 실시예에 따른 3차원 그래픽스 렌더링 방법에도 적용된다.
41 단계에서 3차원 그래픽스 렌더링 장치는 3차원 그래픽스 데이터를 입력받고, 이와 같이 입력된 3차원 그래픽스 데이터를 분석함으로써 3차원 그래픽스 데이터로부터 모션 블러 효과가 적용될 객체에 관한 정보를 검출한다.
42 단계에서 3차원 그래픽스 렌더링 장치는 41 단계에서 검출된 정보 중 모션 블러 효과가 적용될 객체의 애니메이션 정보를 이용하여 이 객체의 클론 객체들을 생성한다.
43 단계에서 3차원 그래픽스 렌더링 장치는 투명도 설정부(33)는 클론 객체 생성부(32)에 의해 생성된 클론 객체들의 개수에 기초하여 클론 객체 생성부(32)에 의해 생성된 클론 객체들 각각의 투명도 알파를 설정한다.
44 단계에서 3차원 그래픽스 렌더링 장치는 43 단계에서 설정된 투명도를 갖는 클론 객체들을 포함하는 3차원 그래픽스 데이터를 백 버퍼(351)에 렌더링한다.
45 단계에서 3차원 그래픽스 렌더링 장치는 44 단계에서의 렌더링 결과에 해당하는 이미지를 CRT 모니터, LCD 모니터 등과 같은 디스플레이 장치(미 도시)에 출력한다.
도 5는 도 4에 도시된 42 단계의 상세 흐름도이다.
도 5를 참조하면, 도 4에 도시된 42 단계는 도 3에 도시된 클론 객체 생성부(32)에서 시계열적으로 처리되는 단계들로 구성된다.
51 단계에서 클론 객체 생성부(32)는 모션 블러 효과가 적용될 객체의 애니메이션 정보가 나타내는 시간 구간에서 적어도 두 개 이상의 시점들을 결정한다.
52 단계에서 클론 객체 생성부(32)는 51 단계에서 결정된 시점들 중 어느 하나의 시점에 해당하는 애니메이션 정보를 이용하여 이 시점에 해당하는 클론 객체를 생성한다.
53 단계에서 클론 객체 생성부(32)는 51 단계에서 결정된 시점들 모두에 대해 클론 객체들의 생성이 완료되었는지를 확인하고, 그 결과 완료되었으면 43 단계로 진행하고, 완료되지 않았으면 52 단계로 돌아간다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 본 발명의 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다. 특히, 이상에서는 본 발명을 3차원 그래픽스 데이터를 중심으로 살펴보았으나, 본 발명이 2차원 그래픽스 데이터에도 적용될 수 있음을 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이해할 수 있다.