KR20200051280A - 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법 - Google Patents

지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법 Download PDF

Info

Publication number
KR20200051280A
KR20200051280A KR1020180134442A KR20180134442A KR20200051280A KR 20200051280 A KR20200051280 A KR 20200051280A KR 1020180134442 A KR1020180134442 A KR 1020180134442A KR 20180134442 A KR20180134442 A KR 20180134442A KR 20200051280 A KR20200051280 A KR 20200051280A
Authority
KR
South Korea
Prior art keywords
fragment
map
buffer
graphics processing
fragments
Prior art date
Application number
KR1020180134442A
Other languages
English (en)
Other versions
KR102589969B1 (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 KR1020180134442A priority Critical patent/KR102589969B1/ko
Priority to US16/519,542 priority patent/US11062420B2/en
Priority to CN201910734327.4A priority patent/CN111145325A/zh
Publication of KR20200051280A publication Critical patent/KR20200051280A/ko
Application granted granted Critical
Publication of KR102589969B1 publication Critical patent/KR102589969B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4023Scaling of whole images or parts thereof, e.g. expanding or contracting based on decimating pixels or lines of pixels; based on inserting pixels or lines of pixels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2215/00Indexing scheme for image rendering
    • G06T2215/12Shadow map, environment map

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

그래픽스 처리 시스템은, 본 개시의 예시적 실시예에 따라, 지연 쉐이딩(deferred shading)의 1차 패스(pass)를 수행함으로써 G-버퍼(Geometry-buffer)를 생성하는 그래픽스 처리 장치(graphics processing unit), 및 G-버퍼를 저장하는 메모리를 포함할 수 있고, 그래픽스 처리 장치는, 쉐이딩 대상 프래그먼트(fragment)를 나타내는 제1 프래그먼트 맵을 생성하고, G-버퍼에 기초하여 제1 프래그먼트 맵에서 프래그먼트를 추가하거나 제거함으로써 제2 프래그먼트 맵을 생성하는 맵 매니저, 및 제2 프래그먼트 맵에 따라 프래그먼트들을 쉐이딩하는 쉐이더(shader)를 포함할 수 있다.

Description

지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법{GRAPHICS PROCESSING UNIT, GRAPHICS PROCESSING SYSTEM AND GRAPHICS PROCESSING METHOD OF PERFORMING INTERPOLATION IN DEFERRED SHADING}
본 개시의 기술적 사상은 그래픽스 처리에 관한 것으로서, 자세하게는 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법에 관한 것이다.
렌더링(rendering)은 주어진 뷰 포인트에서 3차원(3D) 모델 혹은 2차원(2D) 모델로부터 이미지를 생성하는 과정을 지칭할 수 있다. 컴퓨터 그래픽스에 대한 수요가 증가함에 따라, 렌더링을 가속화하기 위한 전용의 하드웨어로서 그래픽스 처리 시스템이 사용될 수 있고, 그래픽스 처리 시스템을 포함하는 컴퓨팅 시스템에서 렌더링 과정은 그래픽스 파이프라인(graphics pipeline)으로서 지칭될 수 있다.
그래픽스 파이프라인에 포함되는 단계들 중 프래그먼트 쉐이딩(fragment shading)은 많은 컴퓨팅 자원을 요구할 수 있다. 프래그먼트 쉐이딩에 소요되는 컴퓨팅 자원을 감소시키기 위하여, 프래그먼트를 선택적으로 쉐이딩하고, 쉐이딩되지 아니한 프래그먼트를 쉐이딩된 주변 프래그먼트들로부터 보간(interpolation)하는 방식이 사용될 수 있으며, 보간에 의한 최종 이미지의 품질은 보간의 입력, 즉 쉐이딩된 프래그먼트들에 의해서 좌우될 수 있다.
본 개시의 기술적 사상은, 쉐이딩이 요구되는 프래그먼트를 정확하게 검출함으로써 보간에 의한 최종 이미지의 품질을 개선하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 기술적 사상의 일측면에 따른 그래픽스 처리 시스템은, 지연 쉐이딩(deferred shading)의 1차 패스(pass)를 수행함으로써 G-버퍼(Geometry-buffer)를 생성하는 그래픽스 처리 장치(graphics processing unit), 및 G-버퍼를 저장하는 메모리를 포함할 수 있고, 그래픽스 처리 장치는, 쉐이딩 대상 프래그먼트(fragment)를 나타내는 제1 프래그먼트 맵을 생성하고, G-버퍼에 기초하여 제1 프래그먼트 맵에서 프래그먼트를 추가하거나 제거함으로써 제2 프래그먼트 맵을 생성하는 맵 매니저, 및 제2 프래그먼트 맵에 따라 프래그먼트들을 쉐이딩하는 쉐이더(shader)를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 그래픽스 처리 시스템은, 지연 쉐이딩의 1차 패스를 수행함으로써 G-버퍼를 생성하는 그래픽스 처리 장치, 및 G-버퍼를 저장하는 메모리를 포함할 수 있고, 그래픽스 처리 장치는, 쉐이딩 대상 프래그먼트를 나타내는 프래그먼트 맵에 따라 프래그먼트를 쉐이딩함으로써 중간 렌더링 데이터를 생성하고, G-버퍼에 기초하여 프래그먼트를 선택적으로 쉐이딩함으로써 최종 렌더링 데이터를 생성하는 쉐이더, 및 중간 렌더링 데이터 및 최종 렌더링 데이터에서, 쉐이딩된 주변 픽셀들에 기초하여 픽셀을 계산함으로써 최종 이미지를 생성하는 보간 필터를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 그래픽스 처리 시스템은, 지연 쉐이딩의 1차 패스를 수행함으로써 -버퍼를 생성하는 그래픽스 처리 장치, 및 G-버퍼를 저장하는 메모리를 포함할 수 있고, 그래픽스 처리 장치는, 쉐이딩 대상 프래그먼트를 나타내는 프래그먼트 맵에 따라 프래그먼트를 쉐이딩함으로써 중간 렌더링 데이터를 생성하고, G-버퍼의 이미지 및 중간 렌더링 데이터의 이미지로부터 최종 이미지를 출력하도록 학습된 인공 신경망에 중간 렌더링 데이터 및 메모리에 저장된 G-버퍼를 제공함으로써 최종 이미지를 생성하는 쉐이더를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 그래픽스 처리 방법은, 지연 쉐이딩의 1차 패스를 수행함으로써 -버퍼를 생성하는 단계, 쉐이딩 대상 프래그먼트를 나타내는 초기 프래그먼트 맵에 따라 렌더링을 수행함으로써 중간 렌더링 데이터를 생성하는 단계, G-버퍼 및 중간 렌더링 데이터에 기초하여 보간 대상 프래그먼트를 판정하는 단계, 및 주변 프래그먼트들에 기초하여 보간 대상 프래그먼트를 계산하는 단계를 포함할 수 있다.
본 개시의 기술적 사상의 일측면에 따른 그래픽스 처리 방법은, 지연 쉐이딩의 1차 패스를 수행함으로써 -버퍼를 생성하는 단계, 쉐이딩 대상 프래그먼트를 나타내는 초기 프래그먼트 맵에 따라 렌더링을 수행함으로써 중간 렌더링 데이터를 생성하는 단계, 및 인공 신경망에 중간 렌더링 데이터 및 G-버퍼를 제공하는 단계를 포함할 수 있고, 인공 신경망은, G-버퍼의 이미지 및 중간 렌더링 데이터의 이미지로부터 최종 이미지를 출력하도록 학습된 상태에 있을 수 있다.
본 개시의 예시적 실시예에 따른 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법에 의하면, 보간에 의해서 정상적으로 복구되지 아니하는 프래그먼트가 정확하게 검출될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법에 의하면, 보간에 기인하는 감소된 컴퓨팅 자원 소비뿐만 아니라 높은 품질의 최종 이미지가 획득될 수 있다.
또한, 본 개시의 예시적 실시예에 따른 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법에 의하면, 지연 쉐이딩의 활용도를 향상시킬 수 있다.
본 개시의 예시적 실시예들에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 아니하며, 언급되지 아니한 다른 효과들은 이하의 기재로부터 본 개시의 예시적 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 도출되고 이해될 수 있다. 즉, 본 개시의 예시적 실시예들을 실시함에 따른 의도하지 아니한 효과들 역시 본 개시의 예시적 실시예들로부터 당해 기술분야의 통상의 지식을 가진 자에 의해 도출될 수 있다.
도 1은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템을 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시예에 따른 그래픽스 파이프라인의 예시를 나태는 도면이다.
도 3은 본 개시의 예시적 실시예에 따라 지연 쉐이딩을 나타내는 도면이다.
도 4는 본 개시의 예시적 실시예에 따른 다중 패스 렌더링 방식의 예시를 나타내는 도면이다.
도 5는 본 개시의 예시적 실시예에 따른 그래픽스 처리 시스템을 나타내는 블록도이다.
도 6은 본 개시의 예시적 실시예에 따라 도 5의 맵 매니저의 동작의 예시를 나타내는 순서도이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따라 제2 프래그먼트 맵을 생성하는 방법의 예시들을 나타내는 순서도들이다.
도 8은 본 개시의 예시적 실시예에 따른 그래픽스 처리 시스템을 나타내는 블록도이다.
도 9는 본 개시의 예시적 실시예에 따라 도 8의 쉐이더의 동작의 예시를 나타내는 순서도이다.
도 10은 본 개시의 예시적 실시예에 따라 도 8의 보간 필터의 동작의 예시를 나타내는 순서도이다.
도 11은 본 개시의 예시적 실시예에 따라 도 10의 방법에 따라 생성되는 이미지의 예시들을 나타낸다.
도 12는 본 개시의 예시적 실시예에 따른 그래픽스 처리 시스템을 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시예에 따라 도 12의 쉐이더의 동작의 예시를 나타내는 순서도이다.
도 14는 본 개시의 예시적 실시예에 따른 그래픽스 처리 방법을 나타내는 순서도이다.
도 15는 본 개시의 예시적 실시예에 따라 도 14의 단계 S260 및 단계 S280의 예시들을 나타내는 순서도이다.
도 16은 본 개시의 예시적 실시예에 따라 도 15의 단계 S262의 예시를 나타내는 순서도이다.
도 17은 본 개시의 예시적 실시예에 따라 도 14의 단계 S260 및 단계 S280의 예시들을 나타내는 순서도이다.
도 18은 본 개시의 예시적 실시예에 따른 그래픽스 처리 방법을 나타내는 순서도이다.
도 1은 본 개시의 예시적 실시예에 따른 컴퓨팅 시스템(10)을 나타내는 블록도이다. 컴퓨팅 시스템(10)은 그래픽스 처리 시스템(11)을 포함하는 임의의 컴퓨팅 시스템을 지칭할 수 있다. 컴퓨팅 시스템(10)은, 비제한적인 예시로서, 데스크탑 컴퓨터, 서버, 텔레비전 셋탑 박스, 비디오 게임용 콘솔 등과 같은 고정형 컴퓨팅 시스템일 수도 있고, 랩탑 컴퓨터, 모바일 폰, 웨어러플 기기, 휴대형 미디어 플레이어, 태블릿 PC, e-book 리더 등과 같은 휴대형 컴퓨팅 시스템일 수도 있다.
도 1에 도시된 바와 같이, 컴퓨팅 시스템(10)은 그래픽스 처리 시스템(11), 디스플레이 기기(12), 입력 기기(13), 중앙 처리 장치(CPU)(14), 시스템 메모리(15) 및 시스템 버스(16)를 포함할 수 있다. 일부 실시예들에서, 컴퓨팅 시스템(10)에 포함된 2이상의 구성요소들, 예컨대 그래픽스 처리 시스템(11), 중앙 처리 장치(14) 및 시스템 버스(16) 중 2개 이상은 단일 처리 시스템에 집적될 수 있다. 시스템 버스(16)는, 도 1에 도시된 바와 같이, 그래픽스 처리 시스템(11), 입력 기기(13), 중앙 처리 장치(14) 및 시스템 메모리(15)를 접속시킬 수 있고, 그래픽스 처리 시스템(11), 입력 기기(13), 중앙 처리 장치(14) 및 시스템 메모리(15)는 시스템 버스(16)를 통해서 상호 통신할 수 있다. 일부 실시예들에서, 시스템 메모리(15)는 중앙 처리 장치(14)와 직접 접속될 수도 있다.
중앙 처리 장치(14)는 입력 기기(13)를 통해서 사용자 입력을 수신할 수 있다. 또한, 중앙 처리 장치(14)는, 시스템 메모리(15)에 저장된 일련의 명령어들(또는 프로그램)을 실행할 수 있고, 시스템 메모리(15)에 저장된 데이터를 처리할 수 있으며, 그래픽스 파이프라인에서 특정 작업을 그래픽스 처리 시스템(11)이 수행하도록 할 수도 있다. 일부 실시예들에서, 중앙 처리 장치(14)는 2이상의 코어를 포함할 수 있다.
시스템 메모리(15)는 중앙 처리 장치(14) 및 그래픽스 처리 시스템(11)에 의해서 처리되기 위한 명령어들 및 데이터를 저장할 수 있다. 시스템 메모리(15)는 정보를 저장하는 임의의 유형의 메모리를 포함할 수 있다. 예를 들면, 시스템 메모리(15)는, 일부 실시예들에서 DRAM(Dynamic Random Access Memory), SRAM(Static Random Access Memory), 모바일 DRAM, DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR (Low Power DDR) SDRAM, GDDR (Graphic DDR) SDRAM, RDRAM(Rambus Dynamic Random Access Memory) 등과 같은 휘발성(volatile) 메모리를 포함할 수도 있고, 일부 실시예들에서 EEPROM (non-volatile memory such as a Electrically Erasable Programmable Read-Only Memory), 플래시 메모리(flash memory), PRAM(Phase Change Random Access Memory), RRAM(Resistance Random Access Memory), NFGM (Nano Floating Gate Memory), PoRAM(Polymer Random Access Memory), MRAM (Magnetic Random Access Memory), FRAM(Ferroelectric Random Access Memory) 등과 같은 비휘발성(nonvolatile) 메모리를 포함할 수도 있다.
도 1에 도시된 바와 같이, 시스템 메모리(15)는 어플리케이션 프로그램(15_1), API(Application Program Interface)(15_2) 및 GPU 드라이버(15_3)를 포함할 수 있다. 어플리케이션 프로그램(15_1)은, 예컨대 그래픽스 이미지들의 시퀀스의 형태로, 원하는 결과들을 생성하기 위하여 API(15_2)에 대한 호출들(calls)을 생성할 수 있다. 또한, 어플리케이션 프로그램(15_1)은 GPU 드라이버(15_3) 내에서 처리하기 위한 하이-레벨 쉐이딩 프로그램들을 API(15_2)에 제공할 수도 있다. 하이-레벨 쉐이딩 프로그램들은 그래픽스 처리 시스템(11)에서 하나 이상의 쉐이딩 엔진(또는 쉐이더)(예컨대, 도 5의 52_4)을 동작시키도록 디자인된 하이-레벨 프로그래밍 명령어들의 소스 코드를 포함할 수 있다. 일부 실시예들에서, API(15_2)는 GPU 드라이버(15_3) 내에 구현될 수도 있다. GPU 드라이버(15_3)는 하이-레벨 쉐이딩 프로그램들을 쉐이딩 엔진의 유형(예컨대, 정점(vertex), 기하(geometry) 혹은 프래그먼트(fragment))에 최적화된 머신 코드 쉐이딩 프로그램들로 변환(translation)할 수 있다.
그래픽스 처리 시스템(11)은 중앙 처리 장치(14)에 의해서 제공된 명령어들을 수신할 수 있고, 이미지들을 수신된 명령어들을 디스플레이 기기(12)에 렌더링하고 디스플레이 하기 위하여 처리할 수 있다. 도 1에 도시된 바와 같이, 그래픽스 처리 시스템(11)은 그래픽스 처리 장치(11_2) 및 메모리(11_4)를 포함할 수 있고, 그래픽스 처리 서브시스템(subsystem)으로서 지칭될 수도 있다. 그래픽스 처리 장치(11_2) 및 메모리(11_4)는 버스(예컨대, GPU 버스)를 통해서 상호 접속될 수 있다. 그래픽스 처리 장치(11_2)는 중앙 처리 장치(14)로부터 수신된 명령어들을 처리하는 도중에 생성된 데이터를 메모리(11_4)에 저장할 수 있고, 메모리(11_4)에 저장된 최종 이미지들을 디스플레이 기기(12)에 디스플레이할 수 있다.
그래픽스 처리 장치(11_2)는 다수의 쓰레드들(threads)을 동시에 실행 가능한 멀티프로세서들을 포함할 수 있고, 병렬 처리 장치(Parallel Processing Unit; PPU)로서 지칭될 수도 있다. 멀티프로세서들 각각은 다양한 작업들을 수행하도록 프로그램될 수 있고, 일부 멀티프로세서들은, 하나 이상의 프로그램 가능한 쉐이더를 포함하는 쉐이딩 엔진으로서 기능할 수도 있다.
일부 실시예들에서, 그래픽스 처리 장치(11_2)는 지연 쉐이딩(deferred shading)을 수행할 수 있다. 지연 쉐이딩은 프래그먼트들(또는 픽셀들)의 쉐이딩을, 장면에서의 복잡한 기하 및 조명(lighting) 조건들의 계산으로부터 분리시키는 방식을 지칭할 수 있다. 1차 패스(the first pass)에서는, 쉐이딩에 필요한 데이터가 수집될 수 있고, 예컨대 색상(color), 산란(diffuse), 깊이(depth), 법선(normal), 반사(specular) 등에 대한 정보가 G-버퍼(Geometry Buffer; G-Buffer)(G_BUF)에 렌더링될 수 있다. 그 다음에, 쉐이더가 각각의 프래그먼트들(또는 픽셀들)에서 조명을 계산함으로써 쉐이딩을 수행할 수 있다. 도 1에 도시된 바와 같이, 메모리(11_4)는 G-버퍼(G_BUF)를 포함할 수 있고, 본 명세서에서 G-버퍼(G_BUF)는 지연 쉐이딩의 1차 패스를 수행함으로써 생성된 데이터를 지칭할 수 있다. G-버퍼(G_BUF)는 최종 이미지(즉, 지연 쉐이딩에 의해서 생성된 최종 이미지)와 동일한 기하를 공유하기 때문에, 최종 이미지 및 G-버퍼(G_BUF)(또는 G-버퍼(G_BUF)에 포함된 이미지)는 화면 공간(screen space)에서 일대일 대응될 수 있다. 지연 쉐이딩의 예시는 도 3을 참조하여 후술될 것이다.
일부 실시예들에서, 그래픽스 처리 장치(11_2)는 프래그먼트들을 선택적으로 쉐이딩할 수 있다. 예를 들면, 그래픽스 처리 장치(11_2)는 프래그먼트들 중 일부 프래그먼트들만을 쉐이딩하고, 나머지 프래그먼트들은 쉐이딩된 주변 프래그먼트들로부터 보간(interpolation)에 의해서 계산할 수 있다. 이에 따라, 쉐이딩(예컨대, 프래그먼트 쉐이딩)에 소비되는 컴퓨팅 자원이 감소할 수 있고, 그 결과 그래픽스 처리 시스템(11)의 비용이 감소하거나, 그리고/또는 그래픽스 파이프라인이 완료되는데 걸리는 시간이 단축될 수 있다. 이와 같이, 선택적인 쉐이딩을 수행한 후 보간을 수행하는 방식은 다중 패스(multi-pass) 렌더링 방식으로 지칭될 수 있고, 다중 패스 렌더링 방식에서, 보간의 입력, 즉 어떠한 프래그먼트들이 쉐이딩되는지에 따라 최종 이미지의 품질이 좌우될 수 있다.
일부 실시예들에서, 그래픽스 처리 장치(11_2)는 다중 패스 렌더링 방식에서 G-버퍼(G_BUF)에 기초하여 선택적으로 쉐이딩되는 프래그먼트들을 판정할 수 있다. 예를 들면, 그래픽스 처리 장치(11_2)는 G-버퍼(G_BUF)의 이미지에서 에지를 검출할 수 있고, 검출된 에지에 대응하는 프래그먼트를 쉐이딩 대상 프래그먼트로서 판정할 수 있는 한편, 에지가 검출되지 아니한 영역에 대응하는 프래그먼트는 보간 대상 프래그먼트로서 판정할 수 있다. 전술된 바와 같이, 지연 쉐이딩의 1차 패스에 의해서 생성된 G-버퍼(G_BUF)는 최종 이미지에 대한 다양한 정보를 포함할 수 있으므로, 그래픽스 처리 장치(11_2)는 G-버퍼(G_BUF)를 이용하여 다중 패스 렌더링 방식을 구현함으로써, 컴퓨팅 자원의 감소뿐만 아니라 높은 품질의 최종 이미지가 달성될 수 있다.
디스플레이 기기(12)는 가시적인 이미지를 출력할 수 있는 임의의 기기를 지칭할 수 있고, 그래픽스 처리 시스템(11)으로부터 제공되는 최종 이미지들을 디스플레이할 수 있다. 예를 들면, 디스플레이 기기(12)는 LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, OLED(Organic LED) 디스플레이, AMOLED(Active-Matrix OLED) 디스플레이, ECD(Electrochromic Device), DMD(Digital Mirror Device), AMD(Actuated Mirror Device), GLV(Grating Light Valve), PDP(Plasma Display Panel), ELD(Electro Luminescent Display), VFD(Vacuum Fluorescent Display) 등으로 구현될 수 있고, 평판 디스플레이, 곡면 디스플레이 또는 플렉서블 디스플레이 등의 형태를 가질 수 있다.
도 2는 본 개시의 예시적 실시예에 따른 그래픽스 파이프라인의 예시를 나태는 도면이다. 일부 실시예들에서, 도 2의 그래픽스 파이프라인은 도 1의 그래픽스 처리 시스템(11)에 의해서 수행될 수 있다. 예를 들면, 도 1의 컴퓨팅 시스템(10)에서, 어플리케이션 프로그램(15_1)은 데이터 및 명령들을 GPU 드라이버(15_3)를 통해서 그래픽스 처리 시스템(11)에 제공할 수 있고, 이에 응답하여 그래픽스 처리 시스템(11)은 그래픽스 파이프라인을 수행할 수 있다. 도 2를 참조하면, 그래픽스 파이프 라인은, 단계 S21, 단계 S22 및 단계 S23으로 구성된 기하 변환, 단계 S24로 구성된 레스터화 및 단계 S25로 구성된 프래그먼트 쉐이딩으로 구분될 수 있다.
단계 S21에서, 정점들(vertices)이 생성될 수 있다. 예를 들면, 정점들(0, 1, 2, 3)은 3차원 오브젝트들을 나타내기 위해 생성될 수 있다. 단계 S22에서, 정점 쉐이딩(vertex shading)이 수행될 수 있다. 예를 들면, 단계 S21에서 생성된 정점들의 위치들이 정점 쉐이딩에 의해서 정의될 수 있다. 단계 S23에서, 프리미티브(primitive)를 생성하는 동작이 수행될 수 있다. 프리미티브는, 적어도 하나의 정점을 이용하여 형성되는 점, 선, 다각형(polygon) 등을 지칭할 수 있고, 일부 실시예들에서, 프리미티브는, 3개의 정점들이 연결되어 형성된 삼각형일 수 있다.
단계 S24에서, 프리미티브의 레스터화(rasterization)가 수행될 수 있다. 프리미티브의 레스터화는, 프리미티브를 적어도 하나의 프래그먼트들로 분할하는 것을 지칭할 수 있고, 프래그먼트(fragment)는 프리미티브에 대한 그래픽스 처리를 수행하기 위한 기본 단위를 지칭할 수 있다. 단계 S23에서 생성된 프리미티브는 정점들에 대한 정보를 포함할 수 있고, 단계 S24에서 정점들 사이 프래그먼트들이 생성됨으로써 후속하는 그래픽스 처리가 수행될 수 있다.
단계 S25에서, 프래그먼트 쉐이딩이 수행될 수 있다. 단계 S24에서 생성된 프래그먼트는 스크린 스페이스 상의 픽셀과 관계될 수 있고, 프래그먼트 쉐이딩은 픽셀 쉐이딩으로서 지칭될 수 있다. 예를 들면, 프래그먼트는 프리미티브를 구성하는 그래픽스 처리의 기본 단위에 대응할 수 있는 한편, 픽셀은 프래그먼트 쉐이딩에 후속하는 그래픽스 처리의 기본 단위에 대응할 수 있다. 본 명세서에서, 프래그먼트 및 픽셀은 혼용될 수 있다.
단계 S26에서, 택스쳐링이 수행될 수 있다. 택스쳐링(texturing)은 미리 준비된 텍스쳐들을 이용하여 프래그먼트들(또는 픽셀들)의 색상을 결정하는 것을 지칭할 수 있다. 모든 픽셀들의 컬러들을 연산을 통해서 결정하는 것보다 미리 준비된 텍스쳐들을 이용하여 결정하는 것은 감소된 컴퓨팅 자원을 유발할 수 있다. 일부 실시예들에서, 상이한 해상도들의 텍스쳐들이 미리 준비될 수도 있고, 오브젝트의 위치 및 크기 등에 따라 텍스쳐들이 혼합됨으로써 픽셀들의 색상이 결정될 수 있다. 텍스쳐들을 프래그먼트들에 반영하는 동작은, 텍스쳐 페치(texture fetch)로서 지칭될 수 있다.
단계 S27에서, 테스트 및 믹싱이 수행될 수 있다. 예를 들면, 동일한 위치에 대응하는 픽셀들에 대하여, 깊이 테스트를 통해 최종적으로 표시될 픽셀이 결정될 수 있다. 또한, 컬링(curling) 및 클리핑(clipping) 등이 수행될 수 있고, 최종적으로 표시될 픽셀의 값, 즉 색상이 결정될 수 있다. 그 다음에, 단계 S28에서, 선행 단계들에 의해서 생성된 최종 이미지를 프레임 버퍼에 저장하고, 프레임 버퍼에 저장된 최종 이미지를 디스플레이 기기를 통해서 디스플레이하는 동작이 수행될 수 있다.
도 1을 참조하여 전술된 바와 같이, 도 1의 그래픽스 처리 장치(11_2)는 다중 패스 렌더링 방식에 따라 일부 프래그먼트들을 쉐이딩한 후 보간을 통해서 최종 이미지를 생성할 수 있다. 예를 들면, 도 2의 그래픽스 파이프라인의 단계 S25에서, 일부 프래그먼트들이 선택될 수 있고(프래그먼트들이 샘플링되는 것으로도 지칭될 수 있다), 선택된(또는 샘플링된) 프래그먼트들은 쉐이딩될 수 있는 한편, 선택되지 아니한 프래그먼트들은 쉐이딩된 주변 프래그먼트들로부터 계산될 수 있다. 이 때, G-버퍼(G_BUF)에 기초하여 프래그먼트들을 선택함으로써, 선택된 프래그먼트들은 최종 이미지를 반영할 수 있고, 이에 따라 부적절한 보간에 의한 이미지의 왜곡이나 앨리어싱(aliasing)이 방지될 수 있다
도 3은 본 개시의 예시적 실시예에 따라 지연 쉐이딩을 나타내는 도면이다. 도 1을 참조하여 전술된 바와 같이, 지연 쉐이딩은 G-버퍼(G_BUF)를 생성하는 1차 패스(PA1) 및 최종 이미지(F_IMG)를 생성하는 2차 패스(PA2)를 포함할 수 있다. 일부 실시예들에서, 도 3의 지연 쉐이딩은 도 1의 그래픽스 처리 장치(11_2)에 의해서 수행될 수 있다.
도 3을 참조하면, 1차 패스(PA1)는 제1 입력 데이터(D31)로부터 G-버퍼(G_BUF)를 생성할 수 있고, 2차 패스(PA2)는 제2 입력 데이터(D32) 및 G-버퍼(G_BUF)로부터 최종 이미지(F_IMG)를 생성할 수 있다. 1차 패스(PA1)는 정점 쉐이딩(VS1) 및 프래그먼트 쉐이딩(FS1)을 포함할 수 있고, 2차 패스(PA2) 역시 정점 쉐이딩(VS2) 및 프래그먼트 쉐이딩(FS2)을 포함할 수 있고, 일부 실시예들에서 2차 패스(PA2)의 정점 쉐이딩(VS2) 및 프래그먼트 쉐이딩(FS2)이 단독으로 지연 쉐이딩(deferred shading)으로서 지칭될 수도 있다.
일부 실시예들에서, 1차 패스(PA1)의 프래그먼트 쉐이딩(FS1)은 조명을 고려하지 아니하고서 쉐이딩을 수행할 수 있는 한편, 2차 패스(PA2)의 프래그먼트 쉐이딩(FS2)은 조명을 고려한 쉐이딩이 수행될 수 있다. 이에 따라, G-버퍼(G_BUF)에 포함된 이미지들은 조명과 무관하게 기하 정보를 포함할 수 있고, 2차 패스(PA2)에서는 조명이 영향을 미치는 프래그먼트들을 위해서만 조명이 계산될 수 있다. 지연 쉐이딩은, 예컨대 쉐이더 자원의 관리를 용이하게 할 수 있고, 그래픽스 파이프라인을 단순하게 할 수 있으며, 특히 복잡한 광원들을 렌더링하는 것을 용이하게 할 수 있다. 일부 실시예들에서, 1차 패스(PA1)에 제공되는 제1 입력 데이터(D31)보다 단순화된(예컨대, 일부 정보가 제거된) 제2 입력 데이터(D32)가 G-버퍼(G_BUF)와 함께 2차 패스(PA2)에 제공될 수 있다.
G-버퍼(G_BUF)는 1차 패스(PA1)의 결과로서 다양한 정보에 대응하는 이미지들을 포함할 수 있다. 예를 들면, 도 3에 도시된 바와 같이, G-버퍼(G_BUF)는 반사 이미지, 법선 이미지, 깊이 이미지, 산란 이미지 등을 포함할 수 있다. 도 3에 도시된 G-버퍼(G_BUF)는 예시에 불과하고, G-버퍼(G_BUF)는 도 3에 도시된 이미지들 중 일부만을 포함할 수도 있고, 도 3에 도시되지 아니한 이미지를 더 포함할 수도 있다.
도 4는 본 개시의 예시적 실시예에 따른 다중 패스 렌더링 방식의 예시를 나타내는 도면이다. 구체적으로, 도 4는 프리미티브(41) 내의 4x4 프래그먼트들을 쉐이딩하는 예시를 나타낸다.
4x4 프래그먼트들 중 4개의 프래그먼트들(F0, F1, F2, F3)이 선택될(또는 샘플링될) 수 있다. 일부 실시예들에서, 미리 정의된 적어도 하나의 패턴에 따라 프래그먼트가 선택될 수도 있고, 깊이 정보에 따라 프래그먼트가 선택될 수도 있다. 예를 들면, 깊이 차이가 문턱값보다 낮은 연속적인 프래그먼트들 중 일부는 선택되지 아니할 수 있고, 깊이 차이가 문턱값보다 큰 인접한 프래그먼트들은 모두 선택될 수 있다. 선택된 프래그먼트들에 대하여 쉐이딩이 수행되면, 4x4 프래그먼트들(42)과 같이 4개의 프래그먼트들만이 값들을 가질 수 있다. 그 다음에, 일부 프래그먼트들만이 값을 가지는 4x4 프래그먼트들(42)에 대하여 보간이 수행될 수 있고, 이에 따라 4x4 프래그먼트들(43)과 같이 모든 프래그먼트들이 값들을 가질 수 있다.
도 5는 본 개시의 예시적 실시예에 따른 그래픽스 처리 시스템(50)을 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 그래픽스 처리 장치(52)는 메모리(54)에 저장된 G-버퍼(G_BUF)에 기초하여 프래그먼트의 보간을 수행할 수 있고, 최종 이미지(F_IMG)를 메모리(54)에 저장할 수 있다. 도 5에 도시된 바와 같이, 그래픽스 처리 장치(52)는 맵 매니저(52_2), 쉐이더(52_4) 및 보간 필터(52_6)를 포함할 수 있다.
맵 매니저(52_2)는 프래그먼트 맵을 생성할 수 있고, 쉐이더(52_4)에 프래그먼트 맵을 제공할 수 있다. 프래그먼트 맵은 쉐이딩 대상 프래그먼트, 즉 쉐이더에 의해서 프래그먼트 쉐이딩이 수행될 프래그먼트를 나타낼 수 있다. 예를 들면, 도 4의 예시에서, 프래그먼트 맵은 4개의 프래그먼트들(F0, F1, F2, F3)을 나타낼 수 있다. 본 명세서에서, 프래그먼트 맵에 의해서 정의되는 쉐이딩 대상 프래그먼트는 프래그먼트 맵에 포함되는 것으로 지칭될 수 있는 한편, 다른 프래그먼트, 즉 보간 대상 프래그먼트는 프래그먼트 맵에 포함되지 아니하는 것으로 지칭될 수 있다. 도 5에 도시된 바와 같이, 맵 매니저(52_2)는 에지 검출기(ED)를 포함할 수 있고, 에지 검출기(ED)를 사용하여 프래그먼트 맵을 생성하거나 수정할 수 있다. 맵 매니저(52_2)는 메모리(54)로부터 G-버퍼(G_BUF)를 수신할 수 있고, 초기 프래그먼트 맵(MAP0) 및 제2 프래그먼트 맵(MAP2)을 쉐이더(52_4)에 제공할 수 있으며, 쉐이더(52_4)로부터 중간 렌더링 데이터(I_RND)를 수신할 수 있다. 맵 매니저(52_2)의 동작은 도 6을 참조하여 후술될 것이다.
쉐이더(52_4)는 맵 매니저(52_2)로부터 수신된 프래그먼트 맵에 따라 프래그먼트들을 쉐이딩할 수 있다. 예를 들면, 쉐이더(52_4)는 프래그먼트 맵이 나타내는 프래그먼트들(예컨대, 도 4의 F0, F1, F2, F3)을 쉐이딩함으로써 선택적으로 쉐이딩을 수행할 수 있다. 일부 실시예들에서, 쉐이더(52_4)는 초기 프래그먼트 맵(MAP0)을 맵 매니저(52_2)로부터 수신할 수 있고, 초기 프래그먼트 맵(MAP0)에 따라 프래그먼트 쉐이딩(또는 렌더링)을 수행함으로써 중간 렌더링 데이터(I_RND)를 생성할 수 있다. 이에 따라, 중간 렌더링 데이터(I_RND)는, 초기 프래그먼트 맵(MAP0)에 포함된 쉐이딩된 일부 프래그먼트들 및 쉐이딩되지 아니한 나머지 프래그먼트들을 포함할 수 있다.
쉐이더(52_4)는 맵 매니저(52_2)로부터 제2 프래그먼트 맵(MAP2)을 수신할 수 있고, 제2 프래그먼트 맵(MAP2)에 따라 프래그먼트 쉐이딩을 수행함으로써 최종 렌더링 데이터(F_RND)를 생성할 수 있다. 도 6을 참조하여 후술되는 바와 같이, 제2 프래그먼트 맵(MAP2)은, 초기 프래그먼트 맵(MAP0)으로부터 수정된 프래그먼트 맵에 대응할 수 있고, G-버퍼(G_BUF)에 기인하여 최종 이미지(F_IMG)에 적합한 프래그먼트들을 쉐이딩 대상으로서 나타낼 수 있다. 쉐이더(52_4)는 제2 프래그먼트 맵(MAP2)에 따라 생성된 최종 렌더링 데이터(F_RND)를 보간 필터(52_6)에 제공할 수 있다.
보간 필터(52_6)는 최종 렌더링 데이터(F_RND)를 수신할 수 있고, 최종 렌더링 데이터(F_RND)에 포함된, 쉐이딩된 프래그먼트들에 기초하여 쉐이딩되지 아니한 프래그먼트들을 보간할 수 있다. 보간 필터(52_6)는 주변 프래그먼트들을 이용하는 임의의 보간 방식을 수행할 수 있고, 예컨대 쉐이딩되지 아니한 프래그먼트가 상하 또는 좌우의 쉐이딩된 주변 프래그먼트들의 값들의 평균을 가지도록 보간이 수행될 수 있다. 또한, 일부 실시예들에서, 바이리니어(bilinear) 보간, 바이큐빅(bicubic) 보간 등이 수행될 수도 있다. 보간 필터(52_6)는 모든 프래그먼트들이 값들을 가지는 최종 이미지(F_IMG)(예컨대, 도 4의 43)를 생성할 수 있고, 메모리(54)에 최종 이미지(F_IMG)를 저장할 수 있다.
도 6은 본 개시의 예시적 실시예에 따라 도 5의 맵 매니저(52_2)의 동작의 예시를 나타내는 순서도이다. 도 5를 참조하여 전술된 바와 같이, 맵 매니저(52_2)는 프래그먼트 맵을 생성할 수 있고, 쉐이더(52_4)에 프래그먼트 맵을 제공할 수 있다. 이하에서, 도 6은 도 5를 참조하여 설명될 것이다.
도 6을 참조하면, 단계 S62에서 맵 매니저(52_2)는 초기 프래그먼트 맵(MAP0)을 생성할 수 있다. 일부 실시예들에서, 맵 매니저(52_2)는 미리 정의된 패턴에 따라 프래그먼트들 중 일부를 나타내는 초기 프래그먼트 맵(MAP0)을 생성할 수 있다. 또한, 일부 실시예들에서, 맵 매니저(52_2)는 깊이 패스(depth pass)에 의해서 생성된 깊이 데이터(D_DEP)를 획득할 수 있고, 깊이 데이터(D_DEP)에 기초하여 초기 프래그먼트 맵(MAP0)을 생성할 수 있다. 예를 들면, 맵 매니저(52_2)는 에지 검출기(ED)를 사용하여 깊이 데이터(D_DEP)에서 깊이 차이가 문턱값보다 큰 인접한 프래그먼트들을 검출할 수 있고, 검출된 프래그먼트들을 초기 프래그먼트 맵(MAP0)에 추가할 수 있다.
단계 S64에서, 맵 매니저(52_2)는 제1 프래그먼트 맵(MAP1)을 생성할 수 있다. 일부 실시예들에서, 맵 매니저(52_2)는 중간 렌더링 데이터(I_RND)에 기초하여 초기 프래그먼트 맵(MAP0)에서 프래그먼트를 추가하거나 제거함으로써 제1 프래그먼트 맵(MAP1)을 생성할 수 있다. 예를 들면, 맵 매니저(52_2)는 에지 검출기(ED)를 사용하여 중간 렌더링 데이터(I_RND)에서 인접한 쉐이딩된 프래그먼트들의 값들의 차이가 문턱값보다 큰 프래그먼트들을 검출할 수 있고, 검출된 프래그먼트들 사이 프래그먼트를 제1 프래그먼트 맵(MAP1)에 추가할 수 있다.
단계 S66에서, 맵 매니저(52_2)는 제2 프래그먼트 맵(MAP2)을 생성할 수 있다. 일부 실시예들에서, 맵 매니저(52_2)는 G-버퍼(G_BUF)에 기초하여 제1 프래그먼트 맵(MAP1)에서 프래그먼트를 추가하거나 제거함으로써 제2 프래그먼트 맵(MAP2)을 생성할 수 있다. 예를 들면, 맵 매니저(52_2)는 에지 검출기(ED)를 사용하여 G-버퍼(G_BUF)에 포함된 이미지에서 에지를 검출할 수 있고, 검출된 에지에 대응하는 프래그먼트를 제2 프래그먼트 맵(MAP2)에 추가할 수 있다. 또한, 맵 매니저(52_2)는 에지가 검출되지 아니한 영역에 대응하는 프래그먼트를 제2 프래그먼트 맵(MAP2)에서 제거할 수도 있다. 단계 S66의 예시는 도 7a 및 도 7b를 참조하여 후술될 것이다.
도 7a 및 도 7b는 본 개시의 예시적 실시예에 따라 제2 프래그먼트 맵(MAP2)을 생성하는 방법의 예시들을 나타내는 순서도들이다. 도 5 및 도 6을 참조하여 전술된 바와 같이, 제2 프래그먼트 맵(MAP2)은 쉐이더(52_4)가 최종 렌더링 데이터(F_RND)를 생성하는데 사용될 수 있다. 일부 실시예들에서, 도 7a 및 도 7b의 방법은 도 6의 단계 S66의 예시들일 수 있고, 도 5의 맵 매니저(52_2)에 의해서 수행될 수 있다. 이하에서, 도 7a 및 도 7b는 도 5 및 도 6을 참조하여 설명될 것이다.
도 7a를 참조하면, 일부 실시예들에서, G-버퍼(G_BUF)에 포함된 이미지들 중 적어도 하나의 이미지에서 검출된 에지에 대응하는 프래그먼트를 포함하도록, 제2 프래그먼트 맵(MAP2)이 생성될 수 있다. 또한, 일부 실시예들에서, G-버퍼(G_BUF)에 포함된 이미지들 중 모든 이미지들에서 에지가 검출되지 아니한 프래그먼트를 제거함으로써 제2 프래그먼트 맵(MAP2)이 생성될 수 있다.
단계 S70에서, 제2 프래그먼트 맵(MAP2)을 제1 프래그먼트 맵(MAP1)으로 설정하는 동작이 수행될 수 있다. 이에 따라, 제2 프래그먼트 맵(MAP2)은 초기 프래그먼트 맵(MAP0)에 포함된 프래그먼트들 및 중간 렌더링 데이터(I_RND)에 기초하여 추가된 프래그먼트들을 포함할 수 있다.
단계 S71_1, 단계 S72_1, 단계 S73_1 및 단계 S74_1에서, G-버퍼(G_BUF)에 산란 이미지, 깊이 이미지, 법선 이미지 및 반사 이미지가 포함되어있는지 여부를 체크하는 동작이 수행될 수 있다. 해당 이미지가 G-버퍼(G_BUF)에 포함되어 있는 경우, 해당 이미지에서 에지를 검출하는 동작이 단계 S71_2, 단계 S72_2, 단계 S73_2 및 단계 S74_2에서 각각 수행될 수 있고, 단계 S75_1이 후속하여 수행될 수 있다. 다른 한편으로, 해당 이미지가 G-버퍼(G_BUF)에 포함되어 있지 아니한 경우, 해당 이미지에서 에지 검출이 수행되지 아니하고서, 단계 S75_1이 후속하여 수행될 수 있다. 비록 도 7a의 예시에서, 4개의 이미지들만이 도시되었으나, 일부 실시예들에서, 추가적인 이미지(예컨대, 색상 이미지 등)에 대한 에지 검출이 더 수행될 수도 있는 점은 이해될 것이다.
단계 S75_1에서, 검출된 에지에 대응하는 프래그먼트를 제2 프래그먼트 맵(MAP2)에 추가하는 동작이 수행될 수 있다. 예를 들면, G-버퍼(G_BUF)에 포함된 이미지들 중 적어도 하나에서 에지가 검출되는 경우, 검출된 에지에 대응하는 프래그먼트가 제2 프래그먼트 맵(MAP2)에 추가될 수 있고, 이에 따라 제2 프래그먼트 맵(MAP2)은 G-버퍼(G_BUF)에 포함된 이미지에서 검출된 에지에 대응하는 프래그먼트를 포함할 수 있다.
단계 S75_2에서, 에지가 검출되지 아니한 프래그먼트를 제2 프래그먼트 맵(MAP2)에서 제거하는 동작이 수행될 수 있다. 제2 프래그먼트 맵(MAP2)에서 제거된 프래그먼트는 쉐이더(52_4)에 의해서 쉐이딩되는 대신, 보간 필터(52_6)에 의해서 계산될 수 있다. 일부 실시예들에서, 단계 S75_2는 생략될 수 있고, 이에 따라 제2 프래그먼트 맵(MAP2)은 제1 프래그먼트 맵(MAP1)과 동일하거나 제1 프래그먼트 맵(MAP1)에 포함된 프래그먼트들 및 추가적인 프래그먼트를 포함할 수 있다.
도 7b를 참조하면, 일부 실시예들에서, 제2 프래그먼트 맵(MAP2)은 제1 프래그먼트 맵(MAP1)을 평가(evaluation)함으로써 생성될 수 있다. 예를 들면, 맵 매니저(52_2)는 제1 프래그먼트(MAP1)에 포함되지 아니한, 즉 보간 대상 프래그먼트들을 평가할 수 있고, 평가 결과에 따라 제1 프래그먼트 맵(MAP1)을 수정함으로써 제2 프래그먼트 맵(MAP2)을 생성할 수 있다. 일부 실시예들에서, 평가는 복수의 프래그먼트들을 포함하는 프래그먼트들의 그룹에 대해서 수행될 수 있고, 평가 결과가 실패인 경우 프래그먼트들의 그룹에서 에지가 검출된 프래그먼트가 제2 프래그먼트 캠(MAP2)에 추가될 수 있다.
단계 S76_1에서, 산란 이미지를 체크하는 동작이 수행될 수 있다. 예를 들면, 맵 매니저(52_2)는 에지 검출기(ED)를 사용하여 메모리(54)로부터 획득된 G-버퍼(G_BUF)에 산란 이미지가 존재하는지 여부를 판단할 수 있다. 에지 검출기(ED)는 임의의 방식으로 에지를 검출할 수 있고, 예컨대 검색-기반(search-based) 방식 및/또는 영점-교차(zero-crossing) 방식에 기초하여 에지를 검출할 수 있다. 산란 이미지가 존재하는 경우, 단계 S76_2에서 산란 이미지의 에지 검출이 수행될 수 있다. 단계 S76_3에서, 산란 이미지에서 에지가 검출된 경우 단계 S80_2에서 평가 결과는 실패로서 판정될 수 있는 한편, 산란 이미지에서 에지가 검출되지 아니한 경우 단계 S77_1이 후속하여 수행될 수 있다.
G-버퍼(G_BUF)에 산란 이미지가 존재하지 아니한 경우, 단계 S77_1에서 깊이 이미지를 체크하는 동작이 수행될 수 있다. 예를 들면, 맵 매니저(52_2)는 메모리(54)로부터 획득된 G-버퍼(G_BUF)에 깊이 이미지가 존재하는지 여부를 판단할 수 있다. 깊이 이미지가 존재하는 경우, 단계 S77_2에서 깊이 이미지의 에지 검출이 수행될 수 있다. 단계 S77_3에서, 깊이 이미지에서 에지가 검출된 경우 단계 S80_2에서 평가 결과는 실패로서 판정될 수 있는 한편, 깊이 이미지에서 에지가 검출되지 아니한 경우 단계 S78_1이 후속하여 수행될 수 있다.
G-버퍼(G_BUF)에 산란 이미지가 존재하지 아니한 경우, 단계 S78_1에서 법선 이미지를 체크하는 동작이 수행될 수 있다. 예를 들면, 맵 매니저(52_2)는 메모리(54)로부터 획득된 G-버퍼(G_BUF)에 법선 이미지가 존재하는지 여부를 판단할 수 있다. 법선 이미지가 존재하는 경우, 단계 S78_2에서 법선 이미지의 에지 검출이 수행될 수 있다. 단계 S78_3에서, 법선 이미지에서 에지가 검출된 경우 단계 S80_2에서 평가 결과는 실패로서 판정될 수 있는 한편, 법선 이미지에서 에지가 검출되지 아니한 경우 단계 S79_1이 후속하여 수행될 수 있다.
G-버퍼(G_BUF)에 법선 이미지가 존재하지 아니한 경우, 단계 S79_1에서 반사 이미지를 체크하는 동작이 수행될 수 있다. 예를 들면, 맵 매니저(52_2)는 메모리(54)로부터 획득된 G-버퍼(G_BUF)에 반사 이미지가 존재하는지 여부를 판단할 수 있다. 반사 이미지가 존재하지 아니하는 경우, 단계 S80_2에서 평가 결과는 실패로서 판정될 수 있는 한편, 반사 이미지가 존재하는 경우, 단계 S79_2에서 법선 이미지의 에지 검출이 수행될 수 있다. 단계 S79_3에서 에지가 검출된 경우 단계 S80_2에서 평가 결과는 실패로서 판정될 수 있는 한편, 반사 이미지에서 에지가 검출되지 아니한 경우 단계 S80_1에서 평가 결과는 통과로서 판정될 수 있다.
도 8은 본 개시의 예시적 실시예에 따른 그래픽스 처리 시스템(80)을 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 그래픽스 처리 장치(82)는 메모리(84)에 저장된 G-버퍼(G_BUF)에 기초하여 프래그먼트들의 보간을 수행할 수 있고, 최종 이미지(F_IMG)를 메모리(84)에 저장할 수 있다. 도 8에 도시된 바와 같이, 그래픽스 처리 장치(82)는 텍스쳐 장치(82_3), 쉐이더(82_4) 및 보간 필터(82_6)를 포함할 수 있다.
텍스쳐 장치(82_3)는 G-버퍼(G_BUF)를 수신할 수 있고, G-버퍼 이미지(G_IMG)를 생성하여 쉐이더(82_4)에 제공할 수 있다. 텍스쳐 장치(82_3)는, 텍스쳐링(예컨대, 도 2의 S26)을 수행하도록 구성된 하드웨어, 소프트웨어 또는 그것들의 조합을 지칭할 수 있다. 텍스쳐 장치(82_3)는 텍스쳐 맵핑 장치(Texture Mapping Unit; TMU)로서 지칭될 수도 있고, 텍스쳐 페치(texture fetch)를 수행할 수 있으다. 일부 실시예들에서, 쉐이더(82_4)는 텍스쳐 장치(82_3)를 통해서 G-버퍼(G_BUF)에 포함된 이미지들, 즉 G-버퍼 이미지(G_IMG)를 획득할 수 있다.
쉐이더(82_4)는 G-버퍼 이미지(G_IMG)를 수신할 수 있고, 중간 렌더링 데이터(I_RND) 및 최종 렌더링 데이터(F_RND)를 생성할 수 있다. 중간 렌더링 데이터(I_RND) 및 최종 렌더링 데이터(F_RND) 각각은, 도 4의 4x4 프래그먼트들(42)과 유사하게, 쉐이딩된 일부 프래그먼트들 및 쉐이딩되지 아니한 나머지 프래그먼트들을 포함할 수 있다. 쉐이더(82_4)는 에지 검출기(ED)를 포함할 수 있고, G-버퍼 이미지(G_IMG)에서 에지를 검출함으로써 최종 렌더링 데이터(F_RND)를 생성할 수 있다. 도 5의 예시에서 G-버퍼(G_BUF)는 맵 매니저(52_2)에 의해서 프래그먼트 맵에 반영되는 한편, 도 8의 예시에서 G-버퍼(G_BUF)는 텍스쳐 장치(82_3) 및 쉐이더(82_4)에 의해서 최종 렌더링 데이터(F_RND)에 반영될 수 있다. 쉐이더(82_4)의 동작은 도 9를 참조하여 후술될 것이다.
보간 필터(82_6)는 중간 렌더링 데이터(I_RND) 및 최종 렌더링 데이터(F_RND)를 쉐이더(82_4)로부터 수신할 수 있고, 중간 렌더링 데이터(I_RND) 및 최종 렌더링 데이터(F_RND)로부터 모든 프래그먼트들이 값들을 가지는 최종 이미지(F_IMG)를 생성할 수 있다. 도 5의 보간 필터(52_6)와 비교할 때, 보간 필터(82_6)는 중간 렌더링 데이터(I_RND)를 더 수신할 수 있다. 보간 필터(82_6)는 최종 이미지(F_IMG)를 메모리(84)에 저장할 수 있다. 보간 필터(82_6)의 동작은 도 10 및 도 11을 참조하여 후술될 것이다.
도 9는 본 개시의 예시적 실시예에 따라 도 8의 쉐이더(82_4)의 동작의 예시를 나타내는 순서도이다. 도 8을 참조하여 전술된 바와 같이, 쉐이더(82_4)는 중간 렌더링 데이터(I_RND) 및 최종 렌더링 데이터(F_RND)를 생성하여 보간 필터(82_6)에 제공할 수 있다. 도 9의 단계 S92 및 단계 S94는, 일부 실시예들에서 도 9에 도시된 바와 같이, 병렬적으로 수행될 수도 있고, 일부 실시예들에서 순차적으로 수행될 수도 있다. 도 9는 도 8을 참조하여 설명될 것이다.
단계 S92에서, 쉐이더(82_4)는 기하 데이터(D90)로부터 중간 렌더링 데이터(I_RND)를 생성할 수 있다. 예를 들면, 기하 데이터(D90)는 정점들, 프리미티브들 등에 대한 정보를 포함할 수 있고, 쉐이더(82_4)는 초기 프래그먼트 맵(MAP0)에 기초하여 프래그먼트 쉐이딩(또는 렌더링)을 수행함으로써 중간 렌더링 데이터(I_RND)를 생성할 수 있다. 쉐이더(82_4)는, 일부 실시예들에서 초기 프래그먼트 맵(MAP0)을 생성할 수도 있고, 외부로부터 초기 프래그먼트 맵(MAP0)을 수신할 수도 있다. 예를 들면, 쉐이더(82_4)는 미리 정의된 패턴에 따라 프래그먼트들 중 일부를 나타내는 초기 프래그먼트 맵(MAP0)을 생성할 수도 있고, 깊이 패스(depth pass)에 의해서 생성된 깊이 데이터(D_DEP)를 획득함으로써, 깊이 데이터(D_DEP)에 기초하여 초기 프래그먼트 맵(MAP0)을 생성할 수 있다. 초기 프래그먼트 맵(MAP0)이 미리 정의된 규칙적인 패턴에 기초하여 생성된 경우, 중간 렌더링 데이터(I_RND)는 낮은 해상도를 가지는 이미지에 대응할 수 있다.
단계 S94에서, 쉐이더(82_4)는 G-버퍼(G_BUF)에 기초하여 기하 데이터(D90)로부터 최종 렌더링 데이터(F_RND)를 생성할 수 있다. 예를 들면, 쉐이더(82_4)는 텍스쳐 장치(82_3)를 통해서 G-버퍼(G_BUF)에 포함된 이미지들, 즉 G-버퍼 이미지(G_IMG)를 획득할 수 있고, G-버퍼 이미지(G_IMG)에서 에지를 검출할 수 있다. 쉐이더(82_4)는 검출된 에지에 대응하는 프래그먼트(또는 픽셀)를 쉐이딩하는 한편, 에지가 검출되지 아니한 영역의 프래그먼트(또는 픽셀)를 폐기(discard)할 수 있다. 이에 따라, 최종 렌더링 데이터(F_RND)에 포함된 이미지는 유효하지 아니한 값을 가지는 프래그먼트(또는 픽셀)를 포함할 수 있는 한편, 높은(혹은, 최대(full)) 해상도를 가질 수 있다. 일부 실시예들에서, 쉐이더(82_4)는 폐기된 프래그먼트들(또는 픽셀들)을 나타내는 폐기 플래그(discard flag)(예컨대, 도 10의 D_FLG)를 생성할 수 있고, 최종 렌더링 데이터(F_RND)와 함께 폐기 플래그를 보간 필터(52_6)에 제공할 수 있다. 보간 필터(82_6)는 폐기 플래그에 기초하여 최종 렌더링 데이터(F_RND)에서 유효하지 아니한 프래그먼트(또는 픽셀)을 식별할 수 있다.
도 10은 본 개시의 예시적 실시예에 따라 도 8의 보간 필터(82_6)의 동작의 예시를 나타내는 순서도이고, 도 11은 본 개시의 예시적 실시예에 따라 도 10의 방법에 따라 생성되는 이미지의 예시들을 나타낸다. 도 8을 참조하여 전술된 바와 같이, 보간 필터(82_6)는 쉐이더(82_4)로부터 중간 렌더링 데이터(I_RND) 및 최종 렌더링 데이터(F_RND)를 수신할 수 있고, 폐기 플래그(D_FLG)를 수신할 수도 있다. 이하에서, 도 10 및 도 11은 도 8을 참조하여 설명될 것이다.
도 10을 참조하면, 단계 S102에서 이미지들을 중첩하는 동작이 수행될 수 있다. 예를 들면, 도 11에 도시된 바와 같이, 보간 필터(82_6)는 중간 렌더링 데이터(I_RND)에 포함된 제1 이미지(IMG11) 및 최종 렌더링 데이터(F_RND)에 포함된 제2 이미지(IMG12)를 포함할 수 있다. 보간 필터(82_6)는 폐기 플래그(D_FLG)에 기초하여 제2 이미지(IMG12)에서 유효하지 아니한 픽셀을 식별할 수 있다. 도 11에서 음영처리된 픽셀들과 같이, 제1 이미지(IMG12) 및 제2 이미지(IMG12) 각각은 쉐이딩된 일부 픽셀들을 포함할 수 있고, 보간 필터(82_6)는 제1 이미지(IMG11) 및 제2 이미지(IMG12)를 중첩함으로써, 중첩된 이미지(IMG20)를 생성할 수 있다. 이에 따라, 도 11에 도시된 바와 같이, 중첩된 이미지(IMG20)는 제1 이미지(IMG11) 및 제2 이미지(IMG12)에서 쉐이딩된(또는 값들을 가지는) 픽셀들을 모두 포함할 수 있다. 일부 실시예들에서, 도 11에 도시된 바와 같이, 중간 렌더링 데이터(I_RND)가 규칙적인 패턴에 기초하여 생성되는 경우, 제1 이미지(IMG11)는, 최종 이미지(F_IMG)와 비교할 때, 낮은 해상도의 이미지에 대응할 수 있다.
단계 S104에서, 주변 픽셀들로부터 픽셀을 계산하는 동작이 수행될 수 있다. 예를 들면, 보간 필터(82_6)는 중첩된 이미지(IMG20)에서 유효하지 아니한 픽셀들, 즉 값을 가지지 아니한 픽셀들 각각을, 유효한(valid) 값을 가지는 주변 픽셀들로부터 생성할 수 있다. 보간 필터(82_6)는 임의의 보간 방식에 따라 픽셀들을 생성할 수 있고, 이에 따라 포함된 모든 픽셀들이 유효한 값들을 가지는 최종 이미지(F_IMG)가 생성될 수 있다.
도 12는 본 개시의 예시적 실시예에 따른 그래픽스 처리 시스템(120)을 나타내는 블록도이다. 도 1을 참조하여 전술된 바와 같이, 그래픽스 처리 장치(122)는 메모리(124)에 저장된 G-버퍼(G_BUF)에 기초하여 프래그먼트들의 보간을 수행할 수 있고, 최종 이미지(F_IMG)를 메모리(124)에 저장할 수 있다. 도 8에 도시된 바와 같이, 그래픽스 처리 장치(122)는 쉐이더(122_4)를 포함할 수 있다.
쉐이더(122_4)는 인공 신경망(artificial neural network)(ANN)을 포함할 수 있고, 메모리(124)로부터 수신된 G-버퍼(G_BUF)에 기초하여 최종 이미지(F_IMG)를 생성할 수 있다. 인공 신경망은 인공 뉴런(neuron)(또는 뉴런 모델)들이 상호연결된 집합들을 구현하는 구조를 지칭할 수 있다. 인공 뉴런은 입력 데이터에 대한 단순 연산들을 수행함으로써 출력 데이터를 생성할 수 있고, 출력 데이터는 다른 인공 뉴런에 전달될 수 있다.
쉐이더(122_4)는, G-버퍼(G_BUF)의 이미지 및 중간 렌더링 데이터(I_RND)의 이미지로부터 최종 이미지(F_IMG)를 출력하도록 학습된 인공 신경망(ANN)을 포함할 수 있다. 이에 따라, 쉐이더(122_4)는 중간 렌더링 데이터(I_RND)를 생성할 수 있고, 생성된 중간 렌더링 데이터(I_RND) 및 G-버퍼(G_BUF)를 인공 신경망(ANN)에 제공함으로써 인공 신경망(ANN)으로부터 최종 이미지(F_IMG)를 획득할 수 있다. 쉐이더(122_4)의 동작은 도 13을 참조하여 설명될 것이다.
도 13은 본 개시의 예시적 실시예에 따라 도 12의 쉐이더(122_4)의 동작의 예시를 나타내는 순서도이다. 이하에서, 도 13은 도 12를 참조하여 설명될 것이다.
단계 S132에서, 쉐이더(122_4)는 기하 데이터(D130)로부터 중간 렌더링 데이터(I_RND)를 생성할 수 있다. 예를 들면, 기하 데이터(D130)는 정점들, 프리미티브들 등에 대한 정보를 포함할 수 있고, 쉐이더(122_4)는 초기 프래그먼트 맵(MAP0)에 기초하여 프래그먼트 쉐이딩(또는 렌더링)을 수행함으로써 중간 렌더링 데이터(I_RND)를 생성할 수 있다. 쉐이더(122_4)는, 일부 실시예들에서 초기 프래그먼트 맵(MAP0)을 생성할 수도 있고, 외부로부터 초기 프래그먼트 맵(MAP0)을 수신할 수도 있다. 예를 들면, 쉐이더(122_4)는 미리 정의된 패턴에 따라 프래그먼트들 중 일부를 나타내는 초기 프래그먼트 맵(MAP0)을 생성할 수도 있고, 깊이 패스(depth pass)에 의해서 생성된 깊이 데이터(D_DEP)를 획득함으로써 깊이 데이터(D_DEP)에 기초하여 초기 프래그먼트 맵(MAP0)을 생성할 수 있다.
단계 S134에서, 쉐이더(134)는 중간 렌더링 데이터(I_RND) 및 G-버퍼(G_BUF)를 인공 신경망(ANN)에 제공할 수 있다. 도 12를 참조하여 전술된 바와 같이, 인공 신경망(ANN)은 중간 렌더링 데이터(I_RND)의 이미지 및 G-버퍼(G_BUF)의 이미지로부터 최종 이미지(F_IMG)를 출력하도록 학습되었으므로, 인공 신경망(ANN)은 렌더링 데이터(I_RND)의 이미지 및 G-버퍼(G_BUF)의 이미지에 대응하는 최종 이미지(F_IMG)를 출력할 수 있다. 일부 실시예들에서, 인공 신경망(ANN)은 기하 데이터(D130)를 더 수신할 수 있고, 쉐이더(122_4)는 기하 데이터(D130)를 인공 신경망(ANN)에 추가로 제공할 수 있다.
도 14는 본 개시의 예시적 실시예에 따른 그래픽스 처리 방법을 나타내는 순서도이다. 예를 들면, 도 14의 방법은 도 5의 그래픽스 처리 시스템(50) 또는 도 8의 그래픽스 처리 시스템(80)에 의해서 수행될 수 있다. 이하에서, 도 14는 도 5를 참조하여 설명될 것이다.
단계 S220에서, G-버퍼(G_BUF)를 생성하는 동작이 수행될 수 있다. 도 3을 참조하여 전술된 바와 같이, G-버퍼(G_BUF)는 지연 쉐이딩에서 1차 패스(PA1)의 결과로서 생성될 수 있다. 그래픽스 처리 장치(52)는 1차 패스(PA1)에 따라 입력 데이터(예컨대, 도 3의 D31)를 처리함으로써 G-버퍼(G_BUF)를 생성할 수 있고, G-버퍼(G_BUF)는 스크린 스페이스에 대응하는 적어도 하나의 이미지를 포함할 수 있다.
단계 S240에서, 중간 렌더링이 수행될 수 있다. 중간 렌더링은 중간 렌더링 데이터(I_RND)를 생성하는 동작을 지칭할 수 있고, 예컨대 그래픽스 처리 시스템(50)은 초기 프래그먼트 맵(MAP0)에 따라 렌더링을 수행함으로써, 유효한 값들을 가지는 프래그먼트들을 일부 포함하는 중간 렌더링 데이터(I_RND)를 생성할 수 있다. 단계 S220 및 단계 S240은, 일부 실시예들에서 도 14에 도시된 바와 같이 병렬적으로 수행될 수도 있고, 일부 실시예들에서 순차적으로 수행될 수도 있다.
단계 S260에서, 보간 대상 프래그먼트를 판정하는 동작이 수행될 수 있다. 보간 대상 프래그먼트는, 쉐이더에 의해서 쉐이딩되지 아니하는 프래그먼트를 지칭할 수 있고, 중간 렌더링 데이터(I_RND)뿐만 아니라 스크린 스페이스에 대응하는 G-버퍼(G_BUF)의 이미지가 보간 대상 프래그먼트를 판정하는데 사용됨으로써 보간 대상 프래그먼트가 정확하게 판정될 수 있다. 다른 한편으로, 보간 대상 프래그먼트를 제외한 프래그먼트, 즉 쉐이딩 대상 프래그먼트는 쉐이더(52_4)에 의해서 쉐이딩될 수 있다. 단계 S260의 예시들은 도 15 및 도 17을 참조하여 후술될 것이다.
단계 S280에서, 쉐이딩된 주변 프래그먼트들에 기초하여 보간 대상 프래그먼트를 계산하는 동작이 수행될 수 있다. 일부 실시예들에서, 프래그먼트 맵에 기초하여 보간 대상 프래그먼트가 식별될 수 있다. 일부 실시예들에서, 쉐이딩된 일부 프래그먼트들을 포함하는 이미지들을 중첩함으로써 보간 대상 프래그먼트가 식별될 수도 있다. 단계 S280의 예시들은 도 15 및 도 17을 참조하여 후술될 것이다.
도 15는 본 개시의 예시적 실시예에 따라 도 14의 단계 S260 및 단계 S280의 예시들을 나타내는 순서도이다. 도 14를 참조하여 전술된 바와 같이, 도 15의 단계 S260'에서 보간 대상 프래그먼트를 판정하는 동작이 수행될 수 있고, 단계 S280'에서 쉐이딩된 주변 프래그먼트들에 기초하여 보간 대상 프래그먼트를 계산하는 동작이 수행될 수 있다. 도 15에 도시된 바와 같이, 단계 S260'은 복수의 단계들(S261, S262, S263)을 포함할 수 있고, 단계 S280'은 단계 S281을 포함할 수 있다. 일부 실시예들에서, 도 15의 방법은 도 5의 그래픽스 처리 시스템(50)에 의해서 수행될 수 있고, 이하에서 도 15는 도 5 및 도 14를 참조하여 설명될 것이다.
단계 S261에서, 초기 프래그먼트 맵(MAP0)으로부터 제1 프래그먼트 맵(MAP1)을 생성하는 동작이 수행될 수 있다. 예를 들면, 맵 매니저(52_2)는 미리 정해진 패턴 및/또는 깊이 데이터 등에 기초하여 초기 프래그먼트 맵(MAP0)을 생성할 수 있다. 또한, 맵 매니저(52_2)는 초기 프래그먼트 맵(MAP0)에 따라 쉐이더(52_4)가 렌더링을 수행함으로써 생성된 중간 렌더링 데이터(I_RND)를 수신할 수 있고, 중간 렌더링 데이터(I_RND)에 기초하여 초기 프래그먼트 맵(MAP0)으로부터 제1 프래그먼트 맵(MAP1)을 생성할 수 있다. 일부 실시예들에서, 제1 프래그먼트 맵(MAP1)은 중간 렌더링 데이터(I_RND)에서 검출된 에지에 대응하는 프래그먼트를 추가함으로써 생성될 수 있다.
단계 S262에서, 제1 프래그먼트 맵(MAP1)으로부터 제2 프래그먼트 맵(MAP2)을 생성하는 동작이 수행될 수 있다. 예를 들면, 맵 매니저(52_2)는 G-버퍼(G_BUF)에 포함된 이미지에서 에지를 검출할 수 있고, 검출된 에지에 대응하는 프래그먼트를 추가함으로써 제2 프래그먼트 맵(MAP2)을 생성할 수 있다. 단계 S262의 예시는 도 16을 참조하여 후술될 것이다.
단계 S263에서, 제2 프래그먼트 맵(MAP2)에 따라 프래그먼트들을 쉐이딩하는 동작이 수행될 수 있다. 예를 들면, 쉐이더(52_4)는 제2 프래그먼트 맵(MAP2)을 맵 매니저(52_2)로부터 수신할 수 있고, 제2 프래그먼트 맵(MAP2)에 포함된 프래그먼트들을 쉐이딩할 수 있다. 이에 따라, 최종 렌더링 데이터(F_RND)가 생성될 수 있고, 최종 렌더링 데이터(F_RND)는 쉐이딩된 프래그먼트들 및 쉐이딩되지 아니한 프래그먼트들을 포함할 수 있다.
단계 S281에서, 제2 프래그먼트 맵(MAP2)에 따라 보간 대상 프래그먼트를 식별하는 동작이 수행될 수 있다. 예를 들면, 보간 필터(52_6)는 쉐이더(52_4) 또는 맵 매니저(52_2)로부터 제2 프래그먼트 맵(MAP2)을 수신할 수 있고, 제2 프래그먼트 맵(MAP2)에 기초하여 보간 대상 프래그먼트를 식별할 수 있다. 그 다음에, 식별된 보간 대상 프래그먼트는 쉐이딩된 주변 프래그먼트들로부터 계산될 수 있다.
도 16은 본 개시의 예시적 실시예에 따라 도 15의 단계 S262의 예시를 나타내는 순서도이다. 구체적으로, 도 16의 단계 S262'는 하나의 프래그먼트에 대하여 수행되는 동작을 나타내고, 일부 실시예들에서 단계 S262'는 제1 프래그먼트 맵(MAP1)에 포함되지 아니한 프래그먼트에 대하여 수행될 수 있다. 도 15를 참조하여 전술된 바와 같이, 도 16의 단계 S262'에서 제1 프래그먼트 맵(MAP1)으로부터 제2 프래그먼트 맵(MAP2)을 생성하는 동작이 수행될 수 있다. 이하에서, 도 16은 도 5를 참조하여 설명될 것이다.
단계 S262_1에서, G-버퍼(G_BUF)에 포함된 이미지를 획득하는 동작이 수행될 수 있다. G-버퍼(G_BUF)는 적어도 하나의 이미지를 포함할 수 있고, G-버퍼(G_BUF)에 포함된 이미지들 중 하나가 획득될 수 있다. 단계 S262_3에서, 단계 S262_1에서 획득된 이미지에서 에지 검출이 수행될 수 있다. 에지가 검출된 경우 단계 S262_9가 후속하여 수행될 수 있는 한편, 에지가 검출되지 아니한 경우 단계 S262_5가 후속하여 수행될 수 있다.
에지가 검출된 경우, 단계 S262_9에서, 제2 프래그먼트 맵(MAP2)에 프래그먼트를 추가하는 동작이 수행될 수 있다. 예를 들면, 검출된 에지에 대응하는 프래그먼트는 주변 프래그먼트들과 상이한 값을 가질 가능성이 높을 수 있고, 이에 따라 해당 프래그먼트가 제2 프래그먼트 맵(MAP2)에 추가될 수 있다.
다른 한편으로, 에지가 검출되지 아니한 경우, 단계 S262_5에서 G-버퍼(G_BUF)에서 다음 이미지가 존재하는지 여부가 판단될 수 있다. 다음 이미지가 있는 경우 단계 S262_1에서 G-버퍼(G_BUF)에 포함된 다음 이미지를 획득하는 동작이 수행될 수 있다. 다른 한편으로, 다음 이미지가 없는 경우, 단계 S262_7이 후속하여 수행될 수 있다.
단계 S262_7에서, 제2 프래그먼트 맵(MAP2)에서 프래그먼트를 제거하는 동작이 수행될 수 있다. 즉, G-버퍼(G_BUF)에 포함된 모든 이미지들에서 에지가 검출되지 아니한 프래그먼트는 제2 프래그먼트 맵(MAP2)에서 제거될 수 있고, 이에 따라 보간 대상 프래그먼트로 분류될 수 있다.
도 17은 본 개시의 예시적 실시예에 따라 도 14의 단계 S260 및 단계 S280의 예시들을 나타내는 순서도이다. 도 14를 참조하여 전술된 바와 같이, 도 17의 단계 S260"에서 보간 대상 프래그먼트를 판정하는 동작이 수행될 수 있고, 단계 S280"에서 쉐이딩된 주변 프래그먼트들에 기초하여 보간 대상 프래그먼트를 계산하는 동작이 수행될 수 있다. 도 17에 도시된 바와 같이, 단계 S260"은 단계 S264 및 단계 S265를 포함할 수 있고, 단계 S280"은 단계 S282 및 단계 S283을 포함할 수 있다. 일부 실시예들에서 도 17의 방법은 도 8의 그래픽스 처리 시스템(80)에 의해서 수행될 수 있고, 이하에서 도 17은 도 8 및 도 14를 참조하여 설명될 것이다.
단계 S264에서, 최종 렌더링 데이터(F_RND)를 생성하는 동작이 수행될 수 있다. 예를 들면, 쉐이더(82_4)는 텍스쳐 장치(82_4)를 통해서 G-버퍼(G_BUF)에 포함된 이미지들, 즉 G-버퍼 이미지(G_IMG)를 획득할 수 있고, G-버퍼 이미지(G_IMG)에서 에지를 검출할 수 있다. 쉐이더(82_4)는 검출된 에지에 대응하는 픽셀을 쉐이딩하는 한편, 에지가 검출되지 아니한 영역의 픽셀은 폐기할 수 있다. 이에 따라, 최종 렌더링 데이터(F_RND)에 포함된 이미지는 유효하지 아니한 픽셀을 포함할 수 있다. 그 다음에, 단계 S265에서, 보간 대상 픽셀을 결정하는 동작이 수행될 수 있다. 예를 들면, 쉐이더(82_4)는 G-버퍼(G_BUF)에 포함된 이미지들 모두에서 에지가 검출되지 아니한 영역에 대응하는 픽셀을 보간 대상 픽셀로서 결정할 수 있다. 일부 실시예들에서, 쉐이더(82_4)는 보간 대상 픽셀을 나타내는 페기 플래그를 생성할 수 있다.
단계 S282에서, 이미지들을 중첩하는 동작이 수행될 수 있다. 예를 들면, 보간 필터(82_6)는 중간 렌더링 데이터(I_RND)의 이미지 및 최종 렌더링 데이터(F_RND)의 이미지를 중첩할 수 있고, 이에 따라, 도 11을 참조하여 전술된 바와 같이, 중첩된 이미지가 생성될 수 있다. 그 다음에, 단계 S283에서 쉐이딩된 주변 픽셀들에 기초하여 픽셀을 계산하는 동작이 수행될 수 있다. 예를 들면, 보간 필터(82_6)는 임의의 보간 방식에 따라 유효한 값들을 가지는 주변 픽셀들로부터 유효하지 아니한 픽셀을 계산할 수 있고, 결과적으로 최종 이미지(F_IMG)가 생성될 수 있다.
도 18은 본 개시의 예시적 실시예에 따른 그래픽스 처리 방법을 나타내는 순서도이다. 예를 들면, 도 18의 방법은 도 12의 그래픽스 처리 시스템(120)에 의해서 수행될 수 있다. 도 14의 예시와 비교할 때, 도 18의 방법은 인공 신경망(ANN)을 이용할 수 있다. 이하에서, 도 18은 도 12를 참조하여 설명될 것이고, 도 18에 대한 설명 중 도 14에 대한 설명과 중복되는 내용은 생략될 것이다.
단계 S320에서, 도 14의 단계 S220과 유사하게 G-버퍼(G_BUF)를 생성하는 동작이 수행될 수 있다. 또한, 단계 S340에서, 도 14의 단계 S240과 유사하게 중간 렌더링이 수행될 수 있다. 이에 따라, G-버퍼(G_BUF) 및 중간 렌더링 데이터(I_RND)가 생성될 수 있다.
단계 S360에서, 중간 렌더링 데이터(I_RND) 및 G-버퍼(G_BUF)를 인공 신경망(ANN)에 제공하는 동작이 수행될 수 있다. 도 12를 참조하여 전술된 바와 같이, 인공 신경망(ANN)은 쉐이더(122_4)에 포함될 수 있고, G-버퍼(G_BUF)의 이미지 및 중간 렌더링 데이터(I_RND)의 이미지로부터 최종 이미지(F_IMG)를 출력하도록 학습된 상태일 수 있다. 일부 실시예들에서, 인공 신경망(ANN)은 G-버퍼(G_BUF)의 이미지 및 중간 렌더링 데이터(I_RND)의 이미지뿐만 아니라, 중간 렌더링에 사용된 기하 데이터(예컨대, 도 13의 D130)로부터 최종 이미지(F_IMG)를 출력하도록 학습된 상태일 수 있고, 이에 따라 쉐이더(122_4)는 인공 신경망(ANN)에 기하 데이터를 추가적으로 제공할 수도 있다. 그 다음에, 단계 S380에서 인공 신경망(ANN)으로부터 최종 이미지(F_IMG)를 획득하는 동작이 수행될 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (20)

  1. 지연 쉐이딩(deferred shading)의 1차 패스(pass)를 수행함으로써 G-버퍼(Geometry-buffer)를 생성하도록 구성된 그래픽스 처리 장치(graphics processing unit); 및
    상기 G-버퍼를 저장하도록 구성된 메모리를 포함하고,
    상기 그래픽스 처리 장치는,
    쉐이딩 대상 프래그먼트(fragment)를 나타내는 제1 프래그먼트 맵을 생성하고, 상기 G-버퍼에 기초하여 상기 제1 프래그먼트 맵에서 프래그먼트를 추가하거나 제거함으로써 제2 프래그먼트 맵을 생성하도록 구성된 맵 매니저; 및
    상기 제2 프래그먼트 맵에 따라 프래그먼트들을 쉐이딩하도록 구성된 쉐이더(shader)를 포함하는 것을 특징으로 하는 그래픽스 처리 시스템.
  2. 청구항 1에 있어서,
    상기 맵 매니저는, 초기 프래그먼트 맵을 생성하고, 상기 초기 프래그먼트 맵에 따라 렌더링을 수행함으로써 획득된 중간 렌더링 데이터에 기초하여 상기 초기 프래그먼트 맵에서 프래그먼트를 추가하거나 제거함으로써 상기 제1 프래그먼트 맵을 생성하도록 구성된 것을 특징으로 하는 그래픽스 처리 시스템.
  3. 청구항 2에 있어서,
    상기 맵 매니저는, 깊이 이미지에서 검출된 에지 및/또는 미리 정의된 패턴에 따라 상기 초기 프래그먼트 맵을 생성하도록 구성된 것을 특징으로 하는 그래픽스 처리 시스템.
  4. 청구항 2에 있어서,
    상기 맵 매니저는, 상기 중간 렌더링 데이터에 포함된 쉐이딩된 프래그먼트들에서 검출된 에지에 기초하여 상기 제1 프래그먼트 맵을 생성하도록 구성된 것을 특징으로 하는 그래픽스 처리 시스템.
  5. 청구항 1에 있어서,
    상기 맵 매니저는, 상기 G-버퍼에 포함된 이미지에서 검출된 에지에 대응하는 프래그먼트를 상기 제2 프래그먼트 맵에 추가하도록 구성된 것을 특징으로 하는 그래픽스 시스템.
  6. 청구항 1에 있어서,
    상기 맵 매니저는, 상기 G-버퍼에 포함된 이미지 모두에서 에지가 검출되지 아니한 프래그먼트를 상기 제2 프래그먼트 맵에서 제거하는 것을 특징으로 하는 그래픽스 시스템.
  7. 청구항 1에 있어서,
    상기 메모리는, 상기 쉐이더에 의해서 쉐이딩된 프래그먼트들을 포함하는 최종 렌더링 데이터를 저장하도록 구성되고,
    상기 메모리에 액세스함으로써 상기 최종 렌더링 데이터를 획득하고, 쉐이딩된 주변 프래그먼트들에 기초하여 프레그먼트를 계산함으로써 최종 이미지를 생성하도록 구성된 보간 필터를 더 포함하는 그래픽스 시스템.
  8. 청구항 1에 있어서,
    상기 맵 매니저는, 이미지에서 에지를 검출하도록 구성된 에지 검출기를 더 포함하는 그래픽스 시스템.
  9. 지연 쉐이딩(deferred shading)의 1차 패스(pass)를 수행함으로써 G-버퍼(Geometry-buffer)를 생성하도록 구성된 그래픽스 처리 장치(graphics processing unit); 및
    상기 G-버퍼를 저장하도록 구성된 메모리를 포함하고,
    상기 그래픽스 처리 장치는,
    쉐이딩 대상 프래그먼트(fragment)를 나타내는 프래그먼트 맵에 따라 프래그먼트를 쉐이딩함으로써 중간 렌더링 데이터를 생성하고, 상기 G-버퍼에 기초하여 프래그먼트를 선택적으로 쉐이딩함으로써 최종 렌더링 데이터를 생성하도록 구성된 쉐이더; 및
    상기 중간 렌더링 데이터 및 상기 최종 렌더링 데이터에서, 쉐이딩된 주변 픽셀들에 기초하여 픽셀을 계산함으로써 최종 이미지를 생성하도록 구성된 보간 필터를 포함하는 것을 특징으로 하는 그래픽스 처리 시스템.
  10. 청구항 9에 있어서,
    상기 프래그먼트 맵은, 깊이 이미지에서 검출된 에지 및/또는 미리 정의된 패턴에 따라 생성된 것을 특징으로 하는 그래픽스 처리 시스템.
  11. 청구항 9에 있어서,
    상기 쉐이더는, 상기 G-버퍼에 포함된 이미지에서 검출된 에지에 대응하는 프래그먼트를 쉐이딩하도록 구성된 것을 특징으로 하는 그래픽스 시스템.
  12. 청구항 9에 있어서,
    상기 쉐이더는, 상기 G-버퍼에 포함된 이미지 모두에서 에지가 검출되지 아니한 프래그먼트를 쉐이딩하지 아니하도록 구성된 것을 특징으로 하는 그래픽스 시스템.
  13. 청구항 9에 있어서,
    상기 쉐이더는, 픽셀 폐기(pixel discard)를 통해서 상기 프래그먼트를 선택적으로 쉐이딩하도록 구성된 것을 특징으로 하는 그래픽스 시스템.
  14. 청구항 9에 있어서,
    상기 보간 필터는, 상기 중간 렌더링 데이터 및 상기 최종 렌더링 데이터에 포함된 이미지들을 중첩하고, 중첩된 이미지에서, 쉐이딩된 주변 픽셀들에 기초하여 픽셀을 계산하도록 구성된 것을 특징으로 하는 그래픽스 시스템.
  15. 지연 쉐이딩(deferred shading)의 1차 패스(pass)를 수행함으로써 -버퍼(Geometry-buffer)를 생성하는 단계;
    쉐이딩 대상 프래그먼트(fragment)를 나타내는 초기 프래그먼트 맵에 따라 렌더링을 수행함으로써 중간 렌더링 데이터를 생성하는 단계;
    상기 G-버퍼 및 상기 중간 렌더링 데이터에 기초하여 보간 대상 프래그먼트를 판정하는 단계; 및
    주변 프래그먼트들에 기초하여 상기 보간 대상 프래그먼트를 계산하는 단계를 포함하는 그래픽스 처리 방법.
  16. 청구항 15에 있어서,
    상기 중간 렌더링 데이터를 생성하는 단계는, 깊이 이미지에서 검출된 에지 및/또는 미리 정의된 패턴에 따라 상기 초기 프래그먼트 맵을 생성하는 단계를 포함하는 것을 특징으로 하는 그래픽스 처리 방법.
  17. 청구항 15에 있어서,
    제2 프래그먼트 맵에 따라 프래그먼트를 쉐이딩하는 단계를 더 포함하고,
    상기 보간 대상 프래그먼트를 판정하는 단계는,
    상기 중간 렌더링 데이터에 기초하여 상기 초기 프래그먼트 맵에서 프래그먼트를 추가하거나 제거함으로써 제1 프래그먼트 맵을 생성하는 단계; 및
    상기 G-버퍼에 기초하여 상기 제1 프래그먼트 맵에서 프래그먼트를 추가하거나 제거함으로써 상기 제2 프래그먼트 맵을 생성하는 단계를 포함하고,
    상기 보간 대상 프래그먼트를 계산하는 단계는, 상기 제2 프래그먼트 맵에 따라 상기 보간 대상 프래그먼트를 식별하는 단계를 포함하는 것을 특징으로 하는 그래픽스 처리 방법.
  18. 청구항 17에 있어서,
    상기 제1 프래그먼트 맵을 생성하는 단계는, 상기 중간 렌더링 데이터에 포함된 쉐이딩된 프래그먼트들에서 검출된 에지에 기초하여 상기 제1 프래그먼트 맵을 생성하는 것을 특징으로 하는 그래픽스 처리 방법.
  19. 청구항 17에 있어서,
    상기 제2 프래그먼트 맵을 생성하는 단계는,
    상기 G-버퍼에 포함된 이미지에서 검출된 에지에 대응하는 프래그먼트를 상기 제2 프래그먼트 맵에 추가하는 단계; 및
    상기 G-버퍼에 포함된 이미지 모두에서 에지가 검출되지 아니한 프래그먼트를 상기 제2 프래그먼트 맵에서 제거하는 단계를 포함하는 것을 특징으로 하는 그래픽스 처리 방법.
  20. 청구항 15에 있어서,
    상기 보간 대상 프래그먼트를 판정하는 단계는,
    상기 G-버퍼에 포함된 이미지에서 검출된 에지에 대응하는 프래그먼트를 쉐이딩함으로써 최종 렌더링 데이터를 생성하는 단계; 및
    상기 G-버퍼에 포함된 이미지 모두에서 에지가 검출되지 아니한 프래그먼트를 상기 보간 대상 프래그먼트로서 판정하는 단계를 포함하는 것을 특징으로 하는 그래픽스 처리 방법.
KR1020180134442A 2018-11-05 2018-11-05 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법 KR102589969B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180134442A KR102589969B1 (ko) 2018-11-05 2018-11-05 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법
US16/519,542 US11062420B2 (en) 2018-11-05 2019-07-23 Graphics processing unit, graphics processing system, and graphics processing method of performing interpolation in deferred shading
CN201910734327.4A CN111145325A (zh) 2018-11-05 2019-08-09 执行插值的图形处理单元、图形处理系统和图形处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180134442A KR102589969B1 (ko) 2018-11-05 2018-11-05 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법

Publications (2)

Publication Number Publication Date
KR20200051280A true KR20200051280A (ko) 2020-05-13
KR102589969B1 KR102589969B1 (ko) 2023-10-16

Family

ID=70458878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180134442A KR102589969B1 (ko) 2018-11-05 2018-11-05 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법

Country Status (3)

Country Link
US (1) US11062420B2 (ko)
KR (1) KR102589969B1 (ko)
CN (1) CN111145325A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112750189A (zh) * 2021-01-20 2021-05-04 广州虎牙科技有限公司 光照着色方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030034976A1 (en) * 2001-08-14 2003-02-20 Ramesh Raskar System and method for registering multiple images with three-dimensional objects
US20140176549A1 (en) * 2012-12-21 2014-06-26 Nvidia Deferred shading graphics processing unit, geometry data structure and method of performing anti-aliasing in deferred shading
US20140354627A1 (en) * 2013-05-31 2014-12-04 Konica Minolta Labratory U.S.A., Inc. Rendering a 3d shape
US20150193968A1 (en) * 2014-01-03 2015-07-09 Rasmus Barringer Sparse Rasterization

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5977977A (en) 1995-08-04 1999-11-02 Microsoft Corporation Method and system for multi-pass rendering
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US6650327B1 (en) * 1998-06-16 2003-11-18 Silicon Graphics, Inc. Display system having floating point rasterization and floating point framebuffering
AU5686199A (en) 1998-08-20 2000-03-14 Apple Computer, Inc. Deferred shading graphics pipeline processor
KR101926570B1 (ko) 2011-09-14 2018-12-10 삼성전자주식회사 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US10535185B2 (en) 2012-04-04 2020-01-14 Qualcomm Incorporated Patched shading in graphics processing
US9013496B2 (en) * 2012-06-19 2015-04-21 Microsoft Technology Licensing, Llc Rendering global light transport in real-time using machine learning
GB2546020B (en) * 2012-11-02 2017-08-30 Imagination Tech Ltd Method of scheduling discrete productions of geometry
US9767595B2 (en) * 2013-05-02 2017-09-19 Arm Limited Graphics processing systems
US9070200B2 (en) * 2013-05-02 2015-06-30 Arm Limited Graphics processing systems
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
GB201414204D0 (en) 2014-08-11 2014-09-24 Advanced Risc Mach Ltd Data processing systems
JP6910130B2 (ja) * 2015-11-06 2021-07-28 三星電子株式会社Samsung Electronics Co.,Ltd. 3dレンダリング方法及び3dレンダリング装置
US10147222B2 (en) 2015-11-25 2018-12-04 Nvidia Corporation Multi-pass rendering in a screen space pipeline
DE102018101030A1 (de) * 2017-01-18 2018-07-19 Nvidia Corporation Filterung von Bilddaten unter Verwendung eines neutralen Netzwerks
US10650566B2 (en) * 2017-02-15 2020-05-12 Microsoft Technology Licensing, Llc Multiple shader processes in graphics processing
US10748332B2 (en) * 2017-03-15 2020-08-18 Nvidia Corporation Hybrid frustum traced shadows systems and methods
KR102545172B1 (ko) 2017-12-28 2023-06-19 삼성전자주식회사 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030034976A1 (en) * 2001-08-14 2003-02-20 Ramesh Raskar System and method for registering multiple images with three-dimensional objects
US20140176549A1 (en) * 2012-12-21 2014-06-26 Nvidia Deferred shading graphics processing unit, geometry data structure and method of performing anti-aliasing in deferred shading
US20140354627A1 (en) * 2013-05-31 2014-12-04 Konica Minolta Labratory U.S.A., Inc. Rendering a 3d shape
US20150193968A1 (en) * 2014-01-03 2015-07-09 Rasmus Barringer Sparse Rasterization

Also Published As

Publication number Publication date
US20200143507A1 (en) 2020-05-07
CN111145325A (zh) 2020-05-12
KR102589969B1 (ko) 2023-10-16
US11062420B2 (en) 2021-07-13

Similar Documents

Publication Publication Date Title
JP7425064B2 (ja) 機械学習ベースシェーダをもつグラフィックス処理チップ
JP6910130B2 (ja) 3dレンダリング方法及び3dレンダリング装置
US11682158B2 (en) Foveated rendering
US9449421B2 (en) Method and apparatus for rendering image data
US9569811B2 (en) Rendering graphics to overlapping bins
US9589386B2 (en) System and method for display of a repeating texture stored in a texture atlas
US20120069021A1 (en) Apparatus and method of early pixel discarding in graphic processing unit
US20180300915A1 (en) Method of and apparatus for processing graphics
US10909659B2 (en) Super-resolution image processing using a machine learning system
US10733785B2 (en) Graphics processing
JP2007066064A (ja) 画像生成装置及びプログラム
WO2024045416A1 (zh) 一种扩展图块边界的分块渲染模式图形处理方法及系统
US11631187B2 (en) Depth buffer pre-pass
US10846908B2 (en) Graphics processing apparatus based on hybrid GPU architecture
US10825231B2 (en) Methods of and apparatus for rendering frames for display using ray tracing
JP2024508457A (ja) 3dモデリングを強化するために一時的なテクスチャアプリケーションを提供する方法及びシステム
US11120611B2 (en) Using bounding volume representations for raytracing dynamic units within a virtual space
CN117501312A (zh) 图形渲染的方法及装置
US10062138B2 (en) Rendering apparatus and method
KR102589969B1 (ko) 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법
CN115035224A (zh) 图像处理和重构图像生成的方法和装置
US20240127524A1 (en) Method and system for processing graphics in tile-based rendering mode
US20220309730A1 (en) Image rendering method and apparatus
US20240127525A1 (en) Method and system for processing graphics in tile-based rendering mode
CN115330926A (zh) 阴影估计方法、装置、电子设备和可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant