상기 목적들을 달성하기 위하여, 본 발명의 쌍방향 3차원 공간 광 조명 방법은: 3차원(3D) 공간을 선택하는 단계; 상기 3차원 공간을 각각의 다각형(polygon)이 3개의 정점(vertex)을 구비하는 다수의 다각형들로 변환하는 단계; 각각의 다각형을 위한 배타적(exclusive) 색상을 정의하기 위하여 배타적 색상 코드(code)에 상응하는 각각의 다각형에 배타적 ID 번호를 부여하는 단계; 이미지(image) 추출(extracting) 장치로 광원(light source)을 모의실험(simulate)하고 상기 이미지 추출 장치가 상기 광원에 상응하는 좌표(coordinate)에서 다른 색상들로 정의되는 3차원 공간을 부여하고 이미지 셋트(set)를 획득하는 것을 가능하도록 플랫(flat) 차광(shading) 기법(technology)을 이용하는 단계; 각각의 다각형에 의해 수신되는 광의 양을 전달 및 계산하기 위하여 이미지 셋트에서 모든 배타적 색상을 위한 상응하는 분포를 분석하는 단계; 각각의 정점에 의해 평균 수신 광량을 계산하는 단계; 및 현재 시각 포인트(current view point)로 상기 이미지 추출 장치를 모의실험하고 상기 현재 시각 포인트로부터 보이는 광원에 의해 3차원 공간 조명에 의해 생성되는 광 음영 효과(shading effect) 및 표현 효과(rendering effect)를 제공하기 위해 다각형들 및 정점들에 의해 수신되는 광량을 통합하기 위하여 스무스 차광 기법(smooth shading technology)을 이용하는 단계를 포함한다.
본 발명의 또 다른 특징에 따르면, 쌍방향 3차원 공간 광 조명 시스템은 전술한 방 법을 실행하기 위한 3차원 그래픽 프로세서를 가진다.
발명의 다른 목적들, 장점들, 및 신규한 특징들은 첨부되는 도면들과 결합될 때 이어지는 상세한 설명으로부터 보다 더 명백해 질 것이다.
도 1 및 도 2는 본 발명의 바람직한 실시예에 따른 실행 환경 도면이다. 도 2는 본 발명에 따른 바람직한 실시예의 플로우 차트이다. 광원(2)에 의해 조명되는 물체(3)에 의해 생성되는 그림자 효과(31)를 계산하기 위하여, 본 실시예에 있어서, 본 발명의 시스템은 다수의 다각형(단계 202)에 의해 제공되는 공간을 만들기 위해 3차원 공간 1(단계 201)의 정보를 추출한다. 도 3을 참조하면, 도 3은 3차원 공간을 제공하기 위하여 다수의 다각형들을 이용하는 바람직한 실시예의 개략도이다. 상기 3차원 공간은 4개의 다각형 A, B, C, 및 D로 구분된다. 각각의 다각형은 서로 연결된 3개의 정점들로 구성된다. 또한, 각각의 다각형의 특징은 다른 형식의 2 세트의 정점 지수 정보 즉, 공유 정점 지수 정보 및 비공유 정점 정보를 포함한다. 도 3에 도시된 3차원 공간을 예로 들면, 상응하는 다각형 특징 정보는 다음과 같은 2개의 형식을 가진다.
형식(format) 1 [공유(shared) 정점 지수(vertex index) 정보]:
정점 행렬(Vertex array)
정점 행렬 |
정점 |
0 |
V1 |
1 |
V2 |
2 |
V3 |
3 |
V4 |
4 |
V5 |
5 |
V6 |
지수 행렬(Index array)
다각형 |
다각형 지수 |
A |
0, 1, 2 |
B |
2, 3, 4 |
C |
0, 2, 4 |
D |
0, 4, 5 |
형식(format) 2 [비공유(unshared) 정점 지수 정보):
정점 행렬(Vertex array)
정점 행렬 |
정점 |
0 |
V1 |
1 |
V2 |
2 |
V3 |
3 |
V3 |
4 |
V4 |
5 |
V5 |
6 |
V1 |
7 |
V3 |
8 |
V5 |
9 |
V1 |
10 |
V5 |
11 |
V6 |
지수 행렬(Index array)
다각형 |
다각형 지수 |
A |
0, 1, 2 |
B |
3, 4, 5 |
C |
6, 7, 8 |
D |
9, 10, 11 |
또한, 배타적 색상 코드가 모든 다각형을 위해 설정되는 바(단계 203), 우선은 각각의 다각형에 배타적 ID 번호가 주어진 후, 배타적 ID 번호를 배타적 색상 코드로 변환하기 위하여 일대일 전환 가능한 변환 연산을 이용한다. 이 실시예에 있어서, 배타적 색상 코드는 무서명(unsigned) 짧은(short) 32-비트 형식의 RBGA(적색, 청색, 녹색, 알파)를 이용하고, 이 실시예는 (255, 255, 255, 255)를 그 어떤 다각형에도 한정되지 않은 배경 색상으로 할당한다. 또한, 배타적 색상 코드는 RGB 형식 또는 그 어떤 형식을 채택할 수 있다. 또한, 각각의 다각형에 분포된 각각의 배타적 색상은 다음의 확장된 형식들을 형성하기 위하여 전술한 형식 2에서 각각의 다각형을 구성하는 각각의 정점에 할당된다.
정점 행렬(Vertex array)
정점 행렬 |
정점 |
배타적 색상 |
0 |
V1 |
(0, 0, 0, 255) |
1 |
V2 |
(1, 0, 0, 255) |
2 |
V3 |
(2, 0, 0, 255) |
3 |
V3 |
(3, 0, 0, 255) |
4 |
V4 |
(4, 0, 0, 255) |
5 |
V5 |
(5, 0, 0, 255) |
6 |
V1 |
(6, 0, 0, 255) |
7 |
V3 |
(7, 0, 0, 255) |
8 |
V5 |
(8, 0, 0, 255) |
9 |
V1 |
(9, 0, 0, 255) |
10 |
V5 |
(10, 0, 0, 255) |
11 |
V6 |
(11, 0, 0, 255) |
지수 행렬(Index array)
다각형 |
다각형 지수 |
배타적 ID 번호 |
A |
0, 1, 2 |
0 |
B |
3, 4, 5 |
1 |
C |
6, 7, 8 |
2 |
D |
9, 10, 11 |
3 |
이어서, 카메라와 같은 이미지 추출 장치로 광원(2)을 취하고, 평판 차광 기법(flat shading technology)은 이미지 셋트를 얻기 위해 광원에 상응하는 좌표로부터 이미지 추출 장치에 의해, 다른 배타적 색상들에 의해 한정되는 3차원 공간의 표현 공정(rendering process)을 수행하기 위해 사용된다(단계 204). 이 실시예에 있어서, 광원은 그 에너지가 센터 지점으로부터 균일하게 방사되고, 하나의 단위 길이를 가진 입방체가 광원의 조명을 모의실험 하는데 이용될 수 있도록 개방된 광원이다. 입방체의 각각의 면(총 6개의 면)은 n×n 격자(grid)로 잘려지고, 각각의 격자의 영역은 각각의 면의 1/n2이다. 이미지 추출 장치가 입방체의 중심에 위치되었다고 가정하면, 입방체의 각 면의 각각의 격자는 이미지 추출 장치의 시각 패널의 픽셀과 같고, 본 실시예는 다음과 같은 6개의 이미지 추출 인자들을 얻는다.
면(face) |
전면 (Front) |
좌측 (Left) |
후방 (Back) |
우측 (Right) |
상면 (Top) |
저면 (Bottom) |
시각 방향 (view direction) |
(0, 0, -1) |
(-1, 0, 0) |
(0, 0, 1) |
(1, 0, 0) |
(0, 1, 0) |
(0, -1, 0) |
상 벡터 (Up vector) |
(0, 1, 0) |
(0, 1, 0) |
(0, 1, 0) |
(0, 1, 0) |
(0, 0, 1) |
(0, 0, -1) |
우 축 (Right axis) |
(1, 0, 0) |
(0, 0, -1) |
(-1, 0, 0) |
(0, 0, -1) |
(1, 0, 0) |
(1, 0, 0) |
시각 필드 (Field of View) |
90 |
방향 지수 (Aspect ratio) |
1.0 |
근접 평면 (Near Plane) |
0.5 |
시각-포트 크기 (view-port size) |
(n,n) |
따라서, 본 실시예의 이미지 추출 장치는 광원의 좌표에 위치되고 평탄 차광 기법과 표현 공정을 수행하기 위하여 전술한 변수들에 따른 형식 2로부터 나온 다각형 데이터를 이용한 후, 최종 표현 결과를 기록한다.
다음, 모든 다각형의 차별(differential) 영역에 의해 수신되는 광의 양은 이미지에서의 모든 배타적 색상을 위한 상응하는 분포를 분석함에 의해 전달 및 계산될 수 있다(단계 205). 도 4를 참조하면, 도 4는 다각형들에 의해 수신되는 광의 양을 계산하는 바람직한 실시예의 플로우 차트이다. 이 실시예는 6개의 변수들에 따른 모든 픽셀들의 색상 분포들을 수집하고(단계 401); 각각의 다각형의 광 수식 영역에 의해 투영되는 입방체에 투영 영역을 얻기 위해(단계 403), 보여진 색상들을 각각의 다각형의 상응하는 배타적 ID 번호로 변환한다(단계 402). 예를 들어, 수집된 결과에 있어서, 전술한 형식들에 따라 RGBA(0, 0, 0, 255)의 색상을 가진 k 픽셀들이 있으며; RGBA(0, 0, 0, 255)는 도 3에 도시된 다각형 A에 상응하고, 입방체 위의 다각형 A의 광 수신 영역의 투영 영역은 다음 [수학식 1]과 같다:
[수학식 1]
또한, 본 실시예는 다각형과 입방체 사이의 거리에 따른 다각형의 광 수신 영역의 실제 영역을 투영비로서 다음 [수학식 2]에 의해 계산할 수 있다(단계 404):
[수학식 2]
여기서, 'dist'는 다각형의 무게 중심과 광원 사이의 거리이고,
는 다각형과 입방체 사이에 형성된 입체각(solid angle)이다. 만약,
모두 0이면, 다각형 A의 광 수신 영역의 실제 영역은 다음과 같다:
결국, 다각형의 차별 영역에 의해 수신되는 광의 양은 다음 [수학식 3]과 같다(단계 405):
[수학식 3]
여기서, Alighting은 다각형의 광 수신 영역의 실제 영역이고, Atotal은 다각형의 총 영역이고, N은 다각형의 법선(normal) 벡터이고, L은 다각형의 무게 중심을 위한 벡터이고, I는 광원의 강도이다. 상기 실시예는 다각형의 무게 중심이 다각형 영역에 있어서의 그 어떤 지점에 의해 수신되는 광 에너지를 제공하는 다각형 내부에 있어야만 하는 특징을 이용한다.
최종 이미징 결과를 편평하고 스무스 하게 하기 위하여, 본 시스템은 각각의 정점의 평균 수신 에너지를 계산하고 최종 정점 색상을 생성할 필요가 있다(단계 206). 물체 또는 공간을 제공하기 위하여 다각형들을 이용하는 데이터 구조에 있어서, 때때로 많은 정점들이 많은 다른 다각형들에 의해 공유될 수도 있다; 예를 들어, 도 5에 도시된 정점 V5는 다각형 B, C, D에 의해 공유된다. 그러나, 이러한 정점들은 다른 다각형들에 있는 다른 광량을 수신하고, 그로말미 암아 이미지를 편평하고 스무스 하게 하기 위하여, 본 실시예는 각각의 공유된 정점을 위하여 모든 다른 광 량을 평균한 후, 최종 색상과 휘도를 생성하기 위해 수신되는 광의 이 평균과 정점에 의해 정해진 특성들 계산한다.
최종적으로, 이미지 추출 장치는 3차원 공간을 관찰하기 위한 현재의 시각 포인트로 복귀하고, 스무스(smooth) 차광(shading) 기법이 다각형들의 광의 량을 현재 시각 포인트로부터 관측되는, 광원의 3차원 공간 조명으로부터 생성되는 차광 효과 및 표현 효과를 제공하는 정점들과 통합하는 데 이용된다(단계 207).