KR100281949B1 - 영상 드로잉 장치 - Google Patents

영상 드로잉 장치 Download PDF

Info

Publication number
KR100281949B1
KR100281949B1 KR1019980037476A KR19980037476A KR100281949B1 KR 100281949 B1 KR100281949 B1 KR 100281949B1 KR 1019980037476 A KR1019980037476 A KR 1019980037476A KR 19980037476 A KR19980037476 A KR 19980037476A KR 100281949 B1 KR100281949 B1 KR 100281949B1
Authority
KR
South Korea
Prior art keywords
buffer
circuit
dimensional
frame buffer
data
Prior art date
Application number
KR1019980037476A
Other languages
English (en)
Other versions
KR19990029709A (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 KR19990029709A publication Critical patent/KR19990029709A/ko
Application granted granted Critical
Publication of KR100281949B1 publication Critical patent/KR100281949B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • G06T15/405Hidden part removal using Z-buffer
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Solid State Image Pick-Up Elements (AREA)

Abstract

본 발명은 표시 장치내에 표시화면과 대응하는 표시 데이터를 저장하는 프레임 버퍼로 구성된 3차원의 영상 드로잉(drawing) 장치와 프레임 버퍼내에 특정한 2차원의 영상들을 그리기 위해서, 좌표 연산을 수행하는 2차원 드로잉 회로이다. 장치는 또한 프레임 버퍼에 대해 3차원의 드로잉을 수행하기 위해서 깊이 데이터를 저장하는 Z 버퍼와, Z 버퍼내에 저장된 깊이 데이터에 근거하여, 프레임 버퍼에 대해 3차원의 드로잉을 수행하는 3차원 직선 드로잉 회로로 구성되어 있다. 상기 장치는 버퍼에 대한 억세스들을 제어하는 메모리 제어회로와, Z 버퍼에 있는 깊이 데이터와 대응하는 수 많은 비트들 또는 프레임 버퍼내의 드로잉 데이터와 대응하는 수 많은 비트들에 대해, 2차원의 드로잉 회로의 좌표연산시에 화소마다 존재하는 수많은 비트들을 변경시키는 비트 수 변경회로를 추기로 포함하고 있다. 프레임 버퍼와 Z 버퍼의 영역들은 간단한 물리적인 메모리내에 설정된다. 비트수 변경회로는 2차원 드로잉 회로의 좌표연산에 의해, 2차원 드로잉 회로의 좌표연산시에 화소당 비트들의 수를 변경함으로써, Z 버퍼내에 깊이 데이터를 설정하는 것과 프레입 버퍼에 드로잉하는 것을 선택적으로 수행한다.

Description

영상 드로잉 장치
본 발명은 표시장치의 표시화면상에서 3차원 드로잉을 수행할 수 있는 영상 드로잉장치에 관한 것이다.
도12는 종래의 영상 드로잉 장치의 보기 구조를 나타낸 블록도이다.
이러한 영상 드로잉 장치는 다음과 같이 구성되어 있다. 영상들을 표시하는 음극선관(10), 음극선관(10)의 표시화면에 대응하는 표시 데이터를 저장하는 프레임 버퍼(12), 프레임 버퍼(12)에다 원하는 직사각형 영상들을 그리기 위한 2차원 드로잉회로(14), 프레임 버퍼(12)에 대해 3차원 드로잉을 수행하기 위해서, 깊이 데이터(Z 값들)를 저장하는 Z버퍼, Z 버퍼(16)내에 저장된 깊이 데이터에 근거하여, 프레임 버퍼(12)에 대해 3차원 드로잉을 수행하는 3차원 직선 드로잉 회로(18), Z 버퍼(16)내에 원하는 직사각형 영역 데이터를 설정하는 Z버퍼 설정 회로(20), 영상 드로잉 장치를 전체적으로 제어하는 처리기(22)와, 처리기(22)에 제어 프로그램과 작업 영역을 제공하는 주 메모리(24)로 구성되어 있다.
상술한 구조내에서는, 처리기(22)가 주 메모리(24)내에서 2차원 데이터를 먼저 만들어낸다. 이러한 2차원 데이터는 라인 분할(예를 들면, 직선)(line segments)로 구성되어 있다. 프레임 버퍼(12)내에 이것들을 기록함으로써, 영상들은 음극선관(10)상에서 표시된다.
2차원 드로잉 회로(14)는 고속으로 프레임 버퍼(12)내에 어떤 2차원 영상들을 기록하기 위한 전용 회로이다. 좀 더 자세히 설명하자면, 2차원 직선들을 그리는 전용회로와, 2차원 직사각형 영역들을 채우는 전용회로 그리고, 2차원 직사각형 영역을 다른 위치로 전달하는 전용회로가 존재한다. 2차원 드로잉 회로(14)에서, 고속 드로잉은 도시된 2 차원 영상들의 속성들(attributes)에 응답하여, 일정한 좌표 연산들에 의해 수행된다. 이것은 상술한 바와 같이, 2 차원 영상들의 모양과 위치들을 명시하는 어드레스들을 설정하는 과정과, 드로잉 칼라 데이터를 설정하는 과정에 의해 수행된다.
다음에는, 3차원 드로잉이 Z 버퍼(16)와, 3차원 직선 드로잉 회로(18)를 이용하여 수행된다. Z 버퍼는 프레임 버퍼(12)내에 도시된 화소들(XY좌표들)내에 포함된 깊이 데이터(Z값들)를 저장한다. 3차원 직선 드로잉 회로(18)는 처리기(22)로부터 입력된 3차원 직선들의 XY좌표내의 각 위치에 대한 깊이 데이터(소스 Z값들)와, Z버퍼(16)내에 이미 저장된 깊이 데이터(목적지 Z값들)를 비교한다. 그리고, 더 작은 깊이를 가지고 있는 데이터를 선택하고, 그 데이터를 프레임 버퍼(12)내에 기록한다. 그러므로, 앞에 있는 물체들에 의해 숨겨진 물체들을 후방에다 배치시킴으로써, 자연적인 영상들을 그릴 수 있으며, 3차원 영상들을 2차원 영상들로 그릴 수 있는 것이 가능하다.
도13은 3차원 직선 드로잉 회로(18)의 구도를 도시한 도면이다. 이러한 3차원 직선 드로잉 회로(18)는 다음과 같이 구성되어 있다. 처리기(22)로부터 입력된 소스(Z) 값들을 저장하는 레지스터(102), Z버퍼(16)내에 저장된 목적지 Z 값들과, 레지스터(102)내에 저장된 소스(Z)값들을 비교하는 비교기(104), AND, OR, XOR, 또는 다른 논리 회로들을 이용하여, 프레입 버퍼(12)내에 원래부터 존재하는 데이터와 소스 값들에 대해서, 논리 연산을 수행하는 라스터 동연산 처리기(ROP)회로(106), 도시된 직선들의 시작과 종료 위치들에 대한 좌표 변수들을 제공함으로써, 프레임 버퍼(12)에다 직선 라인들을 드로잉 하는 직선 연산회로(108), 비교기(104)의 연산 결과에 근거하여, Z 버퍼(16)를 재기록하는 전달회로(110), 프레임 버퍼(12)를 억세스하기 위한 어드레스들을 발생시키고, 제어하는 프레입 버퍼 어드레스 연산회로(112)와, Z버퍼(16)를 억세스하기 위한 어드레스들을 발생시키고, 제어하는 Z 버퍼 어드레스 연산 회로로 구성되어 있다.
도14는 어떤 벡터(직선)를 그리기 위한 Z 버퍼 연산 처리를 서술한 설명도이다. 직선이 좌표(Xs,Ys)로부터 좌표(Xe,Ye)로 그려질 때에, 좌표들과 Z 값들은 직선을 구성하는 화소들을 위해 계산된다.
Z값 계산연산들은 시작점 좌표(Xs,Ys)내의 값(Zs= 초기 값)과 각 화소 사이의 증가(zi)에 근거하여, 직선을 구성하는 각 화소에 대한 마지막 좌표(Xe,Ye)까지 수행된다. 이와 같이 계산된 Z값은 비교기(104)에 의해 상기 좌표에 원래 부터 있는 화소의 Z 값과 비교된다. 계산된 새로운 Z값이 더 작다면, 계산의 결과들은 Z버퍼(16)에 기록되며, 화소를 프레임 버퍼(12)로 기록하는 연산이 구동된다. 그리고, 화소는 새로운 드로잉에 근거하여, 기록된다. 만약 새롭게 계산된 Z 값이 더 크다면, Z버퍼(16)와 프레임 메모리(12)는 동일하게 유지된다.(즉,화소는 원래대로 보존된다.)
3차원 직선 드로잉 회로(18)의 형태로된 하드웨어 대신에 소프트웨어로, 이러한 제어가 실행되는 시스템들이 존재한다.
이러한 영상 드로잉 장치내에서 Z 버퍼(16)의 값을 설정하는 방법들은 다음과 같다.
(1) 처리기(22)에 의해 Z 버퍼(16)를 직접 억세스하고, Z 값이 설정되어진 경우에 어드레스들을 처리기(22)내에서 계산하여,Z 값들을 설정하는 방법.
(2) 상술한 3차원 직선 드로잉 회로(18)를 이용하여 Z 버퍼(16)내에 Z값을 설정하는 방법.
(3) Z 버퍼 설정회로(20)를 이용하여 Z값들을 설정하는 방법.
이들 중에서, 처리기(22)에 의해 직접 Z값들을 설정하는 경우에서는, Z값들이 설정된 영역내의 위치들에서 동시에 설정된다. 이것은 고속 처리를 매우 어렵게 만들며, 전체 시스템을 제어하는 처리기(22)에 대해 커다란 장애가 된다.
3차원 직선 드로잉 회로(18)를 이용하여, Z 버퍼(16)내에 Z 값들을 설정하는 경우에는, 상술한 바와 같이, 한 라인을 그리고, 동시에 시작점과 종료점을 지정함으로써, 원하는 영역을 설정하는 것이 가능하다. 그 이유는 각 라인 분할은 설정된 영역내의 주사 라인들을 구성하고 있기 때문이다. 그러므로, 처리기(22)에 의해 직접 설정하는 방법과 비교해 보면, 상술한 바와 같이, 고속 처리는 바교적 간단한 모양의 그래픽을 위해 수행될 수 있다.
이러한 방법에서는, 많은 라인 분할들이 드로잉 처리를 수행시에 지정되며, 각 위치의 Z값을 비교하는 처리도 역시 포함된다. 그러므로, Z버퍼 설정회로(20)가 사용되는 방법보다 더욱 연산을 느리게 한다. Z값들이 Z 버퍼 설정회로(20)를 이용하여 설정되는 방법에서는, 3차원 직선 드로잉 회로(18)를 이용할 때의 속도 보다 더 빠른 속도로 Z값들을 설정하는 것이 가능하다.
좀 더 자세히 설명하자면, Z 버퍼 설정회로(20)는 특정한 2차원 영상들을 고속으로 Z 버퍼에 기록하는 전용회로이다. Z 버퍼(16)내부에 2차원 영역들을 지정함으로써, 그리고, 설정되는 Z 값들을 지정함으로써, 고속 설정은 Z값들이 설정된 2차원 영역들의 속성들에 응답하는 일정한 좌표연산에 의해 이루어진다.
Z 버퍼 설정회로(20)를 이용하여, Z 버퍼(16)내의 특정 영역을 다른 영역으로 전달하기 위해서 고속 연산을 수행하는 것이 가능하다.
그러나, 상술한 종래의 영상 드로잉 장치내의 Z 버퍼(16)로 고속 설정과 전달을 수행하기 위해서, 전용 Z 버퍼 설정회로(20)가 제공되어야만 한다. 그 결과로 인해, 비싸고, 문제가 많은 구조를 만들게 되었다.
지금은, 상술한 2차원 드로잉 회로(14)와 Z 버퍼 설정회로(20)가 특정한 영역 좌표 연산들을 수행하는 부분들에서 비슷한 구조를 가지고 있지만, 억세스의 대생이되는 프레임 버퍼(12)와 Z버퍼(16)의 속성들을 처리하기 위해 구성되어 있다. 그러므로, 그것들을 상호 교환하여 사용하는 것은 매우 어려워진다.
이러한 문제의 근본적인 원인은 화소당 바이트들의 수가 프레임 버퍼(12)와 Z 버퍼(16)에서 다르다는 사실에 있다.
좀 더 자세히 설명하자면, 프레임 버퍼(12)내의 화소당 바이트들의 수는 프레임 버퍼(12)내에 저장되어 있는 칼라 데이터의 등급에 따라 결정된다. 각 칼라 성분내에는 255개의 등급이 있으므로, 예를 들면, 화소당 데이터의 1 바이트가 각 칼라 성분을 위해 요구된다. 4 개의 칼라 성분들을 위해서는, 4 바이트들(32비트들)이 요구된다.
한편, Z버퍼(16)내에서는, 화소당 바이트들의 수가 Z값 데이터에 의해 제공되는 깊이 해상도에 의해 결정된다. 화소당 바이트들의 수가 증가한다면, 동일한 방법에 의해서, 깊이 치수면에서 더욱 복잡한 3차원 영상들을 드로잉하는 것이 가능하다. 화소당 Z값 데이터의 2 바이트들이 사용된다.
프레임 버퍼(12)내에 저장된 칼라 데이터의 등급과, Z 버퍼(16)내에 저장된 Z값의 해상도는 보통 다르다. 따라서, 이러한 버퍼들의 구조도 또한 다르다. 이러한 이유 때문에, 도12에 도시된 바와 같이 구성되어 있는 이러한 버퍼들(12,16)을 이용하여, 고속으로 처리들을 수행하기 위해서, 프레입 버퍼(12)를 위한 2차원 드로잉 회로(14)와, Z 버퍼(16)를 위한 Z 버퍼 설정회로(20)를 독립적으로 공급하는 것이 필요하기 때문에, 비용감소를 하기가 어렵게 된다.
상술한 바와 같이, Z버퍼(16)가 사용되는 장치에서는, 고속 시스템 구조가 일반적으로 사용된다. 비용이 많이 들더라도, 메모리는 독립된 프레임 버퍼와 Z 버퍼로서 구성된다. 그리고, 독립된 버스 인터페이스가 처리기(22)와 3차원 직선 드로인 회로(18)를 위해 각각 제공된다. 이러한 이유 때문에, 2차원 드로잉 회로(14)와 Z 버퍼 설정회로(20)를 여러 가지 분야에서 사용할 수 있도록 만드는 것이 어렵게 된다. 이것은 비용 절감을 어렵게 만든다.
본 발명의 목적은 영상 드로잉 장치를 제공하는 것이다. 상기 영상 장치에서는, 프레임 버퍼를 위한 2차원 드로잉 회로가 Z 버퍼를 위한 설정회로로서 사용될 수도 있다. 그러므로, Z버퍼 고속 설정 처리와 비용 절감이 동시에 실현될 수 있게 된다.
상기 목적을 달성하기 위해서, 본 발명은 다음과 같은 요소로 구성되어 있는 영상 드로잉 장치이다. 표시장치 표시화면과 대응하는 표시 데이터를 저장하는 프레임 버퍼와, 특정한 2차원 영상들을 상기 프레임 버퍼에 드로잉 하기 위해서, 좌표 연산을 수행하는 2차원 드로잉 회로와, 상기 프레임 버퍼에 대해 3차원 드로잉을 수행하기 위해서, 깊이 데이터를 저장하는 Z 버퍼와, 상기 Z버퍼내에 저장된 상기 깊이 데이터에 근거하여, 상기 프레임 버퍼에 대해 3차원 드로잉을 수행하는 3차원 직선 드로잉 회로와, 버퍼들에 대한 억세스들을 제어하는 메모리 제어회로와, 상기 2차원 드로잉 회로내에서 좌표 연산 수행시에, 화소당 비트들의 수를 상기 Z버퍼내의 깊이 데이터에 대응하는 비트들의 수 또는 상기 프레임 내의 드로잉 데이터와 대응하는 비트들의 수로 변경시키는 비트 수 변경회로를 구비하고 있다. 프레임 버퍼에 대한 드로잉과 Z 버퍼내에 깊이 데이터를 설정하는 일은 2차원 드로잉 회로의 좌표 연산에 의해 선택적으로 수행된다. 본 발명의 영상 드로잉 장치에서는, 프레임 버퍼와 Z 버퍼의 영역들은 동일한 물리적인 메모리내에서 적합하게 설정된다. 두 개의 버퍼 영역들은 2차원 드로잉 회로에 의해 선택적으로 억세스 되어진다. 프레임 버퍼가 2차원 드로잉 회로로부터 억세스 될 때에, 이러한 억세스는 2차원 드로잉 회로의 좌표 연산시에, 화소당 비트들의 수를 비트 수 변경 회로에 의해서, 프레임 버퍼내의 드로잉 데이터와 대응하는 비트들의 수로, 변경시킨 후에, 이루어진다. 2차원 드로잉 회로로부터 Z 버퍼를 억세스할 때에, 2차원 드로잉 회로의 좌표연산 수행시에, 화소당 비트들의 수는 비트 수 변경 회로에 의해 Z 버퍼내에 있는 깊이 데이터와 대응하는 비트들의 수로 변경된다.
그러므로, 고속으로, 프레임 버퍼에 특정한 영상들을 드로잉하고 전달하는 것과, Z 버퍼내에 특정한 영역들을 설정하고, 전달하는 것이 2차원 드로잉 회로에 의해 가능하다.
본 발명의 영상 드로잉 장치에서는, 동일한 물리적인 메모리에다 프레임 버퍼와 Z버퍼 영역들을 설정하고, 2차원 드로잉 회로의 좌표 연산시에 화소당 비트들의 수를 변경함으로써, 프레임 버퍼에 대한 드로잉과, Z 버퍼내에 깊이 데이터를 설정하는 일이, 2차원 드로잉 회로의 좌표 연산에 의해 선택적으로 수행된다.
그러므로, 프레임 버퍼를 위한 2차원 드로잉 회로는 Z 버퍼를 위해 설정회로로서 사용될 수 있다. 그리고, 깊이 데이터는 전용 Z버퍼 설정회로를 제공하지 않으면서, 더욱 빠른 속도로 Z버퍼로 설정될 수 있다. 그러므로, Z 버퍼를 위한 고속 설정처리와 비용감소를 실현할 수 있다. Z 버퍼를 프레임 버퍼와 동일한 구조로 형성함으로써, 그리고, 메모리 제어회로를 이용하여, 물리적인 메모리내에서 화소당 비트들의 수와 동일한 크기의 두 프레임 버퍼들을 설정하는 것과, 비트 수 변경회로를 이용하여 비트들의 수를 변경시키지 않고, 각 프레임 버퍼에 대한 드로잉을 교대로 수행하는 것과, 프레임 버퍼들이 애니메이션을 위해 이중 버퍼들로 사용될 수 있는 시스템을 만드는 것이 가능하다.
도1은 본 발명의 제1 실시예에 근거하여 영상 드로잉 장치를 도시한 블록도.
도2는 도1에 도시된 영상 드로잉 장치내에 제공된 2차원 드로잉 회로를 도시한 블록도.
도3은 도2에 도시된 2차원 드로잉 장치내에 제공된 레지스터 회로들의 특정한 보기들을 나타낸 설명 흐름도.
도4는 도1에 도시된 영상 드로잉 장치내에서 Z버퍼 직사각형 공간이 어떻게 클리어 되는지를 나타내는 한 세트의 도면.
도5는 도1에 도시된 영상 드로잉 장치내의 프레임 버퍼와 Z 버퍼내에 동일한 직사각형을 위한 칼라 설정 레지스터를 설정하는 보기를 도시한 도면.
도6은 도5에 도시된 레지스터를 설정함으로써, Z 버퍼 직사각형 영역내에 Z값을 설정하고, 프레임 버퍼내의 직사각형 영역을 채우는 방법을 나타낸 도면.
도7은 도1에 도시된 영상 드로잉 장치내에서 Z 버퍼를 클리어하는 연산을 도시한 흐름도.
도8은 윈도우 표시 시스템내의 윈도우내에 있는 음극선관의 이동에 따라, 프레임 버퍼 드로잉 데이터와 Z버퍼 Z 값이 이동하는 방법을 도시한 한 세트의 도면.
도9는 본 발명의 제2 실시예에 근거한 영상 드로잉 장치내의 2차원 드로잉 회로를 도시한 블록도.
도10은 도9에 도시된 2차원 드로잉 회로내에 제공된 레지스터 회로들의 특정한 보기들을 도시한 흐름도.
도11은 도1에 도시된 영상 드로잉 장치내의 Z 버퍼 직사각형 영역을 전달하는 연산을 도시한 흐름도.
도12는 종래의 양상 드로잉 장치의 한 보기를 도시한 블록도.
도13은 도12에 도시된 영상 드로잉 장치내의 3차원 직선 드로잉 회로를 도시한 블록도.
도14는 도13에 도시된 3차원 직선 드로잉 회로를 이용하여, 어떤 벡터(직선 라인)를 드로잉 하기 위해서, Z버퍼 연산 처리들을 기술한 도면.
* 도면의 주요부분에 대한 부호의 설명 *
200 : 2차원 드로잉 회로 210 : 음극선관
240 : 버퍼 메모리 270 : 처리기
280 : 주 메모리
본 발명에 근거한 영상 드로잉 장치의 실시예들이 서술될 것이다.
도1은 본 발명의 제1 실시예에 근거한 영상 드로잉 장치를 도시한 블록도이다.
이러한 영상 드로잉 장치는 다음과 같이 구성되어 있다. : 영상들을 표시하는 음극선관(210), 음극선관(210)에 표시하기 위해서, 프레임 버퍼(220)를 제공하는 버퍼 메모리(240), 3차원 드로잉을 위한 Z 버퍼(230), 버퍼 메모리(240)내에서 원하는 직사각형 영역들을 드로잉하고, 설정작업들을 하는 2차원 드로잉회로(200)와, 버퍼 메모리(240)를 위한 버퍼 영역들을 설정하고, 억세스를 제어하는 메모리 제어회로(250),Z 버퍼(230)내에 저장된 Z값에 근거하여, 프레임 버퍼(220)에다 3차원 드로잉을 수행하는 3차원 직선 드로잉 회로(260), 영상 드로잉 장치의 전체적인 제어를 수행하는 처리기(270), 처리기(270)를 위한 작업 영역과, 제어 프로그램을 제공하는 주 메모리(280)로 구성되어 있다.
도13에 도시된 3차원 직선 드로잉 회로(18)와 같이, 3차원 직선 드로잉 회로(260)는 도14에 도시된 원리를 이용하여, 프레임 버퍼(220)에다 3차원 직선들을 드로잉한다. 처리기(270)는 3차원 직선 드로잉 회로(260)에다 이미 언급한 소스 Z 값들을 공급한다. 3차원 직선 드로잉 회로(260)는 Z버퍼(230)내에 저장된 목적지 Z값들을 처리기(270)로부터 나온 소스 Z값들과 비교한다. 이러한 비교의 결과에 근거하여, 프레임 버퍼(220)에다 3차원 직선들을 드로잉하게 된다.
이 실시예의 영상 드로잉 장치에서는, 프레임 버퍼(220)와 Z 버퍼(230)가 버퍼 메모리(240)내에 제공된다. 즉, 동일한 물리적 메모리에 제공된다. 그리고, 2차원 드로잉 회로(200)는 메모리 제어 회로(250)에 의해 버퍼들(220, 230)의 자유롭게 억세스 한다.
이 실시예에서는, 프레임 버퍼(220)가 640 ×280 화소들의 크기를 가지고 있으며, 화소당 칼라 데이터의 8비트, 16비트, 또는 32비트들을 저장한다.
프레임 버퍼(220)내에서 화소당 비트들의 수는 이미 언급한 바와 같이, 칼라 데이터의 등급에 의해 결정된다. 칼라 데이터 등급은 응용 소프트웨어 또는 키보드(도시 안됨)의 조작자 입력에 의해 결정된다.
프레임 버퍼(220)내의 리드(lead) 어드레스가 3000000h라고 가정하자. 이 때, h는 16진수를 나타내는 마지막 부분이다.
Z버퍼(230)는 화소당 16 비트 또는 32 비트들인 Z값들로 깊이를 나타내기 위해서 설정된 640 ×480 화소들로 되어 있다.
Z버퍼(230)내에서 화소당 비트들의 수는 이미 언급한 바와 같이, Z값 데이터에 의해 제공된 깊이 해상도에 의해 결정된다. Z값 데이터에 의해 제공된 깊이 해상도는 응용 소프트웨어 또는 키보드의 조작자 입력에 의해 결정된다. Z버퍼(230)의 리드 어드레스는 3004B00h이다.
이 실시예의 2차원 드로잉 회로(200)는 직사각형 영역들을 채우는(fill) 처리를 수행하도록 구성된다. 그 회로는 프레임 버퍼(220)를 위한 원하는 칼라내의 원하는 직사각형 영역들을 채우기 위한 처리를 수행한다. 그것은 또한 Z버퍼(230)를 위한 원하는 직사각형 영역내에서 Z값들을 설정하며, 초기화 처리를 수행한다.
도2는 2차원 드로잉 회로(200)를 도시한 블록도이다.
이 도면에 도시한 바와 같이, 2차원 드로잉 회로(200)는 직사각형 영역들을 채우는 처리를 하기 위해 여러 가지 변수들을 설정하는 레지스터 회로(300)와, 레지스터(300)내에 설정된 변수들에 근거하여, 프레임 버퍼(220)와 Z 버퍼(230)에 대해 어드레스 연산들을 수행하는 메모리 어드레스 연산회로(330)로 구성되어 있다.
레지스터 회로(300)는 드로잉 화소-바이트 수 설정 레지스터(302), 드로잉 리드 어드레스 설정 레지스터(304), 시작점 설정 레지스터(306), 폭-높이 레지스터(308), 드로잉 모드 설정 레지스터(310), 시작 설정 레지스터(312)와 칼라 설정 레지스터(314)로 구성되어 있다.
프레임 버퍼(220) 또는 Z버퍼(230)를 억세스 하기 전에, 이러한 레지스터(300)를 위한 여러 가지 변수들의 설정은 키보드로부터 조작자에 의해 입력되는 연산 또는 응용 소프트웨어에 근거하여, 처리기(270)에 의해 수행된다. 프레임 버퍼(270)에 직사각형을 드로잉 하거나 또는 Z 버퍼(230)에 직사각형을 드로잉(Z설정) 할 때에, 처리기(270)는 드로잉 리드 어드레스 또는 드로잉 화소-바이트 수를 변경시키기 위해서 설정한다.
2차원 드로잉 회로(200)는 상술한 레지스터(300)내에 설정된 변수들에 근거하여, 메모리 어드레스 연산회로(330)내에 있는 직사각형 영역들의 드로잉 화소들을 위한 어드레스들을 계산한다. 그리고 메모리 제어 회로(250)에 이러한 어드레스들을 출력시킨다. 메모리 제어회로(250)는 메모리 어드레스 연산회로(330)의 어드레스들에 근거하여, 프레임 버퍼(220) 또는 Z 버퍼(230)를 억세스하며, Z값 데이터 또는 저장된 칼라 데이터를 칼라 설정 레지스터(315)내에 기록한다.
그 후에는, 드로잉 리드 어드레스 설정 레지스터(304)내에 설정된 드로잉 리드 어드레스에 근거하여, 프레임 버퍼(220)에 대한 억세스 또는 Z 버퍼(230)에 대한 억세스인지가 결정된다.
또한, 드로잉 화소-바이트 설정 레지스터(302)내에 설정된 바이트들의 수에 근거하여, 데이터 기록은 프레임 버퍼(220)가 억세스될 때에, 프레임 버퍼(220)에 대응하는 바이트들의 수를 이용하여, 수행된다. 그리고, 데이터 기록은 Z버퍼(230)가 억세스될 때에, Z버퍼(230)에 대응하는 바이트들의 수를 이용하여, 수행된다.
시작점 설정 레지스터(306), 폭-높이 레지스터(308), 드로잉 모드 설정 레지스터(310)와 시작 설정 레지스터(312)의 기능들은 프레임 버퍼(220)를 억세스하는 경우와, Z 버퍼(230)를 억세스하는 경우에 모두 공통적이다.
메모리 어드레스 연산회로(330)의 어드레스 연산들은 예를 들면, 메모리 제어회로(250)로부터 나온 동기 신호에 근거하여, 메모리 제어회로(250)내에서 수행되는 데이터 기록 연산과 동기적으로 수행된다.
2차원 드로잉 회로(200)는 더욱 자세하게 기술될 것이다.
도3은 이 실시예에 있는 레지스터 회로(300)내의 여러 가지 설정 레지스터들을 위한 형태들과 메모리 어드레스들 간의 상호관계성에 관한 특정한 보기를 나타낸 설명도이다. 이 실시예에 있는 레지스터 회로(300)는 레지스터 회로(300)내에 2000000h의 리드 어드레스를 가지고 있는 32 비트들의 데이터 폭으로 되어 있다.
드로잉 화소-바이트 수 설정 레지스터(302)는 비트 수 변경 회로를 구성한다. 이것은 직사각형들을 위한 어드레스들을 계산할 때에, 억세스되어지는 버퍼(220 또는 230)에 대응하는 화소당 비트들의 수를 바이트 단위로 설정하는 레지스터이다. 만약, 화소당 비트들의 수가 8이라면, 0h가 설정된다. 그리고 16이라면, 1h가 설정된다. 32라면, 2h가 설정된다.
억세스의 대상이 버퍼(220)인지 아니면, (230)인지에 따라서, 드로잉 리드 어드레스 설정 레지스터(304)는 도시된 직사각현이 지정되어 있는 좌표들의 시스템내에서 원점(0,0)에 대한 메모리 어드레스를 설정한다.
시작점 설정 레지스터(306)는 채워진 직삭가형내에 있는 상부 좌측점에다 화소자표를 설정하는 레지스터이다. 상기 화소 좌표는 더 높은 16비트들에 의해 Y좌표를, 더 낮은 16비트들에 의해 X좌표를 나타낸다.
폭-높이 레지스터(308)는 채원진 직사각형의 폭과 높이를 나타내는 데이터를 설정한다. 그리고 상기 데이터는 높이를 더 높은 16 비트들로, 폭은 더 낮은 16비트들로 나타낸다. 이 실시예에서는, 직사각형들이 직사각형내의 상부 좌측점과, 직사각형의 폭과 높이에 의해 지정된다.
대신에, 직사각형내의 상부 좌측점과 하부 우측점에 의해 직사각형을 지정하는 것이 가능하다. 드로잉 모드 설정 레지스터(310)는 직사각형을 채울 때에, 1h로 설정하고, 직선 드로잉 또는 직사각형 드로잉을 선택하는 레지스터이다.
시작설정 레지스터(312)는 드로잉의 시작을 지정하는 레지스터이다. 드로잉은 이 레지스터(312)내에 1을 설정함으로써, 시작된다.
칼라 설정 레지스터(314)는 드로잉 화소-바이트 설정 레지스터(302)내에 설정된 값에 따라, 직사각형 필(fill) 칼라 그리고 직사각형 Z값들을 설정하는 레지스터이다. 만약, 이러한 값이 8비트들(1바이트)을 표시한다면, 8비트로 표시된 칼라 데이터가 설정된다. 만약 16비트들(2 바이트)을 표시한다면, 16비트로 표시된 칼라 데이터 또는 Z값들이 설정된다. 만약 32비트들(4 바이트)을 표시한다면, 32비트로 표시된 칼라 데이터 또는 Z값들이 설정된다. Z버퍼(230)가 클리어될 때에(clear), 0h는 칼라 설정 레지스터(314)내에 설정되며, 0-클리어리(clearing) 데이터는 각 위치에 기록된다.
Z버퍼(230)를 이용하는 3차원 드로잉에서는, Z버퍼(230)를 클리러하는 필요성이 자주 발생된다. 상술한 바와 같이, 2차원 드로잉 회로(200)에 의해 직사각형을 Z 버퍼(230)에 기록함으로써, Z 버퍼(230)는 빨리 클리어 된다. 많은 양의 메모리 억세스들이 이러한 클리어링 연산을 위해 요구되기 때문에, 2차원 드로잉 회로(200)를 이용하여, 소곳으로 처리가 수행될 수 있다.
도4a는 전체 Z버퍼(230)가 Z 버퍼(230)의 전체 영역과 대응하는 0h 직사각형 데이터에 의해 클리어되어 있는 상황을 도시하고 있다.
도4b에 도시한 바와 같이, 음극선관(210)에 표시된 윈도우는 0으로 클리어된다.
프레임 버퍼(220)와 Z버퍼(230)에 있는 화소당 데이터 비트들의 수(바이트들의 수)가 다를 때에, 직사각형 시작점과 폭-높이 데이터로부터 물리적인 어드레스를 게산하는 계산 공식이 변경되어야만 한다. 드로잉 화소-바이트 수 설정 레지스터(302)를 제공함으로써, 직사각형들은 프레임 버퍼(220)상에 그것들을 채울 때에,프레임 버퍼(220)내에 좌표(x,y)를 지정하는 방법에 의해 지정될 수 있다. 그리고, 직사각형들은 Z 버퍼(230)상에 그것들을 채울 때에, Z 버퍼(230)상의 좌표 시스템(x,y)내에 지정될 수 있다.
다른 말로 표현 한다면, 프레임 버퍼(220)와 Z 버퍼(230)의 화소당 바이트들의 수가 다르더라도, 이러한 레지스터(320)를 이용함으로써, 공통의 2차원 드로잉 회로(200)가 사용될 수 있다.
메모리 어드레스 연산회로(330)는 상술한 바와 같이, 레지스터 회로(300)내에 있는 설정 변수들에 근거하여, 도시된 화소들을 위해 위치별로 어드레스를 계산한다.
도5는 프레임 버퍼(220)와 Z 버퍼(230)내의 도일한 직삭가형을 위한 칼라 설정 레지스터(314)내에 설정을 하는 보기를 도시한 도면이다.
도5a는 프레임 버퍼(220)에 대한 드로잉 데이터의 열(row)를 도시하고 있다. 칼라 설정 레지스터(314)내에서, "ALPHA", "RED", GREEN"과 "BLUE" 데이터가 설정되며, 채워질 칼라로 지정된다. 도5b는 Z 버퍼(230)에 대한 Z값의 열을 도시하고 있으며, "Z"를 Z 값 데이터로 설정한다.
동일한 값들이 시작점 설정 레지스터(306)와 폭-높이 레지스터(308)내에 설정된다.
도6은 도5a에 도시된 레지스터 설정에 의해 직사각형 영역이 프레임 버퍼(220)내에서 채워지는 상황을 도시하고 있다. 그리고, Z값들이 도5b에 도시된 레지스터 설정에 의해 Z 버퍼(230)내의 직사각형 영역에 설정되는 상황을 도시하고 있다.
도6에서는, 레지스터(1)는 드로잉 리드 어드레스 설정 레지스터(304)이며, 레지스터(2)는 드로잉 화소-바이트 수 설정 레지스터(302)이다. 그리고 레지스터(3)는 시작점 설정 렙지스터(306)이고, 레지스터(4)는 폭-높이 레지스터(308)이며, 레지스터(5)는 칼라 설정 레지스터(314)이다.
2차원 드로잉 회로(200)는 프레임 버퍼(220)에 의해 표시 데이터를 저장하는 상태에 있도록 구성되므로, 그것은 Z 버퍼(230)내에 설정할 때에만,Z버퍼(230)에 일시적으로 설정 데이터를 재기록하며, Z버퍼(230)내에 설정을 완료한 후에, 프레임 버퍼(220)에 데이터를 자동적으로 재기록하게 된다.
Z버퍼(230)가 화소당 32 비트들을 사용하고, 프레임 버퍼(220)가 화소당 비트들의 다른 수를 사용하는 경우에서는, 2차원 드로잉 회로(200)의 드로잉 화소-바이트 수 설정 레지스터(302)가 일시적으로 32비트들로 설정된다. 그리고, Z 버퍼(230)에 설저을 한 후에, 드로잉 화소-바이트 수 설정 레지스터(302)는 프레임 버퍼(220)와 대응하는 값으로 변경된다.
이 실시예에 있는 Z 버퍼(230)의 전체 영역을 클리어하는 절차들이 서술될 것이다.
도7은 Z 버퍼(230)를 클리어하는 절차를 도시한 흐름도이다.
먼저, 레지스터 회로(300) 설정들은 처리기(270)에 의해 이루어진다. 초기에는, 1h의 값이 드로잉 모드 설정 레지스터(310)에 설정되어, 직사각형 필(fill) 모드(단계: S2)내에서 설정된다. 다음에는, 드로잉 리드 어드레스 설정 레지스터(304)가 3004B00h로 설정된다. (단계 :S4)
다음에는, 32bpp = 2h가 드로잉 화소-바이트 수 설정 레지스터(302)내에 설정된다.(단계 :S6) 이 때에,bpp는 화소 단 비트들의 수를 표시하고 있다.
다음에는, (0,0) = 0h가 시작점 설정 레지스터(306)내에 설정된다(단계 :S8). 다음에는, 폭-높이 레지스터(308)가 (폭 640, 높이 480)으로 설정된다 (단계 :S10). 다른 말로 표현한다면, Z 버퍼(230)의 전체 영역이 Z 버퍼(230)의 전체 영역을 클리어하기 위해서, 지정된다.
칼라 설정 레지스터(314)는 0h(Z 값 = 0)로 설정된다. (단계 : S12). 1h는 시작설정 레지스터(312)내에 설정된다. (단계 :S14) 그러므로, 클리어 과정을 시작하게 된다.
먼저, 클리어 과정이 시작될 때에, 드로잉 포인트 어드레스들은 2차원 드로잉 회로(200)의 메모리 어드레스 연산회로(330)내에서, 아래에 기술된 수식에 의해 계산된다. 그리고 이것들은 메모리 제어 회로(250)로 전달된다. (단계 :S16).
드로잉 포인트 어드레스 = 리드 어드레스 + X 좌표 × 드로잉 화소-바이트 수 + Y좌표 × 드로잉 화소-바이트 수 × 한 개의 주사 라인내의 화소들의 수
메모리 제어회로(250)는 2차원 드로잉 회로(200)로부터 전송된 상기 어드레스들에서 칼라 설정 레지스터(314)의 값들을 기록한다. (단계 : S18)
한 개의 기록과정이 끝나면, 2차원 드로잉 회로(200)의 메모리 어드레스 연산 회로(330)는 다음의 드로잉 포인트를 계산한다. (단계 : S16) 그리고, 드로잉 화소-바이트 수를 참조하며, 화소당 바이트들의 수 만큼 어드레스를 진행시키고, 다음 드로잉 포인트에서 칼라 설정 레지스터(314)내에 그 값을 기록한다. (단계 : S18)
드로잉이 직사각형 영역의 우측 끝에서 수행될 때에, 어드레스는 차이(주사 라인내의 바이트들의 수 - 직사각형 폭에 있는 바이트들의 수)만큼 진행한다. 그리고 값들은 다음 주사 라인상의 드로잉 포인트를 위해 기록된다. 상술한 연산이 직사각형내의 모든 화소들에 대해 수행되었는지가 판단된다. (단계 :S20) 만약 이것이 완료되지 않았다면, 단계(S16)로 돌아가서, 단계(S16, S18)가 수행된다.
그러므로, 이 실시예에 있는 영상 드로잉 장치에서는, Z 버퍼(230)가 프레임 버퍼(220)를 위한 2차원 드로잉 회로(200)를 이용하여, 클리러되거나 또는 재기록된다. 그리하여, 낮은 비용으로 고속 Z 버퍼(230) 설정을 실현할 수 있다.
본 발명의 제2 실시예가 서술되어 있다. 상기 실시예에서는, 설명이 직삭가형 필링 회로가 2차원 드로잉 회로(200)로서 채용되어진 경우에 관한 것이었다. 이 실시예에서는, 직사각형 전달 회로가 2차원 드로잉 회로(200)로 채택되어진 경우가 설명되어질 것이다.
윈도우 형태의 연산 시스템(OS)에서는, 응용 윈도우가 자주 이동한다. 이러한 이유 때문에, Z 버퍼를 이용하는 시스템에서는, 프레임 버퍼상에 데이터를 이동시킬 뿐만 아니라, 윈도우 직사각형에 대응하는 Z 버퍼상에 데이터를 이동시키는 것도 필요하다. 도8은 음극선관에 있는 이러한 윈도우의 이동에 따라 Z버퍼(230)내의 Z유효 데이터와 프레임 버퍼(220)내의 드로잉 데이터가 이동하는 방법을 도시하고 있다.
이 도면에서, (A)에서는, 음극선관에서 상부 좌측에서 하부 우측으로 3차원 응용 윈도우가 이동하는 경우가 나타나 있으며, (B)에서는, 프레임 버퍼(220)내의 직사각형 영역을 위한 칼라값 데이터가 이도한 경우가 나타나 있다. 그리고 (C)에서는, Z버퍼(230)내의 직사각형 영역을 위한 Z 값 데이터가 이동한 경우가 나타나 있다.
상기 실시예에서는, Z 버퍼내의 직사각형 데이터의 이동이 2차원 드로잉 회로(200)를 이용하여 고속으로 수행된다.
도9에서는, 이 실시예에 있는 2차원 드로잉 회로(200)를 도시한 블록도이다.
여기에서 도시한 바와 같이, 2차원 드로잉 회로(200)의 레지스터 회로(300)는 도2에 도시된 구조와 비교해 보았을 때에 부분적으로 수정되었다. 자세히 설명하자면, 이 실시예의 2차원 드로잉 회로(200)는 전달-최초 직사각형 시작점 어드레스들을 저장하는 전달-최초 직사각형 시작점 위치설정 레지스터(320)와, 전달-목적지 직사각형 시작점 어드레스를 저장하는 전달-목적지 직삭각형 시작점 위치설정 레지스터(322)로 구성되어 있다.
상기 실시예는 또한 드로잉 화소-바이트 수 설정 레지스터(302), 드로잉 리드 어드레스 설정 레지스터(304), 폭-높이 레지스터(308), 드로잉 모드설정 레지스터(310), 시작설정 레지스터(312)와 칼라 설정 레지스터(314)로 구성되어 있다. 각각은 도2에 도시된 실시예의 구성요수들과 같이 동일한 기능을 가지고 있다.
도10은 이 실시예에 있는 레지스터 회로(300)내의 설정 레지스터를 위한 형태와 메모리 어드레스들간의 상관관계의 특정한 보기들을 도시한 도면이다. 전달-최초 직사각형 시작점 위치설정 레지스터(320)는 전달-최초 직사각형 영역내의 상부 좌측점을 위한 화소 좌표들을 저장한다.
Y좌표는 더 높은 16비트들에 저장되며, X좌표는 더 낮은 16비트들내에 저장된다.
전달-목적지 직삭각형 시작점 위치설정 레지스터(322)는 전달-목적지 직사각형 영역내의 상부 좌측점을 위한 화소 죄표를 저장한다. Y좌표는 더 높은 16비트들에 저장되며, X좌표는 더 낮은 16비트들내에 저장된다.
이 실시예에서는, 전달-목적지 직사각형 위치는 (10,70)으로 기술되며, 전달 직사각형 폭과 높이는 (210,50)으로, 전달-목적지 직사각형 위치는 (130, 200)으로 기술된다.
이 실시예의 칼라 설정 레지스터(314)는 전달-최초 직사각형 영역이 (내용들)을 전달함으로써, 클리어되어진 후에, 영역내에 설정된 Z값을 저장한다. 이 보기에서는, 칼라 설정 레지스터(314)가 그 값을 0h로 저장한다.
Z버퍼(230)내에서 직사각형 영역을 전달하는 절차들은 다음에 기술될 것이다.
도11은 Z버퍼(230)(의 내용들)을 전달할 때에, 사용되는 절차들을 도시한 흐름도이다. 먼저, 처리기(270)에 의해 레지스터 회로(300)내에 설정이 이루어진다. 초기에는, 2h가 직사각형 전달 모드를 지정하기 위해서 드로잉 모드 설정 레지스터(310)내에 설정된다. (단계 : S32) 다음에는, 3004B00h가 드로잉 리드 어드레스 설정 레지스터(304)내에 설정된다. (단계 : S34) 그 후에는, 32bpp = 2h가 드로잉 화소-바이트 수 설정 레지스터(302)내에 설정된다. (단계 : S36)
다음에는, (10,70)이 전달-최초 직사각형 시작점 위치설정 레지스터(320)내에 설정된다. (단계 : S38) 그 후에는, (130, 200)이 전달-목적지 직삭각형 시작점 위치설정 레지스터(322)내에 설정된다. (단계 :S40). 다음에는, (폭 210, 높이 50)가 폭-높이 레지스터(308)내에 설정된다. (단계 : S42) 다음에는, 0h (Z 값 = 0)가 칼라 설정 레지스터(314)내에 설정된다. (단계:S44). 그리고, 1h는 시작설정 레지스터(312)내에 설정된다. (단계 : S46)그리하여, 클리어 과정이 시작된다.
클리어 과정이 시작될 때에, 2차원 드로잉 회로(200)의 어드레스 연산회로(330)에 의해, 다음과 같은 공식을 이용함으로써, 전달-최초 직사각형 영역내의 드로잉 위치들의 어드레스들이 계산된다. 이러한 어드레스들은 메모리 제어 회로(250)에 전송된다. (단계 :S48)
드로잉 포인트 어드레스 = 리드 어드레스 + X 좌표 × 드로잉 화소-바이트 수 + Y좌표 × 드로잉 화소-바이트 수 × 한 개의 주사 라인내의 화소들의 수
메모리 제어회로(250)는 2차원 드로잉 회로(200)로부터 전송된 어드레스들에 대응하는 Z버퍼(230)로부터 나온 Z값을 판독하며, 그것을 전달 레지스터(도시 안됨)내에 저장한다.(단계 : S50) 그 후에는, 칼라 설정 레지스터(314)내에 있는 값(0h)이 상기 어드레스내에 기록된다. (단계: S52)
다음에는, 단계(S48)에서 사용된 동일한 공식을 이용함으로써, 전달-목적지 직사각형 영역내의 드로잉 위치들의 어드레스들이 계산되고, 메모리 제어회로(250)로 전송된다. (단계:S54) 메모리 제어회로(250)는 2차원 드로잉 회로(200)로부터 전송된 어드레스에서, 상술한 전달 레지스터내에 저장된 Z값을 기록한다. (단계 : S56)
한 개의 전달이 끝났을 때에, 단계(S48)로 돌아가며, 다음 드로잉 포인트가 전달되어진다. 이러한 연산은 직사각형 영역내의 모든 화소들에 대해 수행된다. (단계:S58) 그러므로, 이 실시예의 영상 드로잉 장치에서는, Z버퍼(230)내의 직사각형 영역들은 프레임 버퍼(230)를 위한 2차원 드로잉 회로(200)를 이용하여, 전달된다. 그 후에는, Z버퍼(230)가 저렴한 비용으로 구성된 구조에서 고속으로 재기록된다.
본 발명의 제3 실시예가 서술될 것이다. 이 실시예의 영상 드로잉 장치에서는, Z 버퍼(230)가 프레임 버퍼(220)의 크기와 동일한 크기로 만들어지며, 화소당 비트들의 수는 모두에게 공통적이다. 그러므로, 두 개의 프레임 버퍼들을 가지는 이중 버퍼 시스템을 구성하게 된다.
이러한 이중 버퍼 시스템은 애니메이션을 위해 사용되는 표시 시스템이다. 이러한 시스템에서는, 한 개의 프레임 버퍼내에 저장된 애니메이션의 한 화면(프레임)을 표시하면서, 다음에 표시되는 화면(프레임)이 다른 프레임 버퍼내에 드로잉된다. 이러한 프레임 버퍼들 사이의 변화들을 하드웨어로 제어함으로써, 시스템은 더욱 빠른 속도로 애니메이션을 수행하며, 드로잉 연산동안에, 호화면의 불규칙성을 방지한다.
상술한 영상 드로잉 장치에서는, 드로잉 리드 어드레스 설정 레지스터(304)에 의해, 두 개의 프레임 버퍼들이 버퍼 메모리(240)내에 구성된다. 그리고, 애니메이션 드로잉은 메모리 제어 회로(250)에 의해 교대로 선택되는 두 개의 프레임 버퍼들에 의해 수행된다. 동시에 음극선관(210)의 화면상에 표시된 프레임 버퍼들은 교대로 변화된다. 그러므로, 시스템은 이중 버퍼 시스템으로 연산할 수 있다.
상술한 3차원 영상 드로잉 기능들 또는 윈도우 표시 시스템과, 이중 버퍼 시스템의 이러한 기능들을 결합시킴으로써, 버퍼 메모리(240)는 여러 응용 분야에서 널리 사용된다. 그러므로, 버퍼 메모리는 특히, 멀티미디어 응용을 지원할 수 있는 효과적인 장치를 제공할 수 있다.
상술한 실시예들에서는, 2차원 직사각형들을 드로잉하고, 전달하는 2차원 드로잉 회로가 제공되는 경우에 대한 설명이 기술되어 있다. 그러나, 본 발명은 2차원 직선들을 드로잉하는 2차원 드로잉 회로가 제공되는 경우에서도 마찬가지로 적용될 수 있다. 명세서, 청구항, 도면과 요약서를 포함하고 있는 일본 공개 특허 번호 09-247073(1997년 9월 11일 제출됨)의 전체 내용들이 침조난에 모두 포함되어져 있다.

Claims (10)

  1. 3차원 영상 드로잉 장치에 있어서,
    표시장치 표시화면과 대응하는 표시 데이터를 저장하는 프레임 버퍼와,
    특정한 2차원 영상들을 상기 프레임 버퍼에 드로잉 하기 위한 좌표 연산을 수행하는 2차원 드로잉 회로와,
    상기 프레임 버퍼에 3차원 드로잉을 수행하기 위한 깊이 데이터를 저장하는 Z 버퍼와,
    상기 Z버퍼내에 저장된 상기 깊이 데이터에 근거하여, 상기 프레임 버퍼에 대해 3차원 드로잉을 수행하는 3차원 직선 드로잉 회로와,
    버퍼들에 대한 억세스를 제어하는 메모리 제어회로와,
    상기 2차원 드로잉 회로내에서 좌표 연산 수행시에, 화소당 비트들의 수를 상기 Z버퍼내의 깊이 데이터에 대응하는 비트들의 수 또는 상기 프레임 내의 드로잉 데이터와 대응하는 비트들의 수로 변경시키는 비트 수 변경회로를 구비하고 있으며,
    상기 프레임 버퍼와 Z 버퍼의 영역들은 동일한 물리적인 메모리내에서 설정되며,
    상기 비트 수 변경회로는 상기 2차원 드로잉 회로의 좌표연산에 의해, 상기 2차원 드로잉 회로의 좌표 연산수행시에, 화소당 비트들의 수를 변경시킴으로써, 상기 프레임 버퍼에 대해 드로잉과, 상기 Z버퍼에 대해 깊이 데이터의 설정을 선택적으로 수행하는 3차원 영상 드로잉 장치.
  2. 제1 항에 있어서, 상기 비트 수 변경회로는 화소당 비트들의 수를 바이트 단위로 변경시키는 3차원 영상 드로잉 장치.
  3. 제 1항에 있어서, 상기 비트 수 변경회로는 상기 2차원 드로잉 회로내에 제공되어 있으며 화소당 비트들의 수를 설정하는 비트 수 설정 회로내에 있는 Z 버퍼 또는 상기 프레임 버퍼와 대응하는 비트들의 수를 설정하는 3차원 영상 드로잉 장치.
  4. 제1 항에 있어서, 상기 2차원 드로잉 회로는 특정한 도면을 위한 드로잉 영역들을 설정하는 영역 설정 회로를 구비하여 상기 영역 설정 회로내에 설정된 드로잉 영역의 어드레스에 근거하여, 상기 프레임 버퍼 또는 상기 Z 버퍼에 선택적으로 억세스하는 3차원 영상 드로잉 장치.
  5. 제4 항에 있어서, 상기 2차원 드로잉 회로는, 화소당 비트들의 수를 설정하는 비트 수 설정회로와, 상기 특정한 도면내에 기록될 데이터를 설정하는 데이터 설정회로를 구비하며,
    상기 2차원 드로잉 회로는, 상기 프레임 버퍼에 드로잉을 할 때에, 상기 비트 수 설정회로내에 상기 프레임 버퍼와 대응하는 비트들의 수를 저장하며, 상기 데이터 설정회로내에 칼라 데이터를 저장하고, 상기 Z버퍼에 설정작업을 할 때에, 상기 비트 수 설정회로내에 상기 Z버퍼에 대응하는 비트들의 수를 저장하고, 상기 데이터 설정회로내에 깊이 데이터를 저장하는 3차원 영상 드로잉 장치.
  6. 제1 항에 있어서, 상기 2차원 드로잉 회로는 2차원 직선 라인들을 드로잉하는 3차원 영상 드로잉 장치.
  7. 제1 항에 있어서, 상기 2차원 드로잉 회로는 2차원 직사각형 영역들을 필하는(fill)하는 3차원 영상 드로잉 장치.
  8. 제1 항에 있어서, 상기 2차원 드로잉 회로는 2차원 직사각형 영역들을 다른 위치들로 전달하는 3차원 영상 드로잉 장치.
  9. 제1 항에 있어서, 상기 3차원 직선 드로잉회로는 상기 Z 버퍼내에 이미 저장되어 있는 깊이 데이터와, 3차원 직선 상의 위치들에 있는 깊이 데이터를 비교하며, 더 작은 깊이를 가지고 있는 데이터를 선택하여 데이터를 상기 프레임 버퍼에 재기록하는 3차원 영상 드로잉 장치.
  10. 3차원 영상 드로잉 장치에 있어서,
    표시장치 표시화면과 대응하는 표시 데이터를 저장하는 프레임 버퍼와,
    특정한 2차원 영상들을 상기 프레임 버퍼에 드로잉 하기 위한 좌표 연산을 수행하는 2차원 드로잉 회로와,
    상기 프레임 버퍼에 3차원 드로잉을 수행하기 위한 깊이 데이터를 저장하는 Z 버퍼와,
    상기 Z버퍼내에 저장된 상기 깊이 데이터에 근거하여, 상기 프레임 버퍼에 대해 3차원 드로잉을 수행하는 3차원 직선 드로잉 회로와,
    버퍼들에 대한 억세스들을 제어하는 메모리 제어회로를 구비하고 있으며,
    상기 프레임 버퍼와 Z 버퍼의 영역들은 동일한 물리적인 메모리내에서 설정되며,
    상기 물리적인 메모리는 동일한 크기와 화소당 동일한 비트들의 수를 가지고 있는 두 개의 프레임 버퍼들을 구비하고 있으며,
    상기 메모리 제어회로는 상기 두 개의 프레임 버퍼들에 대해 교대로 드로잉을 수행함으로써, 상기 프레임 버퍼를 애니메이션을 위한 이중 버퍼로 사용하는 3차원 영상 드로잉 장치.
KR1019980037476A 1997-09-11 1998-09-11 영상 드로잉 장치 KR100281949B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP97-247073 1997-09-11
JP9247073A JP2976945B2 (ja) 1997-09-11 1997-09-11 画像描画装置

Publications (2)

Publication Number Publication Date
KR19990029709A KR19990029709A (ko) 1999-04-26
KR100281949B1 true KR100281949B1 (ko) 2001-03-02

Family

ID=17158036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980037476A KR100281949B1 (ko) 1997-09-11 1998-09-11 영상 드로잉 장치

Country Status (5)

Country Link
US (1) US6275241B1 (ko)
EP (1) EP0902413A3 (ko)
JP (1) JP2976945B2 (ko)
KR (1) KR100281949B1 (ko)
TW (2) TW407306B (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2352380B (en) * 1999-03-01 2003-04-09 Canon Kk Memory Control
US6452600B1 (en) * 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
JP4519290B2 (ja) * 2000-08-04 2010-08-04 株式会社バンダイナムコゲームス ゲーム装置、画像生成方法、及び記録媒体
JP2004145456A (ja) * 2002-10-22 2004-05-20 Canon Inc 情報出力装置
FR2864318B1 (fr) * 2003-12-23 2007-03-16 Alexis Vartanian Dispositif d'organisation des donnees dans la memoire de trame d'un processeur graphique
US7382368B1 (en) * 2004-06-28 2008-06-03 Nvidia Corporation Planar z representation for z compression
US20060012602A1 (en) * 2004-07-15 2006-01-19 George Lyons System and method for efficiently performing automatic partial transfers of image data
US20060017737A1 (en) * 2004-07-22 2006-01-26 Juraj Bystricky System and method for efficiently performing automatic frame transfers of image data
US20060017738A1 (en) * 2004-07-23 2006-01-26 Juraj Bystricky System and method for detecting memory writes to initiate image data transfers
US20060028477A1 (en) * 2004-08-06 2006-02-09 Juraj Bystricky System and method for efficiently performing manual partial transfers of image data
JP4692956B2 (ja) * 2004-11-22 2011-06-01 株式会社ソニー・コンピュータエンタテインメント 描画処理装置および描画処理方法
US7804499B1 (en) 2006-08-28 2010-09-28 Nvidia Corporation Variable performance rasterization with constant effort
US7898553B2 (en) * 2006-10-19 2011-03-01 Delorme Publishing Co. Pick packet for web browser display
JP2009171994A (ja) * 2008-01-21 2009-08-06 Sammy Corp 画像生成装置、遊技機、及びプログラム
CN108182656B (zh) * 2017-12-28 2021-04-30 深圳市创梦天地科技有限公司 一种图像处理方法及终端

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5029105A (en) * 1987-08-18 1991-07-02 Hewlett-Packard Programmable pipeline for formatting RGB pixel data into fields of selected size
CA1316271C (en) * 1988-10-07 1993-04-13 William Joy Apparatus for rapidly clearing the output display of a computer system
US5621866A (en) * 1992-07-24 1997-04-15 Fujitsu Limited Image processing apparatus having improved frame buffer with Z buffer and SAM port
JPH0689090A (ja) 1992-09-09 1994-03-29 Fujitsu Ltd 三次元グラフィックス表示装置
US5497453A (en) * 1993-01-05 1996-03-05 International Business Machines Corporation Method and apparatus for detecting and visualizing interferences between solids
KR100243179B1 (ko) * 1994-06-30 2000-02-01 윤종용 그래픽 시스템의 신호처리방법 및 장치
JPH08129647A (ja) * 1994-10-28 1996-05-21 Yamaha Corp グラフィック装置
JPH08221593A (ja) * 1995-02-14 1996-08-30 Hitachi Ltd 図形表示装置
US5748946A (en) * 1995-02-17 1998-05-05 International Business Machines Corporation Method and apparatus for improved graphics picking using auxiliary buffer information
US6052129A (en) * 1997-10-01 2000-04-18 International Business Machines Corporation Method and apparatus for deferred clipping of polygons
US6078336A (en) * 1998-05-12 2000-06-20 Hewlett-Packard Company Graphics memory system that utilizes look-ahead paging for reducing paging overhead

Also Published As

Publication number Publication date
TW407306B (en) 2000-10-01
JP2976945B2 (ja) 1999-11-10
EP0902413A2 (en) 1999-03-17
TW389857B (en) 2000-05-11
KR19990029709A (ko) 1999-04-26
JPH1186029A (ja) 1999-03-30
US6275241B1 (en) 2001-08-14
EP0902413A3 (en) 2000-06-28

Similar Documents

Publication Publication Date Title
KR100281949B1 (ko) 영상 드로잉 장치
US5295235A (en) Polygon engine for updating computer graphic display employing compressed bit map data
US5805868A (en) Graphics subsystem with fast clear capability
JP4234217B2 (ja) サイズ変更ビットブロック転送処理の一部として透過イネーブルビットの埋込みを行うシステム、装置および方法
US6411294B1 (en) Image display apparatus and image display method
US4924415A (en) Apparatus for modifying data stored in a random access memory
EP0660295A2 (en) Method and apparatus for NTSC display of full motion animation
US5559950A (en) Graphics processor enhancement unit
US7898549B1 (en) Faster clears for three-dimensional modeling applications
US4747042A (en) Display control system
EP0887768A2 (en) A graphic processor and a graphic processing method
JPH03138783A (ja) 陰面消去回路
EP0425187A2 (en) Drawing 'polygon with edge'-type primitives in a computer graphics display system
JPH02123422A (ja) コンピュータ出力装置
JPH05249953A (ja) 画像表示装置
JP3110975B2 (ja) 文字マスク機能付表示装置
JP3872056B2 (ja) 描画方法
JP3846142B2 (ja) 画像データ転送装置及び画像表示処理システム
JPH0588838A (ja) マルチウインドウ表示装置
JP3264941B2 (ja) 画像表示制御方法及び装置
JP3139805B2 (ja) 画像処理方法及びその装置
JP2787487B2 (ja) コンピュータシステムに表示され且つ操作される線分の位置を決定する回路
JP2917684B2 (ja) ウィンドウ表示装置
JP3074912B2 (ja) 3次元画像生成装置
JPH10222695A (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: 20111028

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20121114

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee