KR101926570B1 - 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치 - Google Patents

포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치 Download PDF

Info

Publication number
KR101926570B1
KR101926570B1 KR1020110092352A KR20110092352A KR101926570B1 KR 101926570 B1 KR101926570 B1 KR 101926570B1 KR 1020110092352 A KR1020110092352 A KR 1020110092352A KR 20110092352 A KR20110092352 A KR 20110092352A KR 101926570 B1 KR101926570 B1 KR 101926570B1
Authority
KR
South Korea
Prior art keywords
effect
fragments
vertex
fragment shader
fragment
Prior art date
Application number
KR1020110092352A
Other languages
English (en)
Other versions
KR20130029149A (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 KR1020110092352A priority Critical patent/KR101926570B1/ko
Priority to US13/443,468 priority patent/US8952962B2/en
Publication of KR20130029149A publication Critical patent/KR20130029149A/ko
Application granted granted Critical
Publication of KR101926570B1 publication Critical patent/KR101926570B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • 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
    • 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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Landscapes

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

Abstract

포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치가 제공된다. 그래픽 처리 장치의 렌더링 파이프라인은 레스터 오퍼레이터의 이전에 동작하는 프레그먼트 쉐이더와 레스터 오퍼레이터 이후에 동작하는 포스트 프레그먼트 쉐이더를 포함한다. 프레그먼트 쉐이더 및 포스트 프레그먼트 쉐이더는 각각 프레그먼트들에게 상이한 효과들을 적용할 수 있다.

Description

포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치{METHOD AND APPARATUS FOR GRAPHIC PROCESSING USING POST SHADER}
아래의 실시예들은 그래픽 처리를 위한 방법 및 장치에 관한 것이다.
포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치가 개시된다.
3D 그래픽에 관련된 기술이 발전함에 따라, 3D 그래픽에 의해 생성되는 게임에서도 영화와 같은 사실적인 영상이 요청된다. 이러한 요청에 따라, 그래픽스 프로세싱 유닛(Graphics Processing Unit; GPU)은 고정된 연산을 수행하는 하드웨어(hardware) 구조로부터 프로그래밍가능한(programmable) 구조로 변경되었다. 이러한 변경에 의해, GPU는 버텍스(vertex) 쉐이더(shader) 및 프레그먼트(fragment) 쉐이더를 구성요소로서 사용하게 되었다.
영화 및 에니메이션(animation)의 분야에서만 사용 가능했던 렌더-맨(render-man)의 쉐이더 효과가 게임에도 적용됨으로써, 게임의 영상이 비약적으로 발전되었다. 렌더-맨의 쉐이더 효과는 퐁(phong) 쉐이더, 디스플레이스먼트(displacement) 쉐이더 및 범프-맵(bump-map) 등을 포함한다.
GPU가 버텍스 쉐이더 및 프레그먼트 쉐이더 이외의 다른 영역에서도 프로그램가능성(programmability)을 제공할 수 있도록, GPU의 프로그램가능성이 확장될 필요가 있다. 개방형 그래픽스 라이브러리(Open Graphics Library; OpenGL)이 기하(geometry) 쉐이더 및 테셀레이션(tessellation) 쉐이더를 표준으로 채택한 것은, 이러한 확장이 반영된 것으로 볼 수 있다.
고성능 GPU의 프로그램가능성은 GPU의 영역을 그래픽스 분야뿐만 아니라 범용 GPU(General-Purpose computing on Graphics Processing Unit; GPGPU) 분야에까지 확장시켰다. 이러한 확장의 일 예로서, 개방형 컴퓨테이션 언어(Open Computation Language; OpenCL) 및 쿠다(compute unified device architecture; CUDA)가 있다.
따라서, 보다 사실적인 영상이 생성될 수 있도록, GPU에 다양한 프로그램가능성이 추가될 필요가 있다.
본 발명의 일 실시예는 포스트 프레그먼트 쉐이더를 사용함으로써 단일한 파이프라인 내에서 그래픽 프로세싱 및 포스트 프로세싱을 처리하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 실시예는 프레그먼트 쉐이더 및 포스트 프레그먼트 쉐이더를 애플리케이션의 제어에 따라 선택적으로 사용하는 장치 및 방법을 제공할 수 있다.
본 발명의 일 측에 따르면, 프레그먼트들 각각에 대해 제1 효과를 적용하는 프레그먼트 쉐이더, 상기 프레그먼트들의 정보에 기반하여 레스터 이미지를 생성하는 레스터 오퍼레이터 및 상기 레스터 이미지 내의 프레그먼트들 각각에 대해 제2 효과를 적용하는 포스트 프레그먼트 쉐이더를 포함하는, 그래픽 처리 장치가 제공된다.
상기 그래픽 처리 장치는, 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표를 보간함으로써 버텍스 내의 상기 프레그먼트들을 생성하는 레스터라이저를 더 포함할 수 있다.
상기 그래픽 처리 장치는, 상기 버텍스를 생성하는 프리미티브 프로세서, 상기 버텍스의 가상 공간 내의 3차원 위치를 화면에서 나타날 2차원 좌표 및 깊이 값으로 변환하여 버텍스 데이터를 생성하는 버텍스 쉐이더 및 상기 버텍스 데이터의 런을 수집하여 상기 수집된 런을 사용하여 프리미티브를 구성하는 프리미티브 어셈블리를 더 포함할 수 있다.
상기 제2 효과는 상기 레스터 이미지의 정보를 참조하여 상기 레스터 이미지 내의 프레그먼트들 각각에 대해 적용되는 프레그먼트-당 효과일 수 있다.
상기 제2 효과는 동작 번짐 효과, 안티-앨리어싱 효과, 피사계 심도 효과 및 블루밍 필터 효과 중 하나 이상을 포함할 수 있다.
상기 프레그먼트 쉐이더는 상기 레스터 오퍼레이터가 레스터 연산을 수행한 이후에 상기 레스터 이미지 내의 프레그먼트들 각각의 색상을 연산함으로써 지연 쉐이딩을 수행할 수 있다.
상기 그래픽 처리 장치는, 상기 프레그먼트 쉐이더의 동작을 온 또는 오프로 제어하는 제1 스위치 및 상기 포스트 프레그먼트 쉐이더의 동작을 온 또는 오프로 제어하는 제2 스위치를 더 포함할 수 있다.
상기 그래픽 처리 장치는, 상기 레스터 이미지를 프레임 버퍼 객체로서 저장하는 메모리를 더 포함할 수 있다.
상기 포스트 프레그먼트 쉐이더는 상기 프레임 버퍼 객체를 통해 상기 프레그먼트 쉐이더가 생성한 상기 프레그먼트들로 접근할 수 있다.
상기 프레그먼트들에 대한 정보는 베링을 통해 상기 프레그먼트 쉐이더로부터 상기 포스트 프레그먼트 쉐이더로 전달될 수 있다.
본 발명의 다른 일 측에 따르면, 프레그먼트들 각각에 대해 제1 효과를 적용하는 프레그먼트 쉐이딩 단계, 상기 프레그먼트들의 정보에 기반하여 레스터 이미지를 생성하는 레스터 오퍼레이션 단계 및 상기 레스터 이미지 내의 프레그먼트들 각각에 대해 제2 효과를 적용하는 포스트 프레그먼트 쉐이딩 단계를 포함하는, 그래픽 처리 방법이 제공된다.
상기 그래픽 처리 방법은, 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표를 보간함으로써 상기 버텍스 내의 상기 프레그먼트들을 생성하는 레스터라이제이션 단계를 더 포함할 수 있다.
상기 그래픽 처리 방법은, 상기 버텍스를 생성하는 프리미티브 프로세싱 단계, 상기 버텍스의 가상 공간 내의 3차원 위치를 화면에서 나타날 2차원 좌표 및 깊이 값으로 변환함으로써 버텍스 데이터를 생성하는 버텍스 쉐이딩 단계 및 상기 버텍스 데이터의 런을 수집하여 상기 수집된 런을 사용함으로써 프리미티브를 구성하는 프리미티브 어셈블링 단계를 더 포함할 수 있다.
포스트 프레그먼트 쉐이더를 사용함으로써 단일한 파이프라인 내에서 그래픽 프로세싱 및 포스트 프로세싱을 처리하는 장치 및 방법이 제공된다.
프레그먼트 쉐이더 및 포스트 프레그먼트 쉐이더를 애플리케이션의 제어에 따라 선택적으로 사용하는 장치 및 방법이 제공된다.
도 1은 본 발명의 일 예에 따른 렌더링 엔진을 설명한다.
도 2는 본 발명의 일 실시예에 따른 렌더링 엔진의 파이프라인(pipeline)을 도시한다.
도 3은 본 발명의 일 실시예에 따른 레스터 엔진의 구조도이다.
도 4는 본 발명의 일 예에 따른, 프레그먼트 쉐이더 및 포스트 프레그먼트 쉐이더의 입력 값 및 출력 값을 나타낸다.
도 5는 본 발명의 일 실시예에 따른 그래픽 처리 방법의 흐름도이다.
이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
하기의 실시예들 및 예들에서, 용어 "프레그먼트" 및 "픽셀(pixel)"은 동일한 의미로, 상호 교환되어 사용될 수 있다.
하기의 실시예들 및 예들은 프로그램가능한(programmable) 쉐이더를 사용하는 3D 렌더링 방법 및 장치에 적용될 수 있다.
도 1은 본 발명의 일 예에 따른 렌더링 엔진을 설명한다.
제1 그래픽 처리 장치(100)는 종래의 렌더링 엔진(120)을 사용하는 그래픽 처리 장치를 나타낸다.
제1 그래픽 처리 장치(100)는 애플리케이션(110), 렌더링 엔진(120) 및 프레임 버퍼(130)를 포함한다. 애플리케이션(110)은 사용자 프로그램이다. 애플리케이션(110)은 목적에 따라 렌더링 엔진(120)을 제어 및 사용할 수 있다. 또한, 애플리케이션(110)은 사용자 프로그램 중 렌더링 엔진(120)의 제어 및 사용과 관련된 일부를 의미할 수 있다.
렌더링 엔진(120)은 렌더링 작업을 수행한다. 렌더링 엔진은 GPU 또는 GPU의 일부일 수 있다.
프레임 버퍼(130)는 완전한(complete) 데이터 프레임(frame)을 포함하는 메모리 버퍼로부터 비디오 출력(video display)을 구동(drive)하는 비디오 출력 장치(device)이다.
애플리케이션(110)은 렌더링 엔진(120)에게 그래픽 프로세싱을 요청한다. 그래픽 프로세싱 요청에 따라, 렌더링 엔진(120)은 프레그먼트들에 대해 프레그먼트 쉐이더 및 레스터 오퍼레이션을 순차적으로 적용한다. 렌더링 엔진(120)은 프레그먼트들에게 레스트 오퍼레이션을 적용함으로써 레스터 이미지를 생성한다.
렌더링 엔진(120)은 그레픽 프로세싱 요청을 처리할 때, 프레임 버퍼 객체(frame buffer object)로 레스터 이미지를 렌더링할 수 있다.
레스터 이미지(즉, 레스터 이미지 내의 프레그먼트들)에 대해 적용될 수 있는 포스트 프로세싱 효과로서, 동작 번짐(motion blur), 안티-앨리어싱(anti-aliasing), 피사계 심도(depth of field) 및 블루밍 필터(blooming filter) 등이 있다. 이러한 포스트 프로세싱 효과는 전체 레스터 이미지가 생성된 후 적용될 수 있는 효과를 포함할 수 있다. 그러나, 렌더링 엔진(120)의 파이프라인 내에서 레스터 오퍼레이터는 프레그먼트 쉐이더의 다음에 위치한다. 따라서, 포스트 프로세싱 효과를 적용하기 위해, 애플리케이션(110)은 레스터 이미지(즉, 레스터 이미지 내의 프레그먼트들)에 대한 포스트 프로세싱을 렌더링 엔진(120)에게 재차 요청해야 한다. 렌더링 엔진(120)이 포스트 프로세싱 요청을 처리할 때, 렌더링 엔진(120)은 프레그먼트에 대한 추가적인 효과를 연산하기 위해 전체 렌더링 단계를 처음부터 재시작할 수 있다.
렌더링 엔진(120)은 포스트 프로세싱 요청을 처리할 때, 포스트 프로세싱 효과가 적용된 레스터 이미지를 프레임 버퍼(130)로 렌더링할 수 있다.
제2 그래픽 처리 장치(150)는 애플리케이션(160), 렌더링 엔진(170) 및 프레임 버퍼(180)를 포함한다.
렌더링 엔진(170)은 추가적인 프레그먼트 쉐이더를 구비한다. 상기의 추가적인 프레그먼트 쉐이더는 포스트 프로세싱 효과를 적용하기 위한 프레그먼트 쉐이더이다. 따라서, 상기의 추가적인 프레그먼트 쉐이더를 포스트 프레그먼트 쉐이더로 명명한다. 포스트 프레그먼트 쉐이더를 구비함으로써, 렌더링 엔진(170)은 단일한 렌더링 단계(즉, 파이프라인) 내에서 그래픽 프로세싱 및 포스트 프로세싱을 처리할 수 있다.
따라서, 애플리케이션(160)은 렌더링 엔진(170)에게 단일한 그래픽 프로세싱을 요청할 수 있으며, 상기의 그래픽 프로세싱 요청은 포스트 프로세싱 효과에 대한 요청을 포함할 수 있다.
렌더링 엔진(170)의 파이프라인이 도 2를 참조하여 하기에서 상세히 설명된다.
하기에서, 렌더링 엔진(120) 및 포스트 프레그먼트 쉐이더를 포함하는 렌더링 엔진(170)이 피사계 심도 효과를 처리하는 방법을 비교한다.
우선, 렌더링 엔진(120)은 그래픽 프로세싱을 통해, 포커스 이미지(focus image) 및 깊이 정보를 렌더링하고, 렌더링의 결과를 프레임 버퍼 객체 내에 저장한다. 다음으로, 렌더링 엔진(120)은 포스트 프로세싱을 통해, 프레임 버퍼 객체로부터 밉-맵(mip-map) 이미지를 생성한다. 여기서, 밉-맵 이미지는 다운 샘플(down sample)을 사용하여 생성된 블러(blur) 이미지를 의미한다. 렌더링 엔진(120)은 깊이 값에 따라, 밉-맵 텍스쳐로부터 최종 이미지를 렌더링한다.
반면, 포스트 프레그먼트 쉐이더를 포함하는 렌더링 엔진(170)은, 프레그먼트 쉐이더를 사용하여 인-포커스 이미지 및 깊이 정보를 렌더링하고, 포스트 프레그먼트 쉐이더를 사용하여 프레임 버퍼 객체로부터 밉-맵 이미지를 생성하고, 깊이 값에 따라 밉-맵 이미지로부터 최종 이미지를 쉐이딩한다. 따라서, 렌더링 엔진(170)은 포스트 프로세싱의 렌더링을 위한 추가적인 버텍스 스테이지 및 레스터라이제이션 스테이지를 제거할 수 있다.
하기에서, 지연된 쉐이딩 효과를 처리함에 있어서, 렌더링 엔진(120) 및 포스트 프레그먼트 쉐이더를 포함하는 렌더링 엔진(170)을 비교한다.
지연된 쉐이딩 효과는 다중 광원(light)에 대해 효과적이다. 프레그먼트 쉐이더 내에서, 최종 프레그먼트들만이 쉐이드된다.
렌더링 엔진(120)은 이러한 지연된 쉐이딩 효과를 지원하지 못할 수 있다. 반면, 포스트 프레그먼트 쉐이더를 포함하는 렌더링 엔진(170)은 이러한 지연된 쉐이딩 효과를 지원할 수 있다. 애플리케이션은 프레그먼트 쉐이더 대신 포스트 프레그먼트 쉐이더만을 사용할 수 있으며, 이러한 사용은 지연된 쉐이딩을 의미한다. 이러한 지연된 쉐이딩은, 이른(early) 씨서( scissor), 깊이(depth) 및 스텐실(stencil) 검사(test)를 의미한다. 즉, 각 가시의 프레그먼트에 대한 쉐이딩이 단 1회 이루어진다.
도 2는 본 발명의 일 실시예에 따른 렌더링 엔진의 파이프라인(pipeline)을 도시한다.
렌더링 엔진(170)의 파이프라인(200)은, 각각의 구성요소들(220, 230, 240, 260, 270, 280 및 290)에 의해 서로 다른 프레그먼트에 대한 (그래픽) 연산이 병렬적으로 수행될 수 있음을 나타낼 수 있다.
파이프라인(200)은 기하 스테이지(geometry stage)(210) 및 프레그먼트 스테이지(fragment stage)(250)를 포함한다.
기하 스테이지(210)는 공간 상 버텍스에 대한 위상 변화(transformation) 및 은면 제거(back-face culling)를 수행하고, 버텍스의 좌표를 스크린(screen)으로 투영(projection)한다. 프레그먼트 스테이지(250)는 버텍스들이 투영된 좌표를 기준으로, 버텍스들이 이루는 삼각형(또는, 다른 다각형일 수 있다)의 내부의 프레그먼트들을 생성하고, 프레그먼트들 각각의 색상 값을 계산한다.
기하 스테이지(210)에서 사용되는 구성요소로서, 렌더링 엔진(170)은 프리미티브 프로세서(220), 버텍스 쉐이더(230) 및 프리미티브 어셈블리(240)를 포함한다.
프레그먼트 스테이지(250)에서 사용되는 구성요소로서, 렌더링 엔진(170)은 레스터라이저(rasterizer)(260), 프레그먼트 쉐이더(270), 레스터 오퍼레이터(280) 및 포스트 프레그먼트 쉐이더(290)를 더 포함한다.
도 2 하단의 도형들은 각 스테이지에서의 버텍스 또는 프레그먼트의 처리를 개념적으로 나타낸다.
프리미티브 프로세서(220)는 애플리케이션으로부터 애플리케이션-특유(application-specific) 데이터 및 데이터 구조들(data structures)을 취하고, 상기의 데이터 및 데이터 구조들을 사용하여 버텍스들을 생성한다.
쉐이더(shader)는 소프트웨어 명령어들(instructions)의 집합이다. 쉐이더는 주로 그래픽스 하드웨어 상에서의 렌더링 효과들(effects)의 계산을 위해 사용된다. 쉐이더는 GPU 프로그램가능한 렌더링 파이프라인을 프로그램하기 위해 사용된다.
버텍스 쉐이더(230)는 GPU에게 주어진 버텍스들 각각을 위해 한 번씩 사용되며, 각각의 버텍스들의 가상 공간(virtual space) 내의 3D 위치(position)를 화면에서 나타날 2D 좌표(coordinate) 및 Z-버퍼(buffer)의 깊이 값(depth value)으로 변환(transform)하여 버텍스 데이터를 생성한다.
프리미티브 어셈블리(240)는 버텍스 쉐이더(230)로부터 출력되는 버텍스 데이터의 런(run)을 수집(collect)하여, 수집된 런을 사용하여 실행 가능한(viable) 프리미티브(primitive)(예컨대, 선(line), 점(point) 및 삼각형(triangle))를 구성한다.
레스터라이저(260)는 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐(texture) 좌표 등을 보간함으로써 버텍스 내의 프레그먼트들을 생성한다.
프레그먼트 쉐이더(270)는 쉐이더 프로그래머(programmer)에 의해 구현된 코드를 수행함으로써 생성된 프레그먼트들 각각에 대해 복잡한(complex) 프레그먼트-당(per-pixel) 효과들(effects)을 적용한다. 프레그먼트 쉐이더는 텍스쳐 매핑(mapping) 및 빛의 반사 등을 계산함으로써 프레그먼트의 색상을 계산하거나, 디스카드(discard) 명령어를 사용함으로써 특정한 프레그먼트를 제거한다. 디스카드 명령어는 프레그먼트 쉐이더 내부에서 특정한 프레그먼트를 파이프라인에서 제거시키는 명령어이다. 제거된 프레그먼트는 더 이상 렌더링 처리의 대상이 되지 아니한다.
레스터 오퍼레이터(280)은 깊이 검사(depth test) 및 컬러 블랜딩(color blending)을 수행함으로써 프레그먼트들의 정보에 기반하여 레스터 이미지(프레그먼트들 또는 도트들(dots))를 생성한다.
포스트 프레그먼트 쉐이더(290)는 레스터 오퍼레이터(280)에 의해 생성된 레스터 이미지 내의 프레그먼트들 각각에 대해 프레그먼트-당 효과들을 적용한다. 포스트 프레그먼트 쉐이더(290)는 프레그먼트-당 효과들이 적용된 레스터 이미지를 프레임 버퍼(180)로 출력한다.
포스트 프레그먼트 쉐이더(290)는 최종(final) 프레그먼트에 대한 오퍼레이션을 위한 범용-목적(general-purpose)의 프로그램가능한 방법을 구현할 수 있다. 포스트 프레그먼트 쉐이더(290)는 레스터 오퍼레이션에 의해 생성된 각 프레그먼트에 대해 실행될 수 있다.
여기서, 파이프라인(200)은 프레그먼트에 대한 2 개의 쉐이더들(270 및 290)을 갖는다. 따라서, 프레그먼트 쉐이더(270)를 제1 프레그먼트 쉐이더로, 포스트 프레그먼트 쉐이더(290)를 제2 프레그먼트 쉐이더로 명명할 수 있다. 또한, 프레그먼트 쉐이더(270)가 적용하는 프레그먼트-당 효과들을 제1 효과들로, 포스트 프레그먼트 쉐이더(290)가 적용하는 프레그먼트-당 효과들을 제2 효과들로 명명할 수 있다.
제2 효과들은 레스터 이미지의 정보를 참조하여 레스터 이미지 내의 프레그먼트들 각각에 대해 적용되는 프레그먼트-당 효과일 수 있다. 제2 효과들은 동작 번짐 효과, 안티-앨리어싱 효과, 피사계 심도 효과 및 블루밍 필터 효과 중 하나 이상을 포함할 수 있다.
레스터 엔진(170)은 포스트 프로세싱 과정을 파이프라인(200) 내에 포함시킨다. 포스트 프로세싱 과정의 파이프라인(200)으로의 내재화에 의해, 레스터 엔진(170)은 프레그먼트 쉐이더 오퍼레이션을 위한 멀티-패스(multi-pass) 렌더링을 제공할 수 있다. 멀티-패스 렌더링을 통해, 레스터 엔진(170)은 다양한 (포스트 프로세싱) 효과들을 표현함에 있어서, 불필요한 연산 및 대역폭(bandwidth)를 제거할 수 있고, 빠른 시간 내에 고 품질의 이미지를 생성할 수 있다. 또한, 멀티-패스 렌더링을 통해, 레스터 엔진(170)은 호스트(즉, 애플리케이션을 실행하는 중앙 처리 유닛(Central Processing Unit; CPU) 및 GPU 간의 불필요한 통신 및 상기의 통신으로 인한 오버헤드를 감소시킬 수 있으며, 호스트 및 GPU의 병렬성을 증가시킬 수 있다.
또한, 레스터 오퍼레이션에 의해, 포스트 프레그먼트 쉐이더(290)가 처리해야하는 프레그먼트들의 개수가 감소할 수 있다. 따라서, 포스트 프레그먼트 쉐이더(290)가 처리해야할 오퍼레이션의 양이 감소할 수 있다. 또한, 일반적으로 프레그먼트의 쉐이딩이 파이프라인(200) 내에서 병목이 될 수 있기 때문에, 포스트 프레그먼트 쉐이더(290)가 처리해야할 쉐이딩 오퍼레이션이 감소함에 따라, 전체 파이프라인(200)의 성능이 향상될 수 있다. 쉐이딩 오퍼레이션이 감소함에 따라 외부 메모리에 대한 접근 및 상기의 접근으로 인한 전력 사용량 또한 감소할 수 있다.
포스트 쉐이더(290)는, 레스터 오퍼레이터(280)가 레스터 연산을 수행한 이후에 레스터 이미지 내의 프레그먼트들 각각의 색상을 연산함으로써, 지연 쉐이딩(deferred shading)을 수행할 수 있다. 지연 쉐이딩에 의해, 레스터 엔진(170)은 프레그먼트들의 쉐이딩에 필요한 연산 양을 줄임으로써 빠른 시간 내에 이미지를 생성할 수 있다.
도 3은 본 발명의 일 실시예에 따른 레스터 엔진의 구조도이다.
레스터 엔진(170)은 전술된 프리미티브 프로세서(220), 버텍스 쉐이더(230), 프리미티브 어셈블리(240), 레스터라이저(rasterizer)(260), 프레그먼트 쉐이더(270), 레스터 오퍼레이터(280) 및 포스트 프레그먼트 쉐이더(290)를 포함한다.
레스터 엔진(170)은 메모리(310), 밉맵 생성기(mip-map generator)(320), 제1 스위치(370) 및 제2 스위치(380)를 더 포함할 수 있다.
제1 스위치(370)는 프레그먼트 쉐이더(270)의 동작을 온(ON) 또는 오프(OFF)로 제어할 수 있다. 제1 스위치(370)는 프레그먼트 쉐이더를 렌더링 엔진(170) 내에 바인드할 수 있다. 즉, 제1 스위치(370)는 레스터라이저(260)의 출력을 프레그먼트 쉐이더(270) 및 레스터 오퍼레이터(280) 중 하나로 전달할 수 있다.
제2 스위치(390)는 포스트 프레그먼트 쉐이더(290)의 동작을 온 또는 오프로 제어할 수 있다. 제2 스위치(390)는 포스트 프레그먼트 쉐이더를 렌더링 엔진(170) 내에 바인드할 수 있다. 즉, 제2 스위치(390)는 레스터 오퍼레이터(260)의 출력을 포스트 프레그먼트 쉐이더(290) 및 프레임 버퍼(180) 중 하나로 전달할 수 있다.
렌더링 엔진(170)은 애플리케이션(160)의 요청에 따라, 제1 스위치(370) 및 제2 스위치(380)를 제어함으로써 프레그먼트 쉐이더(270) 및 포스트 프레그먼트 쉐이더(290)의 동작을 온 또는 오프로 제어할 수 있다.
메모리(310)는 텍스처 메모리일 수 있다. 메모리(310)는 레스터 오퍼레이터(280)가 수행한 레스터 오퍼레이션의 결과(예컨대, 레스터 이미지)를 프레임 버퍼 객체로서 저장할 수 있다. 포스트 프레그먼트 쉐이더(290)는 텍스처 매칭(texture mapping)을 통하여 프레그먼트 쉐이더(270)가 생성한 임의의 프레그먼트들로 접근할 수 있다. 포스트 프레그먼트 쉐이더(290)는 메모리(310) 내의 프레임 버퍼 객체를 통해 프레그먼트 쉐이더(270)가 생성한 임의의 프레그먼트들로 접근할 수 있다.
밉맵 생성기(320)는 프레임 버퍼 객체의 밉맵을 생성한다.
레스터 오퍼레이터(280)는 레스터 오퍼레이션을 수행한 결과(예컨대, 레스터 이미지 또는 프레임 버퍼 객체)를 포스트 프레그먼트 쉐이더(290)로 직접 전송할 수 있다. 메모리(310)를 거치지 않는 직접 전송에 의해, 불필요한 메모리 대역폭이 제거될 수 있다.
도 4는 본 발명의 일 예에 따른, 프레그먼트 쉐이더 및 포스트 프레그먼트 쉐이더의 입력 값 및 출력 값을 나타낸다.
프레그먼트 쉐이더(270)는 유니폼(uniform)들(410), 셈플러(sampler)들(415), 베링(varying)들(또는, 베링 변수들)(420) 및 특별한 입력 변수들(425)을 입력 값으로서 사용할 수 있다. 유니폼은 프레그먼트 쉐이더(270)에 의해 사용되는 상수(constant) 데이터를 의미할 수 있다.. 셈플러는 텍스처(texture)들을 나타내는 유니폼의 특수한(specific) 타입을 의미할 수 있다.
특별한 입력 변수들(425)는 "gl_FragCoord", "gl_FrontFacing" 및 "gl_PointCoord" 등을 포함할 수 있다. 또한, 프레그먼트 쉐이더(270)는 임시 변수들(temporary variables)(430)을 입력 값 및 출력 값으로 사용할 수 있다. 프레그먼트 쉐이더(270)는 베링들(440) 및 특별한 출력 변수들(445)을 출력할 수 있다. 특별한 출력 변수들(445)은 프레그먼트의 컬러 값을 나타내는 "gl_FragColor"를 포함할 수 있다.
포스트 프레그먼트 쉐이더(290)는 유니폼들(460), 셈플러들(465), 베링들(470) 및 특별한 입력 변수들(475)을 입력 값으로서 사용할 수 있다. 포스트 프레그먼트 쉐이더(290)의 입력 베링들(470)은 프레그먼트 쉐이더(270)의 출력 베링들(440)일 수 있다. 또는, 포스트 프레그먼트 쉐이더(290)의 입력 베링들(470)은 레스터 오퍼레이션에 의해 생성된 프레그먼트 쉐이더(270)의 출력일 수 있다. 즉, 프레그먼트들에 대한 정보는 베링을 통해 프레그먼트 쉐이더(270)로부터 포스트 프레그먼트 쉐이더(290)로 전달될 수 있다.
특별한 입력 변수들(475)은 "gl_FragColor", "gl_FragDepth" 및 "gl_FragStencil" 등을 포함할 수 있다. 또한, 프레그먼트 쉐이더(270)는 임시 변수들(480)을 입력 값 및 출력 값으로 사용할 수 있다. 프레그먼트 쉐이더(270)는 특별한 출력 변수들(495)을 출력할 수 있다. 특별한 출력 변수들(495)는 프레그먼트의 컬러 값을 나타내는 "gl_FragColor"를 포함할 수 있다.
도 5는 본 발명의 일 실시예에 따른 그래픽 처리 방법의 흐름도이다.
프리미티브 프로세싱(primitive processing) 단계(510)에서, 프리미티브 프로세서(220)에 의해 버텍스가 생성된다.
버텍스 쉐이딩(vertex shading) 단계(520)에서, 버텍스 쉐이더(230)에 의해 버텍스의 가상 공간 내의 3 차원 위치를 화면에서 나타날 2 차원 좌표 및 깊이 값으로 변환함으로써 버텍스 데이터가 생성된다.
프리미티브 어셈블링(primitive assembling) 단계(530)에서, 프리미티브 어셈블리(240)에 의해 버텍스 데이터의 런을 수집되고, 수집된 런을 사용함으로써 프리미티브거 구성된다.
레스터라이제이션(rasterization) 단계(540)에서, 레스터라이저(rasterizer)(260)에 의해, 프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표가 보간됨으로써 버텍스 내의 프레그먼트들이 생성된다.
프레그먼트 쉐이딩(fragment shading) 단계(550)에서, 프레그먼트 쉐이더(270)에 의해 프레그먼트들 각각에 대해 제1 효과가 적용된다.
레스터 오퍼레이션(raster operation) 단계(560)에서, 레스터 오퍼레이터(280)에 의해 프레그먼트들의 정보에 기반하여 레스트 이미지가 생성된다.
포스트 프레그먼트 쉐이딩(post fragment shading) 단계(570)에서 레스트 이미지 내의 프레그먼트들 각각에 대해 제2 효과가 적용된다. 제2 효과는 레스터 이미지의 정보를 참조하여 레스터 이미지 내의 프레그먼트들 각각에 대해 적용되는 프레그먼트-당 효과일 수 있다. 제2 효과는 동작 번짐 효과, 안티-앨리어싱 효과, 피사계 심도 효과 및 블루밍 필터 효과 중 하나 이상을 포함할 수 있다.
앞서 도 1 내지 도 4를 참조하여 설명된 본 발명의 일 실시예에 따른 기술적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
160: 애플리케이션
170: 렌더링 엔진
180: 프레임 버퍼
270: 프레그먼트 쉐이더
280: 레스터 오퍼레이터
290: 포스트 프레그먼트 쉐이더

Claims (16)

  1. 복수의 제1 프레그먼트들 각각에 대해 제1 효과를 적용하는 프레그먼트 쉐이더;
    상기 복수의 제1 프레그먼트들의 정보에 기반하여 레스터 이미지를 생성하는 레스터 오퍼레이터; 및
    상기 레스터 이미지 내의 복수의 제2 프레그먼트들 각각에 대해 제2 효과를 적용하고, 상기 제2 효과가 적용된 래스터 이미지를 프레임 버퍼로 출력하는 포스트 프레그먼트 쉐이더
    를 포함하는, 그래픽 처리 장치.
  2. 제1항에 있어서,
    프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표를 보간함으로써 버텍스 내의 상기 복수의 제1 프레그먼트들을 생성하는 레스터라이저
    를 더 포함하는, 그래픽 처리 장치.
  3. 제2항에 있어서,
    상기 버텍스를 생성하는 프리미티브 프로세서;
    상기 버텍스의 가상 공간 내의 3차원 위치를 화면에서 나타날 2차원 좌표 및 깊이 값으로 변환하여 버텍스 데이터를 생성하는 버텍스 쉐이더; 및
    상기 버텍스 데이터의 런을 수집하여 상기 수집된 런을 사용하여 프리미티브를 구성하는 프리미티브 어셈블리
    를 더 포함하는, 그래픽 처리 장치.
  4. 제1항에 있어서,
    상기 제2 효과는 상기 레스터 이미지의 정보를 참조하여 상기 레스터 이미지 내의 상기 복수의 제2 프레그먼트들 각각에 대해 적용되는 프레그먼트-당 효과인, 그래픽 처리 장치.
  5. 제1항에 있어서,
    상기 제2 효과는 동작 번짐 효과, 안티-앨리어싱 효과, 피사계 심도 효과 및 블루밍 필터 효과 중 하나 이상을 포함하는, 그래픽 처리 장치.
  6. 제1항에 있어서,
    상기 프레그먼트 쉐이더는 상기 레스터 오퍼레이터가 레스터 연산을 수행한 이후에 상기 레스터 이미지 내의 상기 복수의 제2 프레그먼트들 각각의 색상을 연산함으로써 지연 쉐이딩을 수행하는, 그래픽 처리 장치.
  7. 제1항에 있어서,
    상기 프레그먼트 쉐이더의 동작을 온 또는 오프로 제어하는 제1 스위치; 및
    상기 포스트 프레그먼트 쉐이더의 동작을 온 또는 오프로 제어하는 제2 스위치
    중 적어도 하나를 더 포함하는, 그래픽 처리 장치.
  8. 제1항에 있어서,
    상기 레스터 이미지를 프레임 버퍼 객체로서 저장하는 메모리
    를 더 포함하는, 그래픽 처리 장치.
  9. 제8항에 있어서,
    상기 포스트 프레그먼트 쉐이더는 상기 프레임 버퍼 객체를 통해 상기 프레그먼트 쉐이더가 생성한 상기 복수의 제1 프레그먼트들로 접근하는, 그래픽 처리 장치.
  10. 제1항에 있어서,
    상기 복수의 제1 프레그먼트들에 대한 정보는 베링을 통해 상기 프레그먼트 쉐이더로부터 상기 포스트 프레그먼트 쉐이더로 전달되는, 그래픽 처리 장치.
  11. 복수의 제1 프레그먼트들 각각에 대해 제1 효과를 적용하는 프레그먼트 쉐이딩 단계;
    상기 복수의 제1 프레그먼트들의 정보에 기반하여 레스터 이미지를 생성하는 레스터 오퍼레이션 단계; 및
    상기 레스터 이미지 내의 복수의 제2 프레그먼트들 각각에 대해 제2 효과를 적용하는 포스트 프레그먼트 쉐이딩 단계; 및
    상기 제2 효과가 적용된 상기 레스터 이미지를 프레임 버퍼로 출력하는 단계
    를 포함하는, 그래픽 처리 방법.
  12. 제11항에 있어서,
    프리미티브 내의 각 꼭지점에 정의된 스크린 좌표 및 텍스쳐 좌표를 보간함으로써 버텍스 내의 상기 복수의 제1 프레그먼트들을 생성하는 레스터라이제이션 단계
    를 더 포함하는, 그래픽 처리 방법.
  13. 제12항에 있어서,
    상기 버텍스를 생성하는 프리미티브 프로세싱 단계;
    상기 버텍스의 가상 공간 내의 3차원 위치를 화면에서 나타날 2차원 좌표 및 깊이 값으로 변환함으로써 버텍스 데이터를 생성하는 버텍스 쉐이딩 단계; 및
    상기 버텍스 데이터의 런을 수집하여 상기 수집된 런을 사용함으로써 프리미티브를 구성하는 프리미티브 어셈블링 단계
    를 더 포함하는, 그래픽 처리 방법.
  14. 제13항에 있어서,
    상기 제2 효과는 상기 레스터 이미지의 정보를 참조하여 상기 레스터 이미지 내의 상기 복수의 제2 프레그먼트들 각각에 대해 적용되는 프레그먼트-당 효과인, 그래픽 처리 방법.
  15. 제11항에 있어서,
    상기 제2 효과는 동작 번짐 효과, 안티-앨리어싱 효과, 피사계 심도 효과 및 블루밍 필터 효과 중 하나 이상을 포함하는, 그래픽 처리 방법.
  16. 제11항 내지 제15항 중 어느 한 항의 그래픽 처리 방법을 수행하는 프로그램을 수록한 컴퓨터 판독 가능 기록 매체.
KR1020110092352A 2011-09-14 2011-09-14 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치 KR101926570B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110092352A KR101926570B1 (ko) 2011-09-14 2011-09-14 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
US13/443,468 US8952962B2 (en) 2011-09-14 2012-04-10 Graphics processing method and apparatus using post fragment shader

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110092352A KR101926570B1 (ko) 2011-09-14 2011-09-14 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20130029149A KR20130029149A (ko) 2013-03-22
KR101926570B1 true KR101926570B1 (ko) 2018-12-10

Family

ID=47829437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110092352A KR101926570B1 (ko) 2011-09-14 2011-09-14 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치

Country Status (2)

Country Link
US (1) US8952962B2 (ko)
KR (1) KR101926570B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI566205B (zh) * 2012-11-02 2017-01-11 輝達公司 圖形驅動程式在顯像圖框中近似動態模糊的方法
US9471959B2 (en) 2013-05-15 2016-10-18 Google Inc. Water color gradients on a digital map
KR102101834B1 (ko) * 2013-10-08 2020-04-17 삼성전자 주식회사 영상 처리 장치 및 방법
US9721381B2 (en) * 2013-10-11 2017-08-01 Nvidia Corporation System, method, and computer program product for discarding pixel samples
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
JP6392370B2 (ja) 2014-04-05 2018-09-19 ソニー インタラクティブ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー 様々なレンダリング及びラスタライゼーション・パラメータ下でビューポートを変化させるための、オブジェクトの効率的再レンダリング方法
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
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9710957B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Graphics processing enhancement by tracking object and/or primitive identifiers
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
US10200627B2 (en) * 2014-04-09 2019-02-05 Imagination Technologies Limited Virtual camera for 3-D modeling applications
US9754402B2 (en) * 2014-05-13 2017-09-05 Mediatek Inc. Graphics processing method and graphics processing apparatus
KR101771242B1 (ko) 2014-08-29 2017-08-24 서강대학교산학협력단 스마트 기기를 이용한 초음파 신호의 고속 병렬 처리 방법
KR101619875B1 (ko) * 2015-02-27 2016-05-12 허윤주 범용 그래픽 프로세싱 유닛을 이용한 3 차원 캐릭터 렌더링 시스템 및 그의 처리 방법
US9836869B2 (en) 2015-04-01 2017-12-05 Mediatek Inc. Graphics-processing method of a graphics-processing unit and graphics-processing apparatus
KR102512521B1 (ko) * 2015-10-12 2023-03-21 삼성전자주식회사 텍스쳐 처리 방법 및 장치
KR20180038793A (ko) * 2016-10-07 2018-04-17 삼성전자주식회사 영상 데이터 처리 방법 및 장치
CA3059743A1 (en) * 2017-04-21 2018-10-25 Zenimax Media Inc. Systems and methods for deferred post-processes in video encoding
US10755383B2 (en) * 2017-09-29 2020-08-25 Apple Inc. Multi-space rendering with configurable transformation parameters
US10712920B1 (en) * 2018-02-15 2020-07-14 Shutterstock, Inc. In-browser image perspective manipulation
KR102589969B1 (ko) 2018-11-05 2023-10-16 삼성전자주식회사 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법
US20220036632A1 (en) * 2020-08-03 2022-02-03 Samsung Electronics Co., Ltd. Post-processing in a memory-system efficient manner

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030002729A1 (en) * 2001-06-14 2003-01-02 Wittenbrink Craig M. System for processing overlapping data
US7564460B2 (en) 2001-07-16 2009-07-21 Microsoft Corporation Systems and methods for providing intermediate targets in a graphics system
US6809732B2 (en) 2002-07-18 2004-10-26 Nvidia Corporation Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions
US8860737B2 (en) 2003-10-29 2014-10-14 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US20080074428A1 (en) 2003-11-19 2008-03-27 Reuven Bakalash Method of rendering pixel-composited images for a graphics-based application running on a computing system embodying a multi-mode parallel graphics rendering system
US7586492B2 (en) 2004-12-20 2009-09-08 Nvidia Corporation Real-time display post-processing using programmable hardware
US8089486B2 (en) 2005-03-21 2012-01-03 Qualcomm Incorporated Tiled prefetched and cached depth buffer
US7499051B1 (en) * 2005-04-29 2009-03-03 Adobe Systems Incorporated GPU assisted 3D compositing
KR100817920B1 (ko) 2005-12-23 2008-03-31 엠텍비젼 주식회사 임베디드 시스템, 정점 프로세싱 장치 및 디코더
US8251825B2 (en) 2006-08-14 2012-08-28 Wms Gaming Inc. Applying graphical characteristics to graphical objects in a wagering game machine
KR20080074428A (ko) 2007-02-09 2008-08-13 한라공조주식회사 열전소자 모듈 조립체
US8203564B2 (en) * 2007-02-16 2012-06-19 Qualcomm Incorporated Efficient 2-D and 3-D graphics processing
US7948500B2 (en) 2007-06-07 2011-05-24 Nvidia Corporation Extrapolation of nonresident mipmap data using resident mipmap data
US20090231332A1 (en) 2008-03-11 2009-09-17 Core Logic, Inc. Processing 3d graphics supporting fixed pipeline
US8633936B2 (en) 2008-04-21 2014-01-21 Qualcomm Incorporated Programmable streaming processor with mixed precision instruction execution
WO2009145889A1 (en) 2008-05-29 2009-12-03 Advanced Micro Devices, Inc. System, method, and computer program product for a tessellation engine using a geometry shader
KR101427408B1 (ko) 2008-05-30 2014-08-07 어드밴스드 마이크로 디바이시즈, 인코포레이티드 스케일링가능하고 통합된 컴퓨팅 시스템
KR20100003518A (ko) 2008-07-01 2010-01-11 주식회사 아이리버 게임기용 mpu 및 3d 그래픽 프로세서
TWI425440B (zh) 2008-07-03 2014-02-01 Nvidia Corp 複合多重樣本/超樣本抗頻疊
US20100091018A1 (en) 2008-07-11 2010-04-15 Advanced Micro Devices, Inc. Rendering Detailed Animated Three Dimensional Characters with Coarse Mesh Instancing and Determining Tesselation Levels for Varying Character Crowd Density
KR101508388B1 (ko) 2008-12-15 2015-04-06 엘지전자 주식회사 밉맵 생성 장치 및 방법
KR101266360B1 (ko) 2009-08-24 2013-05-22 한국전자통신연구원 전역조명을 지원하는 그래픽 처리 장치 및 이를 이용한 그래픽 처리 방법
US9390539B2 (en) 2009-11-04 2016-07-12 Intel Corporation Performing parallel shading operations

Also Published As

Publication number Publication date
US8952962B2 (en) 2015-02-10
KR20130029149A (ko) 2013-03-22
US20130063440A1 (en) 2013-03-14

Similar Documents

Publication Publication Date Title
KR101926570B1 (ko) 포스트 프레그먼트 쉐이더를 사용하는 그래픽 처리 방법 및 장치
Van Waveren The asynchronous time warp for virtual reality on consumer hardware
US10636213B2 (en) Graphics processing systems
US8497876B2 (en) Infinite complexity deep-framebuffer rendering
US8325186B2 (en) Method and apparatus for rendering shadows
JP7266021B2 (ja) 可変レートシェーディング
US10614619B2 (en) Graphics processing systems
US8547378B2 (en) Time-based degradation of images using a GPU
US10089776B2 (en) Graphics processing systems
US7154502B2 (en) 3D graphics with optional memory write before texturing
JP2007514230A5 (ko)
WO2016012756A2 (en) Graphics processing systems
US10825238B2 (en) Visual edge rendering using geometry shader clipping
KR20170040698A (ko) 그래픽스 파이프라인을 수행하는 방법 및 장치
Noguera et al. Volume rendering strategies on mobile devices
KR20180037838A (ko) 텍스쳐를 처리하는 방법 및 장치
JP2008502978A (ja) フォワード・テクスチャ・マッピング3dグラフィックス・システム
JP2006517705A (ja) コンピュータグラフィックスシステム及びコンピュータグラフィクイメージのレンダリング方法
US8643666B2 (en) Stenciled layer peeling graphics processing
Marrs et al. View-warped Multi-view Soft Shadows for Local Area Lights
JP4754385B2 (ja) プログラム、情報記録媒体および画像生成システム
Shihan et al. Adaptive volumetric light and atmospheric scattering
Kesten Evaluating Different Spatial Anti Aliasing Techniques
Sabino et al. Efficient use of in-game ray-tracing techniques
Palmér Analytical motion blurred shadows

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