KR100834374B1 - 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치 - Google Patents

모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치 Download PDF

Info

Publication number
KR100834374B1
KR100834374B1 KR1020060064707A KR20060064707A KR100834374B1 KR 100834374 B1 KR100834374 B1 KR 100834374B1 KR 1020060064707 A KR1020060064707 A KR 1020060064707A KR 20060064707 A KR20060064707 A KR 20060064707A KR 100834374 B1 KR100834374 B1 KR 100834374B1
Authority
KR
South Korea
Prior art keywords
model
information
transformation matrix
matrix
view
Prior art date
Application number
KR1020060064707A
Other languages
English (en)
Other versions
KR20080006050A (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 KR1020060064707A priority Critical patent/KR100834374B1/ko
Publication of KR20080006050A publication Critical patent/KR20080006050A/ko
Application granted granted Critical
Publication of KR100834374B1 publication Critical patent/KR100834374B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/10Selection of transformation methods according to the characteristics of the input images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽 처리 장치에 관한 것으로서, 보다 상세하게는 3차원 그래픽 가속 시스템의 지오메트리 그래픽 처리에 이용되는 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽 처리 장치에 관한 것이다. 본 발명의 일 측면에 따르면, 그래픽 처리를 위한 지오메트리 처리 장치에 있어서, 그래픽 객체의 지오메트리 처리를 위한 모델/뷰 변환 행렬 정보 및 상응하는 역행렬 정보를 생성하는 셋업부, 모델/뷰 변환 행렬 정보 및 역행렬 정보를 저장하는 상태 레지스터 파일부 및 상태 레지스터 파일부에 저장된 상기 모델/뷰 변환 행렬 정보 및 역행렬 정보를 입력 정보로 이용하여 그래픽 객체의 정점 및 상응하는 법선 벡터를 변환하는 지오메트리 엔진부를 포함하되, 상태 레지스터 파일부는 새로 생성된 상기 모델/뷰 변환 행렬 정보를 갱신하고 셋업부는 갱신된 모델/뷰 변환 행렬에 상응하는 역행렬 정보를 선택적으로 생성하는 그래픽 처리 장치 및 이에 이용되는 모델/뷰 역행렬 조건적 생성 방법이 제공된다.
모델/뷰 역행렬, 지오메트리 그래픽 처리

Description

모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽 처리 장치{METHOD AND GRAPHIC PROCESSING DEVICE FOR GENERATING MODEL/VIEM INVERSE MATRIX CONDITIONALLY }
도 1은 일반적인 지오메트리 처리를 위한 변환을 설명하기 위한 도면.
도 2는 일반적인 모델/뷰 행렬 및 역행렬의 생성 순서도.
도 3은 본 발명의 일 실시예에 따른 지오메트리 그래픽 처리부를 설명하기 위한 도면.
도 4는 본 발명의 일 실시예에 따른 셋업부를 설명하기 위한 도면.
도 5는 본 발명의 일 실시예에 따른 조명 효과 처리를 위해 사용되는 벡터들을 설명하기 위한 도면.
도 6은 본 발명의 바람직한 일 실시예를 따른 모델/뷰 행렬 및 역행렬의 조건적 생성 방법의 순서도.
도 7은 본 발명의 바람직한 일 실시예에 따른 역행렬의 연산을 설명하기 위한 도면.
<도면의 주요부분에 대한 부호의 설명>
300: 지오메트리 그래픽 처리 장치 310: 셋업부
320: 상태 레지스터 파일부 330: 지오메트리 엔진
340: 변환부 350: 조명 효과 처리부
410: 모델/뷰 변환 행렬 생성부 420: 조명 효과 판단부
430: 모델/뷰 역행렬 생성부
본 발명은 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽 처리 장치에 관한 것으로서, 보다 상세하게는 3차원 그래픽 가속 시스템의 지오메트리 그래픽 처리에 이용되는 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽 처리 장치에 관한 것이다.
3차원 컴퓨터 그래픽 기술은 컴퓨터 분야뿐만 아니라, 게임, 영상, 교육, 출판, 군사, 의료 분야 등 모든 분야에 걸쳐서 사용되는 핵심 기반 기술이다. 현재, 3차원 컴퓨터 그래픽스를 이용하여 게임, 가상현실, 과학적 시각화(scientific visualization), VRML(virtual reality modeling language)과 같은 응용 분야의 확대가 지속되고 있다.
또한, 3차원 그래픽 데이터 처리를 위해 개발된 하드웨어 가속기는 과거에 고가의 컴퓨터 시스템에서만 채택되었지만, 현재에는 개인용 컴퓨터에 3차원 그래 픽 가속기가 기본적으로 장착되고 있으며, 점차 휴대폰, PDA 등 차세대 휴대용 정보기기에서도 3차원 가속기에 대한 수요가 늘어날 전망이다.
3차원 그래픽스는 특성상 많은 양의 수학적 계산이 요구되며 그래픽 데이터 형식이 다양하기 때문에 일반 범용 프로세서에서 전담하여 처리하기에는 한계가 있다. 따라서, AMD의 3D-Now, HP의 MAX-2, Intel의 MMX-2 와 같이 고성능의 범용 프로세서를 확장하여 사용하는 방법이 적용되고 있으나 이와 같은 고성능의 범용 프로세서를 사용할 수 없는 휴대용 정보기기에서는 3차원 그래픽 처리를 위한 가속 하드웨어가 필수적이다.
3 차원 그래픽 처리는 기본적으로 데이터베이스 트레버설(Database traversal), 지오메트리 처리(Geometry Processing)와 레스터라이제이션(Rasterization)이 순차적으로 수행되는 3가지 단계로 이루어진다.
데이터베이스 트레버설 단계는 모델 제너레이션으로 생성된 오브젝트의 자료 구조를 그래픽스 파이프라인에서 처리할 수 있는 데이터로 전달하는 과정이다. 또한 지오메트리 처리는 앞 단계에서 생성된 데이터를 기하학적으로 변환시키는 과정이다. 그리고 레스터라이제이션은 지오메트리 처리에 의해 변환된 프리미티브(점, 선, 삼각형 등)들을 프레임 버퍼(Frame buffer)에 픽셀 데이터 값으로 변환시키는 과정이다.
도 1은 일반적인 지오메트리 처리를 위한 변환 과정을 설명하기 위한 도면이다.
지오메트리 처리는 호스트에 의해 처리된 모델 데이터의 정점 정보(x, y, z, w)들을 입력 받는다. 모델 데이터는 한 좌표의 정보, 각 좌표의 법선 벡터(Normal Vector), 색상 정보와 각 단계에서 요구되는 파라미터들이 포함된다.
지오메트리 처리는 객체에 대한 공간상의 위치변화와 빛에 대한 계산이 이뤄지는 과정이며 모델/뷰 변환(110), 조명(Lighting)처리(120), 투영(Projection) 변환 및 클리핑(Clipping)(130), 뷰포트(Viewport) 매핑(mapping)(140) 단계를 포함한다. 모델/뷰 변환(110) 단계는 좌표 및 법선 벡터의 변환 등의 객체 조작 및 시점의 이동을 위하여 수행된다. 모델/뷰 변환은 정점 좌표 정보에 설정된 모델/뷰 변환 행렬을 곱하는 연산을 통해 수행되며, 법선 벡터의 변환은 각 좌표의 수직 방향 정보로 모델/뷰 변환 행렬의 역행렬을 곱하는 연산에 의해 수행된다.
모델/뷰 변환(110) 단계는 모델 변환 단계와 뷰 변환 단계로 이루어 진다. 모델 변환 단계는 객체를 이루는 부분들을 조작하기 위해 수행된다. 모델 변환 단계는 객체의 좌표계를 전환하여 객체의 위치를 이동하고(Translation), 객체를 회전시키며(Rotation), 그 모양과 크기를 줄이거나 늘이게(Scaling)는 단계를 포함한다. 뷰 변환 단계는 시점(View Point)의 위치와 방향에 따라 화면에 보여지게 될 모델의 위치를 변환한다. 이 단계에서 객체는 객체 좌표계에서 시점 좌표계(Eye Coordinate System)로 변환을 하게 된다.
법선 벡터는 한 정점의 직각인 단위 벡터에 대한 정보로써 모델/뷰 변환(110)의 다음 단계인 조명 처리 단계(120)의 계산에 이용된다. 이를 위하여 법선 벡터가 단위 벡터로 되어 있지 않다면, 단위 벡터로 정규화하여야 한다. 법선 벡터는 위치에 독립적이기 때문에 이동(Tlanslation)정보를 필요치 않으며, 정규화된 경우는 일정한 크기(scale)정보가 필요하지 않다. 법선 벡터는 일반적으로 m×n 예를 들면, 3×3 행렬 곱셈으로 표현될 수 있다.
모델/뷰 변환(110)이 수행된 후 조명 처리 단계(120)를 통한 빛의 요소 적용에 의한 색상이 결정된다. 조명 처리 단계(120)는 빛의 요소가 적용되었을 때 빛의 세기로 인한 객체의 각 좌표에 대한 실제 색상을 계산하는 과정이다.
실제 색상은 빛의 밝기와 색, 마지막으로 물체를 조명하는 빛과 그것을 바라보는 관찰자의 각도에 따라 결정된다. 이 단계에 사용되는 빛은 세가지 모델에 의해 조명된다. 세가지 모델은 전체적으로 모든 방향으로부터 비춰지는 주변 광(Ambient Light), 특정한 방향으로부터 비춰지지만 반사는 여러 방향으로 이뤄지는 확산 광(Diffuse Light), 확산광처럼 유방향성 빛이지만 특정한 방향으로 뚜렷하게 빛을 반사시키는 반사 광(Specular Light)이다. 특히 강한 반사 광(Specular Light)을 사용하여 객체에 빛을 비추게 되면 그 표면에는 스팟(spot)이 생기는데 이를 통해 하이라이트 효과를 줄 수 있다.
투영 변환 및 클리핑 단계(130)를 통한 영역 설정 과정은 3차원 공간상에서 실제로 표시되는 영역인 뷰볼륨(View Volume)을 정의하여 뷰볼륨의 외부 평면인 클리핑 평면을 만들게 된다. 이 과정에서 완성된 장면을 최종 스크린 이미지로 어떻게 옮길 것인지를 결정하게 되고 기존의 시점좌표계의 정점들을 클립좌표계(Clip Coordinate System)로 변환된다.
뷰포트 맵핑(140) 단계를 통한 윈도우 좌표계로의 사상과정은 클립 좌표계에 서 실제적인 화면의 2차원의 윈도우 좌표계로의 사상(Window Coordinate System) 시키는 단계이다.
도 2는 일반적인 모델/뷰 행렬 및 역행렬의 생성 순서도이다. 도 2의 순서도는 모델/뷰 행렬, 역행렬을 생성하여 변환 과정으로 이어지는 그래픽 처리의 일부분을 나타낸다.
도 2에 도시된 바와 같이 모델/뷰 변환 행렬 생성 단계(210)는 그래픽 처리를 위한 모델/뷰 변환 행렬을 생성하여 상태 레지스터 파일부(320, 도 3참조)에 저장한다. 여기서, M_i는 모델/뷰 변환 행렬을 나타내며, i의 값은 변환하고자 하는 변환 정보 예를 들면, 그래픽 객체의 이동 거리, 방향 및 크기 등에 의해 사용자가 미리 설정할 수 있다.
모델/뷰 변환 행렬은 사용자가 그래픽 처리 객체의 정점 정보의 좌표 변환 등의 객체 조작 및 시점의 이동을 위하여 생성되며, 상응하는 변환 정보에 의해 사용자가 변환 행렬의 수를 미리 설정할 수 있다. 새로 생성된 모델/뷰 변환 행렬 M_i는 변환 장치에서 모델/뷰 변환시 이용하기 위하여 상태 레지스터 파일부(320, 도 3참조)에 저장된다. 예를 들면, 본 애니메이션 그래픽 처리를 위한 다수개의 모델/뷰 변환 행렬이 상태 레지스터 파일부(320, 도 3참조)에 저장된 경우, 사용자가 새로운 모델/뷰 변환을 위해 i = 2, i = 4 또는 i = 13을 설정하면, i번째 저장된 변환 행렬 해당하는 3개의 행렬을 사용자가 설정한 변환 정보에 의해 생성할 수 있다. 생성된 변환 행렬 3개는 상태 레지스터 파일부(320, 도 3참조)에서 갱신된다. 그리고 모델/뷰 변환에서 사용되는 n개의 행렬 중 앞서 설명한 3개를 제외한 나머지 행렬들은 해당 변환 행렬 저장 장치에 저장된 행렬이 변환에 사용된다. 변환 행렬 저장 장치에 저장된 나머지 행렬들은 이전에 사용자에 의해 설정되어 생성된 행렬이다. 즉, M_2, M_4, M_13은 사용자에 의해 새로 갱신된 행렬을 의미하며, 3개를 제외한 나머지 행렬들은 유지되어 모델/뷰 변환에 사용된다.
모델/뷰 역행렬 생성 단계(220)는 법선 벡터의 변환에 사용 될 모델/뷰 변환 행렬의 역행렬을 생성하는 부분이다. 모델/뷰 역행렬 생성부(220)는 모델/뷰 변환 행렬 전부인 n개의 행렬의 역행렬을 생성한다. 이 경우, 모델/뷰 변환 행렬의 개수에 상응하는 n개의 역행렬을 무조건적으로 생성한다.
모델/뷰 변환 행렬의 역행렬 생성은 그래픽 객체의 정점이 모델/뷰 변환 전에 1회 생성하므로, 전체 그래픽 처리 수행 시간에 큰 영향을 미치지 않는다. 하지만, 다수의 모델/뷰 변환 행렬로 모델/뷰 변환을 수행하는 본 애니메이션(bone animation) 변환의 경우 역시 조명 효과를 위해서는 법선 벡터의 모델/뷰 변환 또한 필요하므로 다수의 모델/뷰 변환 행렬의 역행렬을 생성해야 한다. 예를 들면, 본 애니에이션 그래픽 처리를 위한 모델/뷰 변환의 경우 32개 또는 64개의 모델/뷰 행렬을 변환 형렬로 사용하며, 조명 효과 계산을 위해서는 변환된 법선 벡터 정보가 필요하므로, 이들 32개 또는 64개의 모델/뷰 행렬의 역행렬을 모두 생성해야 한다. 다수의 모델/뷰 변환 행렬의 역행렬의 생성의 연산은 복잡하고 다수의 덧셈 연산 및 곱셈 연산이 수행되기 많은 처리시간이 요구된다. 이는 전체 그래픽 처리에서 상당한 시간 부담이 될 수 있다.
지오메트리 처리 단계(230)는 생성된 모델/뷰 변환 행렬과 모델/뷰 역행렬을 이용하여, m개의 정점에 대해 모델/뷰 변환 및 조명 효과를 처리하는 과정을 나타낸다.
그래픽 처리의 객체를 이루는 정점들은 각각 법선 벡터를 갖고 있으며, 모델/뷰 변환을 통해 정점의 위치가 변환 등 그래픽 객체가 조작되면, 정점의 수직 방향정보인 법선 벡터도 이에 따라 변환된다. 정점의 위치는 모델/뷰 행렬에 의해 변환되며, 정점의 법선 벡터는 모델/뷰 행렬의 역 행렬에 의해 변환된다. 조명(lighting) 효과 처리를 위한 계산을 하기 위해서는 모델/뷰 변환 전 모델/뷰 변환 행렬의 역행렬을 생성해야 한다. 하지만 모델/뷰 행렬의 역행렬 생성은 연산 과정이 복잡하고 다수의 덧셈 연산 또는 곱셈 연산을 수행하기 때문에 그래픽 처리에 있어 많은 처리시간이 소모되는 문제점이 있다.
따라서, 본 발명의 목적은 법선 벡터의 변환을 위한 모델/뷰 역 행렬 생성에 있어 생성의 필요 조건을 검사하여 조건에 따라 모델/뷰 역 행렬을 선택적으로 생성함으로써 그래픽 처리 시간을 단축시키고 그래픽 처리 장비의 운용면에서 효율적인 그래픽 처리를 위한 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽 처리 장치를 제공하는 데 있다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 측면에 따르면, 그래픽 처리를 위한 지오메트리 처리 장치에 있어서, 그래픽 객체의 지오메트리 처리를 위한 모델/뷰 변환 행렬 정보 및 상응하는 역행렬 정보를 생성하는 셋업부, 상기 모델/뷰 변환 행렬 정보 및 상기 역행렬 정보를 저장하는 상태 레지스터 파일부 및 상기 상태 레지스터 파일부에 저장된 상기 모델/뷰 변환 행렬 정보 및 상기 역행렬 정보를 입력 정보로 이용하여 상기 그래픽 객체의 정점 및 상응하는 법선 벡터를 변환하는 지오메트리 엔진부를 포함하되, 상기 상태 레지스터 파일부는 새로 생성된 상기 모델/뷰 변환 행렬 정보를 갱신하고 상기 셋업부는 상기 갱신된 모델/뷰 변환 행렬에 상응하는 역행렬 정보를 선택적으로 생성하는 그래픽 처리 장치가 제공된다.
여기서, 상기 셋업부는 사용자의 변환 정보에 상응하는 모델/뷰 변환 행렬 정보를 생성하는 모델/뷰 변환 행렬 생성부, 상기 그래픽 객체의 조명 효과 처리 필요 유무를 판단하는 조명 효과 판단부 및 상기 조명 효과 처리 판단부의 판단 결과, 상기 그래픽 객체의 조명 효과 처리가 필요한 경우 상기 생성된 모델/뷰 변환 행렬 정보에 상응하는 역행렬 정보를 생성하는 모델/뷰 역행렬 생성부를 포함할 수 있다.
또한, 상기 모델/뷰 변환 행렬 정보는 변환 행렬 갱신 정보를 포함하고, 상 기 셋업부는 상기 변환 행렬 갱신 정보를 검색하여 갱신된 모델/뷰 변환 행렬에 상응하는 역행렬 정보를 선택적으로 생성할 수 있다.
상기 변환 행렬 갱신 정보는 새로 갱신된 모델/뷰 변환 행렬에 대해서는 초기정보가 변경되고, 상응하는 역행렬이 생성된 경우 다시 초기화될 수 있다.
상기 변환 행렬 갱신 정보는 새로 갱신된 모델/뷰 변환 행렬에 대해 초기 정보 제1값에서 제2값으로 변경될 수 있다.
상기 지오메트리 엔진은 상기 그래픽 객체의 정점 정보 및 상응하는 법선 벡터 정보의 모델/뷰 변환을 수행하는 변환부 및 상기 변환된 법선 벡터 정보를 이용하여 빛의 요소 적용에 의한 상기 그래픽 객체의 색상을 결정하는 조명 효과 처리부를 포함할 수 있다.
상기 정점 정보는 상기 그래픽 처리 객체를 구성하는 m개의 정점 정보 중 하나일 수 있다.
상기 모델/뷰 변환 행렬 정보는 포함되는 모델/뷰 변환 행렬은 4×4 행렬일 수 있다.
상기 역행렬 정보에 포함되는 역행렬은 상기 모델/뷰 변환 행렬의 상위 3×3 행렬을 이용하여 계산하여 생성될 수 있다.
본 발명의 다른 측면에 따르면, 그래픽 처리 장치에서 모델/뷰 변환 행렬의 역행렬 생성 방법에 있어서, a) 입력 정점 정보에 대한 모델/뷰 변환 행렬 정보를 생성하고 상기 생성된 모델/뷰 변환 행렬 정보에상응하는 변환 행렬 갱신 정보를 변경하는 단계, b) 상기 생성된 모델/뷰 변환 행렬 정보 및 상기 변경된 변환 행렬 갱신 정보를 저장하는 단계, c) 상기 저장된 변환 행렬 갱신 정보를 검색하여 변경된 변환 행렬 갱신 정보에 상응하는 역행렬 정보를 생성하는 단계를 포함하는 그래픽 처리 장치에서 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법이 제공된다.
여기서, 상기 c)단계 이후에 상기 생성된 역행렬 정보를 저장하고 상기 저장된 변환 행렬 갱신 정보를 초기화하는 단계를 더 포함할 수 있다.
또한, c)단계 이전에 상기 정점의 조명 효과 처리의 필요 여부를 판단하는 단계를 더 포함하여 상기 정점의 조명 효과 그래픽 처리가 필요한 경우에 c)단계가 수행될 수 있다.
또한, 상기 b) 단계에서 상기 변환 행렬 갱신 정보는 상기 모델/뷰 변환 행렬 정보에 포함될 수 있다.
상기 입력 정점 정보는 그래픽 처리 객체를 구성하는 m개의 정점 정보 중 하나일 수 있다.
상기 모델/뷰 변환 행렬 정보는 포함되는 모델/뷰 변환 행렬은 4×4 행렬일 수 있다.
상기 역행렬 정보에 포함되는 역행렬은 상기 모델/뷰 변환 행렬의 상위 3×3 행렬을 이용하여 계산하여 생성될 수 있다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발 명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물은 현재 공지된 균등물 뿐 만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블록도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능을 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않 는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 대응하는 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 3은 본 발명의 일 실시예에 따른 지오메트리 그래픽 처리부를 설명하기 위한 도면이다. 도 3에 도시한 바와 같이, 그래픽 처리를 위한 지오메트리 그래픽 처리부(300)는 그래픽 처리 하드웨어의 일부로 그래픽 처리 가속 과정에서 모델/뷰 변환 및 조명 효과 처리를 수행한다.
지오메트리 그래픽 처리부(300)는 외부로부터 공급된 변환 정보를 이용하여 지오메트리 처리를 하기 위한 입력 정보를 계산하는 셋업부(310), 입력 정보를 저장하는 상태 레지스터 파일부(320), 지오메트리 그래픽 처리를 수행하는 지오메트리 엔진부(330)를 포함한다.
셋업부(310)는 외부로부터 공급받은 변환 정보 데이터 또는 현재 상태 레지스터 파일부(320)에 이미 저장되어있는 상태 정보들을 이용하여 입력 정보를 연산하여 상태 레지스터 파일부(320)에 저장한다. 여기서, 외부로부터 공급받은 변환 정보는 예를 들면, 그래픽 객체의 이동 거리, 방향 및 크기 등 사용자가 입력한 정보일 수 있다. 또한, 상태 레지스터 파일부(320)에 이미 저장되어 있는 상태 정보 는 기존에 디폴트로 설정되어 저장되어 있는 모델/뷰 변환 행렬 정보 및 상응하는 역행렬 정보일 수 있다. 셋업부(310)는 지오메트리 엔진부(330)에서 수행하는 모델/뷰 변환 및 조명 효과 처리를 위한 모델/뷰 변환 행렬 및 모델/뷰 변환 행렬의 역행렬을 연산하여 상태 레지스터 파일부(320)에 저장한다. 여기서, 모델/뷰 변환 행렬의 역행렬은 조명 효과 처리를 위하여 입력 정보로 이용되는 변환된 정점의 법선 벡터 정보를 계산하기 위해 필요하다. 셋업부(310)에서 모델/뷰 변환 행렬 생성, 역행렬 생성 및 모델/뷰 변환 행렬을 이용하여 역행렬을 계산하는 방법에 대해서는 도 3 및 도 7에서 더욱 상세히 설명하기로 한다.
상태 레지스터 파일부(320)는 지오메트리 처리를 위하여 셋업부(310)에서 연산된 입력 정보를 저장하고 이를 지오메트리 엔진부(330)로 출력한다. 상태 레지스터 파일부(320)는 지오메트리 엔진부(330)에서 상응하는 변환을 수행하기 위해 필요한 변환 행렬, 광원의 상태 등 여러 가지 입력 정보 등을 저장하고 이를 지오메트리 엔진부(330)에 공급한다.
상태 레지스터 파일부(320)는 예를 들면, 그래픽 라이브러리의 표준으로 사용되고 있는 오픈지엘(OpenGL)의 스펙(specification)을 적용하기 위해서 모델/뷰 변환 행렬 32개, 본 애니메이션 그래픽 처리를 위한 모델/뷰 변환 행렬 64개가 변환 행렬 갱신 정보와 함께 저장될 수 있다.
변환 행렬 갱신 정보는 예를 들면, 1비트의 정보로 상응하는 모델/뷰 변환 행렬이 갱신된 경우 초기 정보(0)가 1로 변경될 수 있으며, 새로 갱신된 모델/뷰 변환 행렬에 상응하는 역행렬이 생성되어 저장되는 경우에는 해당 변환 행렬 갱신 정보는 0으로 초기화될 수 있다. 즉, 변환 행렬 갱신 정보는 종래와 같이 무조건적으로 모델/뷰 변환 행렬의 역행렬을 생성하지 않고, 새로 갱신된 모델/뷰 변환 행렬에 대해서만 역행렬을 생성할 수 있도록 참조 정보이다. 법선 벡터의 변환을 위해 이용되는 모델/뷰 변환 행렬의 역행렬 생성에 있어 변환 정보 갱신 정보를 참조하여 선택적으로 역행렬을 생성함으로써, 전체적인 그래픽 처리 시간을 단축시킬 수 있다.
지오메트리 엔진부(330)는 그래픽 처리를 위하여 좌표 변환과 이에 따른 조명 효과를 계산을 가속하는 부분으로 모델/뷰 변환을 위한 변환부(340) 및 조명 효과 처리부(350)를 포함한다.
변환부(340)는 정점 정보에 관한 모델/뷰 변환을 수행한다. 모델/뷰 변환은 앞서 설명한 바와 같이 정점의 좌표 및 법선 벡터의 변환 등의 객체 조작 및 시점의 이동을 위하여 수행된다. 모델/뷰 변환은 정점 좌표 정보에 설정된 모델/뷰 변환 행렬을 곱하는 연산을 통해 수행되며, 법선 벡터는 각 좌표의 수직 방향 정보로 모델/뷰 변환 행렬의 역행렬을 곱하는 연산에 의해 수행된다. 조명 효과 처리부(350)에서 이용되는 법선 벡터 정보는 모델/뷰 변환에 따라 변환된 법선 벡터 정보이어야 한다. 이 경우, 법선 벡터를 변환 하는데 사용하는 행렬은 모델/뷰 행렬의 상위 3×3의 역행렬이 사용된다.
조명 효과 처리부(350)는 모델/뷰 변환이 수행된 후 조명 효과 처리를 수행하여 빛의 요소 적용에 의한 그래픽 객체의 색상이 결정한다. 즉, 조명 효과 처리부(350)는 앞 서 설명한 바와 같이 빛의 요소가 적용되었을 때 빛의 세기로 인한 객체의 각 좌표에 대한 실제 색상을 계산한다.
정점에 대한 조명 처리를 하기 위해서는 일반적으로 그래픽 라이브러리의 표준인 오픈지엘(OpenGL)의 스펙(specification)에 정의된 하기 수학식1(도 5의 설명 참조)에 정의된 연산을 처리한다. 해당 정점의 조명 효과를 계산 하기 위해서 입력정보로 정점의 수직방향을 나타내는 정점의 법선 벡터 정보가 필요하다. 정점의 법선 벡터를 이용하여 해당 정점이 빛을 받는 위치에 있는지를 판별하여 정점의 조명 효과를 적용하게 되는 것이다. 조명 처리를 위한 연산에 대해서는 도 5에서 더욱 상세히 서술하기로 한다.
도 4는 본 발명의 일 실시예에 따른 셋업부를 설명하기 위한 도면이다. 도 4에 도시한 바와 같이, 셋업부(310)는 지오메트리 처리를 위한 입력 정보를 생성하기 위한 연산을 수행한다.
셋업부(310)는 정점의 좌표 변환 등 객체 조작을 수행하는 모델/뷰 변환을 위한 모델/뷰 변환 행렬 생성부(410), 그래픽 객체에 조명 효과를 판단하는 조명효과 판단부(420) 및 그래픽 객체에 조명 효과를 삽입하는 경우, 법선 벡터 정보의 변환을 위한 모델/뷰 변환 행렬 역행렬을 생성하는 모델/뷰 역행렬 생성부(430)를 포함한다. 셋업부(310)는 그 외의 지오메트리 그래픽 처리를 위한 입력 정보를 생성하기 위한 다른 구성부가 더 포함될 수 있다.
모델/뷰 변환 행렬 생성부(410)는 지오메트리 그래픽 처리를 위한 모델/뷰 변환 행렬을 생성한다. 일반적으로 모델/뷰 변환 행렬은 m×n 행렬이며, 예를 들면, 3×3 또는 4×4의 행렬일 수 있다. 그래픽 라이브러리의 표준으로 사용되고 있는 오픈지엘(OpenGL)의 스펙(specification)을 적용하기 위해서 상태 레지스터 파일부(320)에는 모델/뷰 변환 행렬 32개, 본 애니메이션 그래픽 처리를 위한 모델/뷰 변환 행렬 64개가 저장될 수 있기 때문에 모델/뷰 변환 행렬 생성부(410)는 사용자의 변환 정보에 의하여 최대 모델/뷰 변환 행렬 32개, 본 애니메이션 그래픽 처리를 위한 모델/뷰 변환 행렬 64개가 새로 생성될 수 있으며, 사용자가 새로 생성될 변환 행렬의 수를 설정할 수 있다. 새로 생성된 모델/뷰 변환 행렬은 역행렬 생성을 선택적으로 하기 위해 참조할 수 있는 변환 행렬 갱신 정보와 함께 저장될 수 있다. 이 경우 변환 행렬 갱신 정보는 예를 들면, 1비트의 정보로 상응하는 모델/뷰 변환 행렬이 갱신된 경우 초기정보(0)가 1로 변경될 수 있으며, 갱신되지 않고 상태 레지스터 파일부(320)에 저장되어 있는 모델/뷰 변환 행렬에 대해서는 초기 정보를 유지할 수 있다.
모델/뷰 변환 행렬 생성부(410)는 예를 들면, 본 애니메이션(bone animation) 그래픽 처리를 위한 다수개의 모델/뷰 변환 행렬이 상태 레지스터 파일부(320)에 저장되어 있을 경우, 사용자가 설정한 변환 정보에 의해 새로운 모델/뷰 변환을 위해 상응하는 3개의 변환 행렬을 생성하여 변경된 행렬 갱신 정보를 포함하여 상태 레지스터 파일부(320)에 저장된 상응하는 순서의 모델/뷰 변환 행렬을 갱신할 수 있다. 그리고 모델/뷰 변환에서 사용되는 n개의 행렬 중 앞서 설명한 3개를 제외한 나머지 행렬들은 상태 레지스터 파일부(320)에 유지된다.
조명 효과 판단부(420)는 그래픽 객체에 조명 효과를 삽입할 지 여부를 판단 한다. 조명 효과 처리를 위해서는 모델/뷰 변환 행렬의 역행렬에 의해 변환된 정점의 법선 벡터 정보가 필요하기 때문에 조명 효과 판단부(420)에서는 조명 효과가 삽입된다고 판단되면, 정점의 법선 벡터의 변환을 위해 모델/뷰 변환 행렬의 역행렬을 연산하는 과정이 뒤이어 진행된다. 그래픽 객체에 조명 효과를 삽입할 지 여부는 예를 들면, 사용자가 조명 효과와 관련된 명령을 입력하는 등 미리 설정될 수 있다.
모델/뷰 역행렬 생성부(430)는 변환 행렬 갱신 정보를 검색하여 새로 갱신된 모델/뷰 변환 행렬에 상응하는 역행렬을 생성한다. 또한, 모델/뷰 역행렬 생성부(430)는 그래픽 객체에 대한 조명 효과를 삽입하기로 판단된 경우에 조건적으로 법선 벡터의 변환에 사용될 모델/뷰 변환 행렬의 역행렬을 생성한다.
모델/뷰 역행렬 생성부(430)는 무조건적으로 모델/뷰 변환 행렬의 역행렬을 생성하기 전에 각각의 모델/뷰 변환 행렬 정보에 포함된 변환 행렬 갱신 정보를 검색한다. 모델/뷰 역행렬 생성부(430)는 변환 행렬 갱신 정보 검색 결과, 새롭게 갱신된 변환 행렬(예를 들면, 변환 행렬 갱신 정보가 1인 모델/뷰 변환 행렬)에 대해서만 역행렬을 생성하고 해당 역행렬 정보를 상태 레지스터 파일부(320)에서 갱신한다. 모델/뷰 역행렬 생성부(430)는 새로 생성되지 않은 모델/뷰 변환 행렬에 대해서는 지오메트리 처리를 할 경우 그 전에 상태 레지스터 파일부(320)에 저장된 상응하는 역행렬을 이용할 수 있으므로, 무조건적으로 역행렬을 생성할 필요가 없다.
모델/뷰 역행렬 생성부(430)는 예를 들면, 본 애니에이션 그래픽 처리를 위 한 모델/뷰 변환의 경우 64개의 모델/뷰 행렬을 변환 형렬로 사용하며, 조명 효과의 삽입을 위하여 법선 벡터도 변환을 위한 64개의 모델/뷰 변환 행렬의 역행렬을 모두 생성해야 하지만, 새로 갱신된 모델/뷰 변환 행렬이 3개라면, 상응하는 역행렬을 3개만 생성하면 된다. 이와 같이 조건적으로 역행렬을 생성하는 방법은 종래의 무조건적으로 변환 행렬 모두의 상응하는 역행렬을 생성하여 갱신하는 방법보다 그래픽 처리 속도 및 그래픽 처리 장치의 운용면에서 더욱 효율적이다.
도 5는 본 발명의 일 실시예에 따른 조명 효과 처리를 위해 사용되는 벡터들을 설명하기 위한 도면이다. 법선 벡터는 한 정점에 대한 직각인 단위 벡터에 관한 정보로 조명 처리 계산에 이용된다. 법선 벡터는 표면으로 들어오는 빛의 각도와 표면으로부터 나가는 빛의 각도(표면이 반사하는 빛의 세기)를 계산하기 위한 수단으로 이용된다.
도 5에 도시된 바와 같이, 조명 효과를 계산하는 위해서는 한 정점(P)에서 L(빛의 방향) 벡터, N(법선) 벡터, V(시점)의 값이 필요하며, R(반사방향)이 가장 밝은 부분이 된다.
정점(P)에 대한 조명 처리를 하기 위해서는 일반적으로 그래픽 라이브러리의 표준인 오픈지엘(OpenGL)의 스펙(specification)에 정의된 하기 수학식1에 정의된 연산을 처리한다. 한 정점에 대한 색 R(red), G(green), B(blue) 정보에 대해서는 아래 수학식 1에 표현된 바와 같이, 물체의 방사(emission)되는 색상 데이터 값, 주변 광(ambient light)에 대한 색상 데이터 값과 물체의 주변(ambient) 요인의 곱 연산 및 감소 요인이 포함된 모든 광원에 대한 주변(ambient), 확산(diffuse), 반사(specular contribution)된 광 특성의 합에 의해 계산된다.
[수학식 1]
Figure 112006049387023-pat00001
여기서, 각 성분(Term)에 대한 내용은 다음과 같다
Figure 112006049387023-pat00002
은 물체의 방사(emission)되는 색상 데이터 값을 나타낸다.
주변 성분 (Ambient term)은 조명의 주변 색(Ambient Color) 데이터 값과 물체의 주변 특성을 곱(즉,
Figure 112006049387023-pat00003
)에 의해 계산된다.
다음으로, 확산 성분(Diffuse Term)은 조명의 확산 색(Diffuse Color) 데이터 값과 물체의 확산 특성, 그리고 조명위치의 단위벡터 L과 좌표의 법선 단위 벡 터의 내적의 곱(즉,
Figure 112006049387023-pat00004
)에 의해 계산된다.
다음으로. 반사 성분(Specular term)은 특정 부분 반사 색(Specular color) 데이터 값과 물체의 반사 특성을 구하여 계산(즉,
Figure 112006049387023-pat00005
)한다. 반사 성분의 계산을 위하여 벡터
Figure 112006049387023-pat00006
과 벡터
Figure 112006049387023-pat00007
의 합의 벡터
Figure 112006049387023-pat00008
를 구한 후
Figure 112006049387023-pat00009
를 단위 벡터로 만든다. 그리고
Figure 112006049387023-pat00010
Figure 112006049387023-pat00011
의 내적을 구한다.
마지막으로, 감쇠 성분(Attenuation term)은 광원과 물체와의 거리를 고려한 조명 처리 계산을 위해 사용된다. 여기서, d는 광원의 위치와 물체와의 거리이고, kc는 GL_CONSTANT 감쇠 상수이다. 또한, kl은 GL_LINEAR_감쇠 상수이고, kq는 GL_QUADRATIC_감쇠 상수이다.
앞 서 설명한 수학식 1은 그래픽 처리의 표준 라이브러리로 사용되는 오픈지엘(OpenGL)의 스펙에 정의되어 있어 계산 과정에서 변수 및 상수를 참조할 수 있다.
도 6은 본 발명의 바람직한 일 실시예를 따른 모델/뷰 행렬 및 역행렬의 조건적 생성 방법의 순서도이다. 도 6은 정점의 모델/뷰 변환을 수행하기 위해 모델/뷰 행렬 및 법선 벡터의 변환을 위해 모델/뷰 행렬의 역행렬을 생성하는 과정을 나타낸다.
모델/뷰 행렬 생성 단계(610)는 그래픽 처리를 위한 모델/뷰 변환 행렬을 생성하고 상태 레지스터 파일부(320)에 변환 행렬 갱신 정보가 포함된 생성된 모델/뷰 변환 행렬을 저장하는 단계이다. 여기서, M_i는 모델/뷰 변환 행렬을 나타내며, μ_i는 변환 행렬의 갱신 정보를 나타낸다. i의 값은 사용자가 변환하고자 하는 변환 정보에 의해 미리 설정할 수 있다.
모델/뷰 변환 행렬은 사용자가 그래픽 처리 객체의 정점 정보의 좌표 변환 및 시점의 이동 및 객체 조작을 위하여 생성되며(S601), 상응하는 변환 정보에 의해 사용자가 변환 행렬의 수를 미리 설정할 수 있다. 새로 생성된 해당 모델/뷰 변환 행렬 정보 M_i에 포함된 변환 행렬 갱신 정보 μ_i는 제1값에서 제2값으로 그 정보 값을 변경할 수 있다(S602). 새로 생성된 모델/뷰 변환 행렬 M_i는 변환부(340)에서 모델/뷰 변환시 이용하기 위하여 상태 레지스터 파일부(320)에 i번째 저장된 모델/뷰 변환 행렬을 갱신한다(S603). 이 경우, 새로 생성된 모델/뷰 변환 행렬 M_i를 제외하고 상태 레지스터 파일부(320)에 이미 저장된 변환 행렬은 예를 들면, 0으로 초기화된 행렬 갱신 정보 μ_i를 포함하여 상태 레지스터 파일부(320)에 유지된다. 즉, μ_i 역시 상응하는 모델/뷰 변환 행렬의 개수 n개 만큼 존재한다.
예를 들면, 본 애니메이션 그래픽 처리를 위한 64개의 모델/뷰 변환 행렬이 상태 레지스터 파일부(320)에 저장된 경우, 사용자가 새로운 모델/뷰 변환을 위해 i = 3, i = 6 또는 i = 9를 설정하고, 상응하는 3개의 행렬을 사용자가 설정한 변환 정보에 의해 생성할 수 있다. 여기서, i는 모델/뷰 변환 행렬이 저장된 순서를 나타낸다. 생성된 변환 행렬 3개는 각각 1로 지정된 행렬 갱신 정보 μ_i를 포함하여 상태 레지스터 파일부(320)에 저장된다. 그리고 모델/뷰 변환에서 사용되는 64개의 행렬 중 앞 서 설명한 3개를 제외한 나머지 61개의 변환 행렬들은 상태 레지스터 파일부(320)에 저장된 행렬은 0으로 지정된 행렬 갱신 정보 μ_i를 포함하여 저장되고, 그래픽 처리를 위한 모델/뷰 변환에 사용된다. 즉, M_3, M_6, M_9 변환 행렬 정보는 새로 갱신되었다는 갱신 정보 μ_i=1를 포함하여 상태 레지스터 파일부(320)에 저장되고, 새로 갱신된 변환 행렬 3개를 제외한 나머지 행렬들은 상태 레지스터 파일부(320)에 유지되어 모델/뷰 변환에 사용될 수 있다.
조명 효과 판단 단계(620)는 처리하고자 하는 그래픽 객체에 대한 조명 효과 처리를 수행할 것인가를 판단하는 단계이다. 이는 정점의 모델/뷰 변환을 수행하기 전에 법선 벡터를 이용한 조명 효과 처리를 하지 않는다면, 변환된 법선 벡터 정보가 필요 없기 때문이다. 조명 효과 판단 단계(620)에서 조명 효과의 판단은 앞서 설명한 바와 같이 사용자에 의해 미리 설정될 수 있다.
모델/뷰 역행렬 생성 단계(630)은 조명 효과에 대한 그래픽 처리를 필요로 하는 경우, 변환된 법선 벡터 정보가 필요하기 때문에 법선 벡터 변환에 필요한 모델/뷰 변환 행렬의 역행렬을 생성하는 단계이다. 모델/뷰 역행렬 생성부(430)는 무조건적으로 역행렬을 생성하기 전에 각각의 모델/뷰 변환 행렬 정보에 포함된 변환 행렬 갱신 정보 μ_i를 검색한다(S405). 각각의 모델/뷰 변환 행렬 정보에 포함된 변환 행렬 갱신 정보 μ_i을 검색하여 상태 레지스터 파일부(320)에 저장된 n개의 모든 모델/뷰 변환 행렬 중 새롭게 갱신된 변환 행렬(예를 들면, μ_i=1인 변환 행 렬)에 대해서만 역행렬을 생성한다(S605).
앞서 설명한 바와 같이, 조건적으로 역행렬을 생성하는 방법은 종래의 무조건적으로 변환 행렬 n개 모두의 역행렬을 생성하여 갱신하는 방법보다 그래픽 처리 속도 및 그래픽 처리 장치의 운용면에서 더욱 효율적이다.
새로 갱신된 모델/뷰 변환 행렬에 상응하여 생성된 역행렬은 상태 레지스터 파일부(320)에 저장되고(S606), 새롭게 갱신된 역행렬에 대한 변환 행렬 갱신 정보 μ_i는 초기화된다.
모델/뷰 역행렬 생성 단계는 갱신된 모델/뷰 변환 행렬에 상응하여 계산되므로 상태 레지스터 파일부(320)에 저장된 n개의 모든 모델/뷰 변환 행렬에 대해 반복되어 수행된다(S607). 즉, 상태 레지스터 파일부(320)에 저장된 i번째 모델/뷰 변환 행렬에 대해 변환 행렬 갱신 정보를 검색하고 역행렬을 생성하였다면, i+1번째 모델/뷰 변환 행렬에 대해서 모델/뷰 역행렬 생성 단계를 반복하여 상태 레지스터 파일부(320)에 저장된 n개의 모든 모델/뷰 변환 행렬에 대하여 수행한다.
도 7은 본 발명의 바람직한 일 실시예에 따른 역행렬의 연산을 설명하기 위한 도면이다.
도 7에 예시된 바와 같이, 모델/뷰 변환 행렬의 역행렬은 일반적으로 역행렬 계산에 이용되는 크래머 룰(cramer's rule)을 적용하여 계산될 수 있다. 크래머 룰을 이용한 역행렬 계산방법은 당업자에게 자명하므로 간략히 설명하기로 한다. 우선 모델/뷰 변환 행렬의 역행렬을 계산하기 위해 여인수(Cofactor)를 계산한다. 이 때, 계산에는 모델/뷰 변환 행렬의 역행렬은 3×3 행렬이므로 여인수를 계산하는 경우에는 4×4의 모델/뷰 변환 행렬의 상위 3×3 행렬을 이용한다. 다음으로 법선 벡터를 정규화(normalize)한다. 만약, 법선 벡터의 정규화 필요성에 따라 정규화를 조명 효과 계산 부분에서 수행하게 되면 그래픽에서 필요한 행렬의 특성상 디터미넌트(Determinant)를 계산하여 여인수(Cofactor)를 나누어 주는 연산을 수행 하지 않고 역행렬의 계산을 할 수 있다. 그러나 법선 벡터의 정규화를 조명 효과 계산 부분에서 수행하지 않는 경우에는 디터미넌트(Determinant)를 구해 여인수(Cofactor)를 나누어 주는 연산이 필요하다. 마지막으로 행렬 자체를 단위 행렬로 변환 할지를 나타내는 리스케일(Rescale) 요소에 의해 계산된 역행렬의 단위 행렬 변환 작업을 수행 할지를 결정하게 된다. 이 과정까지 처리되면, 실제 법선 벡터를 변환하는데 필요한 모델/뷰 행렬의 역행렬의 연산이 완료된다.
상술한 바와 같이, 본 발명에 따른 그래픽 처리를 위한 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽 처리 장치는 법선 벡터의 변환을 위한 모델/뷰 변환 행렬의 역 행렬 생성에 있어 생성의 필요 조건을 검사하여 조건에 따라 모델/뷰 역 행렬을 선택적으로 생성함으로써 그래픽 처리 시간을 단축시키고 그래픽 처리 장치의 운용면에서 효율적인 효과가 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (17)

  1. 그래픽 처리를 위한 지오메트리 처리 장치에 있어서,
    그래픽 객체의 지오메트리 처리를 위한 모델/뷰 변환 행렬 정보 및 상응하는 역행렬 정보를 생성하는 셋업부;
    상기 모델/뷰 변환 행렬 정보 및 상기 역행렬 정보를 저장하는 상태 레지스터 파일부; 및
    상기 상태 레지스터 파일부에 저장된 상기 모델/뷰 변환 행렬 정보 및 상기 역행렬 정보를 입력 정보로 이용하여 상기 그래픽 객체의 정점 및 상응하는 법선 벡터를 변환하는 지오메트리 엔진부를 포함하되,
    상기 상태 레지스터 파일부는 생성된 모델/뷰 변환 행렬 정보를 갱신하고 상기 셋업부는 상기 갱신된 모델/뷰 변환 행렬 정보에 상응하는 역행렬 정보를 선택적으로 생성하는 것을 특징으로 하는 그래픽 처리 장치.
  2. 제1항에 있어서,
    상기 셋업부는
    사용자의 변환 정보에 상응하는 모델/뷰 변환 행렬 정보를 생성하는 모델/뷰 변환 행렬 생성부;
    상기 그래픽 객체의 조명 효과 처리 필요 유무를 판단하는 조명 효과 판단부; 및
    상기 조명 효과 판단부의 판단 결과, 상기 그래픽 객체의 조명 효과 처리가 필요한 경우 상기 생성된 모델/뷰 변환 행렬 정보에 상응하는 역행렬 정보를 생성하는 모델/뷰 역행렬 생성부를 포함하는 것을 특징으로 하는 그래픽 처리 장치.
  3. 제1항 또는 제2항에 있어서,
    상기 갱신된 모델/뷰 변환 행렬 정보는 변환 행렬 갱신 정보를 포함하고, 상기 셋업부는 상기 변환 행렬 갱신 정보를 검색하여 갱신된 모델/뷰 변환 행렬에 상응하는 역행렬 정보를 선택적으로 생성하는 것을 특징으로 하는 그래픽 처리 장치.
  4. 제3항에 있어서,
    상기 변환 행렬 갱신 정보는 새로 갱신된 모델/뷰 변환 행렬에 대해서는 초기정보가 변경되고, 상응하는 역행렬이 생성된 경우 다시 초기화되는 것을 특징으로 하는 그래픽 처리장치.
  5. 청구항 5은(는) 설정등록료 납부시 포기되었습니다.
    제4항에 있어서,
  6. 제1항에 있어서,
    상기 지오메트리 엔진부는
    상기 그래픽 객체의 정점 정보 및 상응하는 법선 벡터 정보의 모델/뷰 변환을 수행하는 변환부; 및
    상기 변환된 법선 벡터 정보를 이용하여 빛의 요소 적용에 의한 상기 그래픽 객체의 색상을 결정하는 조명 효과 처리부를 포함하는 것을 특징으로 하는 그래픽 처리 장치.
  7. 청구항 7은(는) 설정등록료 납부시 포기되었습니다.
    제6항에 있어서,
    상기 정점 정보는 상기 그래픽 객체를 구성하는 m개의 정점 정보 중 하나인 것을 특징으로 하는 그래픽 처리 장치.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제1항에 있어서,
    상기 생성된 모델/뷰 변환 행렬 정보는 포함되는 모델/뷰 변환 행렬은 4×4 행렬인 것을 특징으로 하는 그래픽 처리 장치.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제8항에 있어서,
    상기 역행렬 정보에 포함되는 역행렬은 상기 모델/뷰 변환 행렬의 상위 3×3 행렬을 이용하여 생성되는 것을 특징으로 하는 그래픽 처리 장치.
  10. 그래픽 처리 장치에서 모델/뷰 변환 행렬의 역행렬 생성 방법에 있어서,
    a) 입력 정점 정보에 대한 모델/뷰 변환 행렬 정보를 생성하고 상기 생성된 모델/뷰 변환 행렬 정보에 상응하는 변환 행렬 갱신 정보를 변경하는 단계;
    b) 상기 생성된 모델/뷰 변환 행렬 정보 및 상기 변경된 변환 행렬 갱신 정보를 저장하는 단계; 및
    c) 상기 저장된 변환 행렬 갱신 정보를 검색하여 변경된 변환 행렬 갱신 정보에 상응하는 역행렬 정보를 생성하는 단계를 포함하는 그래픽 처리 장치에서 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법.
  11. 제10항에 있어서,
    상기 c)단계 이후에 상기 생성된 역행렬 정보를 저장하고 상기 저장된 변환 행렬 갱신 정보를 초기화하는 단계를 더 포함하는 것을 특징으로 하는 그래픽 처리 장치에서 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법.
  12. 제10항에 있어서,
    c) 단계 이전에 상기 정점의 조명 효과 처리의 필요 여부를 판단하는 단계를 더 포함하여 상기 정점의 조명 효과 그래픽 처리가 필요한 경우에 c)단계가 수행되는 것을 특징으로 하는 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법.
  13. 청구항 13은(는) 설정등록료 납부시 포기되었습니다.
    제10항에 있어서,
    상기 b) 단계에서 상기 변환 행렬 갱신 정보는 상기 모델/뷰 변환 행렬 정보에 포함되는 것을 특징으로 하는 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법.
  14. 청구항 14은(는) 설정등록료 납부시 포기되었습니다.
    제10항에 있어서,
    상기 입력 정점 정보는 그래픽 처리 객체를 구성하는 m개의 정점 정보 중 하나인 것을 특징으로 하는 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    상기 모델/뷰 변환 행렬 정보는 포함되는 모델/뷰 변환 행렬은 4×4 행렬인 것을 특징으로 하는 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제15항에 있어서,
    상기 역행렬 정보에 포함되는 역행렬은 상기 모델/뷰 변환 행렬의 상위 3×3 행렬을 이용하여 생성되는 것을 특징으로 하는 모델/뷰 변환 행렬의 역행렬 조건적 생성 방법.
  17. 그래픽 처리 장치에서 모델/뷰 변환 행렬의 역행렬 생성 방법을 기록한 디지털 처리 장치가 판독 가능한 기록매체에 있어서,
    a) 입력 정점 정보에 대한 모델/뷰 변환 행렬 정보를 생성하고 상기 생성된 모델/뷰 변환 행렬 정보에 상응하는 변환 행렬 갱신 정보를 변경하는 단계;
    b) 상기 생성된 모델/뷰 변환 행렬 정보 및 상기 변경된 변환 행렬 갱신 정보를 저장하는 단계; 및
    c) 상기 저장된 변환 행렬 갱신 정보를 검색하여 변경된 변환 행렬 갱신 정보에 상응하는 역행렬 정보를 생성하는 단계를 포함하는 그래픽 처리 장치에서 모델/뷰 변환 행렬의 역행렬 조건적 생성 프로그램을 기록한 디지털 처리 장치가 판독 가능한 기록 매체.
KR1020060064707A 2006-07-11 2006-07-11 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치 KR100834374B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060064707A KR100834374B1 (ko) 2006-07-11 2006-07-11 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060064707A KR100834374B1 (ko) 2006-07-11 2006-07-11 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치

Publications (2)

Publication Number Publication Date
KR20080006050A KR20080006050A (ko) 2008-01-16
KR100834374B1 true KR100834374B1 (ko) 2008-06-02

Family

ID=39219929

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060064707A KR100834374B1 (ko) 2006-07-11 2006-07-11 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치

Country Status (1)

Country Link
KR (1) KR100834374B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102391680B1 (ko) * 2015-06-15 2022-04-28 엘지전자 주식회사 프레임 간 변화량을 이용한 가변 해상도 처리 장치 및 그 제어 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117546A (ja) 1997-05-30 1999-01-12 Hewlett Packard Co <Hp> 高速透視図ボリュームレンダリングのための光線変換方法
JPH11239362A (ja) 1998-02-23 1999-08-31 Atr Kankyo Tekio Tsushin Kenkyusho:Kk カラーバランス補正方法及び装置
JP2002300459A (ja) 2001-03-30 2002-10-11 Minolta Co Ltd 反復法による画像復元装置、画像復元方法、プログラム及び記録媒体
US6545679B1 (en) 1999-12-27 2003-04-08 Microsoft Corporation View volume clip-check in object space

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH117546A (ja) 1997-05-30 1999-01-12 Hewlett Packard Co <Hp> 高速透視図ボリュームレンダリングのための光線変換方法
JPH11239362A (ja) 1998-02-23 1999-08-31 Atr Kankyo Tekio Tsushin Kenkyusho:Kk カラーバランス補正方法及び装置
US6545679B1 (en) 1999-12-27 2003-04-08 Microsoft Corporation View volume clip-check in object space
JP2002300459A (ja) 2001-03-30 2002-10-11 Minolta Co Ltd 反復法による画像復元装置、画像復元方法、プログラム及び記録媒体

