KR970003325B1 - 화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템 - Google Patents

화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템 Download PDF

Info

Publication number
KR970003325B1
KR970003325B1 KR1019930000992A KR930000992A KR970003325B1 KR 970003325 B1 KR970003325 B1 KR 970003325B1 KR 1019930000992 A KR1019930000992 A KR 1019930000992A KR 930000992 A KR930000992 A KR 930000992A KR 970003325 B1 KR970003325 B1 KR 970003325B1
Authority
KR
South Korea
Prior art keywords
pixel
buffer
light source
value
pixels
Prior art date
Application number
KR1019930000992A
Other languages
English (en)
Other versions
KR930016909A (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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR930016909A publication Critical patent/KR930016909A/ko
Application granted granted Critical
Publication of KR970003325B1 publication Critical patent/KR970003325B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation

Abstract

내용없음.

Description

화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템
제1도는 본 발명을 구현할 대화식 컴퓨터 그래픽 디스플레이 시스템의 범용 블록도.
제2도는 종래의 컴퓨터 그래픽 디스플레이 시스템 블록도.
제3도는 본 발명에 따른 컴퓨터 그래픽 디스플레이 시스템의 블록도.
제4a도, 4b도, 4c도 및 4d도는 제3도의 컴퓨터그래픽 디스플레이 시스템에 따른 화소 영상 처리의 한 실시예를 나타낸 흐름도.
제5도는 제4a도 내지 4d도의 화소 영상 처리에 의해 언급된, 제3도의 컴퓨터 그래픽 디스플레이 시스템의 사용에 있어 나타나는 잠재적 문제점을 도식적으로 설명한 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : 그래픽 시스템 12 : 호스트 컴퓨터
14 : 응용 프로그램 16 : 응용 데이타 구조
18 : 기하 처리 엔진 20 : 라스터 처리 엔진
30 : 3차원 물체 데이타 베이스 32 : 광원 데이타 베이스
38 : 다각형 모서리 처리 42 : 프레임 버퍼
44 : Z버퍼
본 발명은 컴퓨터 그래픽 생성 및 디스플레이에 관한 것으로서, 특히 적어도 하나 이상의 기하학적 기본요소(geometric primitive)로 구성된 화면(scene)을 하나 또는 그 이상의 정의 광원(defind light source) 조명을 차단하는 또다른 기하학적 기본 요소에 의한 그림자 유형(shadow cast)를 갖는 화소 영상(pixel image)으로 렌더링(rendering)하기 위한 방법 및 시스템에 관한 것이다.
컴퓨터 그래픽 디스플레이 시스템 영상의 품질 및 이들 영상을 처리하기 위해 요구된 시간은 그래픽 디스플레이 장비의 발전에 따라 점차 개선되어 왔다. 사진 품질에 접근하고 실세계 패러다임을 투영하는 영상은 해석 하기에 더욱 쉽기 때문에 이러한 지속적인 개선은 명백히 유익하고, 동시에 고속처리는 디스플레이된 영상과 사용자의 대화를 더욱 좋게 해준다. 예를들면, 현재 이용가능한 그래픽 디스플레이 시스템은 고도의 대화식 영상에 화면 표시 물체(displayed object)의 음영처리(shading)를 제공할 수 있다. 스크린 음영처리는 화면 표시 물체상에 다른 유형의 광원 표면 효과를 정확하게 모델하고 음영처리 효과는 물체의 모양 및 윤곽에 대한 가시적 큐(visible cues)를 제공한다. 음영처리 효과를 산출하기 위해 요구된 처리의 많은 부분은 하드웨어내에서 행해지는데 이 하드웨어는, 예를들면 구로우 음영처리(Gouraud Shading)와 같은 잘 알려진 기법을 이용하여, 다각 형 정점(polyfon vertice)들 사이의 색을 보간한다.
표면 텍스처(texture), 작동 흐림(motion blur), 물체 반사 및 그림자와 같은 다른 시각 큐(visual cues)를 영상(image)에 더하여 영상의 품질을 더욱 개선할 수 있다. 그러나 이러한 증진은 통상 상당한 소프트웨어 처리 사이클을 요구하며, 그래픽 시스템을 덜 사용자 대화적(user interactive)으로 만든다. 본 발명은 이들 영상증진(enbancement)들 중 하나의 처리시간을 개선한다. 즉, 물체가 렌더될 화면에 하나 또는 그 이상의 정의 광원 조명을 블록할 때 그림자 캐스트를 생성하는 것에 특히 역점을 두고 있다.
전형적인 컴퓨터 그래픽 시스템은 주어진 화소에서 물체의 표면색을 결정할 수 있고 화소의 정의 관축점(defined viewpoint)으로부터의 가시(visible) 여부를 결정할 수 있으며, 그러므로써 이 화소가 관련 프레임 버퍼에 속하는지 여부를 결정할 수 있다. 이를 성취하기 위해서는 X, Y 공간내에 R, G, B 및 Z의 보간법(interpolation) 수행이 필요하다(6축 보간법). 광원 및 물체 사이의 위치 관계에 대한 정보는 조명 계산 단계후에 그래픽 시스템의 기하 처리 엔진(geometry processing engine)에 의해 버려지기 때문에, 후속 라스터처리 부 시스템(raster processing sub-system)은 물체가 또다른 물체에 그림자를 투사하여 화소 영상내에 나타나는가를 결정하는 것은 불가능하다.
피. 베르게론(P. Bergeron)에 의해 "크로우 그림자 공간(Crow s Shadow Volume)의 범용 버젼"이란 표제로 1986년 출간된 IEEE 9월호(페이지 17∼28)에 기술된 바와 같이, 그림자 생성 알고리즘은 현재 5개 종류가 알려져 있다. 즉, (1) 디스플레이 동안 그림자 계산(1968년 워싱턴 DC 소재의 톰슨 북스(thompson Books)에서 출간된 Proc. Spring Joint Computer Conference의 37∼45페이지에 게재된 에이. 아펠(A. Appel)의 "입체의 음영처리 머쉰 렌더링(shading Machine Rendering of Solids)기법"을 참조할 것).
(2) 클리핑 변환(clipping transformation)을 기초로 한 다각형 그림자 생성(1978년 7월에 발행된 Computer Graphics(Proc. SIGGRAPH 78) 제12권 제3호의 275∼281페이지에 게재된 아데르톤 및 와일러(Atherton and Weiler)의 "다각형 그림자 생성"을 참조할 것).
(3) 그림자 공간(1977년 7월에 발행된 Computer Graphics(Proc. SIGGRAPH 77) 제11권 제3호의 242∼248페이지에 게재된 에프. 크로우(F. crow)의 "컴퓨터 그래픽스의 그림자 알고리즘"을 참조할 것).
(4) Z 버퍼 그림자 계산(1978년 7월에 발행된 Computer Graphics (Proc. SIGGRAPH 78) 제12권 제3호의 270∼274페이지에 게재된 엘. 윌리암스(L. Williams)의 "곡면상에 곡선 그림자 투사"를 참조할 것).
(5) 광선 추적(1980년 6월에 발행된 Comm. ACM 제23권 제6호의 343∼349페이지에 게재된 위티드(Witted)의 "음영처리 디스플레이(Shaded Display)의 개선된 조명 모델"을 참조할 것).
상기 기법중에 엘. 윌리암스에 의해 기술된 Z 버퍼 알고리즘 방법만이 형상 공간내에서 동작하고 여하한 복잡도의 화면이 처리되도록 허용한다. 간략히 설명하면, 윌리엄스 그림자 생성 방법은 Z 버퍼 알고리즘을 통해 2개의 경로(passes)를 사용하는데, 여기서 하나는 관측자(Viewer)이고 다른 하나는 광원이다. 표면이 그림자져야 할지 여부의 결정은 영상 정밀 계산(image-precision calculations)을 사용함으로써 이루어진다.
윌리엄스 알고리즘은 광원의 관점으로부터 영상의 Z 버퍼값을 계산하고 저장함으로써 시작하고 여기에서 증가치는 증가 거리를 나타낸다. 다음에, Z-버퍼 및 영상은 다음의 수정과 함께 Z 버퍼 알고리즘을 사용하여 관찰자의 관측점(viewpoint)으로부터 계산된다. 화소가 가시적(visible)인 것으로 결정될 때마다 관찰자 관측의 물체 정밀 좌표(object-precision coordinates)(X0, Y0, Z0)는 광원 관측의 좌표(X0' , Y0' , Z0')로 각각 계산되어 변환된다. 변환 좌표 X0' 및 Y0' 을 사용하여 광원 Z 버퍼(light source s Z buffer)내의 ZL값을 선택하고 변형값 Z0' 와 비교된다. ZL이 Z0' 보다 광원에 더욱 가까운 경우, 그 점으로부터의 광원을 블록하는 것이 있으며, 그 화소는 그림자내에 있는 것처럼 음영처리된다(shaded). 그렇지 않으면, 그 점(point)은 그 빛으로부터 가시적이며 빛이 비추어진 것처럼 음영처리된다. 이러한 많은 계산을 요하는 방법은 각 화소에 대한 광원과 관측점 관측 사이에 상당한 변환 계산을 요구한다. 이들 계산 때문에 컴퓨터 그래픽 시스템의 사용자 대화성(user interac-tieness)은 최적화되지 못하고, 두번째 또는 그 이상의 광원이 추가될 때 상당히 저하된다.
그러므로 영상 공간내의 그림자 생성 문제를 해결하고 선행 음영처리 방법의 수행을 개선하는 새로운 그림자 생성 기법에 대한 컴퓨터 그래픽 처리 기술이 끊임없이 요구된다.
간략하게 기술하면, 본 발명은 적어도 하나의 기하학적 기본 요소(geometric primitive)로 구성된 화면을 그림자를 가진 화소 영상(a pixel image)으로 렌더링 하기 위한 컴퓨터 그래픽 디스플레이 시스템(computer graphic display)을 제공하는데 이 그림자를 가진 화소 영상은 하나 또는 그 이상의 정의 광원으로부터 조명을 블록하는 다른 물체로부터 발생한다. 그래픽 디스플레이 시스템은 제1버퍼, 제2버퍼 및 프레임 버퍼(frame buffer)를 포함하며, 이들 각각은 화소에 대응하는 저장 위치를 갖는다. 영상은 정의 관측점 및 적어도 하나의 광원을 갖고, 그 각각의 기본 요소는 정의 관측점에 관계하는 하나 또는 그 이상의 화소(X, Y) 및 정의 광원에 관계하는 하나 또는 그 이상의 화소(Xs, Ys)에 의해 표현된다. 한 실시예에 있어서, 영상 렌더링 방법은, 각각의 픽셀(X, Y)에 대하여, 정의 관측점으로부터 상기 화소까지의 깊이를 나타내는 제1깊이값(Z)을 생성하며 제1Z 버퍼의 대응 화소 위치에 저장된 깊이 값과 비교하여 제1깊이값(Z)이 정의 관측점에 가시적인 경우 제1Z 버퍼의 대응 화소 위치에 제1깊이 값을 보관하는 단계와; 각각의 픽셀(Xs, Ys)에 대하여, 정의 광원에서 상기 화소까지의 깊이를 나타내는 제2깊이값(Zs)을 생성하며 제2Z 버퍼의 대응 화소 위치에 저장된 깊이값과 비교하여 제2깊이 값이 정의 광원에 가시적인 경우 제2Z 버퍼의 대응 화소 위치에 제2깊이값(Zs)을 보관하는 단계와; 상기 화소 영상을 형성하는 각각의 화소에 대하여, 정의 광원만을 사용하여 대표 색상치(representative color value)(Rs, Gs, Bs)를 생성하고 제1Z 버퍼내의 대응 깊이치가 관측점에 가시적인 화소를 식별하고 제2Z 버퍼내의 대응 깊이치가 광원에 가시적인 화소를 식별하는 경우 화소에 대한 대표 색상치(Rs, Gs, Bs)를 프레임 버퍼의 대응(X, Y)화소 위치에 더하는 단계를 포함한다. 또다른 특정 방법의 상세 및 증진은 또한 기술되었고 특허청구범위에 포함되었다.
또다른 관점에 있어서, 본 발명은 적어도 하나의 기하학적 기본요소를 형성된 화면을 화소 영상으로 렌더링 하기 위한 그림자 생성능력을 갖춘 컴퓨터 그래픽 디스플레이 시스템을 제공한다. 렌더될 화면은 정의 주변 조명치(defined ambient lighting value), 관측점 및 광원을 포함하는데 각 기본 요소는 제1관측점 좌표 공간내의 연관된 하나 또는 그 이상의 화소(X, Y), 및 제2광원 좌표 공간내의 하나 또는 그 이상의 픽셀(Xs, Ys)을 갖는다. 그래픽 디스플레이 시스템은 적어도 하나의 기하학적 기본요소를 관측점과 관계하는 장치 X, Y, Z 좌표 및 광원과 관계하는 장치 Xs, Ys, Zs 좌표로 변환하기 위한 기하처리 엔진(geometry processing engine)을 포함한다. 프레임 버퍼, 제1Z 버퍼 및 제2Z 버퍼가 또한 제공되며, 이들 각각은 렌더된 화면의 영상을 형성하는 화소에 대응하는 저장 위치를 갖는다. 라스터 처리엔진은 기하처리 엔진의 출력을 수신하도록 결합되고, 또한 프레임 버퍼, 제1Z 버퍼 및 제2Z 버퍼와 결합하여 값의 저장을 제어한다. 라스터 처리 엔진은, 결정된 화소 깊이치(Z)가 제1버퍼의 대응 화소 위치에 이미 저장된 깊이치 보다 관측점에 더욱 가깝거나 동등한 경우마다 제1Z 버퍼에 화소 깊이치의 저장을 지시하는 제1저장수단과; 결합된 깊이치(Zs)가 제2버퍼의 대응 화소 위치에 이미 저장된 깊이치보다 광원에 더욱 가깝거나 동등한 경우마다 제2Z 버퍼에 제2화소 깊이치(Zs)의 저장을 지시하는 제2저장 수단과; 정의 광원만을 사용하여 영상을 형성하는 각 화소에 대해 대표 색상치(Rs, Gs, Bs)를 산출하기 위한 생성 수단; 제1버퍼내에 대응 깊이치가 관측점에 가시적인 화소를 식별하는 경우에 화소의 생성된 대표 색상치(Rs, Gs, Bs)를 프레임 버퍼의 대응(X, Y) 화소 위치에 더하기 위한 누산수단을 포함한다.
요약하면, 본 발명은 그림자 생성 방법을 포함하는데 이 그림자 생성 방법은 공지의 그림자 렌더링 기법에 비해 유리하게도 처리시간이 중지되며 그러므로써 그래픽 시스템과의 사용자 대화성은 최적화된다. 그림자 생성 방법은 실질적으로 하드웨어내에서 구현되고, 스팬(span) 생성 프로세스 동안 각 Z 버퍼 어드레스를 2중 Z 버퍼로 보간함으로써 관측점 및 광원 사이의 사상(mapping)을 유지한다. 그림자는 객체 사이의 공간관계를 가시화하는데 유용하기 때문에 본 발명의 사용은 렌더된 화면을 해석하기 위한 또다른 중요한 시각 큐(visual cue)를 제공하며 동시에 낮은 계산 오버헤드를 유지한다.
본 발명에 따른 그림자 처리는 은면(hidden-surface)이 제거된 구로우 음영처리형 다각형(Gouraud dhaded polygon)들의 비음영처리형(not-shadowed) 렌더링과 비길만한 성능을 갖는다. 신규한 특징은 통상의 6축 대신에 9축 보간법의 사용, 하면 전체의 다중 경로의 단순기법을 통한 다중 광원의 수용, 및 Xs, Ys공간(즉 광원 관측좌표)내의 광원 관측 경도(guadient)의 방향으로 Z변위에 의한 깊이 버퍼 등록 에러(depth buffer registration error)의 수정을 포함한다.
본 발명의 목적, 장점 및 특징은 첨부도면과 함께 본 발명의 다음의 어떤 바람직한 실시예의 상세한 설명으로부터 더욱 쉽게 이해될 수 있으며, 참조는 동일한 참조 번호들이 상이한 도면을 걸쳐 동일하거나 유사한 성분들을 나타내도록 하였다.
제1도는, 그래픽 시스템(10) 및 호스트 컴퓨터(12)간의 상호작용의 범용 블록도가 도시되어 있다. 컴퓨터(12)는 응용 프로그램(14) 및 응용 데이타 구조(16)를 포함한다. 응용 프로그램(14)은 응용 데이타 구조(16)를 포함한다. 응용 프로그램(14)은 응용 데이타 구조(16)에 대해 데이타를 저장하고 검색하며 그래픽 시스템(10)에 그래픽 명령들을 보낸다. 데이타 구조916)는 시스템(10)과 관련된 그래픽 모니터(도시되지 않음)상에 나타나는 실 혹은 추상 모양 또는 물체들을 보유한다. 데이타 구조(16)내에 저장된 물체 묘사는 기하 좌표 데이타를 포함하는데 이 기하 좌표 데이타는 물체의 성분의 형상, 물체 속성 및 성분들이 어떻게 서로 어울리는지를 규정하는 연결관계 및 데이타 위치를 규정한다.
그래픽 시스템(10)은 여기에 결합된 기하학적 처리 엔지(18) 및 라스터 처리엔진(20)을 포함한다. 엔진(18), (20)은 분리된 부 시스템을 포함하는데, 이들 각각은 통상적으로 다중 파이프라인형 혹은 병렬 연결형 처리기들을 포함한다. 엔진(18)은 통상적으로 부동 소수점 기하 처리를 수행함으로써 모델링이나 세계좌표 및 색상들로부터의 정보를 잘 알려진 몇몇 단계들을 통해서 스크린 좌표 및 색상으로 변환하는데 이들 몇몇 단계는 모자이크식 배열화(teeselltion), 조명계산(lighting), 조명계산(ligthing caculation), 절단(clipping), 변환(transformation), 사상(mapping)등을 포함한다. 이들 처리 단계중 본 발명에 관한 것은 이하에서 더욱 상세하게 기술한다. 라스터 처리 엔진(20)은 통상 주사변환 동작(scan conversion operation)을 실행하고 여기서 개개의 화소들은 궁극적인 스크린 디스플레이를 위해(예를 들어 거기에 결합된 모서리처리기 및 스팬 처리기를 통해) 정수처리된다.
본 발명에 따른 그림자 생성 단위의 독특한 구조/기능의 기술을 용이하게 하기 위해, (기하 처리 엔진(18) 및 라스터 처리 엔진(20)을 포함한) 전형적인 음영처리형 입체 렌더링 시스템(shaded solid rendering system)의 동작은 제2도의 구조/기능 블록을 참조하여 최초로 기술된다.
3차원 물체 데이타 베이스(30) 및 광원 데이타 베이스(32)를 포함하는 관련 응용 데이타구조(16)내의 정보는 그래픽 시스템(10)의 기하 처리 엔진(18)에 의해 검색된다. 2차원적으로 표시된 3차원 화면내의 물체들은 전형적으로 표면 다각형들로 구성되거나 B 스플라인(B-spline) 표면과 같은 기능적이거나 파라메타적방법으로 특정된다. 세계 좌표내의 X, Y, Z 정점들 및 제공된 표면에 대한 정규(normal)들과 같은 정보는 통상적으로 포함된다. 엔진(18)은 제공된 정보를 모자이크식으로 배열(tessellates)하고 검색하고 사전 정의된 주변, 산란반사 조명성분(ambient, diffuse and specular lighting component)들을 사용하여 공지된 조명 방정식들(즉, 구로우 쉐이딩)을 구현한다.
조명 계산 프로세스(34)동안, 각 정점에서의 색체 및 강도는 조명방정식에 의해 결정되는데 이 조명 방정식은 물체 및 주변/광원색, 광 벡터의 방향, 표면 및/또는 정점 정규들, 반사 하이라이트(specular highlights)가 요망될 경우 반사 벡터의 방향이 고려된다. 블럭(34)으로부터의 세계 좌표내의 출력은 다각형 데이타 정점들(X, Y, Z) 및 광도 레벨들(R, G, B)이다. 이러한 정보는 그후 처리 블록(36)에서 스크린 좌표내의 소정된 시역(viewport)에 절단(clip)되고, 투상(projected)되며 사상(map)된다.
라스터 처리엔진(20) 입력은 스크린 공간내의 정수 X, Y, Z 좌표로 특정한 다각형 정점들, 및 R, G, B 광도성분들이다. 이 정보는 모서리 처리(38)로 입력되는데, 이 모서리 처리는, 예를들면, 정점들 사이에서 Y에 관해 X, Z, R, G 및 B값을 보간함으로써 각각의 삼각형을 일련의 수평 스팬(horizontal span)으로 분해한다. 소정 주사선(Y값)상의 각 스팬은 X(1) 및 X(r)(즉, 스팬의 수평좌(1) 및 수평우(r) 한계), 좌모서리에서의 R, G, B 및 Z값 및 평면 방정식으로부터 결정된 X(dR/dX, dG/dX, dB/dX, dZ/dX)에 관한 R, G, B 및 Z의 편미분으로 구성된다. Y 어드레스(Y-ADDR)는 라인(39)을 경유하여 프레임 버퍼(42) 및 Z 버퍼(44)가 직접 이용 가능하도록 연결된다. 스팬 처리 동작(40)은 다음의 처리에 따라 각 수평스팬을 개개의 화소들로 분해한다(그리고 프레임 버퍼(42)에 광 강도치의 저장을 고려한다):
R(X(1), Y)=R(1)
G(X(1), Y)=G(1)
B(X(1), Y)=B(1)
Z(X(1), Y)=Z(1)
For X=X(1)+1 to X(r),
R(X, Y)=R(X-1, Y)+dR/dX
G(X, Y)=G(X-1, Y)+dG/dX
B(X, Y)=B(X-1, Y)+dB/dX
Z(X, Y)=Z(X-1, Y)+dZ/dX
If (Z(X, Y)>Z-BUFFER(X, Y)
Then
Update R(X, Y), G(X, Y), B(X, Y), Z-BUFFER(X, Y).
유도된 X 어드레스(X-ADDR)는 프레임 버퍼(42) 및 Z 버퍼(44) 양자 모두 이용가능하도록 되며, 이에 반해 유도된 광도치(R, G, B)는 버퍼(42)만이 이용가능하고 계산된 Z 깊이치(Z값)는 Z 버퍼(44)만이 이용가능하다.
프레임 버퍼(42) 및 Z 버퍼(44)는 병렬로 액세스 될 수 있고, 이들 각각은 각(X, Y)화소 어드레스 대해 단일 앤트리를 갖는다. 비교(Z(X, Y)>Z-BUFFER(X, Y)는 전체화면이 처리된 뒤에 삼각형내에서 관측자(viewer)에 가장 가까운 화소들만이 프레임 버퍼(42)에 기록됨을 보증한다. 전형적으로, 데이타 구조를 통한 하나의 경로로도 물체들의 광원 음영처리 및 은면 제거와 함께 화면을 렌더링하기에 충분하다. 또한, 처리순서는 일반적으로 무관하고, 데이타 정렬(sorting)도 요구되지 않는다, X 및 Y의 함수로서 R, G, B를 계산하는 것은 각 정점이 6공간내의 점을 표현하기 때문에, 당해 기술분야에서 6축 보간으로 참조된다. 버퍼(42)는 라인(45)을 경유하여 디스플레이 모니터(도시되지 않음)를 리프레쉬(refresh)하기 위해 사용된다.
공지된 그림자 생성 알고리즘중 대부분은 그래픽 시스템의 기하 처리단계에서 구현된다. 예를들면, 상기 참조된 논문에서 "곡면상에 곡선 그림자의 캐스팅"이란 표제로 윌리엄스에 의해 기술된 Z 버퍼 그림자 계산 방법을 참조할 수 있다. 그러나 이러한 방법은 이중 파이프라인을 갖고 그들을 동시에 관리하는 것과 유사하다. 분명하게, 다중 광원을 추가하면, 윌리엄스 방법의 영상 정교 계산법은 너무 복잡해진다.
대부분의 선행 그림자 생성 방법과 대조적으로, 본 발명의 진보적인 그림자 생성기법은 그래픽 장치의 라스터 처리부 시스템내에서 구현된다. 이 방법은 기능적으로 제2도에 관해 상술한 상기 방법과 여러면에서 유사하나 제2Z 버퍼가 표시될 화면에 적용된 하나 또는 그 이상의 분리된 광원과 관계한 기하학적 기본요소의 트랙화소 깊이에 제2Z 버퍼가 추가된다. 화면내에 그림자를 생성할 수 있는 각 광원에 대해 다수의 경로가 데이타 구조를 통해 이루어진다. 이러한 기법의 개관은 제3도을 참조하여 다음에서 기술되며, 제3도는 본 발명에 따른 수정된 구조/기능 그래픽 시스템을 묘사한다.
제3도에 도시된 바와 같이, 호스트 컴퓨터(112)의 (3차원 물체 데이타 베이스(130) 및 광원 데이타 베이스(132)를 포함하는) 관련 응용 데이타 구조(116)는 최초로 그래픽 시스템(100)의 기하 처리 엔진(118)으로 입력된다. 시스템(100)은 또한 엔진(118)에 결합된 라스터 처리엔진(120)을 포함한다. 작동시 엔진(118)은 모자이크식으로 배열하고 검색된 데이타에 조명 방정식(134)을 적용함으로써 처리를 시작한다. 예를들면, 세계 좌표내의 다각형 데이타 정점들 X, Y, Z 및 색상 R, G, B를 엔진(118)의 절단, 투상(project) 및 사상 기능(136)으로 진행시킴과 더불어, 기능 블록(134)은 또한 세계 좌표내의 다각형 데이타 정점들 Xs, Ys, Zs를 생성한다, 정점들 Xs, Ys, Zs는 렌더될 화면에 적용된 광원과 관련하여 규정된 검색된 데이타 정점들을 나타낸다. 즉 다각형 데이타 정점들 Xs, Ys, Zs는 하나 또는 그 이상의 광원 관측 좌표 Xs, Ys, Zs(여기에서 S=1, …N 광원) 각각에서 생성된다.
제2Z 버퍼(144)는 본 발명에 따라 관측자 보다도 오히려 사전 규정된 광원의 관측점으로부터의 화소 깊이를 표시하는 Zs값을 수용하기 위해 제공된다. 제2버퍼(즉, 광원 관측버퍼)에 대한 화소 어드레스는 Xs, Ys로 지칭되며 프레임 버퍼(142) 및 제1Z 버퍼(143)(즉 관측점 Z 버퍼)로 접근하는 동일한 X, Y 화소 어드레스는 아니다.
후술하는 바와 같이 본 명세서에 제시된 그림자 생성 알고리즘은 화면내의 광원 수에 따라 데이타를 통해 다중경로를 취함으로써 동작한다. 제1경로에서 화면은 저장될 대응 색채값 R, G, B를 결정하기 위해 관측점 Z값으로 제1Z 버퍼를 갱신하나 주변 광 성분만을 이용함으로써 통상의 방식으로 프레임 버퍼에 렌더된다. 조명계산에 있어서 주변 광만을 사용하느 것외에는, 제1경로 처리는 본질적으로 제2도를 참조하여 상술한 것과 같다.
라스터 처리 엔진(120)에 대한 압력은 스크린 공간내의 정수 X, Y, Z 좌표 및 Xs, Ys, Zs 좌표로서 특정한 다각형 정점들 및 정의 조명에 기인한 R, G, B 광도 성분들이다. 이러한 정보는 다각형 모서리 처리(138)로 공급되는데 이 다각형 모서리 처리는, 예를들면 정점들 사이에서 Y에 관하여 X, Z, Xs, Ys, Zs, R, G 및 B값을 보간함으로써 일련의 수평 스팬으로, 각 삼각형을 분해한다. 소정 주사선(Y값)상의 각 스팬은 X(1) 및 X(r)(즉 스팬의 수평좌(1) 및 수평우(r) 한계), 좌모서리에서의 R, G, B, X, Z, Xs, Ys 및 Zs와 평면 방정식으로부터 결정된 X에 관한 Z, R, G, B, Xs, Ys 및 Zx의 편미분으로 구성된다. Y 어드레스(Y-ADDR)는 선(139)을 거쳐 프레임 버퍼(142) 및 제1Z 버퍼가 직접 이용가능하도록 연결된다. 스팬 처리 동작(140)은 후속적으로 후술된 바와 같이 수평 스팬을 개개의 화소들로 분해한다. 프레임 버퍼(142)가 사용되어 선(145)를 통하여 디스플레이 모니터(도시되지 않음)을 리프레쉬한다.
제1경로를 완료한 후에, 프레임 버퍼는 주변 조명을 제외하면, 여하한 특정 광원도 식별되지 않았을 경우 나타나는 것과 같은 화면(scene)을 포함한다.이 결과 스크린 영상은 희미하게 나타난다. 제1Z 버퍼(뷰포인트 Z 버퍼)는 화소들의 Z값을 포함하는데 이 화소의 Z값은 관측점 좌표 공간내의 관측자(viewer)에 가장 가까운 점을 나타낸다.
각 정의 광원에 대하여, 데이타 구조를 통한 두개의 부가적 처리 경로가 요구된다. 이들중 첫번째에서, 변환행렬은 관측점이 광원의 위치로 이동된 식으로 설정된다. 화면은 그후 프레임 버퍼가 갱신되지 않으며, 두번째로, 광원 관측 Z 버퍼가 제1관측점 관측 Z 버퍼 대신 사용된 것을 제외한 통상적인 방식으로 랜더된다.
엔진(120)내의 스팬 처리는 다음과 같이 표현된다:
Z(X(1), Y)=Z(1)
For X=X(1)+1 to X(r)
Z(X, Y)=Z(X-1, Y)+dZ/dX
IF(Z(X, Y)>SECOND_ZBUFFER(X, Y)
Then
Update SECOND_ZBUFFER(X, Y).
다음 경로에서 음영처리된 영상(shaded image) 및 그림자는 병렬로 생성된다. 변환/절단/사상 처리(136)는 광원 및 관측점 양자에 관련하여 정점 데이타를 생성하고, 조명 계산은 주변 조명을 고려하지 않고 현 광원의 산란 및 반사 성분들을 기초로 한 광도를 생성한다. 모서리 처리에 대한 입력은 그후 9개 값으로된 정점들을 가진 삼각형들로 구성되고, 보간(inter-polation)은 9개 공간내에서 진행한다. 특히 각 정점은,
X-스크린 공간 X 좌표(관측점으로부터)
Y-스크린 공간 Y 좌표(관측점으로부터)
Z-스크린 공간 Z 좌표(관측점으로부터)
R-광 강도의 적색 성분
G-광 강도의 녹색 성분
B-광 강도의 청색 성분
Xs-스크린 공간 X 좌표(광원으로부터)
Ys-스크린 공간 Y 좌표(광원으로부터)
Zs-스크린 공간 Z 좌표(광원으로부터)
으로 구성된다.
모서리 처리는 제2도에 관해 상술한 바와 유사하며, Xs, Ys, Zs에 대한 비분 계산(즉 dXs/dX, dYs/dX, dZs/dX) 및 모서리가 추가된다. 주목된 바와 같이, 스팬은 X(1) 및 X(r), R, G, B, Z, Xs, Ys 및 Zs의 좌 모서리값 및 X에 관한 R, G, B, Z, Xs, Ys 및 Zs의 편미분으로 구성된다.
스팬 처리는 제1 및 제2버퍼(143), (144) 각각을 사용하여 X(1) 및 X(r) 사이의 R, G, B, Z, Xs, Ys, Zs를 보간함으로써 진행하여 프레임 버퍼(142)의 갱신 여부를 결정한다. 처리는 한 광원에 대한 산란 및 반사 성분만을 포함하기 때문에, 무기록 조건출 나타내는 제2버퍼(광원 뷰 Z 버퍼)내의 비교는 그림자에 대응하며 프레임 버퍼내에 주변 배경만이 잔존한다. 프레임 버퍼가 갱신될 때, 누산 방식으로 수행되어 각각의 계산된 강도치가 이전 값이 더해진다. 이러한 방식으로, 다중 광원은 이미지(image)상에서 누적된다. 모니터(도시되지 않음)상에 디스플레이 될 때, 각 광원이 처리된 후의 시각 효과는 하나의 조명을 "온(on)"하는 것과 같다.
제3경로상의 스팬 처리 알고리즘은 다음과 같다.
R(X(1), Y)=R(1)
G(X(1), Y)=G(1)
B(X(1), Y)=B(1)
Z(X(1), Y)=Z(1)
Xs(X(1), Y)=Xs(1)
Ys(X(1), Y)=Ys(1)
Zs(X(1), Y)=Zs(1)
For X=X(1)+1 to X(r)
R(X, Y)=R(X-1, Y)+dR/dX
G(X, Y)=G(X-1, Y)+dG/dX
B(X, Y)=B(X-1, Y)+dB/dX
Z(X, Y)=Z(X-1, Y)+dZ/dX
Xs(X, Y)=Xs(X-1, Y)+dXs/dX
Ys(X, Y)=Ys(X-1, Y)+dYs/dX
Zs(X, Y)=Zs(X-1, Y)+dZs/dX
If(Z(X, Y)>=FIRST_ZBUFFER(X, Y) and
(Zs(X, Y)>=SECOND_ZBUFFER(Xs, Ys))
Then
Rframebuffer(X, Y)=R(X, Y)+Rframebuffer(X, Y)
Gframebuffer(X, Y)=G(X, Y)+Rframebuffer(X, Y)
Bframebuffer(X, Y)=B(X, Y)+Rframebuffer(X, Y)
본 발명의 처리기법의 더욱 상세한 설명은 제4a도, 4b도, 4c도 및 4d도의 기능 순서도를 참조하여 다음에서 기술된다.
먼저 제4a도를 참조하면, 최초 처리(단계 200"시작") 후, 데이타 메모리내에 저장된 입력정보가 검색된다(단계 202 "데이타 메모리내에 저장된 소정 정보 검색"). 저장된 정보는 전형적으로 3차원 기하 기본요소들의 목록(다각형들, 표면들 등) 및 그들의 속성(색채, 표면성질 등)을 포함하는데 이들 기본요소 및 속성은 렌더될 화면을 구성하고, 세계 좌표내에 특정되거나 세계 좌표로 변환가능하다. 더불어, 세계 좌표내의 관측자(viewer)의 위치를 포함한 관측 정보(viewing information), 세계 좌표내의 관측상(viewing window) 크기 및 방위, 장치 좌표내의 스크린 시역, 세계좌표내에 정의된 클리핑 평면 및 투상(projection)의 유형(즉 직교나 투시)이 정의된다. 또한 N광원의 목록 및 그들의 속성(색채, 퍼짐(spread), 유형 등) 및 위치(또는 무한한 경우 광선방향)은 세계좌표내에서 특정된다. 대체로, 주변 조명성분은 사전 규정된다. 주변조명 성분은 표면을 완전히 그림자로 비추는 배경광을 시뮬레이트 하고, 화면내의 모든 표면에 대하여 일정하다.
다음에, 프레임 버퍼, 제1Z 버퍼 및 제2Z 버퍼는 클리어되고(단계 204 "프레임 버퍼, 제1버퍼 및 제2버퍼를 클리어"), 관측점 변환 행렬 Mv가 생성된다(단계 206 "관측점 변환 행렬 Mv 생성"). 세계 좌표내의 화면 기본요소의 정점들을 소정 윈도우 및 시역 크기 및 방향을 사용하여 관측점 위치로부터 관측된(viewed) 장치 좌표로 변환하기 위한 행렬 Mv가 사용된다. 그 후, 광원 변환 행렬 Mi(여기서 i=1…N)가 N개의 정의 광원 각각에 대하여 생성된다(단계 208"광원 변환 행렬 Mi를 생성, 여기서 i=1…N광원"). 각 광원에 대하여 행렬 Mi가 사용되어 세계 좌표내의 화면 기본 요소의 정점들을 창 및 시역 사상의 적절한 선택을 통해 각 광원 위치로부터 관측된 장치 좌표로 변환함으로써 전체 화면을 광원 Z 버퍼 장치 좌표 범위의 제한내로 위치시킨다. 이 기술 분야에서 통상의 지식을 가진 자는 그러한 선택을 어떻게 구현할 지를 이해할 수 있을 것이다.
데이타 구조를 통한 제1처리 경로(PASS 1)는 상례적인 기하학적 처리로 시작하고 행렬 Mv를 사용한 장치 좌표의 삼각형 정점들의 변환을 포함한다(단계 210 "화면내의 각 기본요소에 대하여 기하학적 처리 및 행렬 Mv를 사용한 장치 좌표의 삼각형 정점들의 변환을 수행"). 전형적인 기하 처리는 데이타 메모리로부터 기본 요소를 인출하고, 정점들 및 제어점들을 세계 좌표로 변환하고(필요한 경우), 기본 요소들을 삼각형과 같은 다각형 평면으로 모자이크식으로 배열(tesselating)하고 (필요한 경우), 클리핑 시험을 수행하고 (필요한 경우) 정의 관측공간(defined view volume)으로 클리핑하는 것을 포함한다. 이 기술분야에서 통상의 지식을 가진 자는 이들 각각의 조작에 대하여 잘 이해할 수 있다. 삼각형 정점들을 행렬 Mv를 사용한 장치 좌표로의 변환과 함께 투시 분할(perspective division)이, 다시 요구될 경우, 수행될 수도 있다. 정점들을 장치 좌표로 변환한 후에, 모서리들은 일련의 수평이나 수직 스팬으로 주사변환된다(단계 212 "모서리들을 일련의 수평 스팬들로 주사변환"). 이것은 통상적으로 삼각형 모서리들을 주사변환하기 위해 브레센햄(Bresenham) 파라미터들이나 DDA(Digital Differential Analyzer) 기울기(slopes)를 계산하고 이어서 모서리들을 일련의 수평(혹은 이와 달리 수직) 스팬들의 끝점으로 주사변환하는 것을 포함한다.
각 수평 스팬내의 각 X위치가 Z값의 계산 및 저장을 위해 다음에 고려된다. 이것은 먼저 처리를 위해 하나의 수평 스팬을 선택함으로써 수행되고(단계 214 " 처리를 위해 하나의 (다음) 수평 스팬 선택"), 그 후 선택된 스팬내에서 한 화소 X 위치가 선택된다(단계 216 "선택된 스팬내에서 하나의 (다음) 화소 X 위치 선택"). 선택된 화소의 깊이치가 계산되고 제1버퍼의 대응 내용과 비교된다(단계 218 "선택된 화소 Z값 계산 및 제1Z 버퍼의 대응 내용과 비교"). 논리 조회(logical inquiry)가 그 후 행하여져 선택된 화소가 관측점에 가시적(visible)인지 여부를 결정한다(단계 220 "선택된 화소가 가시적?"). "예(yes)" (계산된 Z값이 제1Z 버퍼내의 대응값보다 아이포인트(eyepoint)에 보다 가까움을 뜻함)인 경우, Z 버퍼 값은 계산된 Z값으로 대치되고 프레임 버퍼 화소값은 대응하는 주변 색상 값으로 대치된다(단계 222 "제1Z 버퍼를 화소 Z값으로 갱신하고 프레임 버퍼를 주변 색상 값으로 갱신").
명령(222)으로부터 처리는 연결점(224)을 통과하여 현스팬내의 모든 화소들이 처리되었는지의 여부를 조회한다(단계 226 "스팬내의 모든 화소들이 선택되었는가?")(이와 달리, 선택된 화소가 관측점에 가시적이지 못한 경우, 처리는 조회(220)로부터 연결점(224)을 통과하여 조회(226)로 직접 진행한다). 조회(226)에 대한 응답이 "아니오(no)"로 남아 있는 한, 처리는 선택된 스팬내의 하나의 다음 화소 X위치를 선택하기 위해 명령어(216)로 진행하여 반복된다. 일단 선택된 스팬내의 모든 화소들이 처리되었으면, 모든 스팬들이 처리를 위해 선택되었는지의 여부를 묻는다(단계 228 "모든 스팬이 선택되었는가?"). "아니오(no)"인 경우, 처리는 하나의 다음 수평 스팬의 선택을 위해 명령어(214)로 복귀된다. "예(yes)"인 경우 데이타 구조를 통한 제1경로 처리(PASS 1)는 완성되고 처리는 제4b도로 진행한다.
제4b도, 제4c도 및 4d도는 함께 본 발명에 따른 데이타 구조를 통한 두개의 신규한 경로를 나타내는데 이 신규한 경로는 각 정의 광원에 대하여 결합하여 수행되어야 한다(즉, PASS 2i 및 PASS 2i+1, 여기서 i=1…N이고 N은 광원의 수와 같다).
처음에, 하나의 정의 광원이 선택되고(단계 203 "하나의 (다음) 정의 광원(i) 선택"), 제2Z 버퍼가 클리어된다(단계 232 " 제2버퍼를 클리어"). 그 후 데이타 구조내의 각 기본요소에 대하여 제2경로(PASS 2i)는 기하처리를 수행하고 대응 행렬 Mi를 사용하여 삼각형 정점들을 장치 좌표(즉 광원 뷰좌표)로 변환하는 것을 포함한다(단계 234 "화면내의 각 기본요소에 대하여, 기하 처리를 수행하고 행렬 Mi를 사용하여 삼각형 정점들을 장치 좌표로 변환").
다시 기하 처리는 데이타 메모리로부터 기본 요소를 인출(fetch)하고, 정점들 및 제어점들을 세계 좌표로 변환하고(필요한 경우), 기본 요소들을 평면 다각형으로 모자이크식으로 배열(tessellate)하고(필요한 경우), 클립 시험을 수행하고 가시 관측 공간(view volume)을 클리핑 하는(필요한 경우)것을 포함할 수 있다. 그후, 모서리들은 일련의 수평 스팬으로 주사변환 된다(단계 236 "모서리들을 일련의 수평 스팬으로 주사변환"). 명령(236)은 삼각형 모서리들을 주사변환하기 위해 브레센햄 파라미터들이나 DDA 기울기들을 계산하는 것과 삼각형 모서리들을 일련의 수평(혹은 이와 달리 수직) 스팬들의 끝점으로 실제 주사 변환하는 것을 포함한다. 제4a도에서 행하여진 것과 유사한 깊이 버퍼 처리가 다음에 발생한다. 즉, 처리를 위해 하나의 수평 스팬이 처음에 선택되고(단계 238, "처리할 하나의 (다음) 수평 스팬 선택"), 그안의 하나의 화소 Xs 위치가 식별된다(단계 240 "선택된 스팬내의 하나의 (다음) 화소 X2 위치 선택"). 선택된 Xs 화소의 깊이치(depth value)가 보간되고 제2Z 버퍼의 대응 위치에 저장된 갑과 비교된다(단계 242 "선택된 화소의 Z값은 계산하고 제2Z 버퍼의 대응 내용과 비교"). 그 후 선택된 화소가 현광원에 가시적인지 여부가 결정된다(단계 244, "선택된 화소가 광원(i)에 가시적인가?"). "예(yes)"인 경우, 제2Z 버퍼내의 대응 위치는 계산된 화소 깊이치 Zs로 갱신된다(단계 246, "제2Z 버퍼를 화소 Zs값으로 갱신"). 일단 갱신되면, 또는 현 화소가 가시적이지 않은 경우(즉, 그림자내에 있음), 처리는 연결점(248)을 통하여 조회(250)로 진행한다(단계 250 "스팬내의 모든 화소들이 선택되었는가?"). 처리는 그 후 명령(240)으로 되돌아가 선택된 스팬내의 다음 화소 Xs 위치를 선택하며 이러한 동작을 스팬내의 모든 화소들이 처리될 때까지 계속된다. 그 후, 모든 스팬이 선택되었는지를 결정한다(단계 252, "모든 스팬들이 선택 되었는가?"), "아니오(no)"인 경우, 처리는 명령(238)으로 복귀하여 다음 스팬이 선택된다. 일단 모든 스팬이 선택되면, 제2경로는 완료되고 처리는 데이타 구조를 통하여 제3경로(PASS 2i+1)의 제4c도 및 4d도로 진행한다.
다시, 초기 기하 처리가 수행된다(단계 256, "화면내의 각 기본요소에 대한 기하 처리 수행"). 처리는 데이타 메모리로부터 기본 요소를 인출하고, 정점들 및 제어점들을 세계 좌표로 변환하고(필요한 경우), 기본 요소들을 평면 다각형들로 모자이크식으로 배열하고(필요한 경우), 관측 공간(view volume)으로 절단하는(필요한 경우) 것을 포함한다. 더불어, 정점 정규들(vertex normals)은 세계 좌표로 변환된다(즉, 이미 그 안에 없는 경우). 그 후, 정점 색상들이 계산된다(단계 258, "정점 색상들을 계산"). 색상은 기본요소, 표면 및 색상속성, 정점 정규들, 관측 피라미터들 및 광원 속성을 사용하여 단지 반사 및 산란 조명 방정식으로부터 계산된다. 다음에, 삼각형 정점들은 행렬 Mv를 사용하여 장치 좌표로 변화되고(단계 260 "행렬 Mv를 사용하여 삼각형 정점들을 장치 좌표로 변환"), 삼각형 정점들은 또한 현 광원 행렬 Mi를 사용하여 장치 좌표로 변환된다(단계 262, "행렬 Mi를 사용하여 삼각형 정점들은 또한 현 광원 행렬 Mi를 사용하여 장치 좌표로 변환된다(단계 262, "행렬 Mi를 사용하여 삼각형 정점들을 장치 좌표로 변환"). 광원 장치 좌표의 편미분이 그 후 계산된다(단계 264, 편미분 dZs/dXs 및 dZs/dYs 계산").
바람직하게, 하나의 처리 단계가 이 시점에 삽입되어 Zs의 정점 값이 계산된 미분들이 합과 동일한 바이어스값(bias value)에 의해 현 광원(i)쪽으로 조절된다. 이것은 제1버퍼 및 제2버퍼의 내용이 두개의 다른 관측 좌표를 표시하며 다각형 모서리에 대한 X 및 Y의 유효 해상도(effective resolution)는 어떤 경우에 차이가 있으므로 필요하다; 즉, X, Y공간내의 화소들의 범위는 제 2Z버퍼내의 Xs, Ys 공간에 동일 어드레스를 사상하지 않는다. 이 문제점은 제5도에서 설명된다. 제5도에 도시된 바와 같이, Z 버퍼(1)는 아이포인트 관측(eyepoint view)으로부터의 Z값을 수용하는 한편, Z 버퍼(2)는 광원 관측으로부터의 Z값을 수용한다. 묘사된 효과가 고려하지 않은 경우, 마치 인접 화소에 의해 차폐되는 것처럼, 착오로 그림자내로 처리되는 화소들이 존재할 것이다. 제5도에서, 예를들면, 화소(E)는 Zs값 8을 갖지산, (Zs값이 X, Y 대신에 Xs, Ys로 보간될 때 계산된) 14와 함께 Z 버퍼(2)로 사상한다. 이 화소는 어떤 보상이 없으면 그림자내에 있는 것으로 결정된다.
이 문제는 본 발명에 국한하지 않는다. 즉, 상기 참조된 윌리엄스 논문을 보면 알 수 있다. 이 논문에 게재된 해결책은 바이어스(bias)를 계산된 Z값에 각 점이 광원 관측으로 변환된 때의 이 효과를 방지한다. 본 발명은 각 점을 변환하기 보다는 다각형내에서 보간하기 때문에, 바이어스는, 예를들면, 삼각형 정점들의 Z값에 더해진다. 나아가서, 광원 관측점 Xs, Ys 평면에 관해 다각형의 실제 표면 경도의 함수로 바이어스를 계산함으로써 더욱 큰 정확성을 얻는다. 이것은 윌리엄스 논문에서 제안된 일정 바이어스 보다 더욱 정확한 결과를 산출한다. 특히, 모서리 처리 함수가 스팬 생성을 위해 미분들을 계산하는 경우, 이것은 또한 dZs/dXs 및 dZs/dYs값을 계산하고, 미분들의 합에 의해 정점 Zs값을 조절한다. 이것은 Xs 및 Ys내의 표면 경도에 의해 삼각형을 광원에 더욱 가깝게 이동하는 효과를 갖고 Xs, Ys 평면에 적절히 등록한다.
제4c도의 제3경로 처리(PASS 2i+1)를 계속하여 참조하면, 모서리들을 일련의 수평 스팬으로 주사변환하는 단계가 다음에 발생한다(단계 268, "모서리들을 일련의 수평 스팬으로 주사변환). 이것은 삼각형 모서리들을 주사변환하여 X, Y, Z, R, G, B, Xs, Ys 및 Zs를 산출하기 위해 브레센햄 파라미터들이나 DDA 기울기들을 연산하며, 그 후 삼각형 모서리들을 일련의 수평(혹은, 이와 달리 수직) 스팬의 끝점들로 주사변환하는 것을 포함한다.
먼저 처리할 하나의 수평 스팬을 선택하고(단계 270, "처리할 하나의 (다음) 수평 스팬 선택"), 그 후 상기 스팬내의 화소 위치를 선택함으로써(단계 272, "선택 스팬내의 하나의 (다음) 화소 X 위치 선택") 하나의 화소 X 위치가 식별된다. 선택 화소의 Z값이 계산되고 그 후 관측점 깊이 버퍼(viewpoint depth buffer) 내용과 비교된다(단계 274, "선택된 화소의 Z값 계산 및 제1Z 버퍼의 대응 내용 비교"). 다음에, 선택된 화소의 Xs, Ys, Zs값이 연산/보간되고 계산된 Zs값이 위치 Xs, Ys에서 제2Z 버퍼의 내용과 비교된다(단계 276 "선택된 화소의 Xs, Ys, Zs값을 계산하고 Z를 위치 X5, Y5에서 제2Z 버퍼의 내용과 비교"). 그 후 선택된 화소가 관측점 및 현 광원(1) 양자로부터 가시적인지 여부가 결정된다(단계 278, "선택된 화소가 관측점 및 광원(i)으로부터 가시적?"). "예(yes)"인 경우 선택된 화소의 Rs, Gs, Bs값이 계산되고 X, Y에서 프레임 버퍼에 더해진다(단계 280, "선택된 화소의 Rs, Gs, Bs값이 계산 및 X, Y에서 프레임 버퍼에 더함"). 환언하면, 화소가 아이포인트(eyepoint) 및 선택된 광원 양자에 가시적인 경우, 화소의 광도치는 결정되고 X, Y에서 프레임 버퍼의 내용에 더해진다.
조회(278)내의 어느 한 조건이라도 만족하지 않는 경우, 또는 모두 만족하여 그 다음 처리 명령(280)이 수행된 경우, 순서는 연결점(282)을 통하여 조회된다(단계 284 "스팬내의 모든 화소들이 선택되었는가?"). "아니오(no)"인 경우 처리는 명령(272)으로 복귀하여 선택된 스팬내의 다음 화소 X가 처리를 위해 식별된다. 일단 스팬내의 모든 화소들이 처리되었으면, 그 다음에 모든 스팬들이 처리되었는지를 결정한다(단계 286 "모든 스팬이 선택되었는가?). "아니오(no)"인 경우, 처리는 명령(270)으로 되돌아가 다음 수평 스팬이 선택된다. 일단 모든 화소들 및 스팬들이 처리되면 모든 광원이 선택되었는지의 여부를 결정한다(단계 288, "모든 광원(i)이 선택되었는가?)". "아니오(no)"인 경우, 처리는 제4b도의 명령(230)으로 복귀한다. 즉, 다음의 정의 광원(i)을 선택하여 PASS를 2i, 및 2i+1을 수행한다. 일단 모든 광원이 선택되었으면, 프레임 버퍼는 주변 광 및 각각의 정의 광원(i)으로 인한 색상 강도의 합 및 이에 의해 정의된 그림자를 포함하며, 색도의 합을 수용하고, 처리는 완결된다(단계 290, "끝").
효과적으로 다중 광원을 처리할 수 있는 독특한 그림자 생성 방법이 제공되었음을 상기에서 알 수 있을 것이다. 선행 그림자 랜더링 기법과 비교해 매우 감소된 처리시간이 획득되고, 그러므로써 그래픽 시스템과의 사용자 대화가 개선된다. 본 발명에 따른 그림자 처리는 은면 제거된 채 그림자지지 않고 음영 처리(shaded)된 다각형의 비할 수 있는 성능을 나타낸다. 이 방법은 주로 하드웨어내에서 실행되고 스팬 생성동안 각각의 Z버퍼 어드레스를 이중 Z 버퍼로 보간함으로써 관측점 및 광원 사이의 사상을 유지한다. 통상의 6축 대신 9축 보간법의 사용, 화면상에 다중 경로의 간단한 기법을 통한 다중 광원의 수용, 또한, Xs, Ys 공간(광원 관측 좌표)내의 광원 관측 경도 방향의 Z 변위에 의한 깊이 버퍼 등록 에러의 수정들이 신규한 특징들에 포함된다.
본 발명이 참조된 실시예에 따라 상세하게 설명된 상기 발명의 내용은 본 발명의 기술 분야에서 통상의 지식을 가진자에 의해 다수의 수정 및 변경이 가해질 수도 있음을 인식해야 한다. 따라서, 첨부된 특허청구범위는 발명의 진정한 정신 및 범주내에 속하는 모든 수정 및 변경을 포괄하도록 의도되어 있음을 이해해야 한다.

Claims (12)

  1. 컴퓨터 그래픽 디스플레이 시스템에서, 적어도 하나의 기하학적 기본 요소(geometric primitive)로 구성된 화면(scene)을 그림자를 가진 화소 영상(a pixel image)으로 렌더링(rendering)하기 위한 방법으로서, 상기 컴퓨터 그래픽 디스플레이 시스템은 제1Z 버퍼, 제2Z 버퍼 및 프레임 버퍼(frame buffer)를 포함하며, 상기 버퍼들의 각각은 상기 영상을 구성하는 상기 화소들에 대응하는 저장위치를 갖고, 상기 영상은 정의 뷰포인트 및 광원(a defined viewpoint and light source)을 가지며, 상기 기본 요소 각각은 상기 정의 관측점에 관련하는 하나 또는 그 이상의 화소들(X, Y) 및 상기 정의 광원에 관련하는 하나 또는 그 이상의 화소들(X, Y)로 표시되는 방법에 있어서, (a) 상기 적어도 하나의 기하학적 기본 요소를 표시하는 상기 화소들(X, Y) 각각에 대하여: (i) 상기 정의 관측점으로부터 상기 화소까지의 깊이를 표시 하는 제1깊이치를 생성하는 단계와; (ii) 상기 제1깊이치(Z)가 상기 제1Z 버퍼의 대응 화소 위치에 저장된 깊이치보다 상기 관측점에 더욱 가깝거나 동등한 위치를 정의하는 경우 상기 제1Z 버퍼의 상기 대응 화소 위치에 상기 제1깊이치(Z)를 보관하는 단계와; (b) 상기 적어도 하나의 기하학적 기본 요소를 표시하는 상기 화소들(Xs, Ys)의 각각에 대하여; (i) 상기 정의 광원으로부터 상기 화소까지의 깊이를 표시하는 제2깊이치(Zs)를 생성하는 단계와, (ii) 상기 제2깊이치가 상기 제2Z 버퍼의 대응 화소 위치에 저장된 깊이치보다 상기 광원에 더욱 가깝거나 동등한 위치(Zs)를 정의하는 경우 상기 제2Z 버퍼의 상기 대응 화소 위치에 상기 제2깊이치(Zs)를 보관하는 단계와, (c) 상기 영상을 구성하는 상기 화소들(X, Y)의 각각에 대하여, (i) 상기 정의 광원만을 사용하여, 상기 화소(X, Y)의 표시 색상치(arepresentative color value)를 생성하는 단계와, (ii) 상기 제1Z 버퍼의 상기 대응 깊이치가 상기 관측점에 가시적인 화소를 식별하고 상기 제2Z 버퍼의 상기 대응 깊이치가 상기 광원에 가시적인 화소를 식별하는 경우, 상기 표시 색상치(Rs, Gs, Bs)를 상기 프레임 버퍼의 대응(X, Y) 위치에 더하는 단계를 포함하는 화소 영상 렌더링 방법.
  2. 제1항에 있어서, 렌더될 상기 영상이 정의 주변 조명치(a defined ambient lighting value)를 가지며, 상기 단계(a)는, (iii) 상기 주변 조명치만을 사용하여, 상기 화소(X, Y)에 대해 표시 색상치(R, G, B)을 생성하고 상기 프레임 버퍼의 상기 대응(X, Y) 화소 위치에 상기 표시 색상치(R, G, B)를 저장하는 단계를 포함하는 화소 영상 렌더링 방법.
  3. 제1항에 있어서, 다수인 N개의 광원이 규정되고 각 기본요소가 상기 N개의 정의 광원의 각각에 관계하는 하나 또는 그 이상의 화소들(Xs, Ys)(S=1, 2…N)에 의해 표시되며, 상기 방법이 상기 N개의 정의 광원 각각에 대하여 상기 단계(b) 및 (c)를 결합하여 반복하는 단계를 더 포함하되, 각각의 상기 단계(b) 및 (c)의 결합된 반복에 앞서 상기 제2버퍼가 클리어(clear)되는 화소 영상 렌더링 방법.
  4. 제1항에 있어서, 상기 적어도 하나의 기하학적 기본 요소 각각은 데이타 구조에서 하나 또는 그 이상의 다각형들에 의해 정의되고, 상기 생성단계(a), (i)는 상기 다각형들을 일련의 화소 스팬(pixel span)으로 변환(scan convert)하는 단계와, 각각의 스팬에 대해 상기 스팬의 단부치(end values)로부터 상기 스팬내의 각 화소에 대해 상기 제1깊이치(Z)를 보간하는 단계를 포함하는 화소 영상 렌더링 방법.
  5. 제1항에 있어서, 상기 적어도 하나의 기하학적 기본 요소 각각은 데이타 구조에서 하나 또는 그 이상의 다각형들에 의해 정의되고, 상기 생성 단계(b), (i)는 상기 다각형들을 일련의 화소 스팬들로 주사 변환하는 단계와 각각의 스팬에 대해 상기 스팬의 단부치로부터 상기 스팬내의 각 화소에 대해 상기 제2깊이치(Zs)를 보간하는 단계를 포함하는 화소 영상 렌더링 방법.
  6. 제1항에 있어서, 상기 적어도 하나의 기하학적 기본 요소는 하나 또는 그 이상의 다각형의 데이타 구조에 의해 정의되고 상기 생성단계(c)(i)는 상기 다각형들을 일련의 화소 스팬들로 변환하는 단계와 각각의 스팬에 대해 상기 스팬의 단부치로부터 상기 스팬내의 각 화소에 대해 상기 표시 색상치(Rs, Gs, Bs)를 보간하는 단계를 포함하는 화소 영상 렌더링 방법.
  7. 제1항에 있어서, 상기 적어도 하나의 기하학적 기본 요소는 하나 또는 그 이상의 다각형의 데이타 구조에 의해 정의되되, 상기 다각형들은 그들의 정점들(tertices)에 의해 정의되며, 상기 생성 단계(b), (i)는 상기 광원과 관련하여 상기 다각형 정점들 각각에서 제2깊이치(Zs)를 조절하여 대체로 상기 정의 관측점과 관련하는 상기 하나 또는 그 이상의 화소(X, Y)와 상기 정의 광원과 관련하는 상기 하나 또는 그 이상의 화소들(Xs, Ys)사이의 여하한 오등록(misregistration)도 실질적으로 제거하는 단계를 포함하는 화소 영상 렌더링 방법.
  8. 적어도 하나의 기하학적 기본 요소로 구성된 화면을 정의 주변 조명, 관측점 및 광원을 갖는 화소 영상으로 렌더링하되 상기 각각의 기본 요소는 제1관측점 좌표 공간내의 하나 또는 그 이상의 상기 기본요소와 연관된 화소들을 가지며, 제2광원 좌표 공간내의 하나 또는 그 이상의 상기 기본요소와 연관된 화소들(Xs, Ys)을 갖는 그림자(shadow) 생성 능력을 가진 컴퓨터 그래픽 디스플레이 시스템에 있어서, 상기 적어도 하나의 기하학적 기본 요소를 상기 관측점과 관련하여 장치 X, Y, Z 좌표로 변환하고 및 상기 광원과 관련하여 장치 Xs, Ys, Zs좌표로 변환하기 위한 기하 처리 엔진(geometry processing engine)과; 표시 화소 색상치를 수신하기 위해 상기 영상을 형성하는 상기 화소들에 대응하는 저장 위치를 갖는 프레임 버퍼와, 상기 관측점과 관련하여 상기 영상내의 선택된 화소들(X, Y)의 깊이를 표시하는 제1깊이치를 저장하기 위하여 상기 화소들과 대응하는 저장 위치를 갖는 제1Z 버퍼와, 상기 광원과 관련하여 상기 영상내의 선택된 화소들(Xs, Ys)의 깊이를 표시하는 제2깊이치(Zs)를 저장하기 위해 상기 화소들과 대응하는 저장 위치를 갖는 제2Z 버퍼와; 상기 기하 처리 엔진으로부터 상기 장치 좌표 출력을 수신하도록 결합하고 상기 프레임 버퍼, 제1Z 버퍼 및 제2Z 버퍼 각각에 결합된 라스터 처리 엔진(raster processing engine)에 있어서, (i) 상기 적어도 하나의 기하학적 기본 요소와 관련된 각 하소(X, Y)에 대하여 화소 깊이치(Z)를 생성하고 상기 화소 깊이치(Z)가 상기 제1Z 버퍼의 대응 위치에 저장된 깊이치 보다 상기 관측점에 더욱 가깝거나 동등한 경우 상기 제1Z 버퍼의 상기 대응(X, Y)위치에 상기값(Z)을 저장하기 위한 수단과, (ii) 상기 적어도 하나의 기하학적 기본 요소와 관련된 각 화소(Xs, Ys)에 대하여 제2화소 깊이치(Zs)를 생성하고 상기 제2깊이치(Zs)가 상기 제2Z 버퍼의 대응 위치에 저장된 깊이치 보다 상기 광원에 더욱 가깝거나 동등한 경우 상기 제2Z 버퍼의 상기 대응(Xs, Ys)위치에 상기 값(Zs)을 저장하기 위한 수단과; (iii) 상기 정의 광원만을 사용하여 상기 영상을 형성하는 각 화소에 대하여 표시 색상치(Rs, Gs, Bs)를 생성하기 위한 수단과, (iv) 상기 제1Z 버퍼내의 상기 대응 깊이치가 상기 관측점에 가시적인 화소를 식별하고 상기 제2Z 버퍼내의 상기 대응 깊이치가 상기 광원에 가시적인 화소를 식별하는 경우 상기 화소들의 상기 생성된 표시 색상치(Rs, Gs, Bs) 각각을 상기 프레임 버퍼의 대응(X, Y) 화소 위치에 더하기 위한 수단을 포함하는 라스터 처리 엔진을 포함하는 컴퓨터 그래픽 디스플레이 시스템.
  9. 제8항에 있어서, 상기 라스터 처리 엔진이, 상기 주위 조명치만을 사용하여 상기 영상을 구성하는 각 화소에 대해 표시 색상치(R, G, B)를 생성하기 위한 수단과; 상기 프레임 버퍼의 대응(X, Y) 화소 위치에서 상기 화소들의 상기 생성된 표시 색상치(R, G, B) 각각을 상기 프레임 버퍼의 상기 대응(X, Y) 화소 위치에 더하기 위한 수단을 더 포함하는 컴퓨터 그래픽 디스플레이 시스템.
  10. 제8항에 있어서, 상기 라스터 처리 엔진 생성 수단(i)은, 상기 적어도 하나의 기하학적 기본 요소를 일련의 화소 스팬들로 주사변환하기 위한 수단과; 상기 스팬내의 각 화소에 대해 상기 스팬 단부치로부터 상기 제1깊이치(Z)를 보간하기 위한 수단을 포함하는 컴퓨터 그래픽 디스플레이 시스템.
  11. 제8항에 있어서, 상기 라스터 처리 엔진 생성 수단(ii)은, 상기 적어도 하나의 기하학적 기본 요소를 일련의 화소 스팬들로 주사변환하기 위한 수단과; 상기 스팬내의 각 화소에 대해 상기 스팬 단부치로부터 상기 제2깊이치(Zs)를 보간하기 위한 수단을 포함하는 컴퓨터 그래픽 디스플레이 시시템.
  12. 제8항에 있어서, 상기 라스터 처리 엔진 생성 수단(iii)은 상기 적어도 하나의 기하학적 기본 요소를 일련의 화소 스팬들로 주사변환하기 위한 수단과; 상기 스팬내의 각 하소에 대해 상기 스팬 단부치로부터 상기 표시 색상치(Rs, Gs, Bs)를 보간하기 위한 수단을 포함하는 컴퓨터 그래픽 디스플레이 시스템.
KR1019930000992A 1992-01-29 1993-01-27 화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템 KR970003325B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US827,232 1992-01-29
US07/827,232 US5377313A (en) 1992-01-29 1992-01-29 Computer graphics display method and system with shadow generation

Publications (2)

Publication Number Publication Date
KR930016909A KR930016909A (ko) 1993-08-30
KR970003325B1 true KR970003325B1 (ko) 1997-03-17

Family

ID=25248652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930000992A KR970003325B1 (ko) 1992-01-29 1993-01-27 화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템

Country Status (5)

Country Link
US (1) US5377313A (ko)
EP (1) EP0553973A3 (ko)
JP (1) JPH0683979A (ko)
KR (1) KR970003325B1 (ko)
CA (1) CA2087501A1 (ko)

Families Citing this family (93)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07501162A (ja) * 1991-06-28 1995-02-02 リム ホン リップ 3dコンピュータグラフィック用可視性計算の改善
IL109462A0 (en) * 1993-04-30 1994-07-31 Scitex Corp Ltd Method for generating artificial shadow
AU6783594A (en) * 1993-05-10 1994-12-12 Apple Computer, Inc. Computer graphics system having high performance multiple layer z-buffer
GB9315852D0 (en) * 1993-07-30 1993-09-15 Video Logic Ltd Shading three-dimensional images
US5729672A (en) * 1993-07-30 1998-03-17 Videologic Limited Ray tracing method and apparatus for projecting rays through an object represented by a set of infinite surfaces
US5821941A (en) * 1994-08-12 1998-10-13 Dassault Systemes Of America, Corp. Geometric constraints between related elements in different 2-dimensional views
US5615321A (en) 1994-08-12 1997-03-25 Dassault Systemes Of America Corp. Automatic identification of geometric relationships between elements of a computer-generated drawing
EP0697679A3 (en) * 1994-08-12 1998-07-01 Dassault Systemes of America Computerized drawing method
JP3252623B2 (ja) * 1994-11-09 2002-02-04 松下電器産業株式会社 形状モデル生成装置
JPH08249494A (ja) * 1995-03-09 1996-09-27 Sharp Corp Zバッファ方式隠面消去装置
JP3570576B2 (ja) * 1995-06-19 2004-09-29 株式会社日立製作所 マルチモダリティに対応した3次元画像合成表示装置
US5864342A (en) * 1995-08-04 1999-01-26 Microsoft Corporation Method and system for rendering graphical objects to image chunks
US5870097A (en) * 1995-08-04 1999-02-09 Microsoft Corporation Method and system for improving shadowing in a graphics rendering system
US5761400A (en) * 1995-08-28 1998-06-02 Apple Computer, Inc. Method and system for increasing the speed of a Z-buffer process
US5748863A (en) * 1995-10-06 1998-05-05 International Business Machines Corporation Method and system for fast interpolation of depth buffer values in a computer graphics display system
JP3099940B2 (ja) * 1995-12-25 2000-10-16 日本電気株式会社 3次元グラフィックス制御装置
US5739819A (en) * 1996-02-05 1998-04-14 Scitex Corporation Ltd. Method and apparatus for generating an artificial shadow in a two dimensional color image
US5844566A (en) * 1996-02-12 1998-12-01 Dassault Systemes Method and apparatus for controlling shadow geometry on computer displays
US5774111A (en) * 1996-02-12 1998-06-30 Dassault Systemes Method and apparatus for providing a dynamically oriented compass cursor on computer displays
GB2312141B (en) * 1996-04-11 1998-04-22 Discreet Logic Inc Processing image data
GB9611939D0 (en) * 1996-06-07 1996-08-07 Philips Electronics Nv Stereoscopic image display driver apparatus
US6104842A (en) * 1996-06-10 2000-08-15 Integrated Device Technology, Inc. Geometry processing of digital video models and images
US6046746A (en) * 1996-07-01 2000-04-04 Sun Microsystems, Inc. Method and apparatus implementing high resolution rendition of Z-buffered primitives
US6018350A (en) * 1996-10-29 2000-01-25 Real 3D, Inc. Illumination and shadow simulation in a computer graphics/imaging system
US5936629A (en) * 1996-11-20 1999-08-10 International Business Machines Corporation Accelerated single source 3D lighting mechanism
CA2227531C (en) * 1997-01-20 2003-03-18 Hitachi, Ltd. Graphics processing unit and graphics processing system
US7616198B2 (en) * 1998-02-20 2009-11-10 Mental Images Gmbh System and computer-implemented method for modeling the three-dimensional shape of an object by shading of a two-dimensional image of the object
DE19714915A1 (de) * 1997-04-03 1998-10-08 Gmd Gmbh Bilddarstellungsverfahren und Vorrichtung zur Durchführung des Verfahrens
GB9716251D0 (en) 1997-08-01 1997-10-08 Philips Electronics Nv Attribute interpolation in 3d graphics
US5933156A (en) * 1997-12-03 1999-08-03 Margolin; Jed Z-Buffer for row addressable graphics memory with flash fill
US6501481B1 (en) 1998-07-28 2002-12-31 Koninklijke Philips Electronics N.V. Attribute interpolation in 3D graphics
US6356265B1 (en) * 1998-11-12 2002-03-12 Terarecon, Inc. Method and apparatus for modulating lighting with gradient magnitudes of volume data in a rendering pipeline
US6426749B1 (en) * 1998-11-12 2002-07-30 Terarecon, Inc. Method and apparatus for mapping reflectance while illuminating volume data in a rendering pipeline
US6369816B1 (en) * 1998-11-12 2002-04-09 Terarecon, Inc. Method for modulating volume samples using gradient magnitudes and complex functions over a range of values
US6411296B1 (en) * 1998-11-12 2002-06-25 Trrarecon, Inc. Method and apparatus for applying modulated lighting to volume data in a rendering pipeline
JP3258286B2 (ja) 1998-12-15 2002-02-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 半透明物体と不透明物体とが混在する複数の物体についての画像データをコンピュータ表示画面に表示する描画方法および描画装置
US20020190984A1 (en) * 1999-10-01 2002-12-19 Larry D. Seiler Voxel and sample pruning in a parallel pipelined volume rendering system
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6670958B1 (en) * 2000-05-26 2003-12-30 Ati International, Srl Method and apparatus for routing data to multiple graphics devices
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
CA2315302A1 (en) * 2000-07-13 2002-01-13 Paul A. Halmshaw Three dimensional imaging system
US7034828B1 (en) 2000-08-23 2006-04-25 Nintendo Co., Ltd. Recirculating shade tree blender for a graphics system
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US7061502B1 (en) 2000-08-23 2006-06-13 Nintendo Co., Ltd. Method and apparatus for providing logical combination of N alpha operations within a graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US6664962B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6867781B1 (en) 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US7184059B1 (en) 2000-08-23 2007-02-27 Nintendo Co., Ltd. Graphics system with copy out conversions between embedded frame buffer and main memory
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US7002591B1 (en) 2000-08-23 2006-02-21 Nintendo Co., Ltd. Method and apparatus for interleaved processing of direct and indirect texture coordinates in a graphics system
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6912717B2 (en) 2000-12-06 2005-06-28 Microsoft Corporation Methods and systems for implementing dynamic properties on objects that support only static properties
US6983466B2 (en) 2000-12-06 2006-01-03 Microsoft Corporation Multimedia project processing systems and multimedia project processing matrix systems
US6882891B2 (en) * 2000-12-06 2005-04-19 Microsoft Corporation Methods and systems for mixing digital audio signals
US6954581B2 (en) 2000-12-06 2005-10-11 Microsoft Corporation Methods and systems for managing multiple inputs and methods and systems for processing media content
US7447754B2 (en) 2000-12-06 2008-11-04 Microsoft Corporation Methods and systems for processing multi-media editing projects
US7103677B2 (en) * 2000-12-06 2006-09-05 Microsoft Corporation Methods and systems for efficiently processing compressed and uncompressed media content
US7114161B2 (en) 2000-12-06 2006-09-26 Microsoft Corporation System and related methods for reducing memory requirements of a media processing system
US6959438B2 (en) 2000-12-06 2005-10-25 Microsoft Corporation Interface and related methods for dynamically generating a filter graph in a development system
US6834390B2 (en) * 2000-12-06 2004-12-21 Microsoft Corporation System and related interfaces supporting the processing of media content
US6774919B2 (en) 2000-12-06 2004-08-10 Microsoft Corporation Interface and related methods for reducing source accesses in a development system
US6768499B2 (en) 2000-12-06 2004-07-27 Microsoft Corporation Methods and systems for processing media content
US7287226B2 (en) * 2000-12-06 2007-10-23 Microsoft Corporation Methods and systems for effecting video transitions represented by bitmaps
US7114162B2 (en) 2000-12-06 2006-09-26 Microsoft Corporation System and methods for generating and managing filter strings in a filter graph
US6961943B2 (en) * 2000-12-06 2005-11-01 Microsoft Corporation Multimedia processing system parsing multimedia content from a single source to minimize instances of source files
KR100454070B1 (ko) * 2001-01-31 2004-10-20 학교법인 중앙대학교 컴퓨터를 이용한 그림자를 포함한 실시간 툰 렌더링 방법
US6646640B2 (en) * 2001-02-06 2003-11-11 Sony Computer Entertainment Inc. System and method for creating real-time shadows of complex transparent objects
AUPS028702A0 (en) * 2002-02-01 2002-02-28 Canon Kabushiki Kaisha Efficient display update from changing object graphics
JP4193979B2 (ja) * 2003-03-17 2008-12-10 任天堂株式会社 シャドウボリューム生成プログラム及びゲーム装置
US6967663B1 (en) * 2003-09-08 2005-11-22 Nvidia Corporation Antialiasing using hybrid supersampling-multisampling
JP2005100176A (ja) * 2003-09-25 2005-04-14 Sony Corp 画像処理装置およびその方法
KR100520707B1 (ko) * 2003-10-20 2005-10-17 엘지전자 주식회사 3차원 지도에서의 다중레벨 텍스트데이터 표시방법
US7567248B1 (en) * 2004-04-28 2009-07-28 Mark William R System and method for computing intersections between rays and surfaces
US7525543B2 (en) * 2004-08-09 2009-04-28 Siemens Medical Solutions Usa, Inc. High performance shading of large volumetric data using screen-space partial derivatives
US7626591B2 (en) * 2006-01-24 2009-12-01 D & S Consultants, Inc. System and method for asynchronous continuous-level-of-detail texture mapping for large-scale terrain rendering
GB0613352D0 (en) * 2006-07-05 2006-08-16 Ashbey James A Improvements in stereoscopic imaging systems
US8355022B2 (en) * 2008-11-25 2013-01-15 Sony Computer Entertainment America Llc Method and apparatus for aggregating light sources per-vertex in computer graphics
US20100128038A1 (en) * 2008-11-25 2010-05-27 Sony Computer Entertainment America Inc. Method and apparatus for interpolating color and direction as one entity in computer graphics
EP2234069A1 (en) * 2009-03-27 2010-09-29 Thomson Licensing Method for generating shadows in an image
US8643701B2 (en) 2009-11-18 2014-02-04 University Of Illinois At Urbana-Champaign System for executing 3D propagation for depth image-based rendering
US10786736B2 (en) 2010-05-11 2020-09-29 Sony Interactive Entertainment LLC Placement of user information in a game space
CN102737401A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的三角片填充方法
US9342817B2 (en) 2011-07-07 2016-05-17 Sony Interactive Entertainment LLC Auto-creating groups for sharing photos
US9300946B2 (en) 2011-07-08 2016-03-29 Personify, Inc. System and method for generating a depth map and fusing images from a camera array
US9449118B2 (en) * 2011-09-29 2016-09-20 Siemens Product Lifecycle Management Software Inc. Hybrid hidden-line processor and method
KR20140142863A (ko) * 2013-06-05 2014-12-15 한국전자통신연구원 그래픽 편집기 제공 장치 및 그 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625289A (en) * 1985-01-09 1986-11-25 Evans & Sutherland Computer Corp. Computer graphics system of general surface rendering by exhaustive sampling
US4737921A (en) * 1985-06-03 1988-04-12 Dynamic Digital Displays, Inc. Three dimensional medical image display system
US4855938A (en) * 1987-10-30 1989-08-08 International Business Machines Corporation Hidden line removal method with modified depth buffer
JP3005981B2 (ja) * 1988-07-14 2000-02-07 ダイキン工業株式会社 付影処理方法およびその装置
GB2223384B (en) * 1988-07-14 1992-05-06 Daikin Ind Ltd Method and apparatus for applying shadowing operation to figures to be drawn for displaying on crt-display
JPH0727581B2 (ja) * 1988-09-09 1995-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 図形処理装置
US5222203A (en) * 1989-01-20 1993-06-22 Daikin Industries, Ltd. Method and apparatus for displaying translucent surface
US5027292A (en) * 1989-04-19 1991-06-25 International Business Machines Corporation Multiple depth buffers for graphics and solid modelling
JPH03127287A (ja) * 1989-10-13 1991-05-30 Nec Corp 3次元画像作成装置
US5265198A (en) * 1989-10-23 1993-11-23 International Business Machines Corporation Method and processor for drawing `polygon with edge`-type primitives in a computer graphics display system
US5123085A (en) * 1990-03-19 1992-06-16 Sun Microsystems, Inc. Method and apparatus for rendering anti-aliased polygons
US5175805A (en) * 1990-10-30 1992-12-29 Sun Microsystems, Inc. Method and apparatus for sequencing composite operations of pixels
US5268996A (en) * 1990-12-20 1993-12-07 General Electric Company Computer image generation method for determination of total pixel illumination due to plural light sources
US5265199A (en) * 1991-05-22 1993-11-23 Silicon Graphics, Inc. Method and apparatus for accomplishing Z-buffering by prediction

Also Published As

Publication number Publication date
EP0553973A2 (en) 1993-08-04
EP0553973A3 (en) 1994-05-18
US5377313A (en) 1994-12-27
CA2087501A1 (en) 1993-07-30
KR930016909A (ko) 1993-08-30
JPH0683979A (ja) 1994-03-25

Similar Documents

Publication Publication Date Title
KR970003325B1 (ko) 화소 영상 렌더링 방법 및 컴퓨터 그래픽 디스플레이 시스템
US5742749A (en) Method and apparatus for shadow generation through depth mapping
JP3184327B2 (ja) 3次元グラフィックス処理方法及びその装置
US6204856B1 (en) Attribute interpolation in 3D graphics
Williams Pyramidal parametrics
US5613048A (en) Three-dimensional image synthesis using view interpolation
US5704024A (en) Method and an apparatus for generating reflection vectors which can be unnormalized and for using these reflection vectors to index locations on an environment map
Aliaga Visualization of complex models using dynamic texture-based simplification
US5808619A (en) Real-time rendering method of selectively performing bump mapping and phong shading processes and apparatus therefor
US5805782A (en) Method and apparatus for projective texture mapping rendered from arbitrarily positioned and oriented light source
US5357599A (en) Method and apparatus for rendering polygons
EP0638875B1 (en) A 3-dimensional animation generating apparatus and a method for generating a 3-dimensional animation
US7532213B2 (en) Bicubic surface real time tesselation unit
US7362332B2 (en) System and method of simulating motion blur efficiently
EP1636787B1 (en) Shading computer-generated objects using generalized shading regions
US7889208B1 (en) Z-texture mapping system, method and computer program product
US5428716A (en) Solid-clip methodology and architecture for clipping solid models and displaying cross-sections using depth-buffers
US20020030681A1 (en) Method for efficiently calculating texture coordinate gradient vectors
US7158133B2 (en) System and method for shadow rendering
US5745667A (en) 3d graphics apparatus using texture images with displacement information
US6501481B1 (en) Attribute interpolation in 3D graphics
EP0656609A1 (en) Image processing
US7116333B1 (en) Data retrieval method and system
EP0791208B1 (en) Graphic image rendering
US5926183A (en) Efficient rendering utilizing user defined rooms and windows

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee