KR20170013747A - 3d 렌더링 방법 및 장치 - Google Patents

3d 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR20170013747A
KR20170013747A KR1020150106829A KR20150106829A KR20170013747A KR 20170013747 A KR20170013747 A KR 20170013747A KR 1020150106829 A KR1020150106829 A KR 1020150106829A KR 20150106829 A KR20150106829 A KR 20150106829A KR 20170013747 A KR20170013747 A KR 20170013747A
Authority
KR
South Korea
Prior art keywords
shading
model
vertex
determining
rendering
Prior art date
Application number
KR1020150106829A
Other languages
English (en)
Other versions
KR102399686B1 (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 KR1020150106829A priority Critical patent/KR102399686B1/ko
Priority to US15/076,817 priority patent/US10140755B2/en
Publication of KR20170013747A publication Critical patent/KR20170013747A/ko
Application granted granted Critical
Publication of KR102399686B1 publication Critical patent/KR102399686B1/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
    • G06T15/80Shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

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

Abstract

3D 렌더링 방법 및 장치가 개시된다. 일 실시예에 따른 3D 렌더링 장치는 3D 모델의 특성 정보에 기초하여 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스를 결정하고, 결정된 버텍스에 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정할 수 있다. 3D 렌더링 장치는 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정하고, 결정된 픽셀 영역에 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정할 수 있다. 3D 렌더링 장치는 제1 쉐이딩 효과 및 제2 쉐이딩 효과에 기초하여 렌더링 결과 영상을 생성할 수 있다.

Description

3D 렌더링 방법 및 장치{3D RENDERING METHOD AND APPARATUS}
아래의 설명은 3차원 컴퓨터 그래픽스 기술에 관한 것이다.
3차원 컴퓨터 그래픽스(3D computer graphics)는 2차원 컴퓨터 그래픽과 달리, 컴퓨터에 저장된 모델의 기하학적 데이터를 이용하여 모델을 3차원으로 표현한 뒤에 2차원 결과물로 처리 및 출력하는 컴퓨터 그래픽이다. 여기서, 모델의 기하학적 데이터는 모델을 구성하는 각 점의 위치 정보를 포함한다. 3차원 컴퓨터 그랙픽에서 3D 렌더링(rendering)은, 3D 모델을 2D 영상으로 변환하는 것으로 빛의 흐름을 계산하여 실사 영상을 얻거나 또는 특정 기술을 이용한 반실사 렌더링(NPR, Non-photorealistic rendering)으로 결과물을 얻는 과정이다. 구체적으로, 3D 렌더링은 모델을 구성하는 점(또는, 버텍스(vertex))들과 그 점들 사이의 관계 정보를 이용하여 최종적으로 디스플레이에 출력될 픽셀의 좌표와 컬러의 집합을 결정하는 과정을 나타낸다.
일 실시예에 따른 3D 렌더링 방법은, 3D 모델의 특성 정보에 기초하여 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스를 결정하는 단계; 상기 결정된 버텍스에 상기 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정하는 단계; 상기 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정하는 단계; 상기 결정된 픽셀 영역에 상기 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정하는 단계; 및 상기 제1 쉐이딩 효과 및 상기 제2 쉐이딩 효과에 기초하여 렌더링 결과 영상을 생성하는 단계를 포함할 수 있다.
일 실시예에 따른 3D 렌더링 방법에서, 상기 제1 쉐이딩이 적용될 버텍스를 결정하는 단계는, 스크린 공간에 투영되는 상기 3D 모델의 버텍스와 인접 버텍스 간의 에지 길이에 기초하여 상기 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다.
일 실시예에 따른 3D 렌더링 방법은, 상기 3D 모델에 대해 표면 세분화가 가능한지 여부를 결정하는 단계; 및 상기 표면 세분화가 가능한 경우 상기 3D 모델의 표면을 복수의 영역들로 분할하는 단계를 더 포함할 수 있다.
일 실시예에 따른 3D 렌더링 방법에서, 상기 제1 쉐이딩이 적용될 버텍스를 결정하는 단계는, 상기 3D 모델의 버텍스 밀도 정보, 상기 3D 모델의 버텍스들로 구성되는 폴리곤의 면적 정보, 스크린 공간에 투영되는 버텍스들 간의 거리 정보, 스크린 공간에 투영되는 폴리곤의 면적 정보 및 버텍스와 가상 광원 간의 거리 정보 중 적어도 하나에 기초하여 상기 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다.
일 실시예에 따른 3D 렌더링 방법에서, 상기 제1 쉐이딩은, 상기 3D 모델의 버텍스 단위로 상기 제1 쉐이딩 효과를 결정하고, 상기 제2 쉐이딩은, 상기 3D 모델이 표현되는 영상 프레임의 픽셀 단위로 상기 제2 쉐이딩 효과를 결정할 수 있다.
일 실시예에 따른 3D 렌더링 장치는, 3D 모델의 특성 정보에 기초하여 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스를 결정하는 결정기; 상기 결정된 버텍스에 상기 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정하는 제1 쉐이더; 상기 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정하고, 상기 결정된 픽셀 영역에 상기 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정하는 제2 쉐이더; 및 상기 제1 쉐이딩 효과 및 상기 제2 쉐이딩 효과에 기초하여 렌더링 결과 영상을 생성하는 렌더링 영상 생성기를 포함할 수 있다.
일 실시예에 따른 3D 렌더링 장치에서, 상기 제1 쉐이더는, 스크린 공간에 투영되는 상기 3D 모델의 버텍스들에 대해 상기 제1 쉐이딩이 수행되었는지 여부를 나타내는 버텍스 속성 값을 할당할 수 있다.
일 실시예에 따른 3D 렌더링 장치는, 상기 3D 모델의 표면 세분화가 가능한지 여부를 결정하고, 상기 표면 세분화가 가능한 경우 상기 3D 모델의 표면을 복수의 영역들로 분할하는 분할기를 더 포함할 수 있다.
다른 실시예에 따른 3D 렌더링 장치는, 제1 쉐이딩 및 제2 쉐이딩 중 현재 영상 프레임에 적용될 쉐이딩 타입을 결정하는 결정기; 상기 결정된 쉐이딩 타입이 제1 쉐이딩인 경우, 상기 현재 영상 프레임에 대해 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정하는 제1 쉐이더; 상기 결정된 타입이 제2 쉐이딩인 경우, 상기 현재 영상 프레임에 대해 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정하는 제2 쉐이더; 및 상기 제1 쉐이딩 효과 또는 상기 제2 쉐이딩 효과에 기초하여 상기 현재 영상 프레임에 대한 렌더링 결과 영상을 생성하는 렌더링 영상 생성기를 포함할 수 있다.
도 1은 일 실시예에 따른 3D 렌더링 장치의 구성을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 제1 쉐이딩 및 제2 쉐이딩을 수행하는 과정을 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 표면 세분화에 기초하여 제1 쉐이딩과 제2 쉐이딩을 수행하는 과정을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 3D 렌더링 방법의 동작을 설명하기 위한 흐름도이다.
도 5는 다른 실시예에 따른 3D 렌더링 방법의 동작을 설명하기 위한 흐름도이다.
도 6은 다른 실시예에 따른 3D 렌더링 장치의 구성을 설명하기 위한 도면이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 아래의 특정한 구조적 내지 기능적 설명들은 단지 실시예들을 설명하기 위한 목적으로 예시된 것으로, 권리 범위가 본문에 설명된 내용에 한정되는 것으로 해석되어서는 안된다. 설명한 분야에 속하는 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 본 명세서에서 "일 실시예" 또는 "실시예"에 대한 언급은 그 실시예와 관련하여 설명되는 특정한 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미하며, "일 실시예" 또는 "실시예"에 대한 언급이 모두 동일한 실시예를 지칭하는 것이라고 이해되어서는 안된다.
또한, 실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 3D 렌더링 장치의 구성을 설명하기 위한 도면이다. 3D 렌더링 장치(100)는 입력된 3D 모델을 렌더링(또는, 3D 렌더링)하여 2D 영상인 렌더링 결과 영상을 출력한다. 3D 렌더링 장치(100)는 3D 모델이 표현되는 가상 공간에서 가상 광원과 가상 카메라의 위치에 기초하여 렌더링 결과 영상을 구성할 픽셀들의 정보를 결정할 수 있다. 여기서, 가상 광원은 가상 공간 내에서 주어진 방향으로 빛을 방사하고, 가상 카메라는 3D 모델을 바라보는 시점을 결정한다.
일 실시예에 따르면, 3D 렌더링 장치(100)는 하나의 영상 프레임 내에서 서로 다른 타입의 쉐이딩(shading)들을 적용하여 렌더링을 수행할 수 있다. 예를 들어, 3D 렌더링 장치(100)는 영상 프레임의 일 영역에는 버텍스(vertex) 기반의 제1 쉐이딩을 수행하고, 다른 영역에는 픽셀(pixel) 기반의 제2 쉐이딩을 수행할 수 있다. 여기서, 버텍스는 3D 모델을 구성하는 포인트(point)를 나타낸다. 쉐이딩은 3D 모델을 렌더링할 때 3D 모델 표면의 컬러를 가상 광원의 방향 및 위치에 기초하여 계산하는 과정이다.
도 1을 참조하면, 3D 렌더링 장치(100)는 결정기(110), 제1 쉐이더(120), 제2 쉐이더(130) 및 렌더링 영상 생성기(140)를 포함한다.
결정기(110)는 3D 모델이 입력되면 스크린 공간에 투영(projection)되는 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 하나 이상의 버텍스를 결정할 수 있다. 여기서, 스크린 공간에 투영된 3D 모델의 버텍스들은, 3D 모델을 구성하는 전체 버텍스들 중에서 렌더링 결과 영상에 표현되는 버텍스들을 나타낸다.
결정기(110)는 제1 쉐이딩이 적용될 버텍스를 결정하기 위해, 3D 모델의 특성 정보를 이용할 수 있다. 3D 모델의 특성 정보는 3D 모델의 기하학(geometry) 특성 정보를 포함한다. 3D 모델의 특성 정보는 3D 모델의 버텍스 정보, 가상 카메라의 위치 정보, 가상 카메라의 방향 정보, 가상 광원의 위치 정보 및 가상 광원의 방향 정보 중 하나 이상에 기초하여 결정될 수 있다. 여기서, 3D 모델의 버텍스 정보는 버텍스의 3D 좌표, 컬러, 노멀(normal) 등과 같은 버텍스의 속성(attribute)에 관한 정보를 포함한다.
일 실시예에 따르면, 결정기(110)는 3D 모델의 버텍스 밀도 정보, 3D 모델의 버텍스들(vertices)로 구성되는 폴리곤(polygon)의 면적 정보, 스크린 공간에 투영되는 버텍스들 간의 거리 정보, 스크린 공간에 투영되는 폴리곤의 면적 정보 및 버텍스와 가상 광원 간의 거리 정보 중 하나 이상을 이용하여 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다. 여기서, 폴리곤은 3D 모델에서 3개의 버텍스들로 구성되는 하나의 면 단위를 나타낸다. 이하에서는, 결정기(110)가 각각의 정보를 이용하여 제1 쉐이딩이 적용될 버텍스를 결정하는 실시예들을 설명하기로 한다. 아래의 설명될 실시예들은 발명의 이해를 돕기 위한 것이며, 아래 실시예들의 의해 발명의 범위가 한정되는 것으로 해석되어서는 안된다.
(1) 결정기(110)가 3D 모델의 버텍스 밀도 정보를 이용하는 경우 -
결정기(110)는 버텍스 밀도가 높은 영역에 존재하는 버텍스들을 제1 쉐이딩이 적용될 버텍스들로 결정할 수 있다. 버텍스 밀도 정보는 버텍스들 간의 거리 정보를 나타낼 수 있다. 예를 들어, 버텍스의 밀도가 높다는 것은 버텍스들 간의 거리가 상대적으로 짧다는 것을 나타내고, 버텍스의 밀도가 낮다는 것은 버텍스들 간의 거리가 상대적으로 길다는 것을 나타낸다. 결정기(110)는 3D 모델의 버텍스와 인접 버텍스들 간의 거리인 에지(edge) 길이에 기초하여 제1 쉐이딩이 적용될 버턱스를 결정할 수 있다. 예를 들어, 결정기(110)는 버텍스가 형성하는 에지 길이들이 미리 설정된 임계값보다 짧은 경우, 해당 버텍스를 제1 쉐이딩이 적용될 버텍스로 결정할 수 있다.
(2) 결정기(110)가 폴리곤의 면적 정보를 이용하는 경우 -
결정기(110)는 3D 모델의 폴리곤들의 면적과 미리 설정된 임계값을 비교할 수 있다. 폴리곤의 면적이 임계값보다 작은 경우, 결정기(110)는 해당 폴리곤을 구성하는 버텍스들을 제1 쉐이딩이 적용될 버텍스들로 결정할 수 있다.
(3) 결정기(110)가 스크린 공간에 투영되는 버텍스들 간의 거리 정보를 이용하는 경우 -
결정기(110)는 스크린 공간에 투영되는 3D 모델의 버텍스와 인접 버텍스 간의 에지 길이에 기초하여 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다. 예를 들어, 결정기(110)는 스크린 공간에 투영되는 버텍스와 인접 버텍스들 간의 에지 길이들 중 가장 긴 에지 길이가 미리 설정된 임계값보다 짧은 경우에 해당 버텍스를 제1 쉐이딩이 적용될 버텍스로 결정할 수 있다.
(4) 결정기(110)가 스크린 공간에 투영되는 폴리곤의 면적 정보를 이용하는 경우 -
결정기(110)는 스크린 공간에 투영되는 3D 모델의 폴리곤들의 면적과 미리 설정된 임계값을 비교할 수 있다. 스크린 공간에 투영된 폴리곤 면적이 임계값보다 작은 경우, 결정기(110)는 해당 폴리곤을 구성하는 버텍스들을 제1 쉐이딩이 적용될 버텍스들로 결정할 수 있다.
(5) 결정기(110)가 버텍스와 가상 광원 간의 거리 정보를 이용하는 경우 -
결정기(110)는 스크린 공간에 투영되는 3D 모델의 버텍스와 가상 광원 간의 거리를 계산하고, 계산된 거리가 미리 설정된 임계값보다 작은 경우에 해당 버텍스를 제1 쉐이딩이 적용될 버텍스로 결정할 수 있다.
다른 실시예에 따르면, 결정기(110)는 3D 모델의 특성 정보뿐만 아니라 3D 모델의 렌더링 수행 속도(예를 들어, FPS(frame per second))에 기초하여 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다. 예를 들어, 3D 모델의 렌더링 수행 속도가 기준 속도보다 느린 경우, 결정기(110)는 스크린 공간에 투영되는 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스들의 비율을 늘릴 수 있다. 다른 예로, 3D 모델의 렌더링 수행 속도가 기준 속도보다 빠른 경우, 결정기(110)는 스크린 공간에 투영되는 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스들의 비율을 줄일 수 있다. 또는, 렌더링 수행 속도가 충분히 빠른 것으로 결정되는 경우, 결정기(110)는 처리 복잡도에 상관 없이 보다 고화질의 렌더링 결과 영상을 획득하기 위해 제1 쉐이딩이 아닌 제2 쉐이딩만이 수행되도록 제1 쉐이딩이 적용될 버텍스가 없는 것으로 결정할 수 있다.
다른 실시예에 따르면, 결정기(110)는 분할기(150)를 포함할 수 있다. 분할기(150)는 3D 모델에 대해 표면 세분화(surface subdivision)가 가능한지 여부를 결정하고, 표면 세분화가 가능하다고 결정된 경우에 표면 세분화를 수행하여 3D 모델의 표면을 복수의 영역들로 분할할 수 있다. 예를 들어, 스크린 공간에 투영되는 버텍스들 간의 에지 길이가 임계값보다 길어, 해당 버텍스들에 제1 쉐이딩이 적용되지 않는 것으로 결정된 경우를 가정한다. 분할기(150)는 해당 버텍스들에 기초한 폴리곤 내부에 새로운 버텍스를 생성하는 것이 가능한지 여부를 결정할 수 있다. 새로운 버텍스의 생성이 가능한 경우, 분할기(150)는 폴리곤 내부에 새로운 버텍스를 추가하여 해당 폴리곤을 복수의 영역들로 분할할 수 있다. 결정기(110)는 표면 세분화를 통해 재구성된 3D 모델의 버텍스들에 대해 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다.
제1 쉐이더(120)에 포함된 쉐이딩 수행부(125)는 결정기(110)에 의해 결정된 버텍스에 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정한다. 쉐이딩 수행부(125)는 제1 쉐이딩을 통해 결정된 버텍스의 쉐이딩 값들에 기초하여 보간(interpolation)을 수행하고, 보간 결과를 제2 쉐이더(130)에 전달할 수 있다. 제2 쉐이더(130)에 포함된 쉐이딩 수행부(135)는 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정할 수 있다. 쉐이딩 수행부(135)는 결정된 픽셀 영역에 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정한다. 여기서, 제1 쉐이딩은 제2 쉐이딩에 비해 상대적으로 처리 속도가 빠르고, 제2 쉐이딩에 의한 렌더링 결과 영상의 화질은 제1 쉐이딩에 의한 결과 영상의 화질보다 우수할 수 있다.
스크린 공간에 투영된 3D 모델의 버텍스들 중 제1 쉐이딩이 수행되지 않은 버텍스들에 대한 정보는 제1 쉐이더(120)를 통과(pass though)하여 제2 쉐이더(130)에 전달될 수 있다. 그리고, 제1 쉐이더(120)에 의해 결정된 제1 쉐이딩 효과는 제2 쉐이더(130)를 통과하여 렌더링 영상 생성기(140)에 전달될 수 있다.
일 실시예에 따르면, 제1 쉐이더(120) 및 제2 쉐이더(130) 각각은 3차원 컴퓨터 그래픽스의 렌더링 파이프라인(rendering pipeline)에서 버텍스 쉐이더(vertex shader) 및 픽셀 쉐이더(pixel shader)에 대응될 수 있다. 예를 들어, 제1 쉐이더(120)는 3D 모델의 버텍스 단위로 쉐이딩 효과를 결정하는 퍼-버텍스 쉐이딩(Per-Vertex Shading, PVS)을 수행하고, 제2 쉐이더(130)는 3D 모델이 표현되는 영상 프레임의 픽셀 단위로 쉐이딩 효과를 결정하는 퍼-픽셀 쉐이딩(Per-Pixel Shading, PPS)을 수행할 수 있다.
PVS는 3D 모델의 버텍스마다 쉐이딩 식을 계산하여 쉐이딩 값을 획득하고, 계산된 버텍스의 쉐이딩 값들을 보간하여 최종 렌더링 결과 영상의 픽셀 값들을 결정하는 방식이다. PPS는 렌더링되는 영상 프레임의 픽셀마다 쉐이딩 식을 계산하여 렌더링 결과 영상의 픽셀 값들을 결정하는 방식이다. PVS에서는 3D 모델을 구성하는 버텍스의 개수에 따라 연산 처리 속도 및 화질이 달라질 수 있다. 예를 들어, 3D 모델의 표면을 구성하는 버텍스의 개수가 낮을수록 렌더링 속도가 보다 빨라질 수 있으나, 3D 모델의 정교한 표현은 어려워지게 된다. 픽셀 단위로 쉐이딩 효과를 계산하는 PPS는, 일반적으로 PVS에 비해 우수한 화질의 렌더링 결과 영상을 생성할 수 있으나 렌더링하려는 영상의 해상도가 증가할수록 과도한 연산량으로 인해 렌더링 속도가 느릴 수 있다.
제1 쉐이더(120)는 스크린 공간에 투영되는 3D 모델의 버텍스들에 대해 제1 쉐이딩이 수행되었는지 여부를 나타내는 버텍스 속성 값을 결정할 수 있고, 기준 정보는 해당 버텍스 속성 값에 기초하여 결정될 수 있다. 예를 들어, 제1 쉐이더(120)는 제1 쉐이딩이 수행된 버텍스에 제1 쉐이딩이 수행되었음을 나타내는 "1"의 플래그(flag) 값을 할당할 수 있고, 제1 쉐이딩이 수행되지 않은 버텍스에는 "0"의 플래그 값을 할당할 수 있다. 이렇게 할당된 플래그 정보가 제2 쉐이더(130)에 전달될 때, 보간 과정에 의해 영상 프레임의 전체 픽셀들에 대해 기준 정보가 결정될 수 있다. 영상 프레임에서 위 플래그 값이 할당되지 않은 픽셀들에는, 위 설정된 플래그 값들이 보간된 값이 할당되어 "0"과 "1" 사이의 중간 값을 가지게 된다. 제2 쉐이더(130)는, 예를 들어, 영상 프레임에 포함된 픽셀들 중 픽셀의 기준 정보가 미리 설정된 임계값보다 작은 픽셀들에 제2 쉐이딩을 수행할 수 있다.
다른 실시예에 따르면, 제2 쉐이더(130)는 3D 모델에 대한 렌더링 수행 속도에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정할 수 있다. 예를 들어, 제2 쉐이더(130)는 렌더링 수행 속도가 기준 속도보다 빠른 경우에는 제2 쉐이딩이 적용될 픽셀 영역을 확장시키고, 렌더링 수행 속도가 기준 속도보다 느린 경우에는 제2 쉐이딩이 적용될 픽셀 영역을 축소시킬수 있다.
렌더링 영상 생성기(140) 제1 쉐이더(120)에 의해 결정된 제1 쉐이딩 효과 및 제2 쉐이더(130)에 의해 결정된 제2 쉐이딩 효과에 기초하여 3D 모델을 렌더링한 렌더링 결과 영상을 생성한다.
3D 렌더링 장치(100)는 3D 모델의 특성 또는 렌더링 수행 속도에 기초하여 하나의 영상 프레임 내에서 서로 다른 타입의 제1 쉐이딩 및 제2 쉐이딩을 혼합하여 사용하는 것에 의해 렌더링 결과 영상의 화질 저하를 최소화하면서 고속으로 렌더링을 수행할 수 있다. 예를 들어, 3D 렌더링 장치(100)는 하나의 영상 프레임 내에서도 3D 모델의 특성에 따라 화질 저하의 우려가 없는 영역에는 보다 빠른 처리가 가능한 제1 쉐이딩을 적용하고, 화질 저하가 우려되는 영역에는 화질이 보다 우수한 제2 쉐이딩을 적용하여 화질 저하를 최소화하면서 고속으로 렌더링을 수행할 수 있다.
다른 실시예에 따르면, 3D 렌더링 장치(100)는 영상 프레임마다 제1 쉐이딩을 적용할지 또는 제2 쉐이딩을 적용할지 여부를 결정할 수 있다. 결정기(110)는 3D 모델의 버텍스 정보 또는 3D 모델의 렌더링 수행 속도 등에 기초하여 제1 쉐이딩 및 제2 쉐이딩 중 현재 영상 프레임에 적용될 쉐이딩 타입을 결정할 수 있다. 예를 들어, 렌더링 수행 속도가 느린 경우, 결정기(110)는 해당 영상 프레임에 대해 버텍스 단위로 쉐이딩 효과를 계산하는 제1 쉐이딩을 수행하는 것으로 결정할 수 있다. 렌더링 수행 속도가 충분히 빠른 경우, 결정기(110)는 해당 영상 프레임에 대해 픽셀 단위로 쉐이딩 효과를 계산하는 제2 쉐이딩을 수행하는 것으로 결정할 수 있다. 결정된 쉐이딩 타입이 제1 쉐이딩인 경우, 제1 쉐이더(120)는 현재 영상 프레임에 제1 쉐이딩을 적용하여 제1 쉐이딩 효과를 결정할 수 있다. 결정된 쉐이딩 타입이 제2 쉐이딩인 경우, 제2 쉐이더(130)는 현재 영상 프레임에 제2 쉐이딩을 적용하여 제2 쉐이딩 효과를 결정할 수 있다. 렌더링 영상 생성기(140)는 제1 쉐이딩 효과 또는 제2 쉐이딩 효과에 기초하여 현재 영상 프레임에 대한 렌더링 결과 영상을 생성할 수 있다. 3D 렌더링 장치(100)는 영상 프레임별로 요구되는 렌더링 효과에 따라 서로 다른 쉐이딩 방식을 선택적으로 이용하는 것에 의해 화질의 저하 없이 고속으로 3D 렌더링을 수행할 수 있다.
도 2는 일 실시예에 따른 제1 쉐이딩과 제2 쉐이딩을 수행하는 과정을 설명하기 위한 도면이다.
도 2를 참조하면, 스크린 공간에 투영된 3D 모델(210)이 6개의 버텍스들(222, 224, 226, 228, 230, 232)을 포함한다고 가정한다. 3D 렌더링 장치는 스크린 공간에 투영된 3D 모델(210)의 버텍스들(222, 224, 226, 228, 230, 232) 중에서 제1 쉐이딩을 수행할 버텍스를 결정할 수 있다. 예를 들어, 3D 렌더링 장치는 3D 모델(210)의 어느 하나의 버텍스가 인접 버텍스와 형성하는 에지(edge) 길이들 중에서 가장 긴 에지 길이를 찾고, 가장 긴 에지 길이가 미리 결정된 임계값 이하이면 해당 버텍스에 제1 쉐이딩을 수행할 수 있다. 여기서, 버텍스들 간의 에지 길이는 버텍스(222)와 버텍스(224) 간의 에지 길이(240) 및 버텍스(226)과 버텍스(232) 간의 에지 길이(250) 등과 같이 인접한 버텍스들 간의 거리를 나타낸다.
임계값이 에지 길이들(240, 242, 244, 246, 248)보다 크고 에지 길이들(250, 252, 254)보다 작다고 가정하면, 3D 렌더링 장치는 버텍스들(222, 224)에 대해서는 제1 쉐이딩을 수행할 수 있다. 3D 렌더링 장치는 버텍스로부터 형성되는 에지 길이가 임계값보다 큰 버텍스들(226, 228, 230, 232)에 대해서는 제1 쉐이딩이 부적합하다고 결정할 수 있다. 3D 렌더링 장치는 버텍스들(226, 228, 230, 232) 및 버텍스들(226, 228, 230, 232)의 주변 픽셀들에 대해 픽셀에 기반한 제2 쉐이딩을 수행할 수 있다.
기준선(260)은 3D 모델(210)이 표현되는 영상 프레임에서 제2 쉐이딩이 수행되는 픽셀 영역을 구분하기 위한 기준선을 나타낸다. 3D 렌더링 장치는 제1 쉐이딩이 수행된 버텍스들(222, 224)에 대해서는 제1 쉐이딩이 수행되었음을 나타내기 위한 기준 정보를 결정할 수 있다. 예를 들어, 3D 렌더링 장치는 제1 쉐이딩이 수행된 버텍스들(222, 224)에는 "1"의 플래그 값을 할당하고, 제1 쉐이딩이 수행되지 않은 버텍스들(226, 228, 230, 232)에는 "0"의 플래그 값을 할당할 수 있다. 각 버텍스들(222, 224, 226, 228, 230, 232)에 할당된 플래그 값은 보간되어 영상 프레임의 전체 픽셀에 대한 기준 정보가 결정될 수 있다. 예를 들어, "1"의 플래그 값이 할당된 버텍스(224)와 "0"의 플래그 값이 할당된 버텍스(226) 사이에 위치한 픽셀들은 보간에 의해 "0"과 "1" 사이의 중간 값을 플래그 값으로 가지게 된다. 3D 렌더링 장치는, 예를 들어, 영상 프레임의 전체 픽셀들 중에서 0.5 이하의 플래그 값을 가지는 픽셀들에 대해 제2 쉐이딩을 수행할 수 있다.
3D 렌더링 장치는 3D 모델(210)의 에지 길이와 같은 기하학적 특성 정보에 기초하여 속도가 빠른 제1 쉐이딩이 적용될 영역과 화질이 우수한 제2 쉐이딩이 적용될 영역을 따로 결정하여 화질의 열화를 최소화하면서 보다 빠른 속도로 3D 모델(210)을 렌더링할 수 있다.
도 3은 일 실시예에 따른 표면 세분화에 기초하여 제1 쉐이딩과 제2 쉐이딩을 수행하는 과정을 설명하기 위한 도면이다.
도 3에서는, 3D 렌더링 장치가 스크린 공간에 투영된 3D 모델(210)의 버텍스들(222, 224, 226, 228, 230, 232) 중 버텍스들(222, 224)을 제1 쉐이딩이 적용될 버텍스로 결정하였다고 가정한다. 3D 렌더링 장치는 다른 버텍스들(226, 228, 230, 232)에 의해 형성되는 3D 모델의 표면(폴리곤)들(310, 320)에 대해 표면 세분화가 가능한지 여부를 결정하고, 표면 세분화가 가능하다고 결정된 경우에 표면 세분화를 수행하여 3D 모델(210)을 재구성할 수 있다.
표면 세분화를 통해 3D 모델(210)의 표면들(310, 320)이 3개의 영역들로 분할된 결과가 도 3의 우측에 도시되어 있다. 3D 렌더링 장치는, 예를 들어, 표면들(310, 320)의 내부의 무게 중심 위치 또는 임의 위치에 새로운 버텍스들(330, 340)을 추가하여 표면(310, 320)을 복수의 영역들로 분할할 수 있다. 3D 렌더링 장치는 재구성된 3D 모델에 기초하여 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다. 표면 세분화를 통해 버텍스(222, 224, 226, 228, 230)에 제1 쉐이딩이 적용될 버텍스로 결정되었다고 가정한다. 3D 렌더링 장치는 버텍스(222, 224, 226, 228, 230)에 제1 쉐이딩을 수행하고, 도 2에서와 유사하게 제1 쉐이딩이 수행되었는지 여부를 나타내는 기준 정보에 기초하여 픽셀 단위의 제2 쉐이딩을 수행할 수 있다. 이에 대한 내용은 도 2의 관련 설명을 참조할 수 있다. 기준선(350)은 제2 쉐이딩이 수행되는 픽셀 영역을 구분하기 위한 기준선으로, 표면 세분화의 수행 여부에 따라 제2 쉐이딩이 수행될 픽셀 영역이 달라질 수 있다.
도 4는 일 실시예에 따른 3D 렌더링 방법의 동작을 설명하기 위한 흐름도이다. 일 실시예에 따른 3D 렌더링 방법은 하나 이상의 프로세서를 포함하는 3D 렌더링 장치에 의해 수행될 수 있다.
단계(410)에서, 3D 렌더링 장치는 스크린 공간에 투영된 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다. 3D 렌더링 장치는 3D 모델의 특성 정보 및 렌더링 수행 속도 등에 기초하여 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다.
단계(420)에서, 3D 렌더링 장치는 단계(410)에서 결정된 버텍스에 제1 쉐이딩을 수행할 수 있다. 3D 렌더링 장치는 결정된 버텍스에 버텍스 단위의 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정할 수 있다. 단계(430)에서, 3D 렌더링 장치는 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정할 수 있다. 단계(440)에서, 3D 렌더링 장치는 단계(430)에서 결정된 픽셀 영역에 제2 쉐이딩을 수행할 수 있다. 3D 렌더링 장치는 결정된 픽셀 영역에 픽셀 단위의 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정할 수 있다.
단계(450)에서, 3D 렌더링 장치는 제1 쉐이딩 효과 및 제2 쉐이딩 효과에 기초하여 렌더링 결과 영상을 생성할 수 있다.
도 4에 설명되지 않은 내용은 도 1 내지 도 2에 서술된 내용을 참조할 수 있다.
도 5는 다른 실시예에 따른 3D 렌더링 방법의 동작을 설명하기 위한 흐름도이다. 다른 실시예에 따른 3D 렌더링 방법은 하나 이상의 프로세서를 포함하는 3D 렌더링 장치에 의해 수행될 수 있다.
단계(510)에서, 3D 렌더링 장치는 3D 렌더링 장치는 스크린 공간에 투영된 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다.
단계(520)에서, 3D 렌더링 장치는 3D 모델에 대해 표면 세분화가 적용 가능한지 여부를 결정할 수 있다. 표면 세분화가 적용 가능한 경우, 단계(530)에서, 3D 렌더링 장치는 3D 모델에 대해 표면 세분화를 수행할 수 있다. 표면 세분화를 통해 3D 모델의 표면이 복수의 영역들로 분할되어 3D 모델이 재구성될 수 있다. 3D 렌더링 장치는 재구성된 3D 모델에 기초하여 제1 쉐이딩이 적용될 버텍스를 결정할 수 있다.
3D 모델에 대해 표면 세분화가 적용 가능하지 않은 경우에, 단계(540)에서, 3D 렌더링 장치는 단계(510)에서 결정된 버텍스에 대해 제1 쉐이딩을 수행할 수 있다. 또는, 단계(540)에서 3D 렌더링 장치는 단계(530)의 표면 세분화 결과에 기초하여 결정된 버텍스에 대해 제1 쉐이딩을 수행할 수 있다.
단계(550)에서, 3D 렌더링 장치는 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정할 수 있다. 단계(560)에서, 3D 렌더링 장치는 단계(550)에서 결정된 픽셀 영역에 제2 쉐이딩을 수행할 수 있다. 3D 렌더링 장치는 결정된 픽셀 영역에 픽셀 단위의 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정할 수 있다.
단계(570)에서, 3D 렌더링 장치는 제1 쉐이딩 효과 및 제2 쉐이딩 효과에 기초하여 렌더링 결과 영상을 생성할 수 있다.
도 5에 설명되지 않은 내용은 도 1 내지 도 4에 서술된 내용을 참조할 수 있다.
도 6은 다른 실시예에 따른 3D 렌더링 장치의 구성을 설명하기 위한 도면이다. 3D 렌더링을 위해 3D 모델이 3D 렌더링 장치(600)에 입력된다. 3D 렌더링 장치(600)는 입력된 3D 모델에 대해 3D 렌더링을 수행할 수 있다. 3D 렌더링 장치(600)는 여기에 기술되거나 또는 도시된 하나 이상의 3D 렌더링 방법을 수행할 수 있다. 3D 렌더링 장치(600)는 렌더링 결과 영상을 디스플레이(630)를 통해 출력할 수 있다.
3D 렌더링 장치(600)는 프로세서(610) 및 메모리(620)를 포함할 수 있다. 메모리(620)는 프로세서(610)와 통신하고, 프로세서(610)에 의해 실행가능한 인스트럭션들 또는 프로세서(610)가 연산할 데이터를 저장할 수 있다. 프로세서(610)는 메모리(620)에 저장된 인스트럭션들을 실행하는 하드웨어를 포함한다. 프로세서(610)는 인스트럭션들을 실행하기 위해, 내부 레지스터, 내부 캐쉬, 메모리(620) 또는 스토리지(storage)로부터 인스트럭션들을 꺼내고(retrieve or fetch), 인스트럭션들을 실행할 수 있다. 그 후, 프로세서(610)는 하나 이상의 실행 결과를 내부 레지스터, 내부 캐쉬, 메모리(620), 또는 스토리지에 기록할 수 있다. 프로세서(610)는 도 1 내지 도 5에 설명된 하나 이상의 동작을 수행하기 위한 인스트럭션들을 실행할 수 있다. 일 실시예에 따르면, 프로세서(610)는 그래픽 프로세스 유닛(Graphic Processing Unit, GPU)일 수 있다. 이 경우, 제1 쉐이딩은 버텍스 쉐이더에서 수행되고, 제2 쉐이딩은 픽셀 쉐이더 또는 프래그먼트 쉐이더에서 수행될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 비록 한정된 도면에 의해 실시예들이 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (16)

  1. 3D 모델의 특성 정보에 기초하여 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스를 결정하는 단계;
    상기 결정된 버텍스에 상기 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정하는 단계;
    상기 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정하는 단계;
    상기 결정된 픽셀 영역에 상기 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정하는 단계; 및
    상기 제1 쉐이딩 효과 및 상기 제2 쉐이딩 효과에 기초하여 렌더링 결과 영상을 생성하는 단계
    를 포함하는 3D 렌더링 방법.
  2. 제1항에 있어서,
    상기 제1 쉐이딩이 적용될 버텍스를 결정하는 단계는,
    스크린 공간에 투영되는 상기 3D 모델의 버텍스와 인접 버텍스 간의 에지 길이에 기초하여 상기 제1 쉐이딩이 적용될 버텍스를 결정하는, 3D 렌더링 방법.
  3. 제1항에 있어서,
    상기 제1 쉐이딩이 적용될 버텍스를 결정하는 단계는,
    상기 3D 모델의 버텍스에 기초하여 형성되는 폴리곤의 면적에 기초하여 상기 제1 쉐이딩이 적용될 버텍스를 결정하는, 3D 렌더링 방법.
  4. 제1항에 있어서,
    상기 3D 모델에 대해 표면 세분화(surface subdivision)가 가능한지 여부를 결정하는 단계; 및
    상기 표면 세분화가 가능한 경우 상기 3D 모델의 표면을 복수의 영역들로 분할하는 단계
    를 더 포함하고,
    상기 제1 쉐이딩이 적용될 버텍스를 결정하는 단계는, 상기 분할 결과에 기초하여 상기 제1 쉐이딩이 적용될 버텍스를 결정하는, 3D 렌더링 방법.
  5. 제1항에 있어서,
    상기 제2 쉐이딩이 적용될 픽셀 영역을 결정하는 단계는,
    영상 프레임의 픽셀이 가지는 기준 정보와 미리 설정된 임계값에 기초하여 상기 제2 쉐이딩이 적용될 픽셀 영역을 결정하는, 3D 렌더링 방법.
  6. 제1항에 있어서,
    상기 제1 쉐이딩이 적용될 버텍스를 결정하는 단계는,
    상기 3D 모델의 버텍스 밀도 정보, 상기 3D 모델의 버텍스들로 구성되는 폴리곤의 면적 정보, 스크린 공간에 투영되는 버텍스들 간의 거리 정보, 스크린 공간에 투영되는 폴리곤의 면적 정보 및 버텍스와 가상 광원 간의 거리 정보 중 적어도 하나에 기초하여 상기 제1 쉐이딩이 적용될 버텍스를 결정하는, 3D 렌더링 방법.
  7. 제1항에 있어서,
    상기 3D 모델의 특성 정보는,
    상기 3D 모델의 버텍스 정보, 가상 카메라의 위치 정보, 가상 카메라의 방향 정보, 가상 광원의 위치 정보 및 가상 광원의 방향 정보 중 적어도 하나에 기초하여 결정되는, 3D 렌더링 방법.
  8. 제1항에 있어서,
    상기 제1 쉐이딩은, 상기 3D 모델의 버텍스 단위로 상기 제1 쉐이딩 효과를 결정하고,
    상기 제2 쉐이딩은, 상기 3D 모델이 표현되는 영상 프레임의 픽셀 단위로 상기 제2 쉐이딩 효과를 결정하는, 3D 렌더링 방법.
  9. 제1항에 있어서,
    상기 제2 쉐이딩이 적용될 픽셀 영역을 결정하는 단계는,
    상기 3D 모델에 대한 렌더링 수행 속도 및 상기 기준 정보에 기초하여 상기 제2 쉐이딩이 적용될 픽셀 영역을 결정하는 단계
    를 포함하는 3D 렌더링 방법.
  10. 하드웨어와 결합되어 제1항 내지 제9항 중 어느 하나의 항의 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.
  11. 3D 모델의 특성 정보에 기초하여 3D 모델의 버텍스들 중 제1 쉐이딩이 적용될 버텍스를 결정하는 결정기;
    상기 결정된 버텍스에 상기 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정하는 제1 쉐이더;
    상기 제1 쉐이딩의 적용 여부를 나타내는 기준 정보에 기초하여 제2 쉐이딩이 적용될 픽셀 영역을 결정하고, 상기 결정된 픽셀 영역에 상기 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정하는 제2 쉐이더; 및
    상기 제1 쉐이딩 효과 및 상기 제2 쉐이딩 효과에 기초하여 렌더링 결과 영상을 생성하는 렌더링 영상 생성기
    를 포함하는 3D 렌더링 장치.
  12. 제11항에 있어서,
    상기 제1 쉐이더는,
    스크린 공간에 투영되는 상기 3D 모델의 버텍스들에 대해 상기 제1 쉐이딩이 수행되었는지 여부를 나타내는 버텍스 속성 값을 할당하는, 3D 렌더링 장치.
  13. 제11항에 있어서,
    상기 결정기는,
    상기 3D 모델의 표면 세분화가 가능한지 여부를 결정하고, 상기 표면 세분화가 가능한 경우 상기 3D 모델의 표면을 복수의 영역들로 분할하는 분할기
    를 포함하는 3D 렌더링 장치.
  14. 제11항에 있어서,
    상기 제1 쉐이딩은, 상기 3D 모델의 버텍스 단위로 상기 제1 쉐이딩 효과를 결정하고,
    상기 제2 쉐이딩은, 상기 3D 모델이 표현되는 영상 프레임의 픽셀 단위로 상기 제2 쉐이딩 효과를 결정하는, 3D 렌더링 장치.
  15. 제1 쉐이딩 및 제2 쉐이딩 중 현재 영상 프레임에 적용될 쉐이딩 타입을 결정하는 결정기;
    상기 결정된 쉐이딩 타입이 제1 쉐이딩인 경우, 상기 현재 영상 프레임에 대해 제1 쉐이딩을 수행하여 제1 쉐이딩 효과를 결정하는 제1 쉐이더;
    상기 결정된 타입이 제2 쉐이딩인 경우, 상기 현재 영상 프레임에 대해 제2 쉐이딩을 수행하여 제2 쉐이딩 효과를 결정하는 제2 쉐이더; 및
    상기 제1 쉐이딩 효과 또는 상기 제2 쉐이딩 효과에 기초하여 상기 현재 영상 프레임에 대한 렌더링 결과 영상을 생성하는 렌더링 영상 생성기
    를 포함하는 3D 렌더링 장치.
  16. 제15항에 있어서,
    상기 결정기는,
    상기 3D 모델의 버텍스 정보 및 상기 3D 모델에 대한 렌더링 수행 속도 중 적어도 하나에 기초하여 상기 현재 영상 프레임에 적용될 쉐이딩 타입을 결정하는, 3D 렌더링 장치.
KR1020150106829A 2015-07-28 2015-07-28 3d 렌더링 방법 및 장치 KR102399686B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150106829A KR102399686B1 (ko) 2015-07-28 2015-07-28 3d 렌더링 방법 및 장치
US15/076,817 US10140755B2 (en) 2015-07-28 2016-03-22 Three-dimensional (3D) rendering method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150106829A KR102399686B1 (ko) 2015-07-28 2015-07-28 3d 렌더링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170013747A true KR20170013747A (ko) 2017-02-07
KR102399686B1 KR102399686B1 (ko) 2022-05-19

Family

ID=57883329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150106829A KR102399686B1 (ko) 2015-07-28 2015-07-28 3d 렌더링 방법 및 장치

Country Status (2)

Country Link
US (1) US10140755B2 (ko)
KR (1) KR102399686B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10235811B2 (en) 2016-12-29 2019-03-19 Intel Corporation Replicating primitives across multiple viewports
US10957072B2 (en) * 2018-02-21 2021-03-23 Cognex Corporation System and method for simultaneous consideration of edges and normals in image features by a vision system
CN115379185B (zh) * 2018-08-09 2024-04-02 辉达公司 使用可变速率着色的运动自适应渲染
US10834413B2 (en) * 2018-08-24 2020-11-10 Disney Enterprises, Inc. Fast and accurate block matching for computer generated content
US10628910B2 (en) 2018-09-24 2020-04-21 Intel Corporation Vertex shader with primitive replication

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444838A (en) * 1991-03-18 1995-08-22 Hewlett-Packard Company Computer system and method for interference checking of polyhedra using capping polygons
US20110080415A1 (en) * 2009-10-06 2011-04-07 Duluk Jr Jerome F Inter-shader attribute buffer optimization
US20120229460A1 (en) * 2011-03-12 2012-09-13 Sensio Technologies Inc. Method and System for Optimizing Resource Usage in a Graphics Pipeline
US20140028673A1 (en) * 2012-07-20 2014-01-30 James Gregson Methods and systems for generating polycubes and all-hexahedral meshes of an object
KR20140109431A (ko) * 2011-12-15 2014-09-15 퀄컴 인코포레이티드 커맨드 프로세서를 갖는 그래픽 프로세싱 유닛

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4211292B2 (ja) * 2002-06-03 2009-01-21 ソニー株式会社 画像処理装置および画像処理方法、プログラム並びにプログラム記録媒体
US7038685B1 (en) 2003-06-30 2006-05-02 Nvidia Corporation Programmable graphics processor for multithreaded execution of programs
US6897871B1 (en) 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US8421794B2 (en) 2007-03-23 2013-04-16 Qualcomm Incorporated Processor with adaptive multi-shader
JP5003252B2 (ja) 2007-04-04 2012-08-15 凸版印刷株式会社 画像表示装置及び画像表示方法
JP5194530B2 (ja) 2007-04-09 2013-05-08 凸版印刷株式会社 画像表示装置及び画像表示方法
US8355022B2 (en) 2008-11-25 2013-01-15 Sony Computer Entertainment America Llc Method and apparatus for aggregating light sources per-vertex in computer graphics
FR2965652A1 (fr) * 2010-09-30 2012-04-06 Thomson Licensing Procede d’estimation de la quantite de lumiere recue en un point d’un environnement virtuel
KR20130123645A (ko) 2012-05-03 2013-11-13 삼성전자주식회사 그래픽 처리 장치를 위한 동적 로드 밸런싱 장치 및 방법
US9659393B2 (en) * 2013-10-07 2017-05-23 Intel Corporation Selective rasterization
US9311737B1 (en) * 2014-01-17 2016-04-12 Pixar Temporal voxel data structure
US9547918B2 (en) * 2014-05-30 2017-01-17 Intel Corporation Techniques for deferred decoupled shading
US9424686B2 (en) * 2014-08-08 2016-08-23 Mediatek Inc. Graphics processing circuit having second vertex shader configured to reuse output of first vertex shader and/or process repacked vertex thread group and related graphics processing method thereof
US20170004647A1 (en) * 2015-06-30 2017-01-05 Microsoft Technology Licensing, Llc Rendering graphics data on demand

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5444838A (en) * 1991-03-18 1995-08-22 Hewlett-Packard Company Computer system and method for interference checking of polyhedra using capping polygons
US20110080415A1 (en) * 2009-10-06 2011-04-07 Duluk Jr Jerome F Inter-shader attribute buffer optimization
US20120229460A1 (en) * 2011-03-12 2012-09-13 Sensio Technologies Inc. Method and System for Optimizing Resource Usage in a Graphics Pipeline
KR20140109431A (ko) * 2011-12-15 2014-09-15 퀄컴 인코포레이티드 커맨드 프로세서를 갖는 그래픽 프로세싱 유닛
US20140028673A1 (en) * 2012-07-20 2014-01-30 James Gregson Methods and systems for generating polycubes and all-hexahedral meshes of an object

Also Published As

Publication number Publication date
US20170032567A1 (en) 2017-02-02
US10140755B2 (en) 2018-11-27
KR102399686B1 (ko) 2022-05-19

Similar Documents

Publication Publication Date Title
JP7266021B2 (ja) 可変レートシェーディング
KR102399686B1 (ko) 3d 렌더링 방법 및 장치
CN108280867B (zh) 图形处理方法和***
US9153068B2 (en) Clipless time and lens bounds for improved sample test efficiency in image rendering
US9558586B2 (en) Method for estimating the opacity level in a scene and corresponding device
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
US9626762B2 (en) Stochastic rasterization using enhanced stencil operations on a graphics processing unit (GPU)
CN105096375B (zh) 图像处理方法和设备
CN106530379B (zh) 用于执行路径描边的方法和设备
US10078911B2 (en) System, method, and computer program product for executing processes involving at least one primitive in a graphics processor, utilizing a data structure
US11631187B2 (en) Depth buffer pre-pass
KR20160072532A (ko) 영상 처리 장치 및 방법
KR20170034727A (ko) 그림자 정보 저장 방법 및 장치, 3d 렌더링 방법 및 장치
KR20170081335A (ko) 3d 렌더링 방법 및 장치
US9881392B2 (en) Mipmap generation method and apparatus
KR102250254B1 (ko) 영상 처리 방법 및 장치
JP4284285B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
KR102558739B1 (ko) 3d 렌더링 방법 및 장치
KR20180037838A (ko) 텍스쳐를 처리하는 방법 및 장치
EP2827302B1 (en) Image processing apparatus and method
US20150228113A1 (en) Graphic data rendering method and apparatus, and recording medium
US20160267701A1 (en) Apparatus and method of rendering frame by adjusting processing sequence of draw commands
KR102306774B1 (ko) 영상 처리 방법 및 장치
KR20240068288A (ko) 적응적 슈퍼 샘플링 방법 및 적응적 슈퍼 샘플링 장치
Meder et al. Decoupling rendering and display using fast depth image based rendering on the gpu

Legal Events

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