KR100243189B1 - 그래픽 시스템의 심플섀도 발생장치 - Google Patents

그래픽 시스템의 심플섀도 발생장치 Download PDF

Info

Publication number
KR100243189B1
KR100243189B1 KR1019960007729A KR19960007729A KR100243189B1 KR 100243189 B1 KR100243189 B1 KR 100243189B1 KR 1019960007729 A KR1019960007729 A KR 1019960007729A KR 19960007729 A KR19960007729 A KR 19960007729A KR 100243189 B1 KR100243189 B1 KR 100243189B1
Authority
KR
South Korea
Prior art keywords
value
limit value
shadow
data
frame buffer
Prior art date
Application number
KR1019960007729A
Other languages
English (en)
Other versions
KR970066986A (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 KR1019960007729A priority Critical patent/KR100243189B1/ko
Publication of KR970066986A publication Critical patent/KR970066986A/ko
Application granted granted Critical
Publication of KR100243189B1 publication Critical patent/KR100243189B1/ko

Links

Classifications

    • 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
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Abstract

본 발명은 그래픽 시스템에서 그림자의 밝기를 표현할 수 있는 심플섀도 발생장치에 관한 것으로서, 심플섀도 발생장치는 오브젝트로부터 그림자가 생기는 바닥면까지의 거리를 t라 할 때, 라스터 엔진에서 컬러 보간을 하는 방법과 동일한 방법으로 t의 시작값과 스크린 x방향에 대한 증분값을 입력으로 받아 t값을 보간하는 t보간기; 프레임버퍼에 저장된 픽셀의 RGB 데이터와 픽셀의 RGB 데이터에 상응하는 t보간기에서 보간된 데이터를 혼합하는 그림자컬러혼합부; 및 소정의 상한값과 하한값을 설정하고 그림자컬러혼합부의 출력값이 상한값보다 크거나 하한값보다 작을 때 이를 설정된 상한값 또는 하한값으로 간주하여 프레임버퍼로 출력하고, 소정의 상한값과 하한값 사이의 데이터는 그대로 프레임버퍼로 출력하는 임계값 판단부를 포함한다.
본 발명에 의하면 그림자에 밝기를 표현하는데 하드웨어로 간단하게 구현할 수 있고 속도를 향상시킬 수 있으며, 비용이 적게들고 현실감있는 3차원 게임기등 그림자를 얻고자 하는 게임, CAD등에 활용될 수 있다.

Description

그래픽 시스템의 심플 섀도 발생장치
제1도는 광원, 오브젝트, 그림자의 관계를 벡터로 표현한 벡터 관계도이다.
제2도는 본 발명의 전체적인 개략 구성도 및 외부 인터페이스 관계를 도시한 블럭도이다.
제3도는 t보간기 및 그림자 컬러 혼합부의 상세 블럭도이다.
제4도는 임계값 판단부의 상세 블럭도이다.
본 발명은 그래픽 시스템에 관한 것으로, 특히 그래픽 시스템의 라스터 엔진에서 사용되는 그림자의 밝기를 나타낼 수 있는 심플 섀도 발생장치에 관한 것이다.
일반적으로 그래픽 시스템은 지오미트리 엔진(geometry engine), 라스터 엔진(raster engine) 및 프레임 버퍼(frame buffer) 순의 파이프라인 구조로 구성된다. 그리고 그래픽 서브(sub) 시스템에서 섀도(shadow)는 빛에 의해서 생성되는 그림자를 표현하는 기능이다. 심플섀도(simple shadow) 알고리즘은 오브젝트(object)가 오브젝트의 그림자가 비추어질 바닥면 위에 떠 있다고 가정하고 그림자를 바닥면에만 나타나게 하는 비교적 구현이 간단하면서 그림자의 효과를 근사화시킬 수 있는 알고리즘이다. 종래의 심플섀도 알고리즘의 과정은 광원을 원점에 위치시키는 제1과정; 로컬(Local) 좌표계 상에 위치한 오브젝트를 광원을 원점으로 하는 좌표계로 변환시키는 제2과정; 광원에 대하여 뒷면 컬링(back face culling)을 하는 제3과정; 광원의 벡터와 바닥면의 평면방정식으로 부터 섀도 행렬을 구하는 제4과정; 각 폴리곤(polygon)에 대하여 상기 제4과정에서 구한 섀도행렬을 이용하여 바닥에 그려질 변환된 섀도폴리곤 좌표값을 얻는 제5과정; 상기 제4, 제5과정을 그림자 폴리곤을 전부 생성할 때 까지 반복하는 제6과정; 광원을 원래 위치로 이동시키는 제7과정; 여러개의 광원이 존재한다면 상기 제1과정 내지 제7과정을 반복하는 제8과정; 및 상기 제4과정에서 구해진 섀도 폴리곤을 랜더링(rendering)방식으로 바닥면에 그리는 제9과정을 포함하여 이루어진다.
그런데 상기 심플섀도 알고리즘은 그림자의 밝기를 표현할 수 없고, 그림자의 밝기 표현은 광선(ray)추적 기법, z버퍼 섀도 알고리즘에서만 가능하다. 그런데 상기 광선추적 기법은 시점(視點)에서 물체로 광선을 추적하여 시뮬레이션과 병용해서 그림을 그리는 수법으로서, 빛을 광원을 향해서 반복적(recursive)으로 광원을 추적하여 계산하기 때문에 비용과 수행속도가 현저히 떨어지는 단점이 있고 아직은 소프트웨어로만 가능하다. 그리고 z버퍼 섀도 알고리즘은 스캔(scan)으로 변환할 수 있는 오브젝트의 그림자를 만들 때 심플섀도처럼 하드웨어로 구현하여 광선추적 기법보다 실행속도가 빠른 장점이 있는 반면에, 섀도 z버퍼를 위한 메모리가 추가되고, 에일리어싱(aliasing)을 해결하기 위하여 필터링과 디더링(dithering)을 해야하는 단점이 있다.
따라서 본 발명은 상기의 문제점을 해결하기 위해 창출된 것으로서, 상기 심플섀도 알고리즘에 간단한 로직을 추가하여 z 버퍼 섀도 알고리즘의 효과를 근사하게 표현할 수 있는, 그림자의 밝기를 나타낼 수 있는 그래픽 시스템의 심플섀도 발생장치를 제공함에 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명에 따른, 지오미트리 엔진, 라스터 엔진, 프레임 버퍼를 포함하는 그래픽 시스템에서 그림자의 밝기를 표현할 수 있는 심플섀도 발생장치는 오브젝트로부터 그림자가 생기는 바닥면까지의 거리를 t라 할때, 라스터 엔진에서 컬러 보간을 하는 방법과 동일한 방법으로 상기 t의 시작값과 스크린 x방향에 대한 증분값을 입력으로 받아 상기 t값을 보간하는 t보간기; 상기 프레임버퍼에 저장된 픽셀의 RGB 데이터와 상기 픽셀의 RGB 데이터에 상응하는 상기 t보간기에서 보간된 데이터를 혼합하는 그림자컬러혼합부; 소정의 상한값과 하한값을 설정하고 상기 그림자컬러혼합부의 출력데이터가 상기 상한값보다 크거나 상기 하한값보다 작을 때 이를 상기 설정된 상한값 또는 하한값으로 간주하여 프레임버퍼로 출력하고, 상기 소정의 상한값과 하한값 사이의 데이터는 그대로 프레임 버퍼로 출력하는 임계값 판단부를 포함하여 이루어진다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세히 설명한다. 제1도는 광원, 오브젝트, 그림자의 관계를 벡터로 표현한 벡터관계도이다. 광원의 위치 벡터와 바닥면의 평면 방정식(a*x + b*y + c*z + d = 0)은 미리 주어져 알고 있다고 가정한다. 제1도에 도시된 벡터 관계도에서 다음과 같은 두 개의 식을 얻을 수 있다.
여기서 ·는 벡터 곱(product)을 나타내며,는 바닥면에 투사된 구하고자 하는 섀도 꼭지점(vertex)의 방향벡터,는 바닥면에 대한 방향 벡터,은 광원에 대한 방향 벡터,는 그림자로 생성하고자 하는 오브젝트의 꼭지점을 나타내는 방향 벡터이다.
상기 식(1)과 식(2)로 부터 매개변수 t를 구하면
상기 식(3)을 상기 식(1)에 대입하면, 최종적으로 바닥면에 투사된 섀도 꼭지점은 다음과 같다.
본 발명에서는 섀도행렬(shadow matrix)을 사용하지 않고 식(1), (2), (3)에 의해 섀도 폴리곤의 좌표값을 구한다. 이 때 중간에 식(3)에 의해 얻어지는 t 값을 가지고 섀도 블렌딩(shadowing blending) 요소로 사용하고, 라스터 엔진에서는 z 버퍼 알고리즘에서 발생될 수 있는 z 비교 에러를 보정해 준다.
그리고 섀도 컬러를 8단계의 빛의 세기로 바닥면의 컬러와 블렌딩(blending)시켜 그림자의 밝기를 근사하게 줄 수 있도록 하였다. 식(3)에서 계산된 매개변수 t는 오브젝트과 바닥면까지의 거리를 의미하므로 매개변수 t를 라스터 엔진에서의 컬러 보간과 같은 방법으로 보간(16비트)하여 이 가운데 최상위비트(MSB) 3비트를 알파 블렌딩의 알파 계수(factor)로 주어 바닥면에 컬러 값과 블렌딩하여 바닥의 컬러값을 8단계의 밝기로 나타낸다. 즉 알파 팩터가 '000' 이면 바닥면 컬러의 적녹청(RGB)의 0 % 이므로 검정에 가까운 색으로 나타내고, '111'이면 바닥면 컬러의 RGB의 100 % 이므로 바닥면의 색이 그대로 나타난다.
제2도는 본 발명의 전체적인 개략 구성도 및 외부 인터페이스 관계를 도시한 블럭도로서, 지오미트리 엔진, 라스터 엔진, 프레임 버퍼를 포함하는 그래픽 시스템에서 그림자의 밝기를 표현할 수 있는 심플섀도 발생장치의 블럭도를 도시하고 있다.
제2도에 도시된 상기 그래픽 시스템의 심플 섀도 발생장치는 t보간기(200), 그림자컬러혼합부(210), 임계값 판단부(220)로 구성되는데, 상기 t보간기(200)는 오브젝트로부터 그림자가 생기는 바닥면까지의 거리를 t라 할때, 라스터 엔진에서 컬러 보간을 하는 방법과 동일한 방법으로 상기 t의 시작값과 스크린 x방향에 대한 증분값을 입력으로 받아 상기 t값을 보간한다. 그리고 상기 t보간기(200)는 제3도에 도시된 바와 같이, 라스터 엔진에서 생성된 스팬(span)의 시작점에 상응하는 상기 t의 시작값을 저장하는 제1래치(201), 라스터 엔진에서 생성된 스팬의 시작점에 상응하는 상기 t의 스크린 x 방향에 대한 증분값을 저장하는 제2래치(202), 오브젝트를 구성하는 폴리곤 내부의 t값을 구하기 위해 상기 제2래치(202)에 래치된 증분값과 제3래치 출력값을 가산하는 덧셈기(203), 상기 제1래치(201)와 상기 덧셈기(203)의 출력을 입력으로 하여 그 중 하나를 선택하여 출력하는 멀티플렉서(204) 및 상기 멀티플렉서(204)의 출력을 저장하는 레지스터(205)를 포함하여 이루어진다.
그림자컬러혼합부(210)는 상기 프레임버퍼(230)에 저장된 픽셀의 RGB 데이터와 상기 픽셀의 RGB 데이터에 상응하는 상기 t보간기(200)에서 보간된 데이터를 혼합한다. 그리고 상기 그림자컬러혼합부(210)는 프레임버퍼(230)에 저장된 픽셀(pixel)의 적섹(R) 데이터와 상기 레지스터의 출력값을 곱하는 제1곱셈기(212), 프레임버퍼(230)에 저장된 픽셀의 녹색(G) 데이터와 상기 레지스터(205)의 출력값을 곱하는 제2곱셈기(214) 및 프레임버퍼(230)에 저장된 픽셀의 청색(B) 데이터와 상기 레지스터(205)의 출력값을 곱하는 제3곱셈기(216)으로 이루어진다.
임계값 판단부(220)는 소정의 상한값과 하한값을 설정하고 상기 그림자컬러혼합부(210)의 출력데이터가 상기 상한값보다 크거나 상기 하한값보다 작을 때 이를 상기 설정된 상한값 또는 하한값으로 간주하여 프레임버퍼(230)로 출력하고, 상기 소정의 상한값과 하한값 사이의 데이터는 그대로 프레임버퍼(230)로 출력한다. 제4도는 상기 임계값 판단부(220)의 일실시예를 도시한 것으로서, R 데이터를 위한 임계값 판단부(222), G 데이터를 위한 임계값 판단부(224) 및 B 데이터를 위한 임계값 판단부(226)으로 이루어진다.
본 발명의 동작을 설명하면 다음과 같다. 프레임을 구성하고 있는 시작 픽셀에 대한 초기 t 값을 제1래치(201)에, 증분 t 값을 제2래치(202)에 각각 저장한다. 선택신호를 로(low)로 하여, 멀티플렉서(204)를 이용하여 제1래치(201)에 저장된 t의 초기값이 선택되게 하고, 상기 t의 초기값을 레지스터(205)에 입력한다. 클럭 라이징 엣지(rising edge)일 때 t의 초기값이 레지스터(205)에 저장되고, 저장된 16비트로 된 t값 중 최상위비트 3비트를 섀도 광원계수(factor)로 가정하고, 그림자컬러혼합부(210)로 출력시킨다. 프레임 버퍼(230)에서 시작 픽셀에 대한 적,녹,청 컬러 값을 독출하여 각각 그림자컬러혼합부(210)의 제1, 제2, 제3곱셈기(212, 214, 216)의 입력단자 a로 입력시킨다. 입력이 완료되면 상기 제1, 제2, 제3 곱셈기(212, 214, 216)에서는 곱셈을 수행하여 임계값 판단부(220)으로 그 결과값을 출력한다. 상기 임계값 판단부(220)는 상기 곱셈의 결과값이 255(8비트로 표현할 수 있는 최대값)를 넘는 값들은 255로 고정시켜 출력되게 한다. 상기 임계값 판단부(220)를 통해 수행된 후에 나오는 초기 t에 의해 블렌딩된 섀도 컬러값은 프레임버퍼(230)에 기록됨으로써, 시작 픽셀에 대한 섀도 블렌딩은 완료된다.
두번째 픽셀에 대한 섀도 블렌딩은 레지스터(205)에 저장된 매개변수 t값과 제2래치(202)에 저장된 증분 값은 덧셈기(203)를 통해 더해져서 그 결과값이 멀티플렉서(204)로 출력된다. 선택신호가 하이(high)로 되면, 멀티플렉서(204)가 상기 덧셈기(203)을 통해 더해진 t값이 선택되어 레지스터(205)로 입력된다. 클럭 라이징 엣지일 때 t의 초기값이 레지스터(205)에 저장되고 저장된 t값(총 16비트)중 최상위 비트 3비트를 섀도 광원 계수로 가정하고, 그림자 컬러 혼합부(210)로 출력시킨다. 프레임 버퍼(230)에서 두 번째 픽셀의 적, 녹, 청 컬러를 독출하여 각각 곱셈기(212, 214, 216)의 입력단자 b로 입력한다. t보간기(200)에서 출력된 3비트 섀도 광원 계수를 상기 곱셈기(212, 214, 216)의 입력단자 a로 입력한다. 입력이 완료되면 곱셈기(212, 214, 216)에서 곱셈을 수행하여 임계값 판단부(220)로 출력된다. 임계값 판단부(220)는 곱셈의 결과 값이 255를 넘는 값은 255로 고정시켜 출력되게 한다. 임계값 판단부(220)의 수행결과 나오는 초기 t에 의해 블렌딩된 섀도 컬러 값은 프레임 버퍼(230)에 기록되어 시작 픽셀에 대한 섀도 블렌딩이 완료된다. 이후 폴리곤 내의 픽셀에 대한 계산 과정은 두번째의 계산 과정과 동일하다.
상술한 바와 같이 본 발명에 의하면, 그림자에 밝기를 표현하는데 하드웨어로 간단하게 구현할 수 있고 속도를 향상시킬 수 있다. 또한 이 방법은 비용이 적게들고 현실감있는 3차원 게임기등 그림자를 얻고자 하는 게임, CAD등에 활용될 수 있다.

Claims (4)

  1. 지오미트리 엔진, 라스터 엔진, 프레임 버퍼를 포함하는 그래픽 시스템에서 그림자의 밝기를 표현할 수 있는 심플섀도 발생장치에 있어서, 오브젝트로부터 그림자가 생기는 바닥면까지의 거리를 t라 할 때, 라스터 엔진에서 컬러 보간을 하는 방법과 동일한 방법으로 상기 t의 시작값과 스크린 x방향에 대한 증분값을 입력으로 받아 상기 t값을 보간하는 t보간기; 상기 프레임버퍼에 저장된 픽셀의 RGB 데이터와 상기 픽셀의 RGB 데이터에 상응하는 상기 t보간기에서 보간된 데이터를 혼합하는 그림자컬러혼합부; 및 소정의 상한값과 하한값을 설정하고 상기 그림자컬러혼합부의 출력데이터가 상기 상한값보다 크거나 상기 하한값보다 작을 때 이를 상기 설정된 상한값 또는 하한값으로 간주하여 프레임버퍼로 출력하고, 상기 소정의 상한값과 하한값 사이의 데이터는 그대로 프레임 버퍼로 출력하는 임계값 판단부를 포함함을 특징으로 하는 심플섀도 발생장치.
  2. 제1항에 있어서, 상기 t보간기는 라스터 엔진에서 생성된 스팬의 시작점에 상응하는 상기 t의 시작값을 저장하는 제1래치; 라스터 엔진에서 생성된 스팬의 시작점에 상응하는 상기 t의 스크린 x 방향에 대한 증분값을 저장하는 제2래치; 오브젝트를 구성하는 폴리곤 내부의 t값을 구하기 위해 상기 제2래치에 래치된 증분값과 래지스터 출력값을 가산하는 덧셈기; 상기 제1래치와 상기 덧셈기의 출력을 입력으로 하여 그 중 하나를 선택하여 출력하는 멀티플렉서; 및 상기 멀티플렉서의 출력을 저장하는 레지스터를 포함함을 특징으로 하는 심플새도 발생장치.
  3. 제2항에 있어서, 상기 t시작값 및 t증분값은 16비트의 데이터로 구성되며, 상기 레지스터의 16비트의 출력 데이터 중 최상위로 부터 3비트의 데이터를 상기 그림자컬러 혼합부로 출력함을 특징으로 하는 심플섀도 발생장치.
  4. 제2항에 있어서, 상기 그림자컬러 혼합부는 프레임버퍼에 저장된 픽셀의 적색 데이터와 상기 레지스터의 출력값을 곱하는 제1곱셈기; 프레임버퍼에 저장된 픽셀의 청색 데이터와 상기 레지스터의 출력값을 곱하는 제2곱셈기; 및 프레임버퍼에 저장된 픽셀의 녹색 데이터와 상기 레지스터의 출력값을 곱하는 제3곱셈기로 이루어짐을 특징으로 하는 심플섀도 발생장치.
KR1019960007729A 1996-03-21 1996-03-21 그래픽 시스템의 심플섀도 발생장치 KR100243189B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019960007729A KR100243189B1 (ko) 1996-03-21 1996-03-21 그래픽 시스템의 심플섀도 발생장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960007729A KR100243189B1 (ko) 1996-03-21 1996-03-21 그래픽 시스템의 심플섀도 발생장치

Publications (2)

Publication Number Publication Date
KR970066986A KR970066986A (ko) 1997-10-13
KR100243189B1 true KR100243189B1 (ko) 2000-02-01

Family

ID=19453621

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960007729A KR100243189B1 (ko) 1996-03-21 1996-03-21 그래픽 시스템의 심플섀도 발생장치

Country Status (1)

Country Link
KR (1) KR100243189B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100454070B1 (ko) * 2001-01-31 2004-10-20 학교법인 중앙대학교 컴퓨터를 이용한 그림자를 포함한 실시간 툰 렌더링 방법

Also Published As

Publication number Publication date
KR970066986A (ko) 1997-10-13

Similar Documents

Publication Publication Date Title
US8610729B2 (en) Floating point computer system with fog
US5544294A (en) Method for generating a subpixel mask for computer graphics system and apparatus thereof
JP3763136B2 (ja) 描画方法および描画装置
US5224208A (en) Gradient calculation for texture mapping
US6181352B1 (en) Graphics pipeline selectively providing multiple pixels or multiple textures
EP0243644B1 (en) Interpolated display characteristic value generation
JPH05307610A (ja) テクスチャマッピング方法およびその装置
US6437781B1 (en) Computer graphics system having per pixel fog blending
US5109481A (en) Quadratic interpolation for shaded image generation
KR100243189B1 (ko) 그래픽 시스템의 심플섀도 발생장치
KR100313846B1 (ko) 바이리니어밉매핑에서의상세도(lod)계산방법및장치
JP4224887B2 (ja) 信号処理装置および画像処理装置
JPH11185052A (ja) 3次元コンピュータグラフィックスのテクスチャマッピング座標計算装置および方法
EP1302902B1 (en) Feedback-controlled setting of interpolation parameters used in image rendering
JPH11242585A (ja) 除算回路およびグラフィック演算装置
JP4635379B2 (ja) 画像処理装置
KR19980041754A (ko) 컴퓨터 그래픽에서 텍스쳐 좌표를 결정하는 방법 및 장치
Ali et al. Bresenham's Line and Circle Drawing Algorithm using FPGA
JP4244444B2 (ja) データ処理装置、除算回路および画像処理装置
JP3538826B2 (ja) 演算回路および演算方法
JPH09153142A (ja) レンダリング装置およびその方法
JP2000067266A (ja) ラスターイメージの表示方法及び編集方法並びにそれらを利用したコンピュータ支援図形処理システム
JPH06348859A (ja) 立体画像処理装置
JPH1186012A (ja) 多角形描画方法及び装置
JPH06203171A (ja) 画像生成装置および方法

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

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee