KR102173546B1 - 게임 객체 렌더링 방법 및 장치 - Google Patents

게임 객체 렌더링 방법 및 장치 Download PDF

Info

Publication number
KR102173546B1
KR102173546B1 KR1020200051622A KR20200051622A KR102173546B1 KR 102173546 B1 KR102173546 B1 KR 102173546B1 KR 1020200051622 A KR1020200051622 A KR 1020200051622A KR 20200051622 A KR20200051622 A KR 20200051622A KR 102173546 B1 KR102173546 B1 KR 102173546B1
Authority
KR
South Korea
Prior art keywords
game object
vertex
color
pixels
predefined
Prior art date
Application number
KR1020200051622A
Other languages
English (en)
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 KR1020200051622A priority Critical patent/KR102173546B1/ko
Application granted granted Critical
Publication of KR102173546B1 publication Critical patent/KR102173546B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/53Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing
    • A63F2300/538Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers details of basic data processing for performing operations on behalf of the game client, e.g. rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics

Landscapes

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

Abstract

게임 객체 렌더링 방법 및 장치가 개시된다. 서버에 의해 수행되는 게임 객체 랜더링 방법은 버텍스들의 2차원 위치들을 꼭지점으로 가지는 2차원 프래그먼트(fragment)들 내부의 픽셀들의 색상을 생성하는 단계를 포함하며, 픽셀들의 색상을 생성하는 단계는, 각각의 픽셀의 광원(light source)에 따른 색상에 제 1 색감 변환을 적용하여 디퓨즈 레이어(diffuse layer)를 생성하는 단계; 주변광(ambient light)의 세기(intensity)를 기초로 픽셀들의 전체적인 명도를 결정하는 라이트 인텐시티(light intensity) 레이어를 생성하는 단계; 픽셀들의 명도 변화를 이산적으로 단계화하여 툰 그리드(toon grid) 레이어를 생성하는 단계; 및 디퓨즈 레이어, 라이트 인텐시티 레이어, 및 툰 그리드 레이어를 결합하여 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는 단계를 포함한다.

Description

게임 객체 렌더링 방법 및 장치{APPARATUS AND METHOD OF RENDERING GAME OBJECTS}
아래 실시예들은 3차원 모델로부터 획득한 게임 객체를 렌더링하여 목표하는 스타일의 그래픽을 생성하는 기술에 관한 것이다.
실시예들과 관련된 배경기술로, 대한민국 공개특허공보 KR 10-2020-0027004 A는 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기를 개시한다. 구체적으로, 선행문헌은 자원 패키징 프로세스에서, 텍스처 맵은 복수의 단편화된 텍스처로 단편화되고 처리되고, 사용된 타깃 텍스처 맵에 대응하는 단편화된 텍스처는 게임 렌더링 요구사항에 따라 로딩되어서, 메모리 로딩 오버헤드가 효과적으로 감소될 수 있고 메모리 부담이 감소될 수 있으며; 게다가, 타깃 텍스처 맵에 대응하는 단편화된 텍스처가 결합 및 렌더링되어서, 렌더링 이미지 효과가 보장될 수 있고, 메모리 부담이 게임의 원활한 실행을 보장하기 위해 게임이 구동될 때 선형적으로 증가하는 것이 방지되는 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기를 개시한다.
이를 통해, 선행문헌은 렌더링의 영상 효과가 보장되고 메모리 부담이 방지되어 게임이 원활하게 실행되는 기술을 제공한다.
또한, 대한민국 등록특허공보 KR 10-0692210 B1는 게임 엔진에서 소정의 오브젝트를 렌더링하는 방법 및 상기랜더링 방법을 수행하는 프로그램이 기록된 기록 매체를 개시한다. 구체적으로, 선행문헌은 뷰(View)가 비주얼(Visual)로 렌더컨텍스트(RenderContext) 정보를 요청하고 상기 뷰는 상기 비주얼로부터 수신한 렌더컨텍스트 정보를 등록하며, 상기 등록된 렌더컨텍스트 정보를 소정의 소팅(sorting) 알고리즘에 따라 소팅하고, 상기 소팅된 렌더컨텍스트 정보에 따라 상기 오브젝트를 렌더링하는 방법을 개시한다. 선행문헌은 뷰에서 비주얼이 소유하는 소정의 렌더컨텍스트 정보를 게임 어플리케이션에서 제공하는 소팅룰에 따라 소팅하여 렌더링을 수행함으로써, 각각의 게임 어플리케이션에서 제공되는 게임의 특성에 따라 차별화된 렌더링을 수행하는 렌더링 방법을 개시한다.
그러나 선행문헌들은 게임의 타겟 유저층이 선호하는 그래픽의 캐릭터·아이템·배경 등을 렌더링하기 위해 다량의 데이터를 포함하고 있는 3차원 모델로부터 렌더링에 필요한 최소의 속성만을 추출하여 효율적으로 렌더링을 수행하는 방법 내지 장치를 개시하지 않는다. 또한, 선행문헌들은 3차원 모델을 게임의 타겟 유저층이 선호하는 그래픽, 가령, 2차원 애니메이션풍(風)으로 렌더링하는 방법 내지 장치를 개시하지 않는다. 나아가, 선행문헌들은 게임 캐릭터 등이 캐릭터 원작자의 의도대로 렌더링 되었는지 판별하거나, 게임 캐릭터 등을 캐릭터 원작자의 의도대로 렌더링하는 방법 내지 장치를 개시하지 않는다.
이에 따라, 게임의 타겟 유저층이 선호하는 그래픽의 캐릭터·아이템·배경 등을 렌더링하기 위해 다량의 데이터를 포함하고 있는 3차원 모델로부터 렌더링에 필요한 최소의 속성만을 추출하여 효율적으로 렌더링을 수행하는 기술의 구현이 요청된다. 또한, 3차원 모델을 게임의 타겟 유저층이 선호하는 그래픽, 가령, 2차원 애니메이션풍(風)으로 렌더링하는 기술의 구현이 요청된다. 나아가, 게임 캐릭터 등이 캐릭터 원작자의 의도대로 렌더링 되었는지 판별하거나, 게임 캐릭터 등을 캐릭터 원작자의 의도대로 렌더링하는 기술의 구현이 요청된다.
대한민국 공개특허공보 KR 10-2020-0027004 A 대한민국 등록특허공보 KR 10-0692210 B1 대한민국 등록특허공보 KR 10-1780496 B1 대한민국 등록특허공보 KR 10-0623173 B1
실시예들은 게임의 타겟 유저층이 선호하는 그래픽의 캐릭터·아이템·배경 등을 렌더링하기 위해 다량의 데이터를 포함하고 있는 3차원 모델로부터 렌더링에 필요한 최소의 속성만을 추출하여 효율적으로 렌더링을 수행하는 방법 내지 장치를 제공하고자 한다.
실시예들은 3차원 모델을 게임의 타겟 유저층이 선호하는 그래픽, 가령, 2차원 애니메이션풍(風)으로 렌더링하는 방법 내지 장치를 제공하고자 한다.
실시예들은 게임 캐릭터 등이 캐릭터 원작자의 의도대로 렌더링 되었는지 판별하거나, 게임 캐릭터 등을 캐릭터 원작자의 의도대로 렌더링하는 방법 내지 장치를 제공하고자 한다.
나아가, 실시예들은 배경 기술에서 언급한 과제들 및 본 명세서에서 드러나는 해당 기술 분야의 과제들을 해결하기 위한 방법 및 장치를 제공하고자 한다.
일실시예에 따른 서버에 의해 수행되는 게임 객체 랜더링 방법은 3차원 모델(3D model)로부터 미리 정의된 속성들을 획득하여 게임 객체를 정의하는 단계; 상기 게임 객체의 버텍스(vertex)들―각각의 버텍스는 수직 벡터(normal vector)를 가짐―을 획득하는 단계; 각각의 버텍스의 2차원 위치―상기 각각의 버텍스를 미리 정의된 2차원 평면으로 매핑(mapping)한 위치―를 획득하는 단계; 및 버텍스들의 2차원 위치들을 꼭지점으로 가지는 2차원 프래그먼트(fragment)들 내부의 픽셀들의 색상을 생성하는 단계를 포함하며, 상기 픽셀들의 색상을 생성하는 단계는, 각각의 픽셀의 광원(light source)에 따른 색상에 제 1 색감 변환을 적용하여 디퓨즈 레이어(diffuse layer)를 생성하는 단계; 주변광(ambient light)의 세기(intensity)를 기초로 상기 픽셀들의 전체적인 명도를 결정하는 라이트 인텐시티(light intensity) 레이어를 생성하는 단계; 상기 픽셀들의 명도 변화를 이산적으로 단계화하여 툰 그리드(toon grid) 레이어를 생성하는 단계; 및 상기 디퓨즈 레이어, 상기 라이트 인텐시티 레이어, 및 상기 툰 그리드 레이어를 결합하여 상기 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는 단계를 포함하고, 상기 디퓨즈 레이어를 생성하는 단계는, 각각의 버텍스의 입사각―상기 광원으로부터 상기 각각의 버텍스로 입사하는 가상광(virtual light)과 상기 각각의 버텍스의 수직 벡터 사이의 각도―을 기초로 상기 각각의 버텍스의 난반사(diffuse reflection) 증폭도를 생성하는 단계; 상기 각각의 버텍스의 미리 정의된 RGBA 비율에 상기 각각의 버텍스의 난반사 증폭도를 적용하여 상기 각각의 버텍스의 광원에 따른 색상을 생성하는 단계; 각각의 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 광원에 따른 색상을 기초로 상기 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 따른 색상을 생성하는 단계; 및 상기 각각의 픽셀의 광원에 따른 색상에 상기 제 1 색감 변환을 적용하는 단계를 포함한다.
일실시예에 따르면, 상기 툰 그리드를 생성하는 단계는, 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 입사각을 기초로, 상기 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 대한 입사각을 생성하는 단계; 및 램버트 법칙(Lambertian Law)에 따른 상기 각각의 픽셀의 입사각의 연속적 명도 변화를 미리 정의된 그리드화 방법에 따라 이산적으로 단계화하는 단계를 포함한다.
일실시예에 따르면, 상기 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는 단계는, 상기 픽셀들을 기초로, 상기 미리 정의된 2차원 평면에 표현된 게임 객체의 경계를 획득하는 단계; 상기 경계의 적어도 일부를 미리 정의된 제 1 명도로 표현하는 림-라이트(rim light)를 생성하는 단계; 및 상기 경계의 적어도 일부를 미리 정의된 제 2 명도로 표현하는 아웃라인(outline)을 생성하는 단계를 포함하고, 제 1 명도는 제 2 명도보다 높고, 상기 림-라이트와 상기 아웃라인이 중복되어 표현된 경계부의 경우, 상기 림-라이트는 상기 아웃라인과 상기 픽셀들 사이에 위치하도록 생성된다.
일실시예에 따른 매체에 저장된 컴퓨터 프로그램 하드웨어와 결합되어 제 1 항 내지 제 3 항의 방법 중 어느 하나의 방법을 수행할 수 있다.
일실시예에 따른 게임 객체 렌더링 장치는 삼차원 모델(3D model)로부터 제 1 속성들을 획득하여 게임 객체를 정의하고, 상기 게임 객체의 버텍스(vertex)들―각각의 버텍스는 수직 벡터(normal vector)를 가짐―을 획득하고, 각각의 버텍스의 2차원 위치―상기 각각의 버텍스를 미리 정의된 2차원 평면으로 매핑(mapping)한 위치―를 획득하고, 버텍스들의 2차원 위치들을 꼭지점으로 가지는 2차원 프래그먼트(fragment)들 내부의 픽셀들의 색상을 생성하는 프로세서를 포함하며, 상기 프로세서가 상기 픽셀들의 색상을 생성하는 동작은 각각의 픽셀의 광원(light source)에 따른 색상에 제 1 색감 변환을 적용하여 디퓨즈 레이어(diffuse layer)를 생성하고, 주변광(ambient light)의 세기(intensity)를 기초로 상기 픽셀들의 전체적인 명도를 결정하는 라이트 인텐시티(light intensity) 레이어를 생성하고, 상기 픽셀들의 명도 변화를 이산적으로 단계화하여 툰 그리드(toon grid) 레이어를 생성하고, 상기 디퓨즈 레이어, 상기 라이트 인텐시티 레이어, 및 상기 툰 그리드 레이어를 결합하여 상기 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는 동작을 포함하고, 상기 프로세서가 상기 디퓨즈 레이어를 생성하는 동작은 각각의 버텍스의 입사각―상기 광원으로부터 상기 각각의 버텍스로 입사하는 가상광(virtual light)과 상기 각각의 버텍스의 수직 벡터 사이의 각도―을 기초로 상기 각각의 버텍스의 난반사(diffuse reflection) 증폭도를 생성하고, 상기 각각의 버텍스의 미리 정의된 RGBA 비율에 상기 각각의 버텍스의 난반사 증폭도를 적용하여 상기 각각의 버텍스의 광원에 따른 색상을 생성하고, 각각의 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 광원에 따른 색상을 기초로 상기 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 따른 색상을 생성하고, 상기 각각의 픽셀의 광원에 따른 색상에 상기 제 1 색감 변환을 적용하는 동작을 포함한다.
실시예들은 게임의 타겟 유저층이 선호하는 그래픽의 캐릭터·아이템·배경 등을 렌더링하기 위해 다량의 데이터를 포함하고 있는 3차원 모델로부터 렌더링에 필요한 최소의 속성만을 추출하여 효율적으로 렌더링을 수행하는 방법 내지 장치를 제공할 수 있다.
실시예들은 3차원 모델을 게임의 타겟 유저층이 선호하는 그래픽, 가령, 2차원 애니메이션풍(風)으로 렌더링하는 방법 내지 장치를 제공할 수 있다.
실시예들은 게임 캐릭터 등이 캐릭터 원작자의 의도대로 렌더링 되었는지 판별하거나, 게임 캐릭터 등을 캐릭터 원작자의 의도대로 렌더링하는 방법 내지 장치를 제공할 수 있다.
한편, 실시예들에 따른 효과는 이상에서 언급한 것으로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 해당 기술 분야의 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 일실시예에 따른 장치의 기능의 예시도이다.
도 2는 일실시예에 따른 게임 객체 렌더링 동작을 설명하기 위한 순서도이다.
도 3은 일실시예에 따른 픽셀 색상 생성 동작을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 림-라이트(rim light) 및 아웃라인(outline) 생성 동작을 설명하기 위한 도면이다.
도 5는 일실시예에 따른 렌더링 효과를 설명하기 위한 도면이다.
도 6은 일실시예에 따른 인공 신경망의 학습을 설명하기 위한 도면이다.
도 7은 일실시예 따른 장치의 구성의 예시도이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 실시될 수 있다. 따라서, 실시예들은 특정한 개시형태로 한정되는 것이 아니며, 본 명세서의 범위는 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용 시 또는 동작 시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓일 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일실시예에 따른 장치의 기능의 예시도이다.
일실시예에 따른 장치는 서버(100)일 수 있다. 서버(100)는 서버(100)를 이용하여 서비스를 제공하는 자 또는 단체가 보유한 자체 서버일 수도 있고; 클라우드 서버일 수도 있고; 분산된 노드(node)들의 p2p(peer-to-peer) 집합일 수도 있다. 서버(100)는 통상의 컴퓨터가 가지는 연산 기능; 저장/참조 기능; 입출력 기능; 및 제어 기능을 전부 또는 일부 수행하도록 구성될 수 있다. 서버(100)는 추론 기능을 수행하는 적어도 하나 이상의 인공 신경망을 구비할 수 있다. 서버(100)는 다른 서버 또는 사용자 단말 등과 유무선으로 통신하도록 구성될 수 있다.
서버(100)를 포함하는 시스템(1)은 서버(100)를 포함한 복수의 서버, 서버(100)와 사용자 단말들, 또는 서버(100) 내 여러 노드들로 구성될 수 있다. 서버(100)를 포함하는 시스템은 애니메이션 아티스트의 원화(110)를 획득하고, 원화(110)를 기초로 3차원 모델링(120)을 수행하여 캐릭터·아이템·배경 등의 3차원 모델을 출력할 수 있다. 서버(100)는 게임 엔진(130)을 포함할 수 있다. 서버(100)의 게임 엔진(130)은 3차원 모델을 획득하여 미리 정의된 애니메이션풍(風)의 2차원 게임 객체를 출력할 수 있다. 이를 통해, 게임(140)은 미리 정의된 애니메이션풍(風)의 2차원 게임 객체의 그래픽이 구현될 수 있다. 여기서, 미리 정의된 애니메이션풍(風)은 게임의 종류 또는 캐릭터 등의 원작을 그린 아티스트에 따라 달라질 수 있으나, 애니메이션적 색감 및 콘트라스트, 색상의 단순화, 지나치게 어둡지 않은 그림자의 부드러운 표현, 연속적 음영 표현이 아닌 단계적 음영 표현, 림-라이트를 통한 양감 효과, 아웃라인을 통한 펜촉으로 그린 느낌 등의 기본적 미감을 공유할 수 있다.
한편, 서버(100)와 동일한 기능을 수행할 수만 있다면, 서버(100)를 대체하여 사용자 단말(데스크탑 컴퓨터, 노트북, 태블릿, 스마트폰 등)이 3차원 모델을 획득하여 미리 정의된 애니메이션풍(風)의 2차원 게임 객체를 출력하는데 사용될 수 있다. 즉, 기능 수행을 위한 장치의 처리 능력이 허락되기만 한다면, 서버(100)가 아닌 다른 구성을 사용하여도 무관하다.
이하에서, 서버(100)의 동작을 중심으로 실시예가 기술되며, 실시예들은 통신의 주체나 양상에 의해 제한되지 않고 다양한 응용예가 채용될 수 있다. 이하, 도 2를 참조하여, 게임 객체 렌더링 동작과 관련된 실시예가 설명된다. 도 3을 참조하여, 픽셀 색상 생성 동작과 관련된 실시예가 설명된다. 도 4를 참조하여, 림-라이트(rim light) 및 아웃라인(outline) 생성 동작과 관련된 실시예가 설명된다. 도 5를 참조하여, 렌더링 효과가 설명된다. 도 6을 참조하여, 인공 신경망의 학습 동작과 관련된 실시예가 설명된다.
도 2는 일실시예에 따른 게임 객체 렌더링 동작을 설명하기 위한 순서도이다.
우선, 서버(100)는 3차원 모델(3D model)로부터 미리 정의된 속성들을 획득하여 게임 객체를 정의할 수 있다(210).
3차원 모델은 캐릭터·아이템·배경 등의 3차원 데이터 파일일 수 있다. 3차원 모델은 3차원 모델링(120) 단계에서 3ds Max, 3D MAX, Z-Brush, 솔리드 웍스 등의 프로그램을 통해 생성될 수 있다. 3차원 모델은 게임(140) 단계에서 캐릭터 등의 그래픽을 구현하기 위한 데이터보다 많은 데이터를 포함할 수 있다. 따라서, 서버(100)는 3차원 모델의 데이터 중에서 게임(140) 단계에서 구현될 그래픽에 필요한 미리 정의된 속성들만을 획득하고, 해당 속성들을 게임 객체로 정의할 수 있다. 가령, 3차원 모델이 캐릭터인 경우, 서버(100)는 3차원의 모델의 스킨 오브젝트(skin objects), 스켈레톤 하이어아키(skeleton hierarchy), 애니메이션(animation), 머테리얼(material), 및 텍스처(texture) 속성 중 3차원 모델을 미리 정의된 애니메이션풍(風)으로 렌더링하기 위한 속성들만을 추출하여 게임 객체를 정의할 수 있다.
이를 통해, 게임 엔진(130) 단계에서 효율적인 렌더링이 이루어질 수 있으며, 게임(140) 단계에서 적은 용량으로 목표하는 그래픽을 구현할 수 있다. 특히, 서버(100)는 3차원 모델에서 미리 정의된 애니메이션풍(風)에 필요한 속성만을 획득할 수 있다. 가령, 미리 정의된 애니메이션풍(風)에 따르면, 소재의 질감 표현을 생략하는 대신 색감의 중요성이 클 수 있다. 이 경우, 서버(100)는 3차원 모델에서 세부적인 질감 표현 데이터, 가령, 캐릭터의 솜털 또는 잔주름 등을 제외하고, 색감 표현이 중요시되는 부분, 가령, 캐릭터의 눈동자나 머리카락 등의 데이터를 상세하게 획득할 수 있다. 이를 통해, 미리 정의된 애니메이션풍(風)으로 캐릭터 등의 게임 객체를 효율적으로 렌더링할 수 있다.
한편, 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위해 3차원 모델로부터 필요한 속성들을 추출하는 동작은 미리 데이터베이스화된 레서피를 참조하여 이루어지거나, 제 1 인공지능(제 1 인공 신경망)의 추론을 통해 이루어질 수 있다. 제 1 인공지능의 학습 과정은 도 6을 참조하여 후술된다.
다음으로, 서버(100)는 게임 객체의 버텍스(vertex)들을 획득할 수 있다(220).
여기서 버텍스들은 3차원 모델의 표면을 구성하는 미리 정의된 점들의 데이터를 포함하는 점 객체(object)들일 수 있다. 일반적으로, 버텍스들을 모두 조합하면 3차원 모델의 표면 데이터를 얻을 수 있다. 각각의 버텍스는 3차원 모델의 표면 상의 한 점의 위치 데이터를 포함할 수 있다. 각각의 버텍스는 3차원 모델의 표면에 대해 수직한 수직 벡터(normal vector)를 가질 수 있다. 각각의 버텍스는 미리 정의된 RGBA(Reg-Green-Blue-Alpha) 비율을 가질 수 있다. 서버(100)는 광원(light source)으로부터 각각의 버텍스로 입사하는 빛의 RGB 값 및 세기(intensity)에 따라 난반사(diffuse reflection) 증폭도를 정의할 수 있다. 서버(100)는 각의 버텍스는 미리 정의된 RGBA 비율에 난반사 증폭도를 적용하여, 광원의 종류 및 각각의 버텍스와 광원의 위치 관계에 따른 각각의 버텍스의 색상을 생성할 수 있다.
예를 들어, 서버(100)는 게임 객체(300)를 획득할 수 있다. 설명의 편의를 위해 도 2에서는 단순한 구형의 게임 객체(300)를 도시했으나, 일반적으로 게임 객체는 캐릭터·아이템·배경 등으로 복잡한 표면 형상을 가질 수 있다. 서버(100)는 게임 객체의 버텍스들(310, 320, 330)들을 획득할 수 있다. 각각의 버텍스(310, 320, 330)는 각각의 3차원 위치를 가질 수 있다. 각각의 버텍스(310, 320, 330)는 각각의 수직 벡터(311, 312, 313)를 가질 수 있다. 각각의 버텍스는 RGBA 비율을 가질 수 있다. 설명의 편의를 위해 도 2에서는 제 1 버텍스(310), 제 2 버텍스(320), 및 제 3 버텍스(330)만을 도시했으나, 서버(100)는 게임 객체(300)를 렌더링하기 필요한 충분한 수의 버텍스를 획득할 수 있다.
이어서, 서버(100)는 각각의 버텍스의 2차원 위치를 획득할 수 있다(230).
게임(140) 단계에서 캐릭터 등의 게임 객체는 화면 상의 2차원 그래픽으로 표현된다. 이에 맞추어 렌더링 작업을 수행하기 위해, 서버(100)는 각각의 버텍스를 미리 정의된 2차원 평면(O)으로 매핑(mapping)할 수 있다. 미리 정의된 2차원 평면(O)은 게임(140) 단계에서 플레이어가 바라보는 화면에 대응하는 평면일 수 있다.
예를 들어, 서버(100)는 매핑을 통해 제 1 버텍스(310)를 2차원 제 1 버텍스(360)로; 제 2 버텍스(320)를 2차원 제 2 버텍스(370)로; 제 3 버텍스(330)를 2차원 제 3 버텍스(380)로 매핑할 수 있다. 서버는 미리 정의된 2차원 평면(O) 상의 2차원 버텍스들(360, 370, 380)의 위치를 획득할 수 있다. 도시된 2차원 버텍스들(360, 370, 380)을 포함한 모든 2차원 버텍스들을 조합한다면, 2차원 게임 객체(350)를 얻을 수 있다.
이어지는 순서로, 서버(100)는 버텍스들의 2차원 위치들을 꼭지점으로 가지는 2차원 프래그먼트(fragment)들 내부의 픽셀들의 광원(340)에 따른 색상을 생성할 수 있다(240).
예를 들어, 서버(100)는 2차원 제 1 버텍스(360), 2차원 제 2 버텍스(370), 및 2차원 제 3 버텍스(380)를 꼭지점으로 가지는 제 1 프래그먼트(390)를 생성할 수 있다. 서버(100)는 제 1 프래그먼트(390)를 미리 정의된 픽셀 단위로 분할하여 제 1 프래그먼트(390) 내부의 픽셀들을 정의할 수 있다. 서버(100)는 제 1 프래그먼트(390) 내부의 픽셀들의 광원(340)에 따른 색상을 생성할 수 있다. 가령, 서버(100)는 제 1 픽셀(399)의 광원(340)에 따른 색상을 생성할 수 있다.
설명의 편의를 위해 도 2에서는 하나의 프래그먼트(390)만을 도시했으나, 서버(100)는 2차원 버텍스들을 꼭지점으로 가지는 복수의 프래그먼트들을 생성할 수 있다. 복수의 프래그먼트들 내부의 모든 픽셀들의 색상이 전부 정의되면, 2차원 게임 객체(350)의 그래픽이 전체적으로 렌더링될 수 있다. 각각의 픽셀의 광원(340)에 따른 색상을 생성하는 동작은 도 3을 참조하여 후술된다.
도 3은 일실시예에 따른 픽셀 색상 생성 동작을 설명하기 위한 도면이다.
일실시예에 따른 픽셀 색상 생성 동작을 통해, 게임 객체는 미리 정의된 애니메이션풍(風)으로 렌더링 될 수 있다. 렌더링이 적용되지 않거나 게임 엔진(130)에서 제공하는 기본 렌더링이 적용된 게임 객체(500)는 3차원 모델의 속성을 물려받아 3차원적 그래픽으로 표현될 수 있다. 반면, 일실시예에 따른 픽셀 색상 생성 동작이 적용된 게임 객체(540)는 미리 정의된 애니메이션풍(風)으로 렌더링되어, 게임(140) 단계에서 애니메이션적인 그래픽으로 표현될 수 있다.
서버(100)는 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하기 위해 다음의 특성 중 적어도 일부가 달성되도록 픽셀 색상 생성 동작을 수행할 수 있다:
* 게임 객체의 세부적인 소재의 질감 표현을 줄이고, 색감 표현의 중요도를 높인다.
* 게임 객체의 소재의 형태는 단순하고 명확하도록 디포메이션 한다.
* 게임 객체의 외곽선이 쉐이더로 처리되므로 아웃라인(outline)을 명확하게 표현한다.
* 음영 처리시 그라데이션 처리가 아닌 경계면식 음영을 표현한다.
* 미리 정의된 광택성 소재(머릿결, 비닐 등)의 경우, 하이라이트 색을 통해 광택을 표현한다.
* 버텍스 밀도 및 픽셀 밀도가 특정 영역에 집중되지 않도록 쉐이더로 처리한다.
* 음영 처리시 기본색, 음영색을 별도로 정의한다.
서버(100)에 의해 수행되는 픽셀 색상 생성 동작은 다음의 동작을 포함할 수 있다.
우선, 서버(100)는 디퓨즈(diffuse) 레이어(510)를 생성할 수 있다.
구체적으로, 서버(100)는 각각의 픽셀의 광원(light source)에 따른 색상에 제 1 색감 변환을 적용하여 디퓨즈 레이어(diffuse layer)를 생성할 수 있다. 서버(100)가 디퓨즈 레이어(510)를 생성하는 동작은 다음의 동작을 포함할 수 있다. 서버(100)가 디퓨즈 레이어(510)를 생성하는 동작은 도 2 및 도 3을 함께 참조하여 설명된다.
우선, 서버(100)는 광원(light source)으로부터 각각의 버텍스로 입사하는 가상광(virtual light)과 각각의 버텍스의 수직 벡터 사이의 각도를 각각의 버텍스의 입사각으로 정의할 수 있다. 예를 들어, 도 2를 참조하면, 광원(340)으로부터 가상광(341)이 각각의 버텍스(310, 320, 330)로 입사할 수 있다. 서버(100)는 제 1 수직 벡터(311)와 가상광(341)의 각도를 제 1 버텍스(310)의 입사각으로; 제 2 수직 벡터(321)와 가상광(341)의 각도를 제 2 버텍스(320)의 입사각으로; 제 3 수직 벡터(331)와 가상광(341)의 각도를 제 3 버텍스(330)의 입사각으로 정의할 수 있다.
다음으로, 서버(100)는 각각의 버텍스(310, 320, 330)의 입사각을 기초로 각각의 버텍스의 난반사(diffuse reflection) 증폭도를 생성할 수 있다. 난반사 증폭도는 각각의 버텍스로 입사하는 빛의 세기가 클수록 증가할 수 있다. 버텍스에 입사하는 빛의 세기는 렘브란트의 법칙(Lambertian Law)을 따를 수 있다. 렘브란트의 법칙에 따르면, 버텍스의 입사각을 θ라고 했을 때, 버텍스로 입사하는 빛의 세기는 cos(θ)의 배수로 결정할 수 있다. 따라서 각각의 버텍스의 난반사 증폭도는 입사각에 코사인 함수를 적용한 값의 배수일 수 있다. 가령, 서버(100)는 광원이 백색광일 경우, 입사각이 0도일 때, 난반사 증폭도를 1로 생성할 수 있다. 입사각이 작을수록 난반사 증폭도가 증가할 수 있다. 서버(100)는 버텍스의 입사각이 90도를 넘어가는 경우 난반사 증폭도를 0으로 생성할 수 있다.
예를 들어, 도 2를 참조하면, 광원(340)은 백색광일 수 있다. 제 1 버텍스(310)의 입사각이 가장 클 수 있고; 제 2 버텍스(320)의 입사각이 그 다음으로 클 수 있고; 제 3 버텍스(330)의 입사각이 가장 작을 수 있다. 서버(100)는 버텍스들(310, 320, 330)의 난반사 증폭도는 0과 1 사이의 값으로 생성할 수 있다. 구체적으로, 서버(100)는 제 1 버텍스(310)의 난반사 증폭도를 가장 큰 값으로; 제 2 버텍스(320)의 난반사 증포도를 그 다음으로 큰 값으로; 제 3 버텍스(330)의 난반사 증폭도를 가장 작은 값으로 생성할 수 있다.
한편, 서버(100)는 광원이 백색광이 아닐 경우, 광원의 RGB 비율을 구해서, RGB별 난반사 증폭도를 생성할 수 있다. 가령, 서버(100)는 광원이 청색광일 경우, 입사각이 0도일 때, 난반사 증폭도를 (R, G, B) = (0, 0, 1)로 생성할 수 있다. 광원이 황색광일 경우, 입사각이 0도일 때, 난반사 증폭도를 (R, G, B) = (1, 1, 0)으로 생성할 수 있다. 입사각이 작을수록 RGB별 난반사 증폭도가 증가할 수 있다. 서버(100)는 버텍스의 입사각이 90도를 넘어가는 경우 난반사 증폭도를 (0, 0, 0)으로 생성할 수 있다.
이어서, 서버(100)는 각각의 버텍스의 미리 정의된 RGBA 비율에 각각의 버텍스의 난반사 증폭도를 적용하여 각각의 버텍스의 광원에 따른 색상을 생성할 수 있다. 각각의 버텍스의 미리 정의된 RGBA 비율은 광원과 각각의 버텍스의 입사각이 0도일 때 각각의 버텍스의 색상일 수 있다.
서버(100)는 각각의 버텍스의 미리 정의된 RGBA 비율에 각각의 버텍스의 난반사 증폭도를 곱하는 방식으로 각각의 버텍스의 광원에 따른 색상을 생성할 수 있다. 예를 들어, 제 1 버텍스(310)의 RGBA 비율은 (255, 255, 0, 0)으로 원색 노란색일 수 있고, 제 1 버텍스(310)의 난반사 증폭도는 0.7일 수 있다. 서버(100)는 제 1 버텍스(310)의 RGBA 비율은 (255, 255, 0, 0)에 난반사 증폭도 0.8을 곱하여 제 1 버텍스(310)의 광원(340)에 따른 색상 (204, 204, 0, 0)을 생성할 수 있다. 서버(100)는 마찬가지 방법으로 제 2 버텍스(320), 제 3 버텍스(330) 및 나머지 버텍스들의 광원(340)에 따른 색상을 생성할 수 있다.
이어지는 순서로, 서버(100)는 각각의 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 색상을 기초로 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 따른 색상을 생성할 수 있다.
예를 들어, 도 2를 참조하면, 서버(100)는 2차원 제 1 버텍스(360), 2차원 제 2 버텍스(370), 및 2차원 제 3 버텍스(380)를 꼭지점으로 가지는 제 1 프래그먼트(390) 내부를 미리 정의된 픽셀 단위로 분할하여 제 1 프래그먼트(390) 내부의 픽셀들을 정의할 수 있다. 서버(100)는 제 1 픽셀(391)을 포함한 제 1 프래그먼트(390) 내부의 픽셀들의 광원(340)에 따른 색상을 생성할 수 있다.
서버(100)는 제 1 프래그먼트(390)의 꼭지점을 구성하는 버텍스들(310, 320, 330)의 광원(340)에 따른 색상을 그라데이션 방식으로 블랜딩한 평균 색상으로 제 1 프래그먼트(390) 내부의 픽셀들의 광원(340)에 따른 색상을 생성할 수 있다. 그라데이션 방식의 픽셀 색상 표현은 실사적인 느낌을 제공하므로, 후술의 제 1 색감 변환(501)을 통해 픽셀들의 비실사 느낌을 강조하고 색상 표현을 단수화할 수 있다. 나아가, 후술의 툰 그리드 레이어(530)를 통해 픽셀들의 음영 및 색상이 보다 이산적으로 단계화될 수 있고, 이를 통해 게임(140) 단계에서 미리 정의된 애니메이션풍(風)에 따른 그래픽을 가지는 게임 객체를 구현할 수 있다.
이후, 서버(100)는 각각의 픽셀의 광원에 따른 색상에 제 1 색감 변환(501)을 적용할 수 있다. 이를 통해, 서버(100)는 미리 정의된 애니메이션풍(風)에 기초하여 게임 객체의 비실사 효과를 높이기 위해 게임 객체의 픽셀들의 색감을 조절할 수 있다. 제 1 색감 변환(501)은 색상 톤(tone) 변환 및 색상 콘트라스트(contrast) 변환을 포함할 수 있다.
서버(100)는 제 1 색감 변환(501)의 색상 톤 변환을 통해, 게임 객체의 전체적인 색상 톤을 조절할 수 있다. 예를 들어, 서버(100)는 피부·옷감·하늘 등이 실사적인 색상에서 애니메이션적인 원색적 색상으로 변환할 수 있다. 또는, 서버(100)는 미리 정의된 애니메이션풍(風)에서 요구하는 컬러 톤, 가령, 블루 톤으로 전체 게임 객체를 덧입힐 수 있다.
또한, 서버(100)는 제 1 색감 변환(501)의 콘트라스트 변환을 통해, 미리 정의된 애니메이션풍(風)에 기초하여 픽셀들의 색상 콘트라스트를 증가시킬 수 있다. 이를 통해, 주변 픽셀에 비해 밝은 픽셀은 더 밝아지고, 주변 픽셀에 비해 어두운 픽셀은 더 어두워질 수 있다. 이를 통해, 피부·옷감·하늘 등과 같이 여러 유사한 색상의 조합으로 구성된 부분들이 비교적 적은 수의 색상으로 구성된 단순한 표현을 가질 수 있다.
한편, 제 1 색감 변환(501)의 색상 톤 조절 정도 및 콘트라스트 조절 정도는 미리 데이터베이스화된 레서피를 참조하여 이루어지거나, 제 2 인공지능(제 2 인공 신경망)의 추론을 통해 이루어질 수 있다. 제 2 인공지능의 학습 과정은 도 6을 참조하여 후술된다.
이상과 같이, 디퓨즈 레이어(510)를 통해, 게임 객체는 미리 정의된 애니메이션풍(風)에 따른 비실사 효과를 가질 수 있다. 구체적으로, 게임 객체의 픽셀들은 미리 정의된 애니메이션풍(風)에 따른 색상 톤을 가질 수 있다. 또한, 게임 객체의 픽셀들은 미리 정의된 애니메이션풍(風)에 따른 단순한 색상 표현을 가질 수 있다.
다음으로, 서버(100)는 라이트 인텐시티(light intensity) 레이어(520)를 생성할 수 있다.
서버(100)는 주변광(ambient light)의 세기(intensity)를 기초로 픽셀들의 전체적인 명도를 결정하는 라이트 인텐시티 레이어(520)를 생성할 수 있다. 라이트 인텐시티 레이어(520)의 변수로 사용되는 주변광의 세기는 게임(140) 단계에서 게임 객체가 위치하는 장소의 주변광에 따라 달라지도록 설정할 수 있다.
라이트 인텐시티 레이어(520)를 디퓨즈 레이어(510)에 결합할 경우, 주변광의 밝기에 따른 음영의 진하기가 연출될 수 있다(502). 예를 들어, 캐릭터 등의 게임 객체가 동굴이나 던전같이 어두운 주변광이 있는 장소에 있을 경우, 라이트 인텐시티 레이어(520)는 게임 객체에 전체적으로 어두운 명도를 부여할 수 있다. 반면, 캐릭터 등의 게임 객체가 밝은 야외나 밝은 실내같이 밝은 주변광이 있는 장소에 있을 경우, 라이트 인텐시티 레이어(520)는 게임 객체에 전체적으로 밝은 명도를 부여할 수 있다. 이처럼 그림자 표현을 위해 개별 픽셀들의 색상을 조절하지 않고, 전체적인 주변광의 세기를 조절하여 게임 객체의 그림자를 표현함으로써, 애니메이션풍(風)의 부드러운 질감을 렌더링할 수 있다
이어서, 서버(100)는 툰 그리드(toon grid) 레이어를 생성할 수 있다.
툰 그리드(toon grid)는 연속적인 픽셀들의 명도 변화를 이산적으로 단계화하여 애니메이션과 같은 음영 그래픽 효과를 부각시킬 수 있다. 툰 그리드(toon grid)를 생성하기 위해, 서버(100)는 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 입사각을 기초로, 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 대한 입사각을 생성할 수 있다. 구체적으로, 서버(100)는 2차원 프래그먼트 내부의 픽셀의 입사각을, 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 입사각에, 픽셀과 꼭지점들의 거리에 따른 비중을 각각 곱한 값들의 평균으로 생성할 수 있다. 예를 들어, 도 2를 참조하면, 서버(100)는 제 1 프래그먼트(390)의 제 1 픽셀(391)의 입사각을, 제 1 버텍스(310), 제 2 버텍스(320), 제 3 버텍스(330)의 입사각에, 제 1 픽셀(391)과 2차원 제 1 버텍스(360), 2차원 제 2 버텍스(370), 및 2차원 제 3 버텍스(380)의 거리에 따른 비중을 각각 곱한 값들의 평균으로 생성할 수 있다.
다음으로, 서버(100)는 램버트 법칙(Lambertian Law)에 따른 각각의 픽셀의 입사각의 연속적 명도 변화를 미리 정의된 그리드화 방법(503)에 따라 이산적으로 단계화할 수 있다. 미리 정의된 그리드화 방법(503)은 램버트 법칙의 따라 입사각에 대한 코사인 함수(cosine function)로 표현되는 각 픽셀의 빛의 세기를 미리 정의된 애니메이션풍(風)의 명도 표현으로 이산적으로 단계화할 수 있다. 서버(100)는 미리 정의된 그리드화 방법(503)에 따라 픽셀들의 이산적으로 단계화된 명도를 포함하는 툰 그리드 레이어(530)를 생성할 수 있다.
툰 그리드 레이어(530)를 디퓨즈 레이어(510)에 결합할 경우, 게임 객체를 구성하는 픽셀들은 이산적으로 단계화된 명도를 가질 수 있다. 즉, 게임 객체는 미리 정의된 애니메이션풍(風)으로 단계화된 음영 그래픽을 가질 수 있다(540).
이때, 미리 정의된 그리드화 방법(503)의 단계의 개수, 단계 간의 명도 폭, 및 단계가 구분되도록 하는 임계입사각은 미리 데이터베이스화된 레서피를 참조하여 이루어지거나, 제 2 인공지능(제 2 인공 신경망)의 추론을 통해 이루어질 수 있다. 제 2 인공지능의 학습 과정은 도 6을 참조하여 후술된다.
한편, 위에서는 난반사에 따른 연속적 명도 변화를 이산적으로 단계화하는 동작에 대해 설명했으나, 서버(100)는 정반사(specular reflection)에 따른 연속적 광택 변화를 이산적으로 단계화할 수도 있다. 이를 통해, 정반사를 통해 표현되는 게임 객체의 머리카락이나 눈동자의 광택 등이 더욱 애니메이션처럼 단계화되어 표현될 수 있다.
이를 위해, 서버(100)는 미리 정의된 2차원 평면(O)을 정면으로 바라보는 카메라를 상정할 수 있다. 카메라는 점 객체로 표현될 수 있다. 미리 정의된 2차원 평면(O)은 게임(140) 단계에서 플레이어가 바라보는 화면에 대응하는 평면일 수 있고, 카메라는 사용자에 대응할 수 있다.
서버(100)는 각각의 픽셀의 반사각을 정의할 수 있다. 각각의 픽셀의 반사각은 각각의 픽셀(2차원)에 대응하는 3차원 게임 객체의 3차원 지점(3차원)에 광원으로부터 입사한 가상광이 반사하고 있을 때, 각각의 3차원 지점의 수직 벡터와 반사광이 이루는 각도일 수 있다. 또한, 서버(100)는 각각의 픽셀과 카메라 사이의 각도를 각각의 픽셀에 대응하는 3차원 지점과 카메라를 연결하는 선분과 3차원 지점의 수직 벡터가 이루는 각도로 정의할 수 있다. 또한, 서버(100)는 각각의 픽셀의 반사각과 각각의 픽셀과 카메라 사이의 각도의 차를 각각의 픽셀의 퐁(Phong) 각도로 정의할 수 있다.
서버(100)는 연속적 광택 변화를 미리 정의된 그리드화 방법(503)에 따라 이산적으로 단계화할 수 있다. 미리 정의된 그리드화 방법(503)은 퐁 정반사 모델(Phong reflection model)에 따라 퐁 각도에 대한 코사인 함수(cosine function)의 n제곱(n은 자연수)로 표현되는 각 픽셀의 빛의 세기를 미리 정의된 애니메이션풍(風)의 광택 표현으로 이산적으로 단계화할 수 있다. 서버(100)는 미리 정의된 그리드화 방법(503)에 따라 픽셀들의 이산적으로 단계화된 광택을 포함하는 퐁(Phong) 그리드 레이어를 생성할 수 있다.
퐁 그리드 레이어를 디퓨즈 레이어(510)에 결합할 경우, 게임 객체를 구성하는 픽셀들은 이산적으로 단계화된 광택을 가질 수 있다. 즉, 게임 객체는 미리 정의된 애니메이션풍(風)으로 단계화된 광택 그래픽을 가질 수 있다.
이후, 서버(100)는 디퓨즈 레이어(510) 라이트 인텐시티 레이어(520), 툰 그리드 레이어(530) 및/또는 퐁 그리드 레이어를 결합하여 미리 정의된 애니메이션풍(風)으로 렌더링된 게임 객체(540)를 생성할 수 있다. 애니메이션풍(風)으로 렌더링한 게임 객체(540)는 기본 렌더링이 적용된 게임 객체(500)에 비해 애니메이션 느낌이 돋보이는 그래픽을 가질 수 있다. 이를 통해, 게임(140) 단계에서 애니메이션풍(風)의 그래픽을 선호하는 사용자들의 만족도를 높일 수 있다.
도 4는 일실시예에 따른 림-라이트(rim light) 및 아웃라인(outline) 생성 동작을 설명하기 위한 도면이다.
서버(100)는 게임(140) 단계에서 애니메이션풍(風)의 그래픽을 구현하기 위해 게임 객체의 외곽선이 명확하게 표현되도록 렌더링할 수 있다. 이를 위해, 서버(100)는 애니메이션풍(風)으로 렌더링한 게임 객체(540)에 림-라이트(rim light) 및 아웃라인(outline)을 생성할 수 있다. 서버(100)가 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는 동작은 다음의 동작을 더 포함할 수 있다.
우선, 서버(100)는 게임 객체의 픽셀들을 기초로, 미리 정의된 2차원 평면(O)에 표현된 게임 객체의 경계를 획득할 수 있다(510).
서버(100)는 미리 정의된 2차원 평면(O)에서 게임 객체의 버텍스 및 픽셀들이 존재하는 영역과 존재하지 않는 영역의 경계를 게임 객체의 경계로 획득할 수 있다. 예를 들어, 서버(100)는 도 2의 게임 객체(300)의 경계인 원형 형상을 획득할 수 있다. 또는, 서버(100)는 도 3의 게임 객체(540)의 경계인 캐릭터의 윤곽선을 획득할 수 있다.
다음으로, 서버(100)는 게임 객체의 경계의 적어도 일부를 미리 정의된 제 1 명도로 표현하는 림-라이트(rim light)를 생성할 수 있다(520).
림-라이트(rim light)는 게임 객체 뒤에서 강한 조명을 비추는 것과 같은 그래픽을 부여하는 렌더링 효과를 의미할 수 있다. 림-라이트가 적용된 게임 객체는 도 5의 림-라이트를 적용한 2 차원 게임 객체(560)처럼 게임 객체의 경계를 따라서 밝은 테두리(rim)가 표현될 수 있다. 서버(100)는 미리 정의된 애니메이션풍(風)에 따른 양감, 입체감, 또는 극적인 느낌을 표현하기 위해 게임 객체의 경계의 적어도 일부를 미리 정의된 제 1 명도로 표현하는 림-라이트를 생성할 수 있다. 이때, 제 1 명도는 게임 객체의 나머지 객체들보다 상대적으로 밝은 명도를 가질 수 있다. 이를 통해, 서버(100)는 게임 객체를 배경으로부터 돌출되게 하거나, 게임 객체의 일부를 강조하거나, 후광 효과를 통해 캐릭터 전체를 강조할 수 있다.
예를 들어, 서버(100)는 도 5의 미리 정의된 애니메이션풍(風)으로 렌더링된 게임 객체(540)의 경계를 획득하고, 경계의 적어도 일부에 림-라이트(550)를 적용할 수 있다. 이를 통해, 림-라이트를 적용한 2 차원 게임 객체(560)는 미리 정의된 애니메이션풍(風)에 따른 양감, 입체감, 또는 극적인 느낌을 가지도록 렌더링 될 수 있다.
한편, 게임 객체(540)의 경계에서 림-라이트를 적용할 부위를 추출하고, 림-라이트의 제 1 명도를 결정하는 동작은 미리 데이터베이스화된 레서피를 참조하여 이루어지거나, 제 2 인공지능(제 2 인공 신경망)의 추론을 통해 이루어질 수 있다. 제 2 인공지능의 학습 과정은 도 6을 참조하여 후술된다.
이어서, 서버(100)는 경계의 적어도 일부를 미리 정의된 제 2 명도로 표현하는 아웃라인(outline)을 생성할 수 있다(530).
아웃라인(outline)은 게임 객체의 경계를 검은색 또는 진한 명도의 얇은 선으로 표현하는 렌더링 효과를 의미할 수 있다. 아웃라인이 적용된 게임 객체는 도 5의 아웃라인을 적용한 2차원 게임 객체(570)처럼 게임 객체의 경계를 따라서 얇은 검은 선이 표현될 수 있다. 서버(100)는 미리 정의된 애니메이션풍(風)에 따라 펜촉으로 그린 것과 같은 느낌을 표현하기 위해 게임 객체의 경계의 적어도 일부를 미리 정의된 제 2 명도로 표현하는 아웃라인을 생성할 수 있다. 이때, 제 2 명도는 검은색 또는 게임 객체의 나머지 객체들보다 상대적으로 어두운 명도를 가질 수 있다. 이를 통해, 서버(100)는 게임 객체를 아티스트가 직접 그린 것과 같은 그래픽 효과를 렌더링할 수 있다.
예를 들어, 서버(100)는 도 5의 림-라이트를 적용한 2 차원 게임 객체(560)에 아웃라인을 추가로 표현하여 아웃라인을 적용한 2차원 게임 객체(570)를 렌더링할 수 있다. 아웃라인을 적용한 2차원 게임 객체(570)는 미리 정의된 애니메이션풍(風)에 따른 펜촉으로 그린 느낌을 가지도록 렌더링 될 수 있다. 이때, 림-라이트의 제 1 명도는 아웃라인의 제 2 명도보다 높고, 림-라이트와 아웃라인이 중복되어 표현된 경계부의 경우, 림-라이트는 아웃라인과 게임 객체의 나머지 픽셀들 사이에 위치하도록 생성될 수 있다.
한편, 게임 객체(540)의 경계에서 아웃라인을 적용할 부위를 추출하고, 아웃라인의 제 2 명도를 결정하는 동작은 미리 데이터베이스화된 레서피를 참조하여 이루어지거나, 제 2 인공지능(제 2 인공 신경망)의 추론을 통해 이루어질 수 있다. 제 2 인공지능의 학습 과정은 도 6을 참조하여 후술된다.
이상을 통해, 서버(100)는 애니메이션풍(風)의 그래픽을 구현하기 위해 게임 객체의 외곽선이 명확하게 표현되도록 게임 객체의 경계에 림-라이트 및 아웃라인을 렌더링할 수 있다. 이를 통해, 게임(140) 단계에서 애니메이션풍(風)의 그래픽을 선호하는 사용자들의 만족도를 높일 수 있다.
도 5는 일실시예에 따른 렌더링 효과를 설명하기 위한 도면이다.
기본 렌더링 게임 객체(500)는 렌더링이 적용되지 않거나 게임 엔진(130)에서 제공하는 기본 렌더링이 적용될 수 있다. 기본 렌더링 게임 객체(500)는 3차원 모델의 속성을 물려받아 3차원적 그래픽으로 표현될 수 있다. 따라서 기본 렌더링 게임 객체(500)는 게임(140) 단계에서 애니메이션풍(風)의 그래픽을 선호하는 사용자들의 만족도를 충족시키기 어려울 수 있다.
디퓨즈 레이어(510)는 미리 정의된 애니메이션풍(風)에 따른 색감 및 색상 표현을 가지는 게임 객체를 표현할 수 있다. 디퓨즈 레이어(510) 상의 게임 객체의 각각의 픽셀은 각각의 픽셀의 광원에 따른 색상에 제 1 색감 변환(501)을 적용한 색상이 적용될 수 있다. 이를 통해, 게임 객체의 픽셀들은 미리 정의된 애니메이션풍(風)에 따른 색상 톤을 가질 수 있다. 또한, 게임 객체의 픽셀들은 미리 정의된 애니메이션풍(風)에 따른 단순한 색상 표현을 가질 수 있다. 이를 통해, 게임 객체의 비실사 효과를 높일 수 있다.
라이트 인텐시티 레이어(520)는 주변광의 세기를 기초로 픽셀들의 전체적인 명도를 결정할 수 있다. 라이트 인텐시티 레이어(520)가 디퓨즈 레이어(510)와 결합할 경우, 게임 객체는 주변광의 밝기에 따른 음영의 진하기가 연출될 수 있다. 이처럼 그림자 표현을 위해 개별 픽셀들의 색상을 조절하지 않고, 전체적인 주변광의 세기를 조절하여 게임 객체의 그림자를 표현함으로써, 애니메이션풍(風)의 부드러운 질감을 렌더링할 수 있다.
툰 그리드(530)는 연속적인 픽셀들의 명도 변화를 이산적으로 단계화하여 애니메이션과 같은 음영 그래픽 효과를 부각시킬 수 있다. 툰 그리드 레이어(530)는 램버트 법칙(Lambertian Law)에 따른 각각의 픽셀의 입사각의 연속적 명도 변화를 미리 정의된 그리드화 방법(503)에 따라 이산적으로 단계화할 수 있다. 툰 그리드 레이어(530)를 디퓨즈 레이어(510)에 결합할 경우, 게임 객체를 구성하는 픽셀들은 이산적으로 단계화된 명도를 가질 수 있다. 즉, 게임 객체는 미리 정의된 애니메이션풍(風)으로 단계화된 음영 그래픽을 가질 수 있다.
미리 정의된 애니메이션풍(風)으로 렌더링된 게임 객체(540)는 디퓨즈 레이어(510); 라이트 인텐시티 레이어(520); 및 툰 그리드 레이어(530)를 결합하여 생성할 수 있다. 기본 렌더링 게임 객체(500)과 비교하여, 미리 정의된 애니메이션풍(風)으로 렌더링된 게임 객체(540)는 애니메이션적 색감, 애니메이션적 질감, 애니메이션적인 단계적 음영·색상 변화 표현 등을 포함할 수 있다. 이를 통해, 미리 정의된 애니메이션풍(風)으로 렌더링된 게임 객체(540)는 애니메이션 느낌이 돋보이는 그래픽을 가질 수 있다.
나아가, 미리 정의된 애니메이션풍(風)으로 렌더링된 게임 객체(540)는 림-라이트(550)가 적용될 수 있다. 림-라이트(550)를 통해 게임 객체의 경계의 적어도 일부는 미리 정의된 제 1 명도로 표현될 수 있다. 림-라이트를 적용한 2 차원 게임 객체(560)는 미리 정의된 애니메이션풍(風)에 따른 양감, 입체감, 또는 극적인 느낌이 강조될 수 있다. 또한, 림-라이트를 적용한 2 차원 게임 객체(560)는 배경으로부터 돌출되어 보이거나, 게임 객체의 일부가 강조되거나, 후광 효과를 통해 게임 객체 전체가 강조될 수 있다.
또한, 림-라이트를 적용한 2 차원 게임 객체(560)에 아웃라인을 적용할 수 있다. 아웃라인을 통해 게임 객체의 경계의 적어도 일부는 미리 정의된 제 2 명도로 표현될 수 있다. 아웃라인을 적용한 2차원 게임 객체(570)는 미리 정의된 애니메이션풍(風)에 따른 펜촉으로 그린 것과 같은 느낌을 가질 수 있다. 이때, 림-라이트의 제 1 명도는 아웃라인의 제 2 명도보다 높고, 림-라이트와 아웃라인이 중복되어 표현된 경계부의 경우, 림-라이트는 아웃라인과 게임 객체의 나머지 픽셀들 사이에 위치하도록 생성될 수 있다.
최종적으로, 아웃라인까지 적용한 2차원 게임 객체(570)를 기본 렌더링 게임 객체(500)와 비교해보면, 아웃라인까지 적용한 2차원 게임 객체(570)는 애니메이션적 색감 및 콘트라스트, 색상의 단순화, 지나치게 어둡지 않은 그림자의 부드러운 표현, 연속적 음영 표현이 아닌 단계적 음영 표현, 림-라이트를 통한 양감 효과, 아웃라인을 통한 펜촉으로 그린 느낌 등에서 애니메이션풍(風)의 그래픽이 충실히 렌더링된 것을 확인할 수 있다.
도 6은 일실시예에 따른 인공 신경망의 학습을 설명하기 위한 도면이다.
인공 신경망은 서버(100)에 포함되는 구성일 수 있으며, 서버(100) 또는 별도의 학습 장치를 통해서 학습될 수 있다.
제 1 인공 신경망은 3차원 모델을 입력 받아, 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위해 필요한 최소의 3차원 모델의 속성들을 출력할 수 있다.
제 2 인공 신경망은 3차원 모델의 속성들의 적어도 일부를 가지는 게임 객체를 입력 받아, 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위한 제 1 색감 변환(501), 미리 정의된 그리드화 방법(503), 림-라이트, 및 아웃라인을 출력할 수 있다.
여기서, 미리 정의된 애니메이션풍(風)은 게임의 종류 또는 캐릭터 등의 원작을 그린 아티스트에 따라 달라질 수 있으나, 애니메이션적 색감 및 콘트라스트, 색상의 단순화, 지나치게 어둡지 않은 그림자의 부드러운 표현, 연속적 음영 표현이 아닌 단계적 음영 표현, 림-라이트를 통한 양감 효과, 아웃라인을 통한 펜촉으로 그린 느낌 등의 기본적 미감을 공유할 수 있다.
이하에서는 학습 장치를 통해 인공 신경망이 학습되는 과정을 설명한다.
우선, 학습 장치는 트레이닝 데이터(training data)와 레이블(label)을 획득할 수 있다(600).
제 1 인공 신경망 학습을 위해, 학습 장치는 각각의 아티스트가 그린 캐릭터·아이템·배경에 대응하는 각각의 3차원 모델을 각각의 트레이닝 데이터로 획득할 수 있다. 또한, 학습 장치는 트레이닝 데이터의 각각의 캐릭터·아이템·배경을 각각의 아티스트가 요구한대로 렌더링하기 위해 실제로 필요했던 3차원 모델의 속성들을 각각의 트레이닝 데이터에 대응하는 레이블로 획득할 수 있다.
제 2 인공 신경망 학습을 위해, 학습 장치는 각각의 게임 객체를 렌더링한 그래픽을 각각의 트레이닝 데이터로 획득할 수 있다. 또한, 학습 장치는 각각의 렌더링된 그래픽에서 아티스트가 직접 평가한 렌더링 결과(렌더링 적합: 1, 렌더링 부적합: 0)을 각각의 트레이닝 데이터의 레이블로 획득할 수 있다.
이제, 학습 장치는 트레이닝 데이터로부터 인공 신경망의 입력을 생성할 수 있다(610).
학습 장치는 트레이닝 데이터를 인공 신경망의 입력으로 그대로 사용하거나, 각각의 트레이닝 데이터에서 불필요한 정보를 제거하는 기 알려진 프로세스를 거친 후, 인공 신경망의 입력을 생성할 수 있다.
다음으로, 학습 장치는 입력을 인공 신경망에 적용할 수 있다(620).
서버에 포함된 인공 신경망은 지도 학습(supervised learning)에 따라 학습되는 인공 신경망일 수 있다. 인공 신경망은 지도 학습을 통해 학습시키기에 적합한 컨볼루션 신경망(convolutional neural network, CNN) 또는 리커런트 신경망(recurrent neural network, RNN) 구조일 수 있다.
이어서, 학습 장치는 인공 신경망으로부터 출력을 획득할 수 있다(630).
제 1 인공 신경망의 출력은, 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위해 필요한 최소한의 3차원 모델의 속성들의 추론일 수 있다. 구체적으로, 인공 신경망은 게임별 또는 아티스트별로 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 렌더링하기 위해 공통적으로 반드시 필요한 속성; 게임 객체의 종류에 따라 필요한 속성; 게임 객체의 종류에 따라 단계적으로 필요한 속성 등에 따른 패턴을 분석하여, 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위해 필요한 최소한의 3차원 모델의 속성들을 출력할 수 있다.
제 2 인공 신경망의 출력은, 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위한 제 1 색감 변환(501), 미리 정의된 그리드화 방법(503), 림-라이트, 및 아웃라인의 추론일 수 있다. 구체적으로, 인공 신경망은 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위한 제 1 색감 변환(501)의 색상 톤 조절 정도 및 콘트라스트 조절 정도; 미리 정의된 그리드화 방법(503)의 단계의 개수, 단계 간의 명도 폭, 및 단계가 구분되도록 하는 임계입사각; 게임 객체의 경계에서 림-라이트를 적용할 부위 및 림-라이트의 제 1 명도; 게임 객체의 경계에서 아웃라인을 적용할 부위 및 아웃라인의 제 2 명도 등의 패턴을 분석하여, 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위한 제 1 색감 변환(501), 미리 정의된 그리드화 방법(503), 림-라이트, 및 아웃라인을 출력할 수 있다. 수 있다.
이후, 학습 장치는 출력과 레이블을 비교할 수 있다(640).
추론에 해당하는 인공 신경망의 출력과 정답에 해당하는 레이블을 비교하는 과정은 손실함수(loss function)를 계산하여 이루어질 수 있다. 손실함수는 기 알려진 평균 제곱 오차(mean squared error, MSE), 교차 엔트로피 오차(cross entropy error, CEE) 등이 이용될 수 있다. 그러나, 이에 제한되는 것은 아니며, 인공 신경망의 출력과 레이블 간의 편차, 오차 내지는 차이를 측정할 수 있다면, 다양한 인공 신경망 모델들에서 이용되는 손실함수들이 이용될 수 있다.
다음으로, 학습 장치는 비교값을 기초로 인공 신경망을 최적화할 수 있다(650).
학습 장치 비교값이 점점 작아지도록 인공 신경망의 노드(node)들의 웨이트(weight)를 갱신함으로써, 추론에 해당하는 인공 신경망의 출력과 정답에 해당하는 레이블을 점점 일치시킬 수 있고, 이를 통해 인공 신경망은 정답에 가까운 추론을 출력하도록 최적화될 수 있다. 구체적으로, 학습 장치는 비교값에 해당하는 손실함수가 최소값의 추정치에 가까워지도록 인공 신경망의 웨이트(weight)를 재설정하는 과정을 반복함으로써 인공 신경망을 최적화할 수 있다. 인공 신경망의 최적화를 위해 기 알려진 역전파(backpropagation) 알고리즘, 확률론적 경사하강법(stochastic gradient descent) 등이 이용될 수 있다. 그러나, 이에 제한되는 것은 아니며, 다양한 신경망 모델들에서 이용되는 웨이트의 최적화 알고리즘이 이용될 수 있다.
학습 장치는 이와 같은 과정을 반복함으로써 인공 신경망을 학습시킬 수 있다.
이를 통해, 학습 장치는 3차원 모델을 기초로; 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위해 필요한 최소의 3차원 모델의 속성들을 출력하는 제 1 인공 신경망을 학습시킬 수 있다. 제 1 인공 신경망은 도 2를 참조하여 전술한 3차원 모델로부터 미리 정의된 속성들을 획득하는데 사용될 수 있다.
또한, 학습 장치는 게임 객체를 기초로; 미리 정의된 애니메이션풍(風)의 게임 객체 그래픽을 구현하기 위한 제 1 색감 변환(501), 미리 정의된 그리드화 방법(503), 림-라이트, 및 아웃라인을 출력하는 제 2 인공 신경망을 학습시킬 수 있다. 제 2 인공 신경망은 도 3 및 4를 참조하여 전술한 게임 객체의 픽셀의 색상 생성 동작, 림-라이트 생성 동작, 및 아웃라인 생성 동작에 사용될 수 있다.
도 7은 일실시예에 따른 장치의 구성의 예시도이다.
일실시예에 따른 장치(701)는 프로세서(702) 및 메모리(703)를 포함한다. 프로세서(702)는 도 1 내지 도 6을 참조하여 전술된 적어도 하나의 장치들을 포함하거나, 도 1 내지 도 6을 참조하여 전술된 적어도 하나의 방법을 수행할 수 있다. 구체적으로, 장치(701)는 서버(100), 사용자 단말 또는 인공 신경망 학습 장치 등일 수 있다. 장치(701)를 이용하는 자 또는 단체는 도 1 내지 도 6을 참조하여 전술된 방법들 일부 또는 전부와 관련된 서비스를 제공할 수 있다.
메모리(703)는 전술된 방법들과 관련된 정보를 저장하거나 전술된 방법들이 구현된 프로그램을 저장할 수 있다. 메모리(703)는 휘발성 메모리 또는 비휘발성 메모리일 수 있다.
프로세서(702)는 프로그램을 실행하고, 장치(701)를 제어할 수 있다. 프로세서(702)에 의하여 실행되는 프로그램의 코드는 메모리(703)에 저장될 수 있다. 장치(701)는 입출력 장치(도면 미 표시)를 통하여 외부 장치(예를 들어, 퍼스널 컴퓨터 또는 네트워크)에 연결되고, 유무선 통신을 통해 데이터를 교환할 수 있다.
장치(701)는 인공 신경망을 학습시키거나, 학습된 인공 신경망을 이용하는데 사용될 수 있다. 메모리(703)는 학습 중인 또는 학습된 인공 신경망을 포함할 수 있다. 프로세서(702)는 메모리(703)에 저장된 인공 신경망 알고리즘을 학습시키거나 실행시킬 수 있다. 인공 신경망을 학습시키는 장치(701)와 학습된 인공 신경망을 이용하는 장치(701)는 동일할 수도 있고 개별적일 수도 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (5)

  1. 서버에 의해 수행되는 게임 객체 랜더링 방법에 있어서,
    3차원 모델(3D model)로부터 미리 정의된 속성들을 획득하여 게임 객체를 정의하는 단계;
    상기 게임 객체의 버텍스(vertex)들―각각의 버텍스는 수직 벡터(normal vector)를 가짐―을 획득하는 단계;
    각각의 버텍스의 2차원 위치―상기 각각의 버텍스를 미리 정의된 2차원 평면으로 매핑(mapping)한 위치―를 획득하는 단계; 및
    버텍스들의 2차원 위치들을 꼭지점으로 가지는 2차원 프래그먼트(fragment)들 내부의 픽셀들의 색상을 생성하는 단계
    를 포함하며,
    상기 픽셀들의 색상을 생성하는 단계는,
    각각의 픽셀의 광원(light source)에 따른 색상에 제 1 색감 변환을 적용하여 디퓨즈 레이어(diffuse layer)를 생성하는 단계;
    주변광(ambient light)의 세기(intensity)를 기초로 상기 픽셀들의 전체적인 명도를 결정하는 라이트 인텐시티(light intensity) 레이어를 생성하는 단계;
    상기 픽셀들의 명도 변화를 이산적으로 단계화하여 툰 그리드(toon grid) 레이어를 생성하는 단계; 및
    상기 디퓨즈 레이어, 상기 라이트 인텐시티 레이어, 및 상기 툰 그리드 레이어를 결합하여 상기 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는 단계
    를 포함하고,
    상기 디퓨즈 레이어를 생성하는 단계는,
    각각의 버텍스의 입사각―상기 광원으로부터 상기 각각의 버텍스로 입사하는 가상광(virtual light)과 상기 각각의 버텍스의 수직 벡터 사이의 각도―을 기초로 상기 각각의 버텍스의 난반사(diffuse reflection) 증폭도를 생성하는 단계;
    상기 각각의 버텍스의 미리 정의된 RGBA 비율에 상기 각각의 버텍스의 난반사 증폭도를 적용하여 상기 각각의 버텍스의 광원에 따른 색상을 생성하는 단계;
    각각의 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 광원에 따른 색상을 기초로 상기 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 따른 색상을 생성하는 단계; 및
    상기 각각의 픽셀의 광원에 따른 색상에 상기 제 1 색감 변환을 적용하는 단계
    를 포함하고,
    상기 제 1 색감 변환을 적용하는 단계는,
    상기 게임 객체의 모든 픽셀의 색상 톤을 상기 미리 정의된 애니메이션풍(風)에서 요구하는 색상 톤으로 변환하는 단계; 및
    상기 게임 객체의 모든 픽셀의 주변 픽셀에 대한 색상 콘트라스트(contrast)를 상기 미리 정의된 애니메이션풍(風)에 따라 변환하는 단계을 포함하고,
    상기 게임 객체의 모든 픽셀의 변환된 색상은 변환 이전의 색상과 상이하고,
    상기 게임 객체의 모든 픽셀의 주변 픽셀에 대한 색상 콘트라스트는 변환 이전의 색상 콘트라스트보다 증가하는,
    게임 객체 렌더링 방법.
  2. 제 1 항에 있어서,
    상기 툰 그리드를 생성하는 단계는,
    2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 입사각을 기초로, 상기 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 대한 입사각을 생성하는 단계; 및
    램버트 법칙(Lambertian Law)에 따른 상기 각각의 픽셀의 입사각의 연속적 명도 변화를 미리 정의된 그리드화 방법에 따라 이산적으로 단계화하는 단계
    를 포함하는
    게임 객체 렌더링 방법.
  3. 제 1 항에 있어서,
    상기 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는 단계는,
    상기 픽셀들을 기초로, 상기 미리 정의된 2차원 평면에 표현된 게임 객체의 경계를 획득하는 단계;
    상기 경계의 적어도 일부를 미리 정의된 제 1 명도로 표현하는 림-라이트(rim light)를 생성하는 단계; 및
    상기 경계의 적어도 일부를 미리 정의된 제 2 명도로 표현하는 아웃라인(outline)을 생성하는 단계
    를 포함하고,
    제 1 명도는 제 2 명도보다 높고,
    상기 림-라이트와 상기 아웃라인이 중복되어 표현된 경계부의 경우, 상기 림-라이트는 상기 아웃라인과 상기 픽셀들 사이에 위치하도록 생성되는
    게임 객체 렌더링 방법.
  4. 하드웨어와 결합되어 제 1 항 내지 제 3 항의 방법 중 어느 하나의 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램.
  5. 삼차원 모델(3D model)로부터 제 1 속성들을 획득하여 게임 객체를 정의하고,
    상기 게임 객체의 버텍스(vertex)들―각각의 버텍스는 수직 벡터(normal vector)를 가짐―을 획득하고,
    각각의 버텍스의 2차원 위치―상기 각각의 버텍스를 미리 정의된 2차원 평면으로 매핑(mapping)한 위치―를 획득하고,
    버텍스들의 2차원 위치들을 꼭지점으로 가지는 2차원 프래그먼트(fragment)들 내부의 픽셀들의 색상을 생성하는 프로세서
    를 포함하며,
    상기 프로세서가 상기 픽셀들의 색상을 생성하는 동작은
    각각의 픽셀의 광원(light source)에 따른 색상에 제 1 색감 변환을 적용하여 디퓨즈 레이어(diffuse layer)를 생성하고,
    주변광(ambient light)의 세기(intensity)를 기초로 상기 픽셀들의 전체적인 명도를 결정하는 라이트 인텐시티(light intensity) 레이어를 생성하고,
    상기 픽셀들의 명도 변화를 이산적으로 단계화하여 툰 그리드(toon grid) 레이어를 생성하고,
    상기 디퓨즈 레이어, 상기 라이트 인텐시티 레이어, 및 상기 툰 그리드 레이어를 결합하여 상기 게임 객체를 미리 정의된 애니메이션풍(風)으로 렌더링하는
    동작을 포함하고,
    상기 프로세서가 상기 디퓨즈 레이어를 생성하는 동작은
    각각의 버텍스의 입사각―상기 광원으로부터 상기 각각의 버텍스로 입사하는 가상광(virtual light)과 상기 각각의 버텍스의 수직 벡터 사이의 각도―을 기초로 상기 각각의 버텍스의 난반사(diffuse reflection) 증폭도를 생성하고,
    상기 각각의 버텍스의 미리 정의된 RGBA 비율에 상기 각각의 버텍스의 난반사 증폭도를 적용하여 상기 각각의 버텍스의 광원에 따른 색상을 생성하고,
    각각의 2차원 프래그먼트의 꼭지점들에 대응하는 버텍스들의 광원에 따른 색상을 기초로 상기 각각의 2차원 프래그먼트 내부의 픽셀들의 광원에 따른 색상을 생성하고,
    상기 각각의 픽셀의 광원에 따른 색상에 상기 제 1 색감 변환을 적용하는
    동작을 포함하고,
    상기 제 1 색감 변환을 적용하는 동작은,
    상기 게임 객체의 모든 픽셀의 색상 톤을 상기 미리 정의된 애니메이션풍(風)에서 요구하는 색상 톤으로 변환하고
    상기 게임 객체의 모든 픽셀의 주변 픽셀에 대한 색상 콘트라스트(contrast)를 상기 미리 정의된 애니메이션풍(風)에 따라 변환하는
    동작을 포함하고,
    상기 게임 객체의 모든 픽셀의 변환된 색상은 변환 이전의 색상과 상이하고,
    상기 게임 객체의 모든 픽셀의 주변 픽셀에 대한 색상 콘트라스트는 변환 이전의 색상 콘트라스트보다 증가하는
    게임 객체 렌더링 장치.
KR1020200051622A 2020-04-28 2020-04-28 게임 객체 렌더링 방법 및 장치 KR102173546B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200051622A KR102173546B1 (ko) 2020-04-28 2020-04-28 게임 객체 렌더링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200051622A KR102173546B1 (ko) 2020-04-28 2020-04-28 게임 객체 렌더링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102173546B1 true KR102173546B1 (ko) 2020-11-03

Family

ID=73197815

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200051622A KR102173546B1 (ko) 2020-04-28 2020-04-28 게임 객체 렌더링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102173546B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819941A (zh) * 2021-03-05 2021-05-18 网易(杭州)网络有限公司 渲染水体面的方法、装置、设备和计算机可读存储介质
CN112891946A (zh) * 2021-03-15 2021-06-04 网易(杭州)网络有限公司 游戏场景生成方法和装置、可读存储介质、电子设备
KR102325647B1 (ko) 2021-08-04 2021-11-12 파이어슈라이크게임즈 주식회사 라이트맵 기반 모바일 게임의 3d 객체 데이터 처리 방법, 장치 및 시스템
WO2024082753A1 (zh) * 2022-10-21 2024-04-25 网易(杭州)网络有限公司 游戏指示器的生成方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100623173B1 (ko) 2005-08-02 2006-09-12 엔에이치엔(주) 게임 캐릭터 애니메이션 구현 시스템, 구현 방법 및 제작방법
KR100692210B1 (ko) 2005-07-01 2007-03-09 엔에이치엔(주) 게임 엔진에서 소정의 오브젝트를 렌더링하는 방법 및 상기랜더링 방법을 수행하는 프로그램이 기록된 기록 매체
KR20070084346A (ko) * 2004-10-20 2007-08-24 유지에스 코포레이션 동적 쉐이더 생성을 위한 시스템, 방법 및 컴퓨터 프로그램
KR101780496B1 (ko) 2016-09-09 2017-09-21 동서대학교산학협력단 컴퓨터그래픽 툴에 의한 캐릭터 모델링 기반 3d 디지털액터 영상 구현방법
KR20200027004A (ko) 2017-07-21 2020-03-11 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070084346A (ko) * 2004-10-20 2007-08-24 유지에스 코포레이션 동적 쉐이더 생성을 위한 시스템, 방법 및 컴퓨터 프로그램
KR100692210B1 (ko) 2005-07-01 2007-03-09 엔에이치엔(주) 게임 엔진에서 소정의 오브젝트를 렌더링하는 방법 및 상기랜더링 방법을 수행하는 프로그램이 기록된 기록 매체
KR100623173B1 (ko) 2005-08-02 2006-09-12 엔에이치엔(주) 게임 캐릭터 애니메이션 구현 시스템, 구현 방법 및 제작방법
KR101780496B1 (ko) 2016-09-09 2017-09-21 동서대학교산학협력단 컴퓨터그래픽 툴에 의한 캐릭터 모델링 기반 3d 디지털액터 영상 구현방법
KR20200027004A (ko) 2017-07-21 2020-03-11 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 게임 렌더링 방법, 및 게임 자원 파일 생성 방법, 장치, 및 기기

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
나무위키, "카툰 렌더링", https://namu.wiki/, 2020.04.18.* *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112819941A (zh) * 2021-03-05 2021-05-18 网易(杭州)网络有限公司 渲染水体面的方法、装置、设备和计算机可读存储介质
CN112819941B (zh) * 2021-03-05 2023-09-12 网易(杭州)网络有限公司 渲染水体面的方法、装置、设备和计算机可读存储介质
CN112891946A (zh) * 2021-03-15 2021-06-04 网易(杭州)网络有限公司 游戏场景生成方法和装置、可读存储介质、电子设备
CN112891946B (zh) * 2021-03-15 2024-05-28 网易(杭州)网络有限公司 游戏场景生成方法和装置、可读存储介质、电子设备
KR102325647B1 (ko) 2021-08-04 2021-11-12 파이어슈라이크게임즈 주식회사 라이트맵 기반 모바일 게임의 3d 객체 데이터 처리 방법, 장치 및 시스템
WO2024082753A1 (zh) * 2022-10-21 2024-04-25 网易(杭州)网络有限公司 游戏指示器的生成方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
KR102173546B1 (ko) 게임 객체 렌더링 방법 및 장치
US11037274B2 (en) Denoising Monte Carlo renderings using progressive neural networks
US11538216B2 (en) Dynamically estimating light-source-specific parameters for digital images using a neural network
US10665011B1 (en) Dynamically estimating lighting parameters for positions within augmented-reality scenes based on global and local features
Nalbach et al. Deep shading: convolutional neural networks for screen space shading
US10692277B1 (en) Dynamically estimating lighting parameters for positions within augmented-reality scenes using a neural network
US7953275B1 (en) Image shader for digital image modification
US8019182B1 (en) Digital image modification using pyramid vignettes
CN110599574A (zh) 游戏场景的渲染方法、装置及电子设备
WO2023066121A1 (zh) 三维模型的渲染
CN106898040A (zh) 虚拟资源对象渲染方法和装置
CN107886552A (zh) 贴图处理方法和装置
CN112819941A (zh) 渲染水体面的方法、装置、设备和计算机可读存储介质
Marques et al. Deep spherical harmonics light probe estimator for mixed reality games
CN113888398B (zh) 头发渲染方法、装置及电子设备
Mirbauer et al. SkyGAN: Towards Realistic Cloud Imagery for Image Based Lighting.
US11087525B2 (en) Unsupervised learning of three dimensional visual alphabet
CN107492143A (zh) 控制图像合成中的补块使用
CN116894922A (zh) 一种基于实时图形引擎的夜视图像生成方法
CN116758208A (zh) 全局光照渲染方法、装置、存储介质及电子设备
CN116664422A (zh) 图像高光处理方法、装置、电子设备及可读存储介质
US20180005432A1 (en) Shading Using Multiple Texture Maps
CN117078838B (zh) 一种对象渲染方法、装置、存储介质及电子设备
CN117649477B (zh) 图像处理方法、装置、设备以及存储介质
US11948274B1 (en) Deep learned super resolution for feature film production

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant