KR100653946B1 - 3차원 그래픽 조명 처리 장치 및 그 방법 - Google Patents

3차원 그래픽 조명 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR100653946B1
KR100653946B1 KR1020050071127A KR20050071127A KR100653946B1 KR 100653946 B1 KR100653946 B1 KR 100653946B1 KR 1020050071127 A KR1020050071127 A KR 1020050071127A KR 20050071127 A KR20050071127 A KR 20050071127A KR 100653946 B1 KR100653946 B1 KR 100653946B1
Authority
KR
South Korea
Prior art keywords
light
component
vector
light source
pass
Prior art date
Application number
KR1020050071127A
Other languages
English (en)
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 KR1020050071127A priority Critical patent/KR100653946B1/ko
Application granted granted Critical
Publication of KR100653946B1 publication Critical patent/KR100653946B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Image Generation (AREA)

Abstract

본 발명의 3차원 그래픽의 조명 처리 장치에 관한 것이다. 본 발명의 바람직한 일 실시예에 따르면, 파이프라인 구조의 조명 처리 장치에 있어서, 광원 벡터, 법선 벡터를 정규화하고, 광원 파라미터에 대해 전처리 과정을 수행하는 정규화부; 미리 지정된 시야 벡터와 상기 광원 벡터의 합 벡터인 반 벡터를 산출하고, 상기 광원 파라미터와 상기 광원 벡터를 이용하여 스팟 성분 및 감쇠 성분을 산출하는 스팟 및 감쇠 성분 산출부; 상기 광원 벡터와 상기 반 벡터 중 어느 하나와 상기 법선 벡터를 내적하여 산광 성분과 제1 반사광 성분을 산출하여 출력하는 벡터 내적부; 및 상기 제1 반사광 성분을 이용하여 제2 반사광 성분을 산출하고 각각의 성분을 합산하여 정점의 칼라 데이터를 산출하는 정점 칼라 값 산출부를 포함하는 정점 조명 처리 장치가 제공된다. 따라서, 본 발명에 의해, 정점에 대한 조명 처리 연산의 수행 속도를 4배 이상 빠르게 할 수 있다.
그래픽, 조명, graphics, lighting

Description

3차원 그래픽 조명 처리 장치 및 그 방법{Device and method for lighting processing in 3D graphics}
도 1은 일반적인 조명 처리 장치의 블록도.
도 2는 본 발명의 바람직한 일 실시예에 따른 조명 처리 장치의 블록도.
도 3은 본 발명의 바람직한 일 실시예에 따른 정규화부의 순서도.
도 4는 본 발명의 바람직한 일 실시예에 따른 스팟 및 감쇠 성분 산출부의 순서도.
도 5는 정점의 조명 효과를 주기 위해 사용되는 벡터들이 예시도.
도 6은 본 발명의 바람직한 일 실시예에 따른 벡터 내적부의 순서도.
도 7은 본 발명의 바람직한 일 실시예에 따른 정점 칼라 값 산출부의 순서도.
<도면의 주요 부분에 대한 부호의 설명>
210 : 정규화부
220 : 스팟 및 감쇠 성분 산출부
230 : 벡터 내적부
240 : 정점 칼라 값 산출부
250 : 파이프라인 레지스터
260 : 제어부
본 발명은 그래픽 가속 장치에 관한 것으로, 특히 3차원 그래픽에서 조명 처리 연산을 최적화하여 성능을 향상시킨 것에 관한 것이다.
3차원 그래픽의 지오메트리(Geometry) 연산에 있어서 95% 이상이 변환 연산과 조명 처리 연산이 차지한다. 따라서, 3차원 그래픽 처리기에서 이러한 조명 효과를 효율적으로 처리하기 위해 별도의 조명 처리기를 두어 조명 처리의 연산 수행 속도를 높이고 있다. 그러나, 기존의 조명 처리 블록은 도 1에서 보여지는 바와 같이 단일 블록으로 구성되어 있어 하나의 정점(vertex)에 대해 조명 효과를 주기 위해 많은 사이클(예를 들어, 28사이클)이 소요되었다.
즉, 도 1은 종래의 3차원 그래픽의 조명 처리기의 블록도로서, 그래픽 라이브러리의 표준인 오픈지엘(OpenGL)의 스펙(specification)에 정의된 하기 수학식1에 정의된 연산을 처리하여 정점에 대한 조명 처리를 수행한다. 도 1에 도시된 바와 같이, 종래의 조명 처리 장치는 하나의 단일 블록(110)으로 구성되어 있으며, 단일 블록(110) 내부에는 다수의 연산기들(예를 들어, 덧셈기(fp_add), 곱셈기 (fp_mul), 역수기(fp_inv), 제곱기(fp_sqrt), 승수기(fp_pow), 역제곱기(fp_inv_sqrt), 코사인기(fp_cos) 등)을 포함하고 있으며, 제어부(130, controller)의 제어에 의해 하기 수학식1에 정의된 연산을 내부에 포함된 연산기들을 이용하여 순차적으로 계산함으로써 정점에 대한 칼라 값을 산출한다. 또한, 정점의 칼라 값을 산출하기 위해 단일 블록(110)에서 계산된 연산 결과들은 제어부(130)의 제어에 의해 레지스터부(120, register file)에 저장된다. 즉, 하기 수학식1에 정의된 수식을 처리하기 위해 단일 블록(110)의 내부에 포함된 연산기들을 이용하여 순차적으로 연산을 수행하고, 연산 결과를 제어부(130)의 제어에 의해 레지스터부(120)에 저장한다. 그리고, 단일 블록(110)은 내부에 포함된 연산기들을 이용하여 연산을 수행하기 위해 제어부(130)의 제어에 의해 레지스터부(120)에 저장된 데이터를 독출한다. 하기의 수학식1을 수행하기 위해 일반적으로 28사이클이 소요된다. 여기서 사이클이란, 단일 블록의 내부에 포함된 연산기들(예를 들어, 덧셈기, 곱셈기, 역수기, 제곱기 등)을 공유하지 않으면서 한번에 병렬적으로 처리할 수 있는 연산들의 집합을 의미한다. 예를 들어, 단일 블록이 2개의 덧셈기와 하나의 곱셈기를 포함하고 있을 때,
Figure 112005042983038-pat00001
에 대한 연산을 수행하면, (a+b)와 (c+d)의 연산을 병렬적으로 한 사이클에서 수행 한 후 곱셈을 하여 결과를 출력할 수 있다. 즉, 2사이클이 소요가 된다. 그러나,
Figure 112005042983038-pat00002
의 경우, 순차적으로 3사이클이 소요되게 된다.
또한, 종래의 조명 처리 장치는 단일 블록(110)으로 구성되어 있기 때문에, 광원이 하나 추가 되면, 28 사이클이 더 소요되는 문제점이 있다 (오픈지엘(OpenGL)에서는 최소 8개의 광원을 지원하고 있다). 또한, 종래의 조명 처리 장치는 단일 블록(110)으로 되어 있기 때문에, 하나의 정점에 대한 조명 처리 연산을 수행하고 있는 과정에서 다음 정점에 대한 조명 처리 연산을 수행하지 못하는 문제점이 있다. 즉, 하나의 정점에 대한 조명 처리 연산에 수행되는 사이클이 계속해서 누적됨으로 인해, 결과적으로 3차원 그래픽 처리 장치의 전체적인 성능 저하시키게 된다.
[수학식 1]
Figure 112005042983038-pat00003
여기서, I와 n은 정수 값이며, ecm은 물체의 방사되는 색상데이터 값이고, acm은 물체의 주변광에 대한 색상데이터 값이며, acs는 장면(Scene)의 주변광에 대한 색상데이터 값이고, acli는 광원 i의 주변광 명암에 대한 색상데이터 값이며, d는 정점과 광원의 거리를 나타내는 실수값이고, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이며, dcm은 물체의 난반 사 되는 색상 데이터 값이며, dcli는 광원 i의 산광 명암에 대한 색상데이터 값이고, scm은 물체의 반사 되는 색상 데이터 값이며, scli는 광원 i의 반사광 명암에 대한 색상데이터 값이고,
Figure 112005042983038-pat00004
은 스팟광의 단위 방향 벡터이며,
Figure 112005042983038-pat00005
는 광원 벡터이고,
Figure 112005042983038-pat00006
는 반 벡터이며,
Figure 112005042983038-pat00007
은 법선 벡터이다.
따라서, 상술한 문제점을 해결하기 위한 본 발명의 목적은 조명 처리 연산을 분할 및 분산하여 각각의 장치에서 7사이클 마다 데이터 입출력이 가능하도록 함으로써, 정점에 대한 조명 처리 연산을 최적화하여 수행 속도가 4배 이상 빠른 3차원 그래픽 조명 처리 장치 및 방법을 제공하는 것이다.
본 발명의 다른 목적은 하나의 정점에 대해 조명 처리 연산을 수행하고 있는 과정에서 다음 정점에 대한 조명 처리 연산을 수행할 수 있는 조명 처리 장치 및 방법을 제공하는 것이다.
이외의 본 발명의 목적들은 하기의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 측면에 따르면, 정점의 조명 처 리 연산을 최적화하고 분할 및 분산하여 연산의 수행속도를 빠르게 할 수 있는 정점의 조명 처리 장치가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 파이프라인 구조의 조명 처리 장치에 있어서, 정점 데이터, 광원 파라미터, 법선 벡터를 입력받아 광원 벡터를 산출하고, 상기 광원 벡터와 상기 법선 벡터를 정규화하며, 상기 광원 파라미터를 이용하여 2패스 전역 주변광을 산출하여 출력하는 정규화부; 미리 지정된 시야 벡터와 상기 정규화된 광원 벡터의 합 벡터인 반 벡터를 산출하고, 상기 광원 파라미터와 상기 정규화된 광원 벡터를 이용하여 스팟 성분 및 감쇠 성분을 산출하여 출력하는 스팟 및 감쇠 성분 산출부; 상기 정규화된 광원 벡터와 상기 정규화된 반 벡터 중 어느 하나와 상기 정규화된 법선 벡터를 내적하여 산광 성분과 제1 반사광 성분을 산출하여 출력하는 벡터 내적부; 및 상기 제1 반사광 성분을 이용하여 제2 반사광 성분을 산출하고, 상기 2패스 전역 주변광, 상기 스팟 성분, 상기 감쇠 성분, 상기 산광 성분, 상기 제2 반사광 성분 중 하나 이상을 이용하여 정점 칼라 데이터를 산출하는 정점 칼라 값 산출부를 포함하는 정점 조명 처리 장치가 제공된다.
상기 광원 파라미터는 방사 매개변수, 주변광 매개변수, 산광 매개변수, 반사광 매개변수, 스팟광 매개변수, 광원의 위치 데이터 중 하나 이상일 수 있다.
상기 정규화부는 상기 광원 파라미터를 이용하여 1패스 주변광, 1패스 산광, 2패스 반사광 중 하나 이상을 산출하여 출력하되, 상기 벡터 내적부는 상기 정규화된 광원 벡터와 상기 정규화된 법선 벡터를 내적한 후 상기 1패스 산광을 이용하여 산출하며, 상기 감쇠 성분의 역수를 산출하여 상기 스팟 성분과 곱하여 광효과 성 분을 산출하고, 상기 산광 성분과 상기 1패스 주변광을 합하여 제1 광합산 성분을 산출하여 출력할 수 있다.
상기 정점 칼라 값 산출부는 상기 제1 광합산 성분, 상기 광효과 성분, 상기 반사광을 합산하여 제2 광합산 성분을 더 산출하며, 상기 2패스 전역 주변광에 상기 제2 광합산 성분을 합산하여 정점의 칼라 데이터로 산출할 수 있다.
상기 정규화부, 상기 스팟 및 감쇠 성분 산출부, 상기 벡터 내적부, 상기 정점 칼라 값 산출부 사이에 데이터 입출력을 담당하는 파이프라인 레지스터를 더 포함할 수 있다.
상기 정규화부는 상기 1패스 주변광, 상기 1패스 산광, 상기 2패스 전역 주변광, 상기 2패스 반사광 중 하나 이상을 미리 산출하여 출력함으로써 상기 파이프라인 레지스터의 수를 줄일 수 있다.
상기 1패스 산광은 상기 산광 매개변수를 이용하여 하기의 수학식에 의해 산출될 수 있다.
Figure 112005042983038-pat00008
여기서, dcm은 산광의 색상 데이터이며, dcl은 산광의 명암을 나타내는 색상 데이터로서, 상기 색상 데이터는 (R, G, B,
Figure 112005042983038-pat00009
) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
Figure 112005042983038-pat00010
는 각각 임의의 실수값일 수 있다.
상기 1패스 주변광은 상기 주변광 매개 변수를 이용하여 하기의 수학식에 의해 산출될 수 있다.
Figure 112005042983038-pat00011
여기서, acm은 주변광의 색상 데이터이며, acl은 주변광의 명암을 나타내는 색상 데이터로서 상기 색상 데이터는 (R, G, B,
Figure 112005042983038-pat00012
) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
Figure 112005042983038-pat00013
는 각각 임의의 실수값일 수 있다.
상기 2패스 반사광은 상기 반사광 매개 변수를 이용하여 하기의 수학식에 의해 산출될 수 있다.
Figure 112005042983038-pat00014
여기서, scm은 반사광의 색상 데이터이며, scl은 반사광의 명암을 나타내는 색상 데이터로서 상기 색상 데이터는 (R, G, B,
Figure 112005042983038-pat00015
) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
Figure 112005042983038-pat00016
는 각각 임의의 실수값일 수 있다.
상기 2패스 전역 주변광은 하기의 수학식을 이용하여 산출될 수 있다.
Figure 112005042983038-pat00017
여기서, ecm은 물체의 방사되는 색상데이터이며, acm은 물체의 주변광에 대한 색상데이터이고, acs는 장면(Scene)의 주변광에 대한 색상데이터로서 상기 색상 데이터는 (R, G, B,
Figure 112005042983038-pat00018
) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
Figure 112005042983038-pat00019
는 각각 임의의 실수값일 수 있다.
상기 스팟 및 감쇠 성분 산출부는 하기 수학식을 이용하여 상기 감쇠 성분을 산출할 수 있다.
Figure 112005042983038-pat00020
여기서, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이고, VPpl는 광원의 위치와 정점의 위치 사이의 거리를 나타내는 실수값이고,
Figure 112005042983038-pat00021
는 광원과 정점의 거리에 대한 절대값을 구하기 위한 함수일 수 있다.
상기 스팟 및 감쇠 성분 산출부는 하기 수학식을 이용하여 상기 스팟 성분을 산출할 수 있다.
Figure 112005042983038-pat00022
여기서,
Figure 112005042983038-pat00023
는 광원 벡터이며,
Figure 112005042983038-pat00024
은 스팟광의 단위 방향 벡터이고, srl는 스팟광의 중심과 외곽과의 빛의 세기의 차이를 설정하기 위한 실수값일 수 있다.
상기 벡터 내적부는 하기 수학식에 의해 상기 산광 성분을 산출할 수 있다.
Figure 112005042983038-pat00025
여기서,
Figure 112005042983038-pat00026
는 광원 벡터이고,
Figure 112005042983038-pat00027
은 법선 벡터일 수 있다.
본 발명의 다른 측면에 따르면, 정점의 조명 처리 연산을 최적화하고 분할 및 분산하여 연산의 수행속도를 빠르게 할 수 있는 정점의 조명 처리 방법 및 그 방법을 수행하는 프로그램을 기록한 기록 매체가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 파이프라인 구조의 조명 처리 장치에서 수행되는 정점에 대해 조명 처리하는 방법에 있어서, (a) 정점 데이터, 광원 파라미터, 법선 벡터를 입력받아 광원 벡터를 산출하고, 상기 광원 벡터와 상기 법선 벡터를 정규화하며, 상기 광원 파라미터를 이용하여 1패스 산광, 2패스 반사광, 2패스 전역 주변광 중 하나 이상을 산출하여 출력하는 단계- 상기 광원 파라미터는 방사 매개변수, 주변광 매개변수, 산광 매개변수, 반사광 매개변수, 스팟광 매개변수, 광원의 위치 데이터 중 하나 이상임-; (b) 미리 지정된 시야 벡터와 상기 정규화된 광원 벡터를 이용하여 반 벡터를 산출하고, 상기 정점 데이터 및 상기 광원 파라미터를 이용하여 스팟 성분과 감쇠 성분을 산출하여 출력하는 단계; (c) 상기 광원 벡터와 상기 법선 벡터를 내적하고 상기 1패스 산광을 이용하여 산광 성분을 산출하고, 상기 반 벡터와 상기 법선 벡터를 내적하여 제1 반사광 성분을 산출하여 출력하는 단계; 및 (d) 상기 제1 반사광 성분과 2패스 반사광을 이용하여 제2 반사광 성분을 산출하고, 상기 2패스 전역 주변광, 상기 스팟 성분, 상기 감쇠 성분, 상기 산광 성분, 상기 제2 반사광 성분 중 하나 이상을 이용하여 정점에 대한 칼라 값을 산출하는 단계를 포함하되, 상기 (a) 단계 내지 상기 (d) 단계는 각각 7사이클 마다 데이터를 입출력하는 것을 특징으로 하는 정점의 조명 처리 방법이 제공된다.
상기 (a) 단계는 상기 광원 파라미터를 이용하여 1패스 주변광을 산출하여 출력하는 단계를 더 포함하되, 상기 (b) 단계는 상기 감쇠 성분의 역수를 산출하고, 상기 감쇠 성분의 역수와 상기 스팟 성분을 곱하여 광효과 성분을 산출하며, 상기 1패스 주변광과 상기 산광을 합산하여 제1 광합산 성분을 산출하여 출력하는 단계를 더 포함할 수 있다.
상기 (d) 단계는 상기 광효과 성분, 상기 제1 광합산 성분, 상기 제2 반사광 성분을 합산하여 제2 광합산 성분을 더 산출하며, 상기 2패스 전역 주변광에 상기 제2 광합산 성분을 합산하여 상기 정점의 칼라 값으로 산출할 수 있다.
상기 감쇠 성분은 하기의 수학식을 이용하여 산출될 수 있다.
Figure 112005042983038-pat00028
여기서, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이고, VPpl는 광원의 위치와 정점의 위치 사이의 거리를 나타내는 실수값이고,
Figure 112005042983038-pat00029
는 광원과 정점의 거리에 대한 절대값을 구하기 위한 함수일 수 있다.
상기 2패스 전역 주변광은 하기 수학식에 의해 산출될 수 있다.
Figure 112005042983038-pat00030
여기서, ecm은 물체의 방사되는 색상데이터이며, acm은 물체의 주변광에 대한 색상데이터이고, acs는 장면(Scene)의 주변광에 대한 색상데이터로서 상기 색상 데이터는 (R, G, B,
Figure 112005042983038-pat00031
) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
Figure 112005042983038-pat00032
는 각각 임의의 실수값일 수 있다.
상기 산광 성분은 하기 수학식에 의해 산출될 수 있다.
Figure 112005042983038-pat00033
여기서,
Figure 112005042983038-pat00034
는 광원 벡터이고,
Figure 112005042983038-pat00035
은 법선 벡터일 수 있다.
본 발명의 바람직한 일 실시예에 따르면, 파이프라인 구조의 조명 처리 장치에서 수행되는 정점에 대해 조명 처리하는 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서, (a) 정점 데이터, 법선 벡터, 광원 파라미터를 입력받아 광원 벡터를 산출하고, 상기 광원 벡터와 상기 법선 벡터를 정규화하며, 상기 광원 파라미터를 이용하여 1패스 산광, 2패스 반사광, 2패스 전역 주변광을 산출하여 출력하는 단계; (b) 미리 지정된 시야 벡터와 상기 광원 벡터의 합 벡터인 반 벡터를 산출하며, 상기 광원 파라미터와 상기 정규화된 광원 벡터를 이용하여 스팟 성분과 감쇠 성분을 산출하여 출력하는 단계; (c) 상기 정규화된 광원 벡터와 상기 정규화된 법선 벡터를 내적한 후 1패스 산광을 곱하여 산광 성분을 산출하고, 상기 정규화된 반 벡터와 상 기 정규화된 법선 벡터를 내적하여 제1 반사광 성분을 산출하여 출력하는 단계; 및 (d) 상기 제1 반사광 성분과 상기 2패스 반사광을 곱하여 제2 반사광 성분을 산출하고, 상기 2패스 전역 주변광, 상기 스팟 성분, 상기 감쇠 성분, 상기 산광 성분, 상기 제2 반사광 성분 중 하나 이상을 이용하여 정점의 칼라 값을 산출하는 단계를 수행하되, 상기 (a) 단계 내지 상기 (d) 단계는 각각 7사이클마다 데이터를 입출력하는 프로그램을 기록한 기록 매체가 제공된다.
상기 (a) 단계는 상기 광원 파라미터를 이용하여 1패스 주변광을 산출하여 출력하는 단계를 더 포함하되, 상기 (c) 단계는 상기 감쇠 성분의 역수를 산출하여 상기 스팟 성분과 곱하여 광효과 성분을 산출하고, 상기 1패스 주변광과 상기 산광 성분을 합산하여 제1 광합산 성분을 산출하여 출력하는 단계를 더 포함할 수 있다.
상기 (d) 단계는 상기 광효과 성분, 상기 제1 광합산 성분, 상기 제2 반사광 성분을 합산하여 제2 광합산 성분을 더 산출하고, 상기 2패스 전역 주변광에 상기 제2 광합산 성분을 합산하여 정점에 대한 칼라 값으로 산출할 수 있다.
상기 감쇠 성분은 하기 수학식에 의해 산출될 수 있다.
Figure 112005042983038-pat00036
여기서, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이고, VPpl는 광원의 위치와 정점의 위치 사이의 거리를 나타내는 실수값이고,
Figure 112005042983038-pat00037
는 광원과 정점의 거리에 대한 절대값을 구하기 위한 함수일 수 있다.
상기 2패스 전역 주변광은 하기 수학식에 의해 산출될 수 있다.
Figure 112005042983038-pat00038
여기서, ecm은 물체의 방사되는 색상데이터이며, acm은 물체의 주변광에 대한 색상데이터이고, acs는 장면(Scene)의 주변광에 대한 색상데이터로서 상기 색상 데이터는 (R, G, B,
Figure 112005042983038-pat00039
) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
Figure 112005042983038-pat00040
는 각각 임의의 실수값일 수 있다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면들을 참조하여 상세히 설명하기로 한다.
또한, 본 명세서에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 동일 또는 유사한 개체를 구별하기 위한 것일 뿐 이에 의해 권리범위나 그 대상이 제한되는 것은 아니다.
도 2는 본 발명의 바람직한 일 실시예에 따른 조명 처리 장치의 블록도이고, 도 3은 본 발명의 바람직한 일 실시예에 따른 정규화부의 순서도이며, 도 4는 본 발명의 바람직한 일 실시예에 따른 스팟 및 감쇠 성분 산출부의 순서도이고, 도 5는 정점의 조명 효과를 주기 위해 사용되는 벡터들이 예시도이며, 도 6은 본 발명의 바람직한 일 실시예에 따른 벡터 내적부의 순서도이며, 도 7은 본 발명의 바람직한 일 실시예에 따른 정점 칼라 값 산출부의 순서도이다.
본 발명에 따른 조명 처리 장치(200)는 그래픽 라이브러리의 표준 중 하나인 오픈지엘(OpenGL ES)의 스펙(specification)의 규격에 의해 정의된 정점의 조명 처리 연산을 분할하여 최적화함으로써 정점의 조명 처리 속도를 개선시켰다. 이하의 설명에서는 하나의 임의의 정점에 대해 조명 효과를 주는 것을 중점으로 설명하고 있으나, 구현 방법에 따라 하나 이상의 정점에 대해 조명 처리를 병렬로 수행할 수도 있다. 또한, 이하에서는 광원이 하나인 경우를 중점으로 설명하고 있으나 하나 이상의 광원에 대해 정점에 조명 처리를 수행할 수도 있음은 자명하다. 또한, 본 발명에 따른 조명 처리 장치(200)는 정규화부(210), 스팟 및 감쇠 성분 산출부(220), 벡터 내적부(230), 정잠 칼라 값 산출부(240)는 각기 7사이클(cycle) 단위로 수행되어 연산 결과를 출력할 수 있다. 또한, 각각의 장치들은 하나의 사이클마다 공유되지 않은 연산이 병렬로 수행될 수 있다. 이하에서, 사이클이란 각각의 장치들에 내부에 포함된 연산기들을 공유하지 않으면서 한번에 처리할 수 있는 연산의 모음으로 정의하도록 한다. 예를 들어, 단일 블록이 2개의 덧셈기와 하나의 곱셈기를 포함하고 있을 때,
Figure 112005042983038-pat00041
에 대한 연산을 수행하면, (a+b)와 (c+d)의 연산을 병렬적으로 한 사이클에서 수행 한 후 곱셈을 하여 결과를 출력할 수 있다. 즉, 2사이클이 소요가 된다. 그러나,
Figure 112005042983038-pat00042
의 경우, 순차적으로 3사이클이 소요되게 된다. 즉, 본 발명에 따른 조명 처리 장치(200)는 오픈 지엘(OpenGL) 스펙(specification)에 정의된 정점에 대한 조명 처리 연산을 7사이클 단위로 분할하여 하나의 정점에 대한 조명 처리 후 칼라 값을 7사이클마다 산출 할 수 있다. 또한, 각각의 장치들은 각기 장치에서 수행된 연산 결과를 저장하기 위한 임시 레지스터(미도시)를 포함하며, 데이터 입출력을 위해 제어부(260)의 제어에 의해 임시 레지스터에 저장된 데이터를 동시에 파이프라인 레지스터(250a, 250b, 250c)로 전달할 수 있다.
도 2를 참조하면, 본 발명에 따른 조명 처리 장치(200)는 정규화부(210), 스팟 및 감쇠 성분 산출부(220), 벡터 내적부(230), 정점 칼라 값 산출부(240), 파이프라인 레지스터(250a, 250b, 250c), 제어부(260)로 포함하여 구성된다.
정규화부(210)는 제어부(260)의 제어에 의해 조명 효과를 줄 데이터를 입력받아 데이터들의 전처리 과정(예를 들어, 광원 파라미터를 이용하여 1패스 산광, 1패스 주변광, 2패스 전역 주변광, 2패스 반사광을 산출)을 수행하고, 법선 벡터(
Figure 112005042983038-pat00043
)와 광원 벡터(
Figure 112005042983038-pat00044
)의 정규화 과정을 수행한다. 예를 들어, 정규화부(210)는 정점(Vertex)의 좌표 값, 법선(Normal) 벡터 값, 광원 파라미터(Lighting parameter) 등을 입력받는다. 여기서, 광원 파라미터는 방사 매개변수, 산광(diffuse) 매개변수, 주변광(ambient) 매개변수, 반사광(specular) 매개변수, 광원의 위치 데이터(즉, 광원의 좌표 데이터) 등 중 적어도 어느 하나를 포함할 수 있다.
도 3은 본 발명의 바람직한 일 실시예에 따른 정규화부(210)의 처리과정을 나타낸 순서도이다. 도 3을 참조하여, 정규화부(210)의 처리과정을 설명하면, 단계 310에서 정규화부(210)는 제어부(260)의 제어에 의해 광원 파라미터, 법선 벡터(
Figure 112005042983038-pat00045
), 정점의 데이터(예를 들어, 정점의 좌표 값) 등을 입력받는다. 예를 들어, 정규화부(210)는 그래픽 처리 장치(미도시)로부터 광원 파라미터, 법선 벡터(
Figure 112005042983038-pat00046
), 정점의 데이터 등을 입력받을 수 있다.
단계 320에서 정규화부(210)는 법선 벡터(
Figure 112005042983038-pat00047
)를 크기가 1인 단위 벡터로 정규화한다.
단계 330에서 정규화부(210)는 광원의 위치와 정점의 위치(즉, 좌표)를 이용하여 광원 벡터(
Figure 112005042983038-pat00048
)를 구하여 크기가 1인 단위 벡터로 정규화한다. 또한, 정규화부(210)는 광원 파라미터를 이용하여 정점에 대한 1패스 주변광을 산출한다. 여기서, 정규화부(210)가 산출하는 1패스 주변광(1pass ambient)은 주변광 매개변수를 이용하여 예를 들어 하기 수학식 2에 의해 산출되는 데이터 값으로서, 정점 칼라 값 산출부(240)에 의해 사용되는 데이터이다.
[수학식 2]
Figure 112005042983038-pat00049
여기서, acm(ambient color of material)은 물체의 주변광의 색상데이터의 값으로서 디폴트 값은 (0.2, 0.2, 0.2 1.0)이고, acl(ambient intensity of light)은 조명의 주변광 명암에 대한 색상데이터의 값으로서 디폴트 값은 (0.0, 0.0, 0.0, 1.0)이다. 여기서, 색상데이터는 (R, G, B,
Figure 112005042983038-pat00050
) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
Figure 112005042983038-pat00051
는 각각 임의의 실수값일 수 있다. 이하 본 명세서에서는 색상데이타의 디폴트값만을 예시하고 있으나 각 성분값은 설계 기준 또는 필요에 따라 변경될 수 있음은 자명하다.
단계 340에서 정규화부(210)는 2패스 전역 주변광(2 pass global ambient)을 산출하고, 1패스 산광(1 pass diffuse)을 산출한다. 여기서, 2패스 전역 주변광은 광원 매개변수를 이용하여 예를 들어 하기 수학식3에 의해 산출되는 데이터 값으로서, 정점 칼라 값 산출부(240)에서 정점 칼라 값 산출을 위해 사용되는 데이터이다. 그리고, 1패스 산광은 산광 매개변수를 이용하여 예를 들어 하기 수학식4에 의해 산출되는 데이터 값으로서, 벡터 내적부(230)에서 사용되는 데이터이다.
[수학식 3]
Figure 112005042983038-pat00052
여기서, ecm(emissive color of material)은 물체(material)의 방사되는 색상데이터의 값으로서 디폴트 값은 (0.0, 0.0, 0.0, 1.0)이고, acm(ambient color of material)은 물체의 주변광에 대한 색상데이터의 값으로서 디폴트 값은 (0.2, 0.2, 0.2, 1.0)이며, acs(ambient color of scene)는 장면(Scene)의 주변광에 대한 색상데이터의 값으로서 디폴트 값은 (0.2, 0.2, 0.2, 1.0)이다.
[수학식 4]
Figure 112005042983038-pat00053
여기서, dcm(diffuse color of material)은 물체의 산광 색상데이터의 값으로서 디폴트 값은 (0.2, 0.2, 0.2, 01)이며, dcl(diffuse intensity of light)은 산광의 명암 색상데이터의 값으로 디폴트 값은 (0.0, 0.0, 0.0, 1.0)이다.
단계 350에서 정규화부(210)는 광원 파라미터를 이용하여 정점에 대한 2패스 반사광(2pass specular)을 산출한다. 여기서, 2패스 반사광은 반사광 매개변수를 이용하여 예를 들어 하기 수학식 5에 의해 산출되는 데이터 값으로서, 정점 칼라 값 산출부(240)에 의해 사용되는 데이터이다.
[수학식 5]
Figure 112005042983038-pat00054
여기서, scm(specular color of material)은 물체의 주변광의 색상데이터의 값으로서 디폴트 값은 (0.2, 0.2, 0.2 1.0)이고, scl(specular intensity of light)은 조명의 주변광 명암에 대한 색상데이터의 값으로서 디폴트 값은 (0.0, 0.0, 0.0, 1.0)이다.
이와 같이, 정규화부(210)에서 1패스 산광, 1패스 주변광, 2패스 반사광을 산출하여 스팟 및 감쇠 성분 산출부(220), 벡터 내적부(230) 등으로 파이프라인 레지스터(250)를 통해 전달함으로써 파이프라인 레지스터의 수를 줄일 수 있는 효과 가 있다. 예를 들어, 정규화부(210)에서 1패스 산광, 1패스 주변광, 2패스 반사광을 산출하지 않고 매개변수로 전달하는 경우, 6개의 매개 변수는 3개의 성분(R,G,B)으로 구성되어 있어, 총 18개의 추가적인 파이프라인 레지스터를 필요로 한다. 그러나, 정규화부(210)에서 1패스 산광, 1패스 주변광, 2패스 반사광을 산출하여 전달함으로써, 총 9개의 파이프라인 레지스터만 추가하면 된다. 결과적으로, 정규화부(210)에서 1패스 산광, 1패스 주변광, 2패스 반사광 등의 연산을 미리 수행하여 전달함으로서 추가적인 파이프라인 레지스터의 수를 절반으로 줄일 수 있는 잇점이 있다.
상술한 바와 같이 정규화부(210)는 법선 벡터(
Figure 112005042983038-pat00055
), 광원 벡터(
Figure 112005042983038-pat00056
)를 산출하여 정규화하고 1패스 주변광, 1패스 산광, 2패스 반사광, 2패스 전역 주변광을 산출하여, 정점 데이터, 광원 파라미터(예를 들어, 스팟광의 단위 벡터, 스팟광의 중심과 외곽과의 빛의 세기의 차이를 설정하기 매개변수, 광원 위치 데이터 등)등과 함께 제어부(260)의 제어에 의해 파이프라인 레지스터(250a)를 통해 스팟 및 감쇠 성분 산출부(220)로 전달한다.
다시 도 2를 참조하여, 스팟 및 감쇠 성분 산출부(220)는 광원 벡터(
Figure 112005042983038-pat00057
)와 시야 벡터(
Figure 112005042983038-pat00058
)를 이용하여 반 벡터(
Figure 112005042983038-pat00059
)를 산출하고, 광원 파라미터를 이용하여 스팟 성분과 제1 감쇠 성분을 산출하여 제어부(260)의 제어에 의해 파이프라인 레지스터(250b)를 통해 벡터 내적부(230)로 출력한다. 이하 도 4를 참조하여 스팟 및 감쇠 성분 산출부(220)의 수행 과정에 대해 상세히 설명하도록 한다.
도 4에서 보여지는 바와 같이, 단계 410에서 스팟 및 감쇠 성분 산출부(220)는 고정된 시야 벡터(
Figure 112005042983038-pat00060
)와 광원 벡터(
Figure 112005042983038-pat00061
)를 더하여 반 벡터(
Figure 112005042983038-pat00062
)를 산출하여 정규화한다. 이해와 설명의 편의를 위해 도 5를 참조하여 정점의 조명 효과에 사용되는 벡터들에 대해 간략히 설명하도록 한다. 도 5에서 보여지는 바와 같이, 반 벡터(
Figure 112005042983038-pat00063
)는 광원 벡터(
Figure 112005042983038-pat00064
)와 시야 벡터(
Figure 112005042983038-pat00065
)의 합에 의해 산출될 수 있다. 여기서,
Figure 112005042983038-pat00066
은 법선 벡터이고,
Figure 112005042983038-pat00067
은 광원 벡터(
Figure 112005042983038-pat00068
)의 반사 벡터이다. 반 벡터(
Figure 112005042983038-pat00069
)를 산출하기 위해 시야 벡터 (
Figure 112005042983038-pat00070
)를 산출하여 광원 벡터(
Figure 112005042983038-pat00071
)와 더하여 산출하여야 하나, 오픈지엘(OpenGL)에서는 시야 벡터(
Figure 112005042983038-pat00072
)가 고정(즉, 미리 지정되어)되어 있으므로(예를 들어, 디폴트 값(0.0, 0.0, 1.0)) 고정된(미리 지정된) 상수 값을 이용하여 반 벡터(
Figure 112005042983038-pat00073
)를 산출할 수 있다.
단계 420에서 스팟 및 감쇠 성분 산출부(220)는 광원 벡터(
Figure 112005042983038-pat00074
)와 광원 파라미터(예를 들어, 스팟 광의 단위 방향 벡터, 스팟광의 중심과 외곽과의 빛의 세기의 차이를 설정하기 위한 매개변수 등)를 이용하여 스팟 성분(Spot term)을 산출한다. 예를 들어, 스팟 및 감쇠 성분 산출부(220)는 광원 벡터(
Figure 112005042983038-pat00075
)와 스팟 광의 단위 방향 벡터를 내적하고, 중심과 외곽과의 빛의 세기 차이를 설정하기 위해 임의의 실수값의 승수를 계산하여 스팟 성분을 산출할 수 있다. 예를 들어, 스팟 및 감쇠 성분 산출부(220)는 하기 수학식6을 이용하여 스팟 성분을 산출할 수 있다.
[수학식 6]
Figure 112005042983038-pat00076
여기서,
Figure 112005042983038-pat00077
은 광원 벡터이며,
Figure 112005042983038-pat00078
(the unit vector in direction of spotlight for light)은 스팟광의 단위 방향 벡터로서 디폴트 값은 (0.0, 0.0, -1.0)이고, srl(spotlight exponent for light)은 스팟광의 중심과 외곽과의 빛의 세기의 차이를 설정하기 위한 실수값이다.
단계 430에서 스팟 및 감쇠 성분 산출부(220)는 광원 파라미터와 정점 데이터를 이용하여 정점과 광원의 거리에 따라 감쇠되는 제1 감쇠 성분(Attenuation term)을 산출한다. 예를 들어, 스팟 및 감쇠 성분 산출부(220)는 하기 수학식 7을 이용하여 제1 감쇠 성분을 산출할 수 있다.
[수학식 7]
Figure 112005042983038-pat00079
여기서, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이며, VPpl는 광원의 위치와 정점의 위치 사이의 거리를 나타내는 실수값이고,
Figure 112005042983038-pat00080
는 광원과 정점의 거리에 대한 절대값을 구하기 위한 함수이다.
이와 같이, 스팟 및 감쇠 성분 산출부(220)는 광원 벡터(
Figure 112005042983038-pat00081
)와 시야 벡터 (
Figure 112005042983038-pat00082
)를 이용하여 반 벡터(
Figure 112005042983038-pat00083
)를 산출하여 정규화하고, 스팟 성분 또는 제1 감쇠 성분을 산출하여 제어부(260)의 제어에 의해 파이프라인 레지스터(250b)를 통해 벡터 내적부(230)로 전달한다.
다시 도 2를 참조하여, 벡터 내적부(230)는 제어부(260)의 제어에 의해 스팟 및 감쇠 성분 산출부(220)를 통해 입력된 법선 벡터(
Figure 112005042983038-pat00084
), 광원 벡터(
Figure 112005042983038-pat00085
), 반 벡터(
Figure 112005042983038-pat00086
)를 이용하여 내적 연산을 수행하고 산광 성분, 제1 반사광 성분, 광효과 성분, 제1 광합산 성분을 산출하여 제어부(260)의 제어에 의해 파이프라인 레지스터(250c)를 통해 정점 칼라 값 산출부(240)로 전달한다. 이하에서, 도 6을 참조하여 벡터 내적부의 수행 과정을 상세히 설명하도록 한다.
도 6에서 보여지는 바와 같이, 단계 610에서 벡터 내적부(230)는 스팟 및 감쇠 성분 산출부(220)에서 산출되어 입력된 제1 감쇠 성분의 역수를 구하여 제2 감쇠 성분을 산출한다.
단계 620에서 벡터 내적부(230)는 법선 벡터(
Figure 112005042983038-pat00087
)와 광원 벡터(
Figure 112005042983038-pat00088
)를 내적한 후 1패스 산광을 곱하여 산광 성분을 산출한다. 예를 들어, 벡터 내적부(230)는 하기 수학식8을 이용하여 산광 성분을 산출할 수 있다.
[수학식 8]
Figure 112005042983038-pat00089
여기서,
Figure 112005042983038-pat00090
는 광원 벡터이고,
Figure 112005042983038-pat00091
은 법선 벡터이다.
단계 630에서 벡터 내적부(230)는 제2 감쇠 성분과 스팟 및 감쇠 성분 산출부(220)로부터 산출되어 입력된 스팟 성분을 곱하여 광효과 성분을 산출한다.
단계 640에서 벡터 내적부(230)는 반 벡터(
Figure 112005042983038-pat00092
) 와 법선 벡터(
Figure 112005042983038-pat00093
)를 내적하여 제1 반사광 성분을 산출한다. 또한, 벡터 내적부(230)는 1패스 주변광과 산광 성분을 더하여 제1 광합산 성분을 산출한다.
제1 반사광 성분을 계산하기 위해 반사광 매개변수(예를 들어, 반사광 색상 데이터, 물체(material)의 반사광 특성 데이터(예를 들어, 물체의 반사광 색상 데이터)), 도 5의
Figure 112005042983038-pat00094
(즉, 시야 벡터(
Figure 112005042983038-pat00095
)와 광원 벡터(
Figure 112005042983038-pat00096
)의 반사 벡터(
Figure 112005042983038-pat00097
)를 내적한 후 반사광의 멱수를 계산하여)을 구하여 곱으로 계산하여야 한다. 그러나, 오픈지엘(OpenGL)에서는 계산을 용이하게 하기 위해
Figure 112005042983038-pat00098
(즉, 반 벡터(
Figure 112005042983038-pat00099
)와 법선 벡터(
Figure 112005042983038-pat00100
)의 내적을 구한 후 반사광 멱수를 계산하여)을 구하여 계산한다. 따라서, 광원 벡터(
Figure 112005042983038-pat00101
)와 시야 벡터(
Figure 112005042983038-pat00102
)의 합의 벡터인 반 벡터(
Figure 112005042983038-pat00103
)를 구한 후 반 벡터(
Figure 112005042983038-pat00104
)를 단위 벡터로 만들고, 반 벡터(
Figure 112005042983038-pat00105
)와 법선 벡터(
Figure 112005042983038-pat00106
)를 내적하여 제1 반사광 성분을 산출한다. 여기서, 반 벡터(
Figure 112005042983038-pat00107
)와 법선 벡터(
Figure 112005042983038-pat00108
)의 사이의 각은
Figure 112005042983038-pat00109
/2 이 된다. 여기서,
Figure 112005042983038-pat00110
는 각도를 나타내는 데이터로서 실수값이다 (도 5 참조).
이와 같이, 벡터 내적부(230)는 제2 감쇠 성분, 산광 성분, 광효과 성분, 제1 반사광 성분을 산출하여 제어부(260)의 제어에 의해 파이프라인 레지스터(250c)를 통해 정점 칼라 값 산출부(240)로 전달한다.
다시 도 2를 참조하면, 정점 칼라 값 산출부(240)는 2패스 반사광과 제1 반사광 성분을 이용하여 제2 반사광 성분을 산출하고, 2패스 전역 주변광, 광효과 성분, 제1 광합산 성분, 제2 반사광 성분을 더하여 정점에 대해 칼라 값을 산출하여 출력한다. 예를 들어, 정점 칼라 값 산출부(240)는 정점의 칼라 값을 산출하여 그래픽 처리 장치(미도시)로 출력할 수 있다. 이하에서, 도 7을 참조하여 본 발명에 따른 정점 칼라 값 산출부(240)의 수행 과정을 상세히 설명하도록 한다.
도 7을 참조하면, 단계 710에서 정점 칼라 값 산출부(240)는 벡터 내적부(230)로부터 산출되어 입력된 제1 반사광 성분과 정규화부(210)로부터 산출되어 입력된 2패스 반사광을 이용하여 제2 반사광 성분을 산출한다. 예를 들어, 정점 칼라 값 산출부(240)는 하기 수학식9를 이용하여 제2 반사광 성분을 산출할 수 있다.
[수학식 9]
Figure 112005042983038-pat00111
여기서, srm은 반사광의 빛의 세기를 설정하기 위한 실수값으로, 디폴트 값은 0.0이고 범위는 0.0 이상에서 128.0 이하 사이의 실수값이다.
단계 720에서 정점 칼라 값 산출부(240)는 광효과 성분, 제1 광합산 성분, 제2 반사광 성분을 합산하여 제2 광합산 성분을 산출한다.
여기서, 만일 추가 광원이 있는 존재하는 경우(즉, 광원이 둘 이상인 경우), 정점 칼라 값 산출부(240)는 제2 광합산 성분에 광효과 성분, 제1 광합산 성분, 제2 반사광 성분을 계속해서 누적한다.
단계 730에서 정점 칼라 값 산출부(240)는 2패스 전역 주변광과 제2 광합산 성분을 합산하여 정점의 칼라 값을 산출하여 출력한다. 예를 들어, 정점 칼라 값 산출부(240)는 정점의 칼라 값을 그래픽 처리 장치(미도시)로 출력할 수 있다.
다시 도 2를 참조하면, 파이프라인 레지스터(250a, 250b, 250c)는 제어부(260)의 제어에 의해 정규화부(210), 스팟 및 감쇠 성분 산출부(220), 벡터 내적부(230), 정점 칼라 값 산출부(240) 사이에 위치하여 데이터를 입출력하는 기능을 수행한다.
제어부(260)는 정규화부(210), 스팟 및 감쇠 성분 산출부(220), 벡터 내적부(230), 정점 칼라 값 산출부(240) 각기 장치들의 연산 순서 및 각기 장치들간의 데이터 입출력을 제어한다.
상술한 바와 같이, 본 발명에 따른 정점 조명 처리 장치(200)는 조명 처리 연산을 분할하여 하나의 정점에 대해 조명 처리를 수행하고 있는 과정에서 다음 정점에 대해 조명 처리를 수행할 수 있다. 따라서, 본 발명에 따른 정점의 조명 처리 장치(200)는 7사이클 마다 하나의 정점에 대해 조명 처리를 수행할 수 있다.
상술한 바와 같이, 본 발명에 따른 조명 처리 장치를 제공함으로써, 조명 처리 연산을 분할 및 분산하여 각각의 장치에서 7사이클 마다 데이터 입출력이 가능하도록 함으로써, 정점의 조명 처리 연산을 최적화하여 수행 속도가 4배 이상 빠른 효과가 있다.
또한, 본 발명은 하나의 정점에 대해 조명 처리 연산을 수행하고 있는 과정에서 다음 정점에 대한 조명 처리 연산을 수행할 수 있는 효과가 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (24)

  1. 파이프라인 구조의 조명 처리 장치에 있어서,
    정점 데이터, 광원 파라미터, 법선 벡터를 입력받아 광원 벡터를 산출하고, 상기 광원 벡터와 상기 법선 벡터를 정규화하며, 상기 광원 파라미터를 이용하여 2패스 전역 주변광을 산출하여 출력하는 정규화부;
    미리 지정된 시야 벡터와 상기 정규화된 광원 벡터의 합 벡터인 반 벡터를 산출하고, 상기 광원 파라미터와 상기 정규화된 광원 벡터를 이용하여 스팟 성분 및 감쇠 성분을 산출하여 출력하는 스팟 및 감쇠 성분 산출부;
    상기 정규화된 광원 벡터와 상기 정규화된 반 벡터 중 어느 하나와 상기 정규화된 법선 벡터를 내적하여 산광 성분과 제1 반사광 성분을 산출하여 출력하는 벡터 내적부; 및
    상기 제1 반사광 성분을 이용하여 제2 반사광 성분을 산출하고, 상기 2패스 전역 주변광, 상기 스팟 성분, 상기 감쇠 성분, 상기 산광 성분, 상기 제2 반사광 성분 중 하나 이상을 이용하여 정점 칼라 데이터를 산출하는 정점 칼라 값 산출부를 포함하는 정점 조명 처리 장치.
  2. 제 1항에 있어서,
    상기 광원 파라미터는 방사 매개변수, 주변광 매개변수, 산광 매개변수, 반 사광 매개변수, 스팟광 매개변수, 광원의 위치 데이터 중 하나 이상인 정점 조명 처리 장치.
  3. 제 1항에 있어서,
    상기 정규화부는 상기 광원 파라미터를 이용하여 1패스 주변광, 1패스 산광, 2패스 반사광 중 하나 이상을 산출하여 출력하되,
    상기 벡터 내적부는 상기 정규화된 광원 벡터와 상기 정규화된 법선 벡터를 내적한 후 상기 1패스 산광을 이용하여 산출하며, 상기 감쇠 성분의 역수를 산출하여 상기 스팟 성분과 곱하여 광효과 성분을 산출하고, 상기 산광 성분과 상기 1패스 주변광을 합하여 제1 광합산 성분을 산출하여 출력하는 정점 조명 처리 장치.
  4. 제 3항에 있어서,
    상기 정점 칼라 값 산출부는 상기 제1 광합산 성분, 상기 광효과 성분, 상기 반사광을 합산하여 제2 광합산 성분을 더 산출하며, 상기 2패스 전역 주변광에 상기 제2 광합산 성분을 합산하여 정점의 칼라 데이터로 산출하는 정점 조명 처리 장치.
  5. 제 1항에 있어서,
    상기 정규화부, 상기 스팟 및 감쇠 성분 산출부, 상기 벡터 내적부, 상기 정점 칼라 값 산출부 사이에 데이터 입출력을 담당하는 파이프라인 레지스터를 더 포함하는 정점 조명 처리 장치.
  6. 제 5항에 있어서,
    상기 정규화부는 상기 1패스 주변광, 상기 1패스 산광, 상기 2패스 전역 주변광, 상기 2패스 반사광 중 하나 이상을 미리 산출하여 출력함으로써 상기 파이프라인 레지스터의 수를 줄이는 정점 조명 처리 장치.
  7. 제2항 또는 제 3항에 있어서,
    상기 1패스 산광은 상기 산광 매개변수를 이용하여 하기의 수학식에 의해 산출되는 정점 조명 처리 장치.
    Figure 112005042983038-pat00112
    여기서, dcm은 산광의 색상 데이터이며, dcl은 산광의 명암을 나타내는 색상 데이터로서, 상기 색상 데이터는 (R, G, B,
    Figure 112005042983038-pat00113
    ) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
    Figure 112005042983038-pat00114
    는 각각 임의의 실수값임.
  8. 제2항 또는 제 3항에 있어서,
    상기 1패스 주변광은 상기 주변광 매개 변수를 이용하여 하기의 수학식에 의해 산출되는 정점 조명 처리 장치.
    Figure 112005042983038-pat00115
    여기서, acm은 주변광의 색상 데이터이며, acl은 주변광의 명암을 나타내는 색상 데이터로서 상기 색상 데이터는 (R, G, B,
    Figure 112005042983038-pat00116
    ) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
    Figure 112005042983038-pat00117
    는 각각 임의의 실수값임.
  9. 제2항 또는 제 3항에 있어서,
    상기 2패스 반사광은 상기 반사광 매개 변수를 이용하여 하기의 수학식에 의해 산출되는 정점 조명 처리 장치.
    Figure 112005042983038-pat00118
    여기서, scm은 반사광의 색상 데이터이며, scl은 반사광의 명암을 나타내는 색상 데이터로서 상기 색상 데이터는 (R, G, B,
    Figure 112005042983038-pat00119
    ) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
    Figure 112005042983038-pat00120
    는 각각 임의의 실수값임.
  10. 제 1항에 있어서,
    상기 2패스 전역 주변광은 하기의 수학식을 이용하여 산출되는 정점 조명 처리 장치.
    Figure 112005042983038-pat00121
    여기서, ecm은 물체(material)의 방사광의 색상 데이터이며, acm은 물체의 주변광 색상 데이터이고, acs는 장면(Scene)의 주변광 색상 데이터로서 상기 색상 데이터는 (R, G, B,
    Figure 112005042983038-pat00122
    ) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
    Figure 112005042983038-pat00123
    는 각각 임의의 실수값임.
  11. 제 1항에 있어서,
    상기 스팟 및 감쇠 성분 산출부는 하기 수학식을 이용하여 상기 감쇠 성분을 산출하는 정점 조명 처리 장치.
    Figure 112005042983038-pat00124
    여기서, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이고, VPpl는 광원의 위치와 정점의 위치 사이의 거리를 나타내는 실수값이고,
    Figure 112005042983038-pat00125
    는 광원과 정점의 거리에 대한 절대값을 구하기 위한 함수임.
  12. 제 1항에 있어서,
    상기 스팟 및 감쇠 성분 산출부는 하기 수학식을 이용하여 상기 스팟 성분을 산출하는 정점 조명 처리 장치.
    Figure 112005042983038-pat00126
    여기서,
    Figure 112005042983038-pat00127
    는 광원 벡터이며,
    Figure 112005042983038-pat00128
    은 스팟광의 단위 방향 벡터이고, srl는 스팟광의 중심과 외곽과의 빛의 세기의 차이를 설정하기 위한 실수값임.
  13. 제 1항에 있어서,
    상기 벡터 내적부는 하기 수학식에 의해 상기 산광 성분을 산출하는 정점 조명 처리 장치.
    Figure 112005042983038-pat00129
    여기서,
    Figure 112005042983038-pat00130
    는 광원 벡터이고,
    Figure 112005042983038-pat00131
    은 법선 벡터임.
  14. 파이프라인 구조의 조명 처리 장치에서 수행되는 정점에 대해 조명 처리하는 방법에 있어서,
    (a) 정점 데이터, 광원 파라미터, 법선 벡터를 입력받아 광원 벡터를 산출하고, 상기 광원 벡터와 상기 법선 벡터를 정규화하며, 상기 광원 파라미터를 이용하여 1패스 산광, 2패스 반사광, 2패스 전역 주변광 중 하나 이상을 산출하여 출력하는 단계- 상기 광원 파라미터는 방사 매개변수, 주변광 매개변수, 산광 매개변수, 반사광 매개변수, 스팟광 매개변수, 광원의 위치 데이터 중 하나 이상임-;
    (b) 미리 지정된 시야 벡터와 상기 정규화된 광원 벡터를 이용하여 반 벡터를 산출하고, 상기 정점 데이터 및 상기 광원 파라미터를 이용하여 스팟 성분과 감쇠 성분을 산출하여 출력하는 단계;
    (c) 상기 광원 벡터와 상기 법선 벡터를 내적하고 상기 1패스 산광을 이용하여 산광 성분을 산출하고, 상기 반 벡터와 상기 법선 벡터를 내적하여 제1 반사광 성분을 산출하여 출력하는 단계; 및
    (d) 상기 제1 반사광 성분과 2패스 반사광을 이용하여 제2 반사광 성분을 산출하고, 상기 2패스 전역 주변광, 상기 스팟 성분, 상기 감쇠 성분, 상기 산광 성분, 상기 제2 반사광 성분 중 하나 이상을 이용하여 정점에 대한 칼라 값을 산출하 는 단계를 포함하되,
    상기 (a) 단계 내지 상기 (d) 단계는 각각 7사이클 마다 데이터를 입출력하는 것을 특징으로 하는 정점의 조명 처리 방법.
  15. 제 14항에 있어서,
    상기 (a) 단계는 상기 광원 파라미터를 이용하여 1패스 주변광을 산출하여 출력하는 단계를 더 포함하되,
    상기 (b) 단계는 상기 감쇠 성분의 역수를 산출하고, 상기 감쇠 성분의 역수와 상기 스팟 성분을 곱하여 광효과 성분을 산출하며, 상기 1패스 주변광과 상기 산광을 합산하여 제1 광합산 성분을 산출하여 출력하는 단계를 더 포함하는 정점의 조명 처리 방법.
  16. 제 15항에 있어서,
    상기 (d) 단계는 상기 광효과 성분, 상기 제1 광합산 성분, 상기 제2 반사광 성분을 합산하여 제2 광합산 성분을 더 산출하며, 상기 2패스 전역 주변광에 상기 제2 광합산 성분을 합산하여 상기 정점의 칼라 값으로 산출하는 정점의 조명 처리 방법.
  17. 제 14항에 있어서,
    상기 감쇠 성분은 하기의 수학식을 이용하여 산출되는 정점의 조명 처리 방법.
    Figure 112005042983038-pat00132
    여기서, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이고, VPpl는 광원의 위치와 정점의 위치 사이의 거리를 나타내는 실수값이고,
    Figure 112005042983038-pat00133
    는 광원과 정점의 거리에 대한 절대값을 구하기 위한 함수임.
  18. 제 14항에 있어서,
    상기 2패스 전역 주변광은 하기 수학식에 의해 산출되는 정점의 조명 처리 방법.
    Figure 112005042983038-pat00134
    여기서, ecm은 물체의 방사되는 색상데이터이며, acm은 물체의 주변광에 대한 색상데이터이고, acs는 장면(Scene)의 주변광에 대한 색상데이터로서 상기 색상 데 이터는 (R, G, B,
    Figure 112005042983038-pat00135
    ) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
    Figure 112005042983038-pat00136
    는 각각 임의의 실수값임.
  19. 제 14항에 있어서,
    상기 산광 성분은 하기 수학식에 의해 산출되는 정점에 대한 조명 처리 방법.
    Figure 112005042983038-pat00137
    여기서,
    Figure 112005042983038-pat00138
    는 광원 벡터이고,
    Figure 112005042983038-pat00139
    은 법선 벡터임.
  20. 파이프라인 구조의 조명 처리 장치에서 수행되는 정점에 대해 조명 처리하는 방법을 수행하기 위해 디지털 처리 장치에 의해 실행될 수 있는 명령어의 프로그램이 유형적으로 구현되어 있으며, 상기 디지털 처리 장치에 의해 판독될 수 있는 프로그램을 기록한 기록매체에 있어서,
    (a) 정점 데이터, 법선 벡터, 광원 파라미터를 입력받아 광원 벡터를 산출하고, 상기 광원 벡터와 상기 법선 벡터를 정규화하며, 상기 광원 파라미터를 이용하여 1패스 산광, 2패스 반사광, 2패스 전역 주변광을 산출하여 출력하는 단계;
    (b) 미리 지정된 시야 벡터와 상기 광원 벡터의 합 벡터인 반 벡터를 산출하며, 상기 광원 파라미터와 상기 정규화된 광원 벡터를 이용하여 스팟 성분과 감쇠 성분을 산출하여 출력하는 단계;
    (c) 상기 정규화된 광원 벡터와 상기 정규화된 법선 벡터를 내적한 후 1패스 산광을 곱하여 산광 성분을 산출하고, 상기 정규화된 반 벡터와 상기 정규화된 법선 벡터를 내적하여 제1 반사광 성분을 산출하여 출력하는 단계; 및
    (d) 상기 제1 반사광 성분과 상기 2패스 반사광을 곱하여 제2 반사광 성분을 산출하고, 상기 2패스 전역 주변광, 상기 스팟 성분, 상기 감쇠 성분, 상기 산광 성분, 상기 제2 반사광 성분 중 하나 이상을 이용하여 정점의 칼라 값을 산출하는 단계를 수행하되,
    상기 (a) 단계 내지 상기 (d) 단계는 각각 7사이클마다 데이터를 입출력하는 프로그램을 기록한 기록 매체.
  21. 제 20항에 있어서,
    상기 (a) 단계는 상기 광원 파라미터를 이용하여 1패스 주변광을 산출하여 출력하는 단계를 더 포함하되,
    상기 (c) 단계는 상기 감쇠 성분의 역수를 산출하여 상기 스팟 성분과 곱하여 광효과 성분을 산출하고, 상기 1패스 주변광과 상기 산광 성분을 합산하여 제1 광합산 성분을 산출하여 출력하는 단계를 더 포함하는 프로그램을 기록한 기록 매 체.
  22. 제 21항에 있어서,
    상기 (d) 단계는 상기 광효과 성분, 상기 제1 광합산 성분, 상기 제2 반사광 성분을 합산하여 제2 광합산 성분을 더 산출하고, 상기 2패스 전역 주변광에 상기 제2 광합산 성분을 합산하여 정점에 대한 칼라 값으로 산출하는 프로그램을 기록한 기록 매체.
  23. 제 20항에 있어서,
    상기 감쇠 성분은 하기 수학식에 의해 산출되는 프로그램을 기록한 기록 매체.
    Figure 112005042983038-pat00140
    여기서, k0는 GL_CONSTANT_ATTENUATION, k1은 GL_LINEAR_ATTENUATION, K2는 GL_QUADRATIC_ATTENUATION이고, VPpl는 광원의 위치와 정점의 위치 사이의 거리를 나타내는 실수값이고,
    Figure 112005042983038-pat00141
    는 광원과 정점의 거리에 대한 절대값을 구하기 위한 함수임.
  24. 제 20항에 있어서,
    상기 2패스 전역 주변광은 하기 수학식에 의해 산출되는 프로그램을 기록한 기록 매체.
    Figure 112005042983038-pat00142
    여기서, ecm은 물체의 방사되는 색상데이터이며, acm은 물체의 주변광에 대한 색상데이터이고, acs는 장면(Scene)의 주변광에 대한 색상데이터로서 상기 색상 데이터는 (R, G, B,
    Figure 112005042983038-pat00143
    ) 형태로 구성될 수 있으며, 각각의 성분값인 R, G, B,
    Figure 112005042983038-pat00144
    는 각각 임의의 실수값임.
KR1020050071127A 2005-08-03 2005-08-03 3차원 그래픽 조명 처리 장치 및 그 방법 KR100653946B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050071127A KR100653946B1 (ko) 2005-08-03 2005-08-03 3차원 그래픽 조명 처리 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050071127A KR100653946B1 (ko) 2005-08-03 2005-08-03 3차원 그래픽 조명 처리 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR100653946B1 true KR100653946B1 (ko) 2007-02-28

Family

ID=38103711

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050071127A KR100653946B1 (ko) 2005-08-03 2005-08-03 3차원 그래픽 조명 처리 장치 및 그 방법

Country Status (1)

Country Link
KR (1) KR100653946B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10334697B2 (en) 2015-10-05 2019-06-25 Samsung Electronics Co., Ltd. Method and device for displaying illumination

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010022270A (ko) * 1997-07-25 2001-03-15 추후제출 다면 또는 접힌 경로 라이팅 시스템의 신속한프로토타이핑 방법
KR20050035069A (ko) * 2003-10-10 2005-04-15 마이크로소프트 코포레이션 자연적인 조명 환경에서의 물체들의 실시간 재조명을 위한견고한 샘플링을 위한 시스템 및 방법
KR20050051677A (ko) * 2003-03-26 2005-06-01 마츠시다 덴코 가부시키가이샤 가상의 3차원 조명 장면을 생성하는 시뮬레이션 방법,프로그램 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010022270A (ko) * 1997-07-25 2001-03-15 추후제출 다면 또는 접힌 경로 라이팅 시스템의 신속한프로토타이핑 방법
KR20050051677A (ko) * 2003-03-26 2005-06-01 마츠시다 덴코 가부시키가이샤 가상의 3차원 조명 장면을 생성하는 시뮬레이션 방법,프로그램 및 시스템
KR20050035069A (ko) * 2003-10-10 2005-04-15 마이크로소프트 코포레이션 자연적인 조명 환경에서의 물체들의 실시간 재조명을 위한견고한 샘플링을 위한 시스템 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10334697B2 (en) 2015-10-05 2019-06-25 Samsung Electronics Co., Ltd. Method and device for displaying illumination

Similar Documents

Publication Publication Date Title
US8615542B2 (en) Multi-function floating point arithmetic pipeline
US6417858B1 (en) Processor for geometry transformations and lighting calculations
US5936629A (en) Accelerated single source 3D lighting mechanism
Nam et al. Power and area-efficient unified computation of vector and elementary functions for handheld 3D graphics systems
JP4435377B2 (ja) レンダリングパイプラインにおいてボリュームデータの勾配絶対値を用いてライティングの調整を行う調整装置及び調整方法
US5739820A (en) Method and apparatus for specular reflection shading of computer graphic images
US7324113B1 (en) Perspective correction computation optimization
KR19990072375A (ko) 고정소수점라이팅유닛의로컬눈벡터의고속계산
CN112189215B (zh) 用于在图形流水线中实现存储器使用减少的编译器辅助技术
JP2009505309A (ja) 拡張関数のための向上した浮動小数点演算部
US5912830A (en) System and method for conditionally calculating exponential values in a geometry accelerator
US7075530B2 (en) Fast lighting processors
US9852540B2 (en) Graphics lighting engine including log and anti-log units
WO2013109304A1 (en) Generating random sampling distributions using stochastic rasterization
EP1054347A2 (en) Method and apparatus for applying modulated lighting to volume data in a rendering pipeline
US7755636B1 (en) System, method and article of manufacture for a programmable processing model with instruction set
KR100653946B1 (ko) 3차원 그래픽 조명 처리 장치 및 그 방법
US5990894A (en) Method for implementing the power function DP and computer graphics system employing the same
US6891538B1 (en) Dual mode device and method for generating vector cross products or dot products
Nam et al. A low-power handheld GPU using logarithmic arithmetic and triple DVFS power domains
KR100649111B1 (ko) 3차원 그래픽 시스템의 연산장치 및 그 방법
Arnold et al. Implementing LNS using filtering units of GPUs
Nam et al. Unified computer arithmetic for handheld GPUs
EP0817130A2 (en) Apparatus and method for calculating specular lighting
Mantiuk et al. Acceleration of high dynamic range imaging pipeline based on multi-threading and SIMD technologies

Legal Events

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

Payment date: 20121011

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131017

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20141028

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20151029

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171030

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20181029

Year of fee payment: 13