Also Published As

Publication number Publication date
KR20080006050A (ko) 2008-01-16

Similar Documents

Publication Publication Date Title
Kilgard A practical and robust bump-mapping technique for today’s GPUs
EP3008701B1 (en) Using compute shaders as front end for vertex shaders
US6876362B1 (en) Omnidirectional shadow texture mapping
US6417858B1 (en) Processor for geometry transformations and lighting calculations
US6825851B1 (en) Method and apparatus for environment-mapped bump-mapping in a graphics system
US6700586B1 (en) Low cost graphics with stitching processing hardware support for skeletal animation
KR100612890B1 (ko) 3차원 이미지의 다중 특수 효과 표현 방법 및 장치
US7256781B2 (en) Image processing apparatus and method of same
US8134556B2 (en) Method and apparatus for real-time 3D viewer with ray trace on demand
US11450057B2 (en) Hardware acceleration for ray tracing primitives that share vertices
US7064755B2 (en) System and method for implementing shadows using pre-computed textures
CN117280387A (zh) 用于光线和路径追踪的位移微网格
JP2002520703A (ja) コンピュータ・グラフィックス・アニメーションの装置及び方法
Merlo et al. 3D model visualization enhancements in real-time game engines
JP2011522322A (ja) ジオメトリシェーダを用いる平面充填エンジンのためのシステム、方法及びコンピュータプログラム製品
Huang et al. Interactive illustrative rendering on mobile devices
CN117723266A (zh) 提高光线-盒测试的效率
KR100834374B1 (ko) 모델/뷰 역행렬 조건적 생성 방법 및 이를 이용한 그래픽처리 장치
Dong et al. Real‐Time Large Crowd Rendering with Efficient Character and Instance Management on GPU
KR100848687B1 (ko) 3차원 그래픽 처리 장치 및 그것의 동작 방법
Sud et al. Surface distance maps
Weiler et al. Direct volume rendering in OpenSG
US20210304349A1 (en) Iterative indirect command buffers
US20210407182A1 (en) Load instruction for multi sample anti-aliasing
KR100715524B1 (ko) 3차원 지오메트리 프로세서 및 이의 제어 방법

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: 20130422

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140428

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150428

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180425

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190425

Year of fee payment: 12