KR102384304B1 - 렌더링 방법 및 이를 수행하는 렌더링 장치 - Google Patents

렌더링 방법 및 이를 수행하는 렌더링 장치 Download PDF

Info

Publication number
KR102384304B1
KR102384304B1 KR1020190085396A KR20190085396A KR102384304B1 KR 102384304 B1 KR102384304 B1 KR 102384304B1 KR 1020190085396 A KR1020190085396 A KR 1020190085396A KR 20190085396 A KR20190085396 A KR 20190085396A KR 102384304 B1 KR102384304 B1 KR 102384304B1
Authority
KR
South Korea
Prior art keywords
albedo
assembly element
virtual
transmission
transparent
Prior art date
Application number
KR1020190085396A
Other languages
English (en)
Other versions
KR20210008992A (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 KR1020190085396A priority Critical patent/KR102384304B1/ko
Priority to US17/627,071 priority patent/US20220277507A1/en
Priority to PCT/EP2020/069549 priority patent/WO2021009044A1/en
Priority to CN202080050569.2A priority patent/CN114097000A/zh
Priority to EP20743979.5A priority patent/EP4000045A1/en
Publication of KR20210008992A publication Critical patent/KR20210008992A/ko
Priority to KR1020220041610A priority patent/KR102505114B1/ko
Application granted granted Critical
Publication of KR102384304B1 publication Critical patent/KR102384304B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • G06T5/70
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency

Abstract

본 발명은 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법으로, 상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라를 가상 공간 상에 배치하는 단계; 상기 가상 카메라로부터 가상 레이를 출사하는 단계; 및 상기 가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 단계;를 포함한다.

Description

렌더링 방법 및 이를 수행하는 렌더링 장치{RENDERING METHOD AND RENDERING DEVICE PERFORMING THE SAME}
본 발명은 이미지를 생성하는 렌더링 방법에 관한 것으로, 보다 상세하게는 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법 및 이를 수행하는 렌더링 장치에 관한 것이다.
레고 등과 같은 조립식 완구는 수십 년 동안 장난감으로서 많은 사랑을 받아왔다. 조립식 완구는 표준화되고 상호 호환성이 높은 여러 조립 엘리먼트를 조립하여 다양한 형상의 완구를 만들 수 있어 어린 아이들은 물론, 성인들까지도 높은 인기를 얻고 있다.
한편 완성된 조립식 완구의 3D 실사화 이미지를 디스플레이 장치를 통해 사용자에게 보여주는 서비스에 대한 수요가 증가하고 있다. 또한, 그래픽 카드 기술 발전에 힘입어 레이 트레이싱을 이용한 조립식 완구의 실시간 3D 이미지 생성에 대한 연구가 활발히 진행되고 있는 실정이다.
본 발명의 일 과제는, 투명 조립 엘리먼트를 포함하는 조립식 완구에 관한 이미지 생성 방법을 제공하는 것이다.
본 발명의 다른 일 과제는, 투명 조립 엘리먼트 뒤편의 다른 조립 엘리먼트를 선명하게 렌더링하는 방법을 제공하는 것이다.
본 발명의 또 다른 일 과제는, 레이 트레이싱 연산량 증가를 방지하는 렌더링 방법을 제공하는 것이다.
본 발명의 또 다른 일 과제는, 밀키 또는 펄 재질을 갖는 조립 엘리먼트를 효과적으로 렌더링하는 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 과제가 상술한 과제로 제한되는 것은 아니며, 언급되지 아니한 과제들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따르면, 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법으로, 상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라를 가상 공간 상에 배치하는 단계; 상기 가상 카메라로부터 가상 레이를 출사하는 단계; 및 상기 가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 단계;를 포함하되, 상기 판단하는 단계는, 상기 가상 레이가 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트와 충돌하는 경우: 상기 제1 투명 조립 엘리먼트의 투과 알베도 및 상기 제2 투명 조립 엘리먼트의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하는 단계, 상기 제1 투명 조립 엘리먼트의 반사 알베도 및 상기 제2 투명 조립 엘리먼트의 반사 알베도 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 반사 알베도를 최종 반사 알베도로 획득하는 단계, 및 상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 상기 픽셀 값을 판단하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법이 제공될 수 있다.
본 발명의 다른 일 양상에 따르면, 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법으로, 상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라를 가상 공간 상에 배치하는 단계; 상기 가상 카메라로부터 가상 레이를 출사하는 단계; 상기 가상 레이가 제1 조립 엘리먼트 및 제2 조립 엘리먼트와 충돌하는 이벤트를 감지하는 단계 - 상기 가상 레이는 상기 제1 조립 엘리먼트와 충돌한 후 상기 제2 조립 엘리먼트와 충돌함 -; 및 상기 제1 조립 엘리먼트가 투명 조립 엘리먼트인 경우, 상기 제1 조립 엘리먼트의 투과 알베도 및 반사 알베도에 기초하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 단계;를 포함하는 렌더링 방법이 제공될 수 있다.
본 발명의 과제의 해결 수단이 상술한 해결 수단들로 제한되는 것은 아니며, 언급되지 아니한 해결 수단들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 의하면, 투명 조립 엘리먼트를 포함하는 조립식 완구에 관한 이미지 생성할 수 있다.
또 본 발명에 의하면, 투명 조립 엘리먼트 뒤편의 다른 조립 엘리먼트를 선명하게 렌더링할 수 있다.
또 본 발명에 의하면, 레이 트레이싱 연산량 증가를 방지하며 렌더링할 수 있다.
또 본 발명에 의하면, 밀키 또는 펄 재질을 갖는 조립 엘리먼트를 효과적으로 렌더링할 수 있다.
본 발명의 효과가 상술한 효과들로 제한되는 것은 아니며, 언급되지 아니한 효과들은 본 명세서 및 첨부된 도면으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확히 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 렌더링 시스템(1000)에 관한 도면이다.
도 2는 본 발명의 일 실시예에 따른 레이 트레이싱 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 노이즈 처리 동작을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 노이즈 처리 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 다른 일 실시예에 따른 노이즈 처리 동작을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 투과 알베도를 누적하는 방법을 설명하기 위한 순서도이다.
도 7은 조립 엘리먼트 간의 다중 반사를 도시한 도면이다.
도 8은 일 실시예에 따른 가상 레이 드랍 방법을 설명하기 위한 그래프이다.
도 9는 다른 일 실시예에 따른 가상 레이 드랍 방법을 설명하기 위한 그래프이다.
도 10은 일 실시예에 따라 렌더링된 제1 이미지를 나타내는 도면이다.
도 11은 도 10의 제1 이미지(M1)로부터 제1 이미지(M1)의 픽셀값이 조절된 제2 이미지(M2)를 나타내는 도면이다.
도 12는 도 10의 제1 이미지(M1)로부터 제1 이미지(M1)의 픽셀값이 클램핑된 제3 이미지(M3)를 나타내는 도면이다.
도 13은 조립 엘리먼트에서의 subscattering 현상을 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 렌더링 방법을 설명하기 위한 도면이다.
본 명세서에 기재된 실시예는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 사상을 명확히 설명하기 위한 것이므로, 본 발명이 본 명세서에 기재된 실시예에 의해 한정되는 것은 아니며, 본 발명의 범위는 본 발명의 사상을 벗어나지 아니하는 수정예 또는 변형예를 포함하는 것으로 해석되어야 한다.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하여 가능한 현재 널리 사용되고 있는 일반적인 용어를 선택하였으나 이는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자의 의도, 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 다만, 이와 달리 특정한 용어를 임의의 의미로 정의하여 사용하는 경우에는 그 용어의 의미에 관하여 별도로 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가진 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 한다.
본 명세서에 첨부된 도면은 본 발명을 용이하게 설명하기 위한 것으로 도면에 도시된 형상은 본 발명의 이해를 돕기 위하여 필요에 따라 과장되어 표시된 것일 수 있으므로 본 발명이 도면에 의해 한정되는 것은 아니다.
본 명세서에서 본 발명에 관련된 공지의 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에 이에 관한 자세한 설명은 필요에 따라 생략하기로 한다.
일 실시예에 따르면, 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법으로, 상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라를 가상 공간 상에 배치하는 단계; 상기 가상 카메라로부터 가상 레이를 출사하는 단계; 및 상기 가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 단계;를 포함하되, 상기 판단하는 단계는, 상기 가상 레이가 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트와 충돌하는 경우: 상기 제1 투명 조립 엘리먼트의 투과 알베도 및 상기 제2 투명 조립 엘리먼트의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하는 단계, 상기 제1 투명 조립 엘리먼트의 반사 알베도 및 상기 제2 투명 조립 엘리먼트의 반사 알베도 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 반사 알베도를 최종 반사 알베도로 획득하는 단계, 및 상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 상기 픽셀 값을 판단하는 단계를 포함하는 것을 특징으로 하는 렌더링 방법이 제공될 수 있다.
다른 일 실시예에서, 상기 제1 투명 조립 엘리먼트가 제1 면 및 제2 면을 포함하는 경우, 상기 최종 투과 알베도를 획득하는 단계는, 상기 제1 면의 투과 알베도 및 상기 제2 면의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하는 단계를 포함할 수 있다.
또 다른 일 실시예에서, 상기 먼저 만난 투명 조립 엘리먼트가 제1 면 및 제2 면을 포함하는 경우, 상기 최종 반사 알베도를 획득하는 단계는, 상기 제1 면 및 상기 제2 면 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 면의 반사 알베도를 최종 반사 알베도로 획득하는 단계를 포함할 수 있다.
또 다른 일 실시예에서, 상기 픽셀 값을 판단하는 단계는 상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 최종 알베도를 산출하는 단계를 포함할 수 있다.
또 다른 일 실시예에서, 상기 최종 알베도는 상기 최종 투과 알베도에 상기 최종 반사 알베도가 곱해진 값에 기초하여 산출될 수 있다.
또 다른 일 실시예에서, 상기 픽셀 값을 판단하는 단계는 상기 제1 투명 조립 엘리먼트 및 상기 제2 투명 조립 엘리먼트 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 노말 및 깊이 값에 기초하여 상기 픽셀 값을 판단할 수 있다.
또 다른 일 실시예에서, 상기 제1 투명 조립 엘리먼트의 거칠기 및 상기 제2 투명 조립 엘리먼트의 거칠기를 누적하는 단계; 및 상기 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 최종 투과 알베도 획득을 중단하는 단계;를 더 포함할 수 있다.
또 다른 일 실시예에서, 상기 미리 정해진 거칠기는 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 첫 번째로 충돌하는 투명 조립 엘리먼트가 상기 제1 투명 조립 엘리먼트이고, 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 두 번째로 충돌하는 투명 조립 엘리먼트가 상기 제2 투명 조립 엘리먼트인 경우, 상기 제1 투명 조립 엘리먼트의 제1 거칠기 및 상기 제2 투명 조립 엘리먼트의 제2 거칠기에 기초하여 정해질 수 있다.
또 다른 일 실시예에서, 상기 미리 정해진 거칠기는 상기 제1 거칠기 및 상기 제2 거칠기의 중간값이 될 수 있다.
또 다른 일 실시예에서, 상기 가상 레이가 투명 조립 엘리먼트와 충돌하는 회수를 누적하는 단계; 및 상기 누적된 회수가 미리 정해진 회수 이상인 경우, 상기 최종 투과 알베도 획득을 중단하는 단계;를 더 포함할 수 있다.
또 다른 일 실시예에 따르면, 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법으로, 상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라를 가상 공간 상에 배치하는 단계; 상기 가상 카메라로부터 가상 레이를 출사하는 단계; 상기 가상 레이가 제1 조립 엘리먼트 및 제2 조립 엘리먼트와 충돌하는 이벤트를 감지하는 단계 - 상기 가상 레이는 상기 제1 조립 엘리먼트와 충돌한 후 상기 제2 조립 엘리먼트와 충돌함 -; 및 상기 제1 조립 엘리먼트가 투명 조립 엘리먼트인 경우, 상기 제1 조립 엘리먼트의 투과 알베도 및 반사 알베도에 기초하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 단계;를 포함하는 렌더링 방법이 제공될 수 있다.
또 다른 일 실시예에서, 상기 픽셀 값을 판단하는 단계는 상기 제2 조립 엘리먼트의 투과 알베도를 고려하여 상기 픽셀 값을 판단할 수 있다.
또 다른 일 실시예에서, 상기 픽셀 값을 판단하는 단계는 상기 제1 투과 알베도 및 상기 제2 투과 알베도를 누적하여 산출되는 최종 투과 알베도에 기초하여 상기 픽셀 값을 판단할 수 있다.
또 다른 일 실시예에서, 상기 최종 투과 알베도는 상기 제1 투과 알베도 및 상기 제2 투과 알베도를 누적한 값에 상기 제1 조립 엘리먼트의 반사 알베도를 곱하여 산출될 수 있다.
또 다른 일 실시예에서, 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)의 특성 정보가 저장된 저장부 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 -; 및 상기 저장부에 저장된 상기 특성 정보를 고려하여 상기 복수의 조립 엘리먼트들이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 제어부;를 포함하되, 상기 제어부는, 상기 가상 공간에 배치되고 상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라로부터 출사되는 가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 상기 투과 알베도 및 상기 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하고, 상기 가상 레이가 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트와 충돌하는 경우: 상기 제1 투명 조립 엘리먼트의 투과 알베도 및 상기 제2 투명 조립 엘리먼트의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하고, 상기 제1 투명 조립 엘리먼트의 반사 알베도 및 상기 제2 투명 조립 엘리먼트의 반사 알베도 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 반사 알베도를 최종 반사 알베도로 획득하고, 상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 상기 픽셀 값을 판단하는 렌더링 장치가 제공될 수 있다.
또 다른 일 실시예에서, 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 기록 매체로서, 가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 상기 가상 레이가 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트와 충돌하는 경우: 상기 제1 투명 조립 엘리먼트의 투과 알베도 및 상기 제2 투명 조립 엘리먼트의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하는 프로그램 코드, 상기 제1 투명 조립 엘리먼트의 반사 알베도 및 상기 제2 투명 조립 엘리먼트의 반사 알베도 중 상기 가상 레이가 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 반사 알베도를 최종 반사 알베도로 획득하는 프로그램 코드, 및 상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 상기 픽셀 값을 판단하는 프로그램 코드를 포함하는 것을 특징으로 하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 기록 매체가 제공될 수 있다.
본 명세서에서는 가상으로 조립 엘리먼트를 연결해 만들어진 조립식 완구에 관한 이미지를 생성하는 방법 내지는 가상 공간에서 만들어진 조립식 완구를 실사 형태로 렌더링하는 방법 및 컴퓨터 프로그램 제품에 관하여 기술한다.
3D 렌더링(3-Dimensional Rendering)은 3차원 모델 데이터를 카메라 시점에서 보이는 영상으로 합성해주는 영상 처리를 말한다. 렌더링 방법은 3차원 모델을 화면에 투영하면서 영상을 생성하는 래스터화 방법과 카메라 시점에서 영상의 각 픽셀을 향한 광선을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 레이 트레이싱(ray tracing) 방법 등이 있다.
본 명세서에서 상술한 사항들은 조립식 완구나 조립 엘리먼트를 가상으로 구현한 가상 공간 상에서 수행될 수 있다. 예를 들어, 본 명세서는 사용자가 실제의 조립 엘리먼트를 모사한 가상의 조립 엘리먼트를 배치하거나 이들을 연결하여 원하는 디자인의 조립식 완구를 미리 만들어볼 수 있는 가상 공간이 제공될 수 있다.
이하에서는 본 명세서에서 사용되는 용어에 대하여 정의하기로 한다.
"가상 공간(virtual space)"은 상술한 바와 같이 실제 공간에서 수행되는 조립식 완구를 만드는 행위 또는 조립 엘리먼트를 연결하는 행위가 가상으로 수행될 수 있는 공간을 의미한다. 이러한 가상 공간은 컴퓨터나 이와 유사한 장비를 통해 구현될 수 있으며, 디스플레이를 비롯한 시각적 인터페이스를 통해 사용자에게 이미지로 보여질 수 있다.
가상 공간에는 조립 엘리먼트가 위치될 수 있다. 또 가상 공간에서는 가상 공간에 위치하는 조립 엘리먼트들이 서로 연결될 수 있다. 이러한 가상 공간을 이용함으로써, 사용자는 실제공간에서 직접 조립 엘리먼트를 다룰 때 발생하는 시행 착오나 어려움을 줄이고 미리 원하는 디자인의 조립식 완구를 조립해 볼 수 있다.
가상 공간은 삼차원 공간으로 제공되며 이에 따라 3차원 좌표를 가질 수 있다. 따라서, 가상 공간 상에는 조립 엘리먼트가 3차원 좌표 상의 특정한 위치에 배치될 수 있게 된다. 이에 따라 조립 엘리먼트의 가상 공간 상에서의 위치를 지시하는 조립 엘리먼트의 위치 데이터가 제공될 수 있다. 한편, 조립 엘리먼트는 가상 공간 상에서 특정한 자세를 가질 수 있다. 이에 따라 조립 엘리먼트의 가상 공간 상에서의 자세를 지시하는 조립 엘리먼트의 자세 데이터가 제공될 수 있다.
한편, 가상 공간에는 가상 카메라가 위치할 수 있다. 가상 카메라는 가상 공간에 배치된 조립 엘리먼트 또는 조립식 완구를 향해 가상 레이를 출사하거나, 가상 광원으로부터 출사된 가상 레이를 획득할 수 있다. 가상 카메라는 가상 공간 상에서 진행되는 가상 레이의 원점이 될 수 있다. 또는, 가상 카메라는 가상 공간 상의 기준 시점이 될 수 있다.
도 1은 본 발명의 일 실시예에 따른 렌더링 시스템(1000)에 관한 도면이다.
도 1을 참조하면, 시스템(1000)은 콘트롤러(100) 및 메모리(200)를 포함할 수 있다. 콘트롤러(100)는 레이 트레이싱 유닛(110) 및 노이즈 처리 유닛(120)을 포함할 수 있다.
콘트롤러(100)는 각종 정보의 처리와 연산을 수행하고, 시스템(1000)을 구성하는 다른 구성 요소를 제어할 수 있다. 콘트롤러(100)는 물리적으로는 전기 신호를 처리하는 전자 회로 형태로 제공될 수 있다. 시스템(1000)은 물리적으로 단일한 콘트롤러(100)만을 포함할 수도 있으나, 이와 달리 복수의 콘트롤러(100)를 포함할 수도 있다. 예를 들어, 콘트롤러(100)는 하나의 개인용 컴퓨터에 탑재되는 하나 또는 복수의 프로세서(processor)일 수 있다. 다른 예를 들어, 콘트롤러(100)는 물리적으로 이격된 서버(server)와 터미널(terminal)에 탑재되어 통신을 통해 협업하는 프로세서들로 제공될 수도 있다.
상술한 가상 공간의 구현, 가상 공간 상에서 이루어지는 조립 엘리먼트의 배치나 조립 엘리먼트의 연결을 비롯하여 후술될 레이 트레이싱 및 노이즈 처리 등을위한 각종 단계와 동작들은 콘트롤러(100)에 의해 수행될 수 있다. 또 메모리(200)에 각종 데이터를 저장하거나 메모리(200)로부터 각종 데이터를 획득하는 동작 등이 콘트롤러(100)의 제어에 의해 수행될 수 있다. 이하에서는 본 명세서의 실시예로 개시되는 각종 동작이나 단계들은 별도의 언급이 없는 이상 콘트롤러(100)에 의해 수행되는 것으로 해석될 수 있다.
레이 트레이싱 유닛(110)은 레이 트레이싱 또는 광선 추적 동작을 수행할 수 있다. 여기서, 레이 트레이싱(ray tracing) 동작이란 소정의 오브젝트에 관한 이미지를 생성하기 위해 가상 레이를 추적하는 동작으로, 가상 공간에 배치되는 광원으로부터 가상 카메라로 입사되는 레이를 추적하는 정방향 광선추적 동작, 및 상기 가상 카메라로부터 출사되어 광원까지 도달하는 가상 레이를 추적하는 역방향 광선추적 동작을 의미할 수 있다. 이하에서는 설명의 편의상 역방향 광선추적 동작을 중심으로 설명하기로 한다.
레이 트레이싱 과정에서는 가상 레이가 충돌하는 오브젝트에 관한 특성을 수집하는 동작이 수행될 수 있다. 레이 트레이싱 과정에서는 셰이딩(shading), 클리핑(clipping), 은면 처리(hidden surface) 등의 동작이 수행될 수 있다.
노이즈 처리 유닛(120)은 레이 트레이싱 유닛(110)을 통해 획득되는 이미지 데이터를 보정할 수 있다. 예컨대, 노이즈 처리 유닛(120)은 상기 이미지 데이터에 포함되는 색상 데이터 및 밝기 데이터를 보정할 수 있다.
메모리(200)에는 각종 정보가 제공될 수 있다. 예를 들어, 메모리(200)에는 가상 공간에 배치되는 조립 엘리먼트의 좌표를 지시하는 위치 데이터나 가상 공간에 배치된 조립 엘리먼트의 자세를 지시하는 자세 데이터가 저장될 수 있다. 다른 예로, 메모리(14)에는 후술될 레이 트레이싱 동작을 통해 획득된 이미지 데이터에 대한 노이즈 처리에 이용되는 디노이징 데이터가 저장될 수도 있다. 메모리(200)에 저장된 정보들은 콘트롤러(100)가 각종 동작을 수행하는데 이용될 수 있다. 본 명세서에서 메모리(200)는 램 등과 같은 휘발성 메모리나 하드 디스크나 플래쉬 디스크 등과 같은 비휘발성 메모리를 모두 포함하는 포괄적인 개념으로 해석되어야 한다.
콘트롤러(100)는 메모리(200)에 저장된 데이터를 이용하여 가상 공간에 배치된 조립 엘리먼트에 관한 이미지 데이터를 획득할 수 있다. 예컨대, 메모리(200)에는 조립 엘리먼트의 특징 정보가 저장될 수 있다. 상기 특징 정보는 가상 레이의 색상, depth, normal을 포함할 수 있다. 또는, 상기 특징 정보는 가상 공간에 배치된 오브젝트의 투과 알베도, 반사 알베도, 표면 거칠기를 포함할 수 있다.
콘트롤러(100)는 레이 트레이싱 동작을 통해 획득되는 데이터를 메모리(200)에 저장 또는 갱신할 수 있다. 상기 획득되는 데이터는 상기 특징 정보에 대응될 수 있다.
렌더링 시스템(1000)은 그래픽 카드, 그 외 다양한 형태의 칩으로 구현될 수 있다.
도 2는 본 발명의 일 실시예에 따른 레이 트레이싱 동작을 설명하기 위한 도면이다.
도 2를 참조하면, 가상 공간 상에는 가상 카메라(10), 광원(14) 및 조립식 완구(20)각 배치될 수 있다.
가상 카메라(10)는 화면(11)의 각 픽셀에 대하여 가상 레이(13)를 생성 또는 출사할 수 있다. 가상 카메라(10)는 상기 각 픽셀마다 복수의 가상 레이를 생성 또는 출사할 수 있다. 예를 들어, 가상 카메라(10)는 픽셀A(12)에 대하여 N개의 가상 레이를 생성 또는 출사할 수 있다. 상기 생성 또는 출사되는 가상 레이의 수가 많을수록 레이 트레이싱 연산량이 증가하는 반면, 노이즈가 감소할 수 있다.
화면(11)의 각 픽셀은 서브 픽셀들을 포함할 수 있다. 예를 들어, 픽셀A(12)는 복수의 서브 픽셀들을 포함할 수 있다. 픽셀A(12)의 영역은 복수의 서브 픽셀로 분할될 수 있다.
가상 카메라(10)는 상기 복수의 서브 픽셀 중 적어도 일부에 가상 레이(13)를 생성 또는 출사할 수 있다. 상기 적어도 일부는 랜덤하게 정해질 수 있다.
상기 복수의 서브 픽셀 중 가상 레이(13)가 생성 또는 출사되는 서브 픽셀 수가 많아질수록 레이 트레이싱 노이즈가 감소할 수 있다.
화면(11)은 복수의 픽셀을 포함할 수 있다. 예를 들어, 3 x 4의 12개의 픽셀을 포함할 수 있다. 이는 일 예시에 불과하며 화면(11)은 다양한 형태로, 다양한 개수를 갖도록 제공될 수 있다.
화면(11)은 사용자에게 디스플레이되는 이미지에 대응될 수 있다. 예를 들어, 화면(11)의 각 픽셀은 상기 이미지의 픽셀에 일대일 대응하거나, 또는 일대다 대응될 수 있다.
가상 레이(13)는 조립식 완구(20)와 충돌할 수 있다. 가상 레이(13)는 조립식 완구(20)와 충돌 후 광원(14)에 도달할 수 있다. 콘트롤러(100)는 상기 충돌 이벤트 및 도달 이벤트를 감지할 수 있다. 콘트롤러(100)는 상기 광원(14)으로 도달한 레이의 수를 획득할 수 있다.
콘트롤러(100)는 광원(14)에 도달한 레이의 수에 기초하여 이미지의 픽셀값을 산출할 수 있다. 예를 들어, 가상 카메라(10)로부터 픽셀A(12)로 N개의 가상 레이가 출사된 경우, 상기 N보다 작은 M개의 가상 레이가 광원(14)에 도달할 수 있다. 이 때, 콘트롤러(100)는 상기 N 및 M값을 고려하여 상기 이미지의 픽셀값을 산출할 수 있다. 가상 카메라(10)로부터 출사된 가상 레이의 수 대비 광원(14)으로 도달한 가상 레이의 수가 많을수록 해당 픽셀값의 크기가 클 수 있다.
한편, 상기 콘트롤러(100)의 동작은 레이 트레이싱 유닛(110)에 의해 수행될 수 있다. 또한, 설명의 편의상 픽셀A(12)를 통과한 가상 레이에 대하여만 설명하였으나, 화면(11)의 다른 픽셀을 통과하는 가상 레이에 대하여도 상술한 사항들이 그대로 적용될 수 있음은 물론이다.
조립식 완구(20)는 다양한 형태로 제공될 수 있다. 예를 들어, 조립식 완구(20)는 스터드를 포함하는 블록형태로 제공되거나 기타 다양한 형태로 제공될 수 있다. 조립식 완구(20)는 복수의 조립 엘리먼트들을 포함할 수 있다.
조립식 완구(20)의 특성(형상, 재질, 색상 등을 포함) 및 위치에 따라 광원(14)으로 도달하는 가상 레이(13)의 수가 달라질 수 있다.
상술한 가상 카메라(10), 광원(14) 및 조립식 완구(20)에 관한 데이터는 메모리(200)에 저장될 수 있다. 상기 데이터는 가상 카메라(10), 광원(14) 및 조립식 완구(20)에 대한 각각의 위치 데이터 및 특징 데이터를 포함할 수 있다.
콘트롤러(100)는 메모리(200)에 저장된 상기 가상 카메라(10), 광원(14) 및 조립식 완구(20)에 관한 데이터에 기초하여 이미지의 픽셀값을 산출할 수 있다.
한편, 샘플링 되는 가상 레이(13)의 수가 증가할수록 레이 트레이싱 전체 연산량은 증가하므로, 가상 레이의 샘플링 수를 줄이고 레이 트레이싱 과정에서 획득되는 오브젝트들의 특성을 이용하여 레이 트레이싱을 통해 획득되는 이미지 데이터를 보정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 노이즈 처리 동작을 설명하기 위한 도면이다.
도 3을 참조하면, 가상 공간 상에 가상 카메라(10), 광원(14), 조립식 완구(20)가 제공될 수 있다.
조립식 완구(20)는 복수의 조립 엘리먼트들을 포함할 수 있다. 제1 조립 엘리먼트(21) 및 제2 조립 엘리먼트(22)는 투명 조립 엘리먼트로 제공될 수 있다. 여기서, 상기 투명 조립 엘리먼트란 가상 레이가 투과 또는 통과할 수 있는 조립 엘리먼트를 의미할 수 있다. 또는, 가시광에 대한 투과율이 소정의 범위 이상으로, 육안으로 그 뒤편에 배치되는 다른 조립 엘리먼트 또는 오브젝트를 볼 수 있을 정도의 광 투과율 갖는 조립 엘리먼트를 의미할 수 있다.
가상 카메라(10)로부터 출사 또는 생성된 가상 레이(13)는 제1 조립 엘리먼트(21) 및 제2 조립 엘리먼트(22)를 투과하여 광원(14)에 도달할 수 있다. 상기 가상 레이(13)는 복수의 교차점(15, intersection point)을 지나 광원(14)에 도달할 수 있다.
콘트롤러(100)는 상기 교차점(15)을 포함하는 조립 엘리먼트들의 특징 데이터를 획득할 수 있다. 상기 특징 데이터는 depth, normal, 투과 알베도(albedo), 반사 알베도(albedo) 및 거칠기(roughness)를 포함할 수 있다.
콘트롤러(100)는 상기 특징 데이터를 메모리(200)로부터 획득할 수 있다.
노이즈 처리 유닛(120)은 상기 교차점(15)에서의 제1 조립 엘리먼트(21) 및 제2 조립 엘리먼트(22)의 특징 데이터를 획득할 수 있다. 노이즈 처리 유닛(120)은 상기 획득된 특징 데이터를 이용하여 레이 트레이싱을 통해 생성된 이미지 데이터를 보정하거나, 레이 트레이싱 과정에서 발생하는 노이즈를 제거할 수 있다. 또는, 노이즈 처리 유닛(120)은 상기 획득된 데이터를 이용하여 이미지 데이터를 생성할 수 있다.
한편, 노이즈 처리 유닛(120)은 상기 획득된 특징 데이터를 이용하여 다양 한 방법으로 이미지 데이터를 생성할 수 있다.
도 4는 본 발명의 일 실시예에 따른 노이즈 처리 동작을 설명하기 위한 도면이다.
도 4 를 참조하면, 가상 카메라(10)로부터 출사된 가상 레이(13)는 제3 조립 엘리먼트(23)를 투과하여 광원(14)에 도달할 수 있다. 가상 카메라(10)는 제3 조립 엘리먼트(23)와 충돌하는 제1 면(24) 및 제2 면(25)을 각각 통과할 수 있다.
제3 조립 엘리먼트(23)는 상기 투명 조립 엘리먼트로 제공될 수 있다.
노이즈 처리 유닛(120)은 레이 트레이싱 동작을 통해 획득되는 제1 이미지 데이터에 기초하여 제3 조립 엘리먼트(23), 제1 면(24) 및 제2 면(25)의 특징 데이터를 이용하여 제2 이미지 데이터를 생성할 수 있다.
예를 들어, 노이즈 처리 유닛(120)은 가상 레이(13)가 충돌하는 최초면인 제1 면(24)의 depth 및 normal 정보를 이용하여 상기 제2 이미지 데이터를 생성할 수 있다. 즉, 노이즈 처리 유닛(120)은 상기 제2 이미지 데이터를 생성함에 있어서 제2 면(25)의 depth 및 normal 정보는 이용하지 않을 수 있다. 이는, depth 및 normal 정보는 일관성을 유지하면서 여러 면의 정보를 하나의 값으로 산출되기 어렵기 때문이다.
이에 따라, 이미지 데이터 생성을 위해 필요한 전체 연산량이 감소할 수 있다.
노이즈 처리 유닛(120)은 제3 조립 엘리먼트(23)의 반사 알베도를 이용하여 상기 제2 이미지 데이터를 생성할 수 있다.
예를 들어, 노이즈 처리 유닛(120)은 제1 면(24)의 반사 알베도를 이용하여 상기 제2 이미지 데이터를 생성할 수 있다. 즉, 노이즈 처리 유닛(120)은 상기 제2 이미지 데이터를 생성함에 있어서 제2 면(25)의 반사 알베도는 이용하지 않고 제1 면(24)의 반사 알베도만을 이용할 수 있다. 제1 면(24)의 반사 알베도가 최종 반사 알베도가 될 수 있다. 이는, 가상 레이가 충돌하는 최초 면의 반사 알베도가 실제 렌더링 결과에서의 특징이 될 가능성이 높기 때문이다.
이에 따라, 이미지 데이터 생성을 위해 필요한 전체 연산량이 감소할 수 있다. 상기 제2 이미지 데이터 산출을 위해 가상 레이가 충돌하는 최초 면을 제외한 다른 면에서의 반사 알베도값은 고려될 필요가 없기 때문이다.
한편, 노이즈 처리 유닛(120)은 상기 제1 이미지 데이터의 노이즈를 최소화하기 위해 제1 면(24) 및 제2 면(25)의 반사 알베도를 모두 이용하여 상기 제2 이미지 데이터를 생성할 수도 있다. 제1 면(24)의 반사 알베도 및 제2 면(25)의 반사 알베도를 합산하여 최종 반사 알베도가 산출될 수 있다.
노이즈 처리 유닛(120)은 제3 조립 엘리먼트(23)의 투과 알베도를 이용하여 상기 제2 이미지 데이터를 생성할 수 있다.
예를 들어, 노이즈 처리 유닛(120)은 제1 면(24)의 제1 투과 알베도 및 제2 면(25)의 제2 투과 알베도를 이용하여 상기 제2 이미지 데이터를 생성할 수 있다. 노이즈 처리 유닛(120)은 상기 제1 투과 알베도 및 상기 제2 투과 알베도를 누적하여 최종 투과 알베도를 산출할 수 있다.
노이즈 처리 유닛(120)은 상기 제1 투과 알베도 및 상기 제2 투과 알베도에 각각 가중치를 곱하여 누적하여 상기 최종 투과 알베도를 산출할 수 있다. 상기 제1 투과 알베도에 곱해지는 가중치 및 상기 제2 투과 알베도에 곱해지는 가중치는 상이하거나 동일할 수 있다.
상기 최종 반사 알베도 및 상기 최종 투과 알베도를 기초로 최종 알베도가 산출될 수 있다. 예를 들어, 상기 최종 알베도는 상기 최종 반사 알베도 및 상기 최종 투과 알베도 각각에 대해 소정의 계수가 곱해진 값들을 합한 값일 수 있다. 여기서 소정의 계수는 프레넬(Fresnel) 계수가 될 수 있다.
상기 최종 알베도 산출에 이용되는 최종 투과 알베도는 상기 제1 투과 알베도 및 상기 제2 투과 알베도를 누적한 값에 상기 최종 반사 알베도를 곱하여 산출될 수 있다.
노이즈 처리 유닛(120)은 상기 최종 알베도, depth, normal값을 기초로 상기 제2 이미지 데이터를 생성할 수 있다.
한편, 상기 제2 이미지 데이터 생성 시 사용되는 제1 면(24)의 데이터 및 제 2면(25)의 데이터의 종류는 상이할 수 있다. 예를 들어, 노이즈 처리 유닛(120)은 상기 제1 면(24)의 depth, normal, 반사 알베도 및 투과 알베도 값을 이용하여 상기 제2 이미지 데이터를 생성하되, 상기 제2 면(25)의 투과 알베도를 이용하여 상기 제2 이미지 데이터를 생성할 수 있다.
도 5는 본 발명의 다른 일 실시예에 따른 노이즈 처리 동작을 설명하기 위한 도면이다.
도 5 를 참조하면, 가상 카메라(10)로부터 출사된 가상 레이(13)는 제4 조립 엘리먼트(26)를 투과한 후 제5 조립 엘리먼트(29)를 통과하여 광원(14)에 도달할 수 있다. 가상 카메라(10)는 제4 조립 엘리먼트(26)와 충돌하는 제3 면(27) 및 제4 면(28), 제5 조립 엘리먼트(29)와 충돌하는 제5 면(30) 및 제6 면(31)을 각각 통과할 수 있다.
제4 조립 엘리먼트(26) 및 제5 조립 엘리먼트(29)는 각각 상기 투명 조립 엘리먼트로 제공될 수 있다.
제5 조립 엘리먼트(29)는 제4 조립 엘리먼트(26)를 기준으로 가상 카메라(10)의 반대편에 위치할 수 있다. 따라서, 제5 조립 엘리먼트(29)는 가상 카메라(10)의 시점에서 제4 조립 엘리먼트(26)의 뒤편에 위치할 수 있다.
제5 조립 엘리먼트(29)는 제4 조립 엘리먼트(26)와 이격되어 위치할 수 있다. 또는, 제5 조립 엘리먼트(29)는 제4 조립 엘리먼트(26)와 맞붙어 일 면을 공유할 수 있다.
레이 트레이싱 유닛(110)은 제4 조립 엘리먼트(26) 및 제5 조립 엘리먼트(29)가 포함된 제3 이미지 데이터를 생성할 수 있다. 노이즈 처리 유닛(120)은 제4 조립 엘리먼트(26) 및 제5 조립 엘리먼트(29)의 특징 데이터를 이용하여 상기 제3 이미지 데이터로부터 제4 이미지 데이터를 생성할 수 있다.
이하에서는 상기 제4 이미지 데이터 생성 방법에 대하여 설명한다.
노이즈 처리 유닛(120)은 조립 엘리먼트의 depth, normal, 반사 알베도 및 투과 알베도를 이용하여 이미지 데이터를 생성할 수 있다.
예를 들어, 노이즈 처리 유닛(120)은 가상 레이(13)가 충돌하는 최초면인 제3 면(27)의 depth 및 normal 정보를 이용하여 상기 제4 이미지 데이터를 생성할 수 있다. 즉, 노이즈 처리 유닛(120)은 상기 제4 이미지 데이터를 생성함에 있어서 제4 내지 제6 면(28, 30, 31)의 depth 및 normal 정보는 이용하지 않을 수 있다. 이는, depth 및 normal 정보는 일관성을 유지하면서 여러 면의 정보를 하나의 값으로 산출되기 어렵기 때문이다.
이에 따라, 이미지 데이터 생성을 위해 필요한 전체 연산량이 감소할 수 있다.
노이즈 처리 유닛(120)은 제4 조립 엘리먼트(26)의 반사 알베도를 이용하여 상기 제4 이미지 데이터를 생성할 수 있다.
예를 들어, 노이즈 처리 유닛(120)은 제3 면(27)의 반사 알베도를 이용하여 상기 제4 이미지 데이터를 생성할 수 있다. 즉, 노이즈 처리 유닛(120)은 상기 제4 이미지 데이터를 생성함에 있어서 제4 내지 제6 면(28, 30, 31)의 반사 알베도는 이용하지 않고 제3 면(27)의 반사 알베도만을 이용할 수 있다. 이 때, 최종 반사 알베도는 제3 면(27)의 반사 알베도를 기초로 산출될 수 있다. 이는, 가상 레이가 충돌하는 최초 면의 반사 알베도가 실제 렌더링 결과에서의 특징이 될 가능성이 높기 때문이다.
이에 따라, 이미지 데이터 생성을 위해 필요한 전체 연산량이 감소할 수 있다. 상기 제4 이미지 데이터 산출을 위해 가상 레이가 충돌하는 최초 면을 제외한 다른 면에서의 반사 알베도값은 고려될 필요가 없기 때문이다.
한편, 노이즈 처리 유닛(120)은 상기 제4 이미지 데이터의 노이즈를 최소화하기 위해 제3 내지 제6 면(27, 28, 30, 31)의 반사 알베도를 모두 이용하여 상기 제4 이미지 데이터를 생성할 수도 있다. 또는, 제3 내지 제6 면(27, 28, 30, 31) 중 적어도 두 면의 반사 알베도를 이용하여 상기 제4 이미지 데이터를 생성할 수 있다.
노이즈 처리 유닛(120)은 제4 조립 엘리먼트(26) 및 제 5 조립 엘리먼트(29) 각각의 투과 알베도를 이용하여 상기 제4 이미지 데이터를 생성할 수 있다.
예를 들어, 노이즈 처리 유닛(120)은 제3 면(27)의 제3 투과 알베도, 제4 면(28)의 제4 투과 알베도, 제5 면(30)의 제5 투과 알베도 및 제6 면(31)의 제6 투과 알베도를 이용하여 상기 제4 이미지 데이터를 생성할 수 있다. 노이즈 처리 유닛(120)은 상기 제3 내지 상기 제6 투과 알베도를 합산함으로써 최종 투과 알베도를 산출할 수 있다. 노이즈 처리 유닛(120)은 상기 제3 내지 상기 제6 투과 알베도 각각에 가중치를 곱하여 합산함으로써 누적할 수 있다. 상기 제3 내지 상기 제6 투과 알베도에 각각 곱해지는 가중치 서로 상이하거나 동일할 수 있다.
상기 최종 반사 알베도 및 상기 최종 투과 알베도를 기초로 최종 알베도가 산출될 수 있다. 예를 들어, 상기 최종 알베도는 상기 최종 반사 알베도 및 상기 최종 투과 알베도 각각에 대해 소정의 계수가 곱해진 값들을 합한 값일 수 있다. 여기서 소정의 계수는 프레넬(Fresnel) 계수가 될 수 있다. 다만, 이에 한정되는 것은 아니며 상기 소정의 계수는 다른 계수들을 포함할 수 있다.
상기 최종 알베도 산출에 이용되는 최종 투과 알베도는 상기 제3 내지 상기 제6 투과 알베도를 누적한 값에 상기 최종 반사 알베도를 곱하여 산출될 수 있다.
노이즈 처리 유닛(120)은 상기 최종 알베도를 기초로 상기 제4 이미지 데이터를 생성할 수 있다.
한편, 상기 제4 이미지 데이터 생성 시 사용되는 상기 제3 내지 상기 제 6 면(27, 28, 30, 31)의 데이터의 종류는 상이할 수 있다. 예를 들어, 노이즈 처리 유닛(120)은 상기 제3 면(27)의 depth, normal, 반사 알베도 및 투과 알베도 값을 이용하여 상기 제4 이미지 데이터를 생성하되, 상기 제4 면 내지 제6 면(28, 30, 31)의 투과 알베도를 이용하여 상기 제4 이미지 데이터를 생성할 수 있다.
한편, 가상 레이의 투과 단계가 증가할 때마다 무한정 투과 알베도를 누적할 경우, 조립 엘리먼트의 특징 정보가 복잡해지고 최종 획득되는 이미지 데이터에 의도치 않은 노이즈가 발생할 수 있다.
이하에서는 투과 알베도를 누적하는 방법에 대하여 설명한다.
도 6은 본 발명의 일 실시예에 따른 투과 알베도를 누적하는 방법을 설명하기 위한 순서도이다.
도 6을 참조하면, 투과 알베도 누적 방법은, 가상 카메라가 가상 레이를 출사하는 단계(S100), 상기 가상 레이가 충돌하는 조립 엘리먼트의 투과 알베도 및 거칠기를 획득하는 단계(S200), 상기 획득되는 투과 알베도 및 거칠기를 각각 누적하는 단계(S300), 상기 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우 상기 투과 알베도 획득을 종료하는 단계(S400)를 포함할 수 있다.
이하에서는 각 단계에 대하여 상세히 설명한다.
가상 카메라는 가상 레이를 출사할 수 있다(S100).
가상 카메라는 이미지의 특정 픽셀에 대해 동일한 방향으로 다수의 가상 레이를 출사할 수 있다. 가상 카메라는 이미지의 각각의 픽셀에 대해 각각 다수의 가상 레이를 출사할 수 있다.
콘트롤러(100)는 가상 카메라가 출사하는 가상 레이의 수를 조절할 수 있다.
콘트롤러(100)는 가상 레이가 충돌하는 조립 엘리먼트의 투과 알베도 및 거칠기를 획득하고(S200), 상기 획득되는 투과 알베도 및 거칠기를 각각 누적할 수 있다(S300). 여기서, 상기 거칠기는 오브젝트의 표면 거칠기를 의미할 수 있다. 따라서, 조립 엘리먼트가 복수의 면을 가지는 경우, 콘트롤러(100)는 상기 복수의 면 각각에 대한 거칠기를 획득 및 누적할 수 있다.
콘트롤러(100)는 가상 레이가 조립 엘리먼트와 충돌하는 충돌 이벤트를 감지할 수 있다. 콘트롤러(100)는 상기 충돌 이벤트에 반응하여 상기 가상 레이와 충돌한 조립 엘리먼트의 투과 알베도를 획득할 수 있다. 상술한 바에 따라 상기 획득되는 투과 알베도는 누적될 수 있다.
콘트롤러(100)는 상기 충돌한 조립 엘리먼트의 거칠기를 획득할 수 있다.
콘트롤러(100)는 상기 획득되는 거칠기를 누적할 수 있다. 상기 거칠기의 누적을 위한 별도의 파라미터가 제공될 수 있다.
콘트롤러(100)는 다양한 방법으로 상기 거칠기를 누적할 수 있다. 가상 레이가 충돌하는 면의 거칠기에 가중치를 곱할 수 있다. 상기 가중치는 가상 레이가 충돌하는 면의 순번에 따라 다르게 설정될 수 있다.
콘트롤러(100)는 상기 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 투과 알베도 획득을 종료할 수 있다(S400).
이는, 상기 누적된 거칠기가 소정의 값보다 큰 경우 이미지가 흐릿하게 보여 더 이상 투과 알베도 특징을 고려할 필요가 없기 때문이다.
상기 미리 정해진 거칠기는 다양한 방법으로 정해질 수 있다. 예를 들어, 가상 레이가 충돌하는 첫 번째 면의 제1 거칠기 값 및 상기 가상 레이가 충돌하는 두 번째 면의 제2 거칠기 값의 중간값이 상기 미리 정해진 거칠기로 설정될 수 있다.
한편, 콘트롤러(100)는 상기 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 투과 알베도의 획득은 계속하되 그 누적을 종료할 수 있다.
또는, 콘트롤러(100)는 상기 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 투과 알베도의 획득 및 누적은 유지하되, 이미지 데이터를 생성할 때 상기 획득 및 누적된 투과 알베도를 더 이상 고려하지 않을 수 있다.
이상에서는 콘트롤러(100)가 조립 엘리먼트의 거칠기를 기초로 투과 알베도 획득을 종료하는 것에 대해 설명하였으나, 콘트롤러(100)는 다른 파라미터에 기초하여 상기 투과 알베도의 획득을 종료할 수 있다.
상기 파라미터는 가상 레이가 투과하는 면의 개수가 될 수 있다. 즉, 콘트롤러(100)는 가상 레이가 투과하는 면의 개수에 기초하여 상기 투과 알베도의 획득 또는 누적 여부를 결정할 수 있다. 또는, 상기 파라미터는 가상 레이가 투과하는 조립 엘리먼트의 개수가 될 수 있다.
예를 들어, 콘트롤러(100)는 가상 레이가 두 개의 조립 엘리먼트와 충돌할때까지 투과 알베도를 누적할 수 있다. 즉, 콘트롤러(100)는 가상 레이가 최초로 충돌하는 조립 엘리먼트의 투과 알베도 및 상기 가상 레이가 두 번째로 충돌하는 조립 엘리먼트의 투과 알베도를 누적하고, 상기 가상 레이가 세 번째로 충돌하는 조립 엘리먼트의 투과 알베도는 획득 또는 누적하지 않을 수 있다.
한편, 복수의 조립 엘리먼트 간에는 가상 레이의 다중 반사 또는 투과가 발생할 수 있다. 예를 들어, 일 투명 조립 엘리먼트를 투과한 가상 레이는 다른 투명 조립 엘리먼트와 충돌후 반사되어 다시 상기 일 투명 조립 엘리먼트와 충돌할 수 있다.
도 7을 참조하면, 가상 카메라(10)로부터 출사되는 가상 레이(13)는 제6 조립 엘리먼트(32) 및 제7 조립 엘리먼트(33) 사이에서 다중 반사될 수 있다. 이렇게 복수의 조립 엘리먼트 간에 가상 레이의 다중 반사 또는 투과가 발생하는 경우, 해당 가상 레이에 대한 추적 동작의 연산량이 증가하게 된다.
또한, 상기 연산량의 증가를 방지하기 위해 레이 트레이싱 동작이 수행될 다중 반사 또는 투과 회수를 줄이는 경우 다중 반사 또는 투과에 의한 조명이 제대로 처리되지 않아 투명 조립 엘리먼트가 검게 렌더링될 수 있다.
따라서, 복수의 조립 엘리먼트 간 다중 반사를 처리하기 위한 방법이 필요하다.
일 실시예에 따르면, 가상 레이가 두 조립 엘리먼트 사이에서 미리 정해진 수 보다 많은 회수로 반사 또는 투과하는 경우, 해당 가상 레이는 드랍(drop)될 수 있다. 여기서, 가상 레이가 드랍된다는 것은 해당 가상 레이에 대한 연산을 더 이상 하지 않는 것을 의미할 수 있다. 또는, 콘트롤러(100)가 상기 가상 레이에 대한 레이 트레이싱 동작을 중단하라는 명령 신호를 생성하는 것을 의미할 수 있다. 한편, 이상 및 이하에서 가상 레이를 드랍한다는 것은, 콘트롤러(100)가 수행중인 레이 트레이싱 동작 전체를 중단하는 것을 의미하는 것은 아니고, 어느 하나의 특정 가상 레이에 대한 트레이싱 동작을 종료한다는 것을 의미할 수 있다.
가상 레이를 드랍하는 방법으로는 여러가지가 있을 수 있다. 예컨대, 러시안 룰렛 알고리즘(Russian roulette algorithm)을 이용하여 일정 확률로 가상 레이를 드랍할 수 있다.
또는, 가상 레이는 그 스루풋(throughput) 값에 기초하여 드랍될 수 있다. 여기서, 상기 스루풋 값이란, 가상 레이가 충돌한 면의 BRDF(Bidirectional Reflectance Distribution Function, 양방향반사도분포함수) 및 확률이 누적된 값을 의미할 수 있다. 이미지의 픽셀값은 상기 스루풋 값, 상기 가상 레이가 도달한 광원의 특성(색상, 밝기 등)에 기초하여 산출될 수 있다.
도 8은 일 실시예에 따른 가상 레이 드랍 방법을 설명하기 위한 그래프이다. 콘트롤러(100)는 소정의 함수에 기초하여 가상 레이의 드랍 여부(즉, 가상 레이를 계속 추적할지 여부)를 결정할 수 있다.
도 8에서, x축은 step, y축은 가상 레이가 드랍되지 않을 확률을 의미한다. 상기 스루풋 값의 단위는 확률일 수 있다.
콘트롤러(100)는 가상 레이의 스루풋 값이 미리 정해진 문턱값(threshold) 이하가 되는 경우 상기 가상 레이를 드랍할 수 있다. 이에 따라, 상기 드랍되는 가상 레이에 대한 추적 동작은 a-step에서 종료될 수 있다. 상기 step이란 레이 트레이싱 동작의 하나의 단계를 의미할 수 있다.
한편, 상기 스루풋 값에만 기초하여 가상 레이의 드랍 여부가 결정되는 경우, 상기 스루풋 값이 미리 정해진 문턱값 이하로 떨어지지 않아 레이 트레이싱 연산량이 증가할 수 있다.
이에, 콘트롤러(100)는 상기 스루풋 값 외에 별도의 제한 함수를 이용하여 가상 레이의 드랍 여부를 결정할 수 있다.
도 9는 다른 일 실시예에 따른 가상 레이 드랍 방법을 설명하기 위한 그래프이다.
콘트롤러(100)는 스루풋 값을 지시하는 스루풋 함수 및 제한함수(limit function)를 이용하여 가상 레이를 드랍할 수 있다.
예를 들어, 콘트롤러(100)는 상기 스루풋 함수 및 상기 제한함수의 최소값에 기초하여 가상 레이의 드랍 여부를 결정할 수 있다. 구체적으로, 콘트롤러(100)는 상기 최소값과 미리 정해진 문턱값을 비교하여 상기 최소값이 상기 미리 정해진 문터값 이하가 되는 경우 가상 레이를 드랍할 수 있다. 이에 따라, 콘트롤러(100)는 도 9에서 b-step이 될 때, 상기 가상 레이에 대한 레이 트레이싱 과정을 종료할 수 있다. 상기 b는 상기 a보다 작을 수 있다. 즉, 도 8에 따른 실시예와 비교하여 가상 레이에 대한 레이 트레이싱 과정이 종료되는 단계가 앞당겨질 수 있다.
이에 따라, 상기 스루풋 함수만을 이용하는 경우에 비하여 가상 레이가 드랍되기 전까지 수행되는 레이 트레이싱 연산량이 감소되는 효과가 있다.
한편, 드랍되지 않는 가상 레이에 대해서는 소정의 가중치가 부여될 수 있다. 콘트롤러(100)는 상기 드랍되지 않는 가상 레이의 밝기 또는 색상값을 증가시킬 수 있다.
이에 따라, 콘트롤러(100)는 드랍되는 가상 레이로 인한 밝기 감소를 보상할 수 있다. 따라서, 일부 가상 레이가 드랍되더라도, 이미지 내 특정 영역의 평균 밝기는 유지될 수 있다.
즉, 드랍되지 않는 가상 레이에 가중치를 부여함으로써 샘플링되는 가상 레이의 수를 줄이면서도 이미지의 평균 밝기가 유지되는 효과가 있다. 이는 레이 트레이싱의 연산량이 감소했음에도 불구하고 이미지의 평균 밝기가 유지되는 것을 의미한다.
한편, 렌더링을 통해 생성되는 이미지에는 특정 픽셀의 밝기가 주변 픽셀보다 지나치게 크게 나타나는, 이른바 반딧불 현상(firefly)이 나타날 수 있다. 이는 드랍되지 않는 가상 레이에 가중치를 부여함에 따라 인접한 픽셀 간 밝기 차이가 증폭되기 때문에 나타날 수 있다.
도 10은 일 실시예에 따라 렌더링된 제1 이미지를 나타내는 도면이다.
도 10을 참조하면, 제1 이미지(M1)는 6x6의 36개의 픽셀을 포함할 수 있다. 제1 이미지(M1)는 제1 픽셀(P1) 및 제2 픽셀(P2)을 포함할 수 있다.
제1 픽셀(P1) 및 제2 픽셀(P2)의 값은 그 주변의 다른 픽셀값보다 소정의 값 이상 클 수 있다.
제1 픽셀(P1) 및 제2 픽셀(P2)의 값과 그 주변의 다른 픽셀값의 차이가 소정의 범위를 초과하는 경우, 제1 이미지(M1)에 포함되는 조립 엘리먼트 또는 조립식 완구의 특징이 잘 나타나지 않을 수 있다.
이러한 문제점을 해결하기 위하여, 콘트롤러(100)는 제1 픽셀(P1) 및 제2 픽셀(P2)의 픽셀값에 기초하여 그 주변의 다른 픽셀의 픽셀값을 조절할 수 있다.
콘트롤러(100)는 제1 픽셀(P1)로부터 이격된 거리에 기초하여 제1 픽셀(P1) 주변 픽셀의 픽셀값을 조절할 수 있다. 구체적으로, 제1 픽셀(P1)로부터 상대적으로 가까이 위치하는 픽셀들에 대해서는 제1 크기의 픽셀값을 부가하고, 제1 픽셀(P1)로부터 상대적으로 멀리 위치하는 픽셀들에 대해서는 상기 제1 크기 보다 작은 제2 크기의 픽셀값을 부가할 수 있다. 이에 따라, 제1 픽셀(P1) 주변 픽셀에 포함된 조립 엘리먼트의 특징이 잘 나타날 수 있다. 콘트롤러(100)는 제2 픽셀(P2)에 대하여도 동일한 방식으로 픽셀값을 조절할 수 있다.
상술한 방법뿐만 아니라, 다양한 방법으로 픽셀값이 조절될 수 있다. 예컨대, 가우시안 필터(Gaussian filter)를 기초로 상기 픽셀값들이 조절될 수 있다.
도 11은 도 10의 제1 이미지(M1)로부터 제1 이미지(M1)의 픽셀값이 조절된 제2 이미지(M2)를 나타내는 도면이다.
상기 픽셀값 조절 동작 수행에 앞서, 콘트롤러(100)는 firefly가 발생한 픽셀을 검출할 수 있다. 콘트롤러(100)는 특정 픽셀 그룹내에서 주변 픽셀에 비해 픽셀값이 소정의 범위 이상으로 큰 픽셀을 검출할 수 있다.
한편, 콘트롤러(100)는 임의의 픽셀의 픽셀 값이 미리 정해진 값을 초과하는 경우, 미리 지정된 상한값으로 상기 픽셀의 픽셀 값을 변경할 수 있다. 또는, 이미지의 픽셀값을 획득하는 과정에서 미리 정해진 상한값에 의해 픽셀값의 크기가 제한될 수 있다. 이러한 과정에서 클램핑(clamping) 동작이 수행될 수 있다.
도 12는 도 10의 제1 이미지(M1)로부터 제1 이미지(M1)의 픽셀값이 클램핑된 제3 이미지(M3)를 나타내는 도면이다.
한편, 조립식 완구는 밀키(milky) 또는 펄(pearl) 재질을 갖는 조립 엘리먼트를 포함할 수 있다. 이러한 조립 엘리먼트들에서는 서브서피스 스캐터링(subsurface subscattering) 또는 스캐터링(subscattering) 현상이 발생할 수 있다. 이러한 스캐터링 현상이 발생하는 경우, 렌더링을 통해 이미지를 생성하기 위해서는 일반적인 재질의 조립 엘리먼트에 관한 이미지를 생성하는 경우에 비해 필요한 가상 레이의 수가 클 수있다.
도 13은 조립 엘리먼트에서의 subscattering 현상을 설명하기 위한 도면이다.
도 13을 참조하면 가상 레이(13)는 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35)와 충돌할 수 있다. 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35)는 밀키 또는 펄 재질을 가질 수 있다. 가상 레이(13)는 제8 조립 엘리먼트(34)를 투과한 후 제9 조립 엘리먼트(35)를 투과하여 진행될 수 있다.
콘트롤러(100)는 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35)에 대한 스캐터링 처리 동작을 수행할 수 있다. 여기서, 상기 스캐터링 처리 동작이란, 밀키 또는 펄 재질을 갖는 조립 엘리먼트에 대한 광 처리 동작을 의미할 수 있다. 상기 스캐터링 처리 동작을 위해 밀키 또는 펄 재질에 관한 별도의 특성 파라미터가 마련될 수 있다.
한편, 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 사이의 거리에 따라 스캐터링 처리 동작이 달라질 수 있다.
예를 들어, 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 사이의 거리가 미리 정해진 거리 이상인 경우, 콘트롤러(100)는 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 각각에 대하여 스캐터링 처리 동작을 수행할 수 있다. 이 때, 콘트롤러(100)는 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 사이에서 발생하는 반사 또는 투과 현상에 대해서는, 밀키 또는 펄 재질이 아닌 일반적인 재질에 대한 레이 트레이싱 방법과 동일하게 레이 트레이싱 동작을 수행할 수 있다. 또한, 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35)는 서로 다른 스캐터링 특성을 가질 수 있다. 이에 따라, 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35)의 각각의 특성 파라미터의 값은 상이할 수 있다.
다른 예로, 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 사이의 거리가 상기 미리 정해진 거리 이하인 경우, 콘트롤러(100)는 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 각각에 대하여 스캐터링 처리 동작을 수행할 수 있다. 이 경우에도 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 사이에서 발생하는 반사 또는 투과 현상에 대해서는, 밀키 또는 펄 재질이 아닌 일반적인 재질에 대한 레이 트레이싱 방법과 동일하게 레이 트레이싱 동작이 수행될 수 있다.
한편, 밀티/펄 재질을 갖는 두 조립 엘리먼트 사이의 표면 처리를 일반적인 재질에 대한 레이 트레이싱 방법과 동일하게 진행하는 경우, 가상 레이(13)가 투과하는 순서에 따라 상기 두 조립 엘리먼트 표면에서의 밝기 차이가 발생할 수 있다. 이 경우, 상기 밝기 차이를 보정하기 위한 별도의 팩터 파라미터가 마련될 수 있다.
콘트롤러(100)는 가상 레이(13)가 조립 엘리먼트에 투과하는 순서를 고려하여 스캐터링 처리 동작을 수행할 수 있다. 가상 레이(13)가 투과하는 순서에 기초하여 별도의 가중치를 부여할 수 있다. 상기 가중치를 부여하기 위해 별도의 팩터(factor) 파라미터가 추가될 수 있다. 예를 들어, 가상 레이(13)가 최초로 투과하는 제8 조립 엘리먼트(34)에 적용되는 제1 팩터 파라미터의 값은 가상 레이(13)가 제8 조립 엘리먼트(34)를 투과한 후 투과하는 제9 조립 엘리먼트(35)에 적용되는 제2 팩터 파라미터의 값보다 작을 수 있다. 상기 제1 및 제2 팩터 파라미터의 값은 1이 될 수 있다. 또는, 상기 제2 팩터 파라미터의 값은 1보다 클 수 있다.
한편, 일반적으로 서브 스캐터링 현상이 발생하는 경우 그렇지 않은 경우에 비해 렌더링 연산량이 증가하게 된다. 이에 종래 기술들은 서브 스캐터링 현상이 발생하는 복수의 오브젝트를 하나의 그룹으로 묶어서 그 그룹 내에서는 동일한 오브젝트로 취급하여 렌더링 하였다. 이에 따라, 종래 기술들에 의하면 서로 다른 스캐터링 특성을 갖는 오브젝트 간의 스캐터링 처리가 불가하였으며, 스캐터링이 발생하는 오브젝트를 사용자가 매뉴얼하게 지정해줘야하는 문제가 있었다.
반면에, 본 발명에 따른 렌더링 시스템(1000)은 각각의 조립 엘리먼트들에 대해 독립적으로 스캐터링 처리 동작을 수행할 수 있다. 따라서, 서로 다른 스캐터링 특성을 갖는 복수의 조립 엘리먼트들에 걸쳐서 스캐터링이 발생하더라도 스캐터링 처리가 가능하다는 장점이 있다.
한편, 스캐터링이 발생하는 순서에 따라 레이 스캐터링 처리 동작이 달라질 수 있다. 예를 들어, 콘트롤러(100)는 최초로 스캐터링이 발생한 조립 엘리먼트에 대하여는 1픽셀에서 여러 지점으로 스캐터링된 복수의 레이에 대한 정보를 획득할 수 있는 반면, 두 번째로 스캐터링이 발생한 조립 엘리먼트에 대해서는 하나의 레이에 대한 정보만 획득할 수 있다.
한편, 도 14와 같이 하나의 조립 엘리먼트 내에서 가상 레이는 여러 번 입사 또는 출사할 수 있다.
도 14를 참조하면, 가상 레이(13)는 제9 조립 엘리먼트(35)로 입사한 후 출사되어 제8 조립 엘리먼트(34)와 충돌할 수 있다. 가상 레이(13)는 제8 조립 엘리먼트(34)와 충돌한 후 다시 제9 조립 엘리먼트(35)로 입사한 후 출사 될 수 있다.
종래의 렌더링 방법은 하나의 조립 엘리먼트 내에서 하나의 가상 레이가 입사/출사하는 회수를 1회로 제한하였다. 즉, 스캐터링 특성을 갖는 조립 엘리먼트에 대해 최대 1회까지만 상기 스캐터링 처리 동작이 수행될 수 있었다.
이에 따라, 도 14와 같이 하나의 조립 엘리먼트 내에서 가상 레이가 여러 번 입사 또는 출사하는 경우, 여러 번 입사/출사에 의해 발생하는 간접 조명이 렌더링 시 반영되지 않았다. 예를 들어, 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35)의 사이 부분이 어둡게 렌더링되는 문제가 있었다.
반면에, 본 발명에 따른 렌더링 시스템(1000)은 하나의 조립 엘리먼트 내에서 하나의 가상 레이가 입사/출사하는 회수를 1회로 제한하지 않고 중첩된 스캐터링을 허용한다. 따라서, 렌더링 시스템(1000)은 제9 조립 엘리먼트(35)에 대해 스캐터링 처리 동작을 2회 수행할 수 있다. 이에 따라, 상술한 바와 같은 제8 조립 엘리먼트(34) 및 제9 조립 엘리먼트(35) 사이 부분이 어둡게 렌더링되는 문제가 해결될 수 있다.
한편, 도 14에서와 같이 하나의 조립 엘리먼트 내에서 스캐터링이 여러 번 발생하는 경우뿐만 아니라, 도 13과 같이 인접한 두 조립 엘리먼트에 걸쳐서 여러 번 스캐터링이 발생하는 경우에도 상술한 렌더링 방법이 그대로 적용될 수 있다.
상기에서는 본 발명에 따른 실시예를 기준으로 본 발명의 구성과 특징을 설명하였으나 본 발명은 이에 한정되지 않으며, 본 발명의 사상과 범위 내에서 다양하게 변경 또는 변형할 수 있음은 본 발명이 속하는 기술분야의 당업자에게 명백한 것이며, 따라서 이와 같은 변경 또는 변형은 첨부된 특허청구범위에 속함을 밝혀둔다.
1000: 렌더링 시스템
100: 콘트롤러
110: 레이 트레이싱 유닛
120: 노이즈 처리 유닛
200: 메모리
10: 가상 카메라
11: 화면
12: 픽셀A
13: 가상 레이
14: 광원
15: 교차점
20: 조립식 완구
21: 제1 조립 엘리먼트
22: 제2 조립 엘리먼트
23: 제3 조립 엘리먼트
24: 제1 면
25: 제2 면
26: 제4 조립 엘리먼트
27: 제3 면
28: 제4 면
29: 제5 조립 엘리먼트
30: 제5 면
31: 제6 면
32: 제6 조립 엘리먼트
33: 제7 조립 엘리먼트
34: 제8 조립 엘리먼트
35: 제9 조립 엘리먼트

Claims (16)

  1. 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법으로,
    상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라를 가상 공간 상에 배치하는 단계;
    상기 가상 카메라로부터 가상 레이를 출사하는 단계; 및
    상기 가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 단계;를 포함하되,
    상기 판단하는 단계는,
    상기 가상 레이가 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트와 충돌하고, 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트를 통과하는 경우:
    상기 제1 투명 조립 엘리먼트의 투과 알베도 및 상기 제2 투명 조립 엘리먼트의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하는 단계,
    상기 제1 투명 조립 엘리먼트의 반사 알베도 및 상기 제2 투명 조립 엘리먼트의 반사 알베도 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 반사 알베도를 최종 반사 알베도로 획득하는 단계, 및
    상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 상기 픽셀 값을 판단하는 단계를 포함하고,
    상기 렌더링 방법은 상기 제1 투명 조립 엘리먼트의 거칠기 및 상기 제2 투명 조립 엘리먼트의 거칠기를 누적하는 단계; 및 상기 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 최종 투과 알베도 획득을 중단하는 단계;를 더 포함하는 것을 특징으로 하는
    렌더링 방법.
  2. 제1 항에 있어서,
    상기 제1 투명 조립 엘리먼트가 제1 면 및 제2 면을 포함하는 경우,
    상기 최종 투과 알베도를 획득하는 단계는, 상기 제1 면의 투과 알베도 및 상기 제2 면의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하는 단계를 포함하는
    렌더링 방법.
  3. 제2 항에 있어서,
    상기 먼저 만난 투명 조립 엘리먼트가 제1 면 및 제2 면을 포함하는 경우,
    상기 최종 반사 알베도를 획득하는 단계는, 상기 제1 면 및 상기 제2 면 중상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 면의 반사 알베도를 최종 반사 알베도로 획득하는 단계를 포함하는
    렌더링 방법.
  4. 제1 항에 있어서,
    상기 픽셀 값을 판단하는 단계는
    상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 최종 알베도를 산출하는 단계를 포함하는
    렌더링 방법.
  5. 제4 항에 있어서,
    상기 최종 알베도는 상기 최종 투과 알베도에 상기 최종 반사 알베도가 곱해진 값에 기초하여 산출되는
    렌더링 방법.
  6. 제1 항에 있어서,
    상기 픽셀 값을 판단하는 단계는
    상기 제1 투명 조립 엘리먼트 및 상기 제2 투명 조립 엘리먼트 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 노말 및 깊이 값에 기초하여 상기 픽셀 값을 판단하는
    렌더링 방법.
  7. 삭제
  8. 제1 항에 있어서,
    상기 가상 레이가 상기 가상 카메라로부터 출사된 후 첫 번째로 충돌하는 투명 조립 엘리먼트가 상기 제1 투명 조립 엘리먼트이고, 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 두 번째로 충돌하는 투명 조립 엘리먼트가 상기 제2 투명 조립 엘리먼트인 경우,
    상기 미리 정해진 거칠기는, 상기 제1 투명 조립 엘리먼트의 제1 거칠기 및 상기 제2 투명 조립 엘리먼트의 제2 거칠기에 기초하여 정해지는
    렌더링 방법.
  9. 제8 항에 있어서,
    상기 미리 정해진 거칠기는 상기 제1 거칠기 및 상기 제2 거칠기의 중간값인 것을 특징으로 하는
    렌더링 방법.
  10. 제1 항에 있어서,
    상기 가상 레이가 투명 조립 엘리먼트와 충돌하는 회수를 누적하는 단계; 및
    상기 누적된 회수가 미리 정해진 회수 이상인 경우, 상기 최종 투과 알베도 획득을 중단하는 단계;를 더 포함하는
    렌더링 방법.
  11. 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 렌더링 방법으로,
    상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라를 가상 공간 상에 배치하는 단계;
    상기 가상 카메라로부터 가상 레이를 출사하는 단계;
    상기 가상 레이가 제1 조립 엘리먼트 및 제2 조립 엘리먼트와 충돌하는 이벤트를 감지하는 단계 - 상기 가상 레이는 상기 제1 조립 엘리먼트와 충돌한 후 상기 제2 조립 엘리먼트와 충돌하고, 제1 조립 엘리먼트 및 제2 조립 엘리먼트를 통과함 -; 및
    상기 제1 조립 엘리먼트가 투명 조립 엘리먼트인 경우, 상기 제1 조립 엘리먼트의 투과 알베도 및 반사 알베도에 기초하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 단계;를 포함하고,
    상기 픽셀 값을 판단하는 단계는 상기 제2 조립 엘리먼트의 투과 알베도를 고려하여 상기 픽셀 값을 판단하는 단계, 및 제1 투과 알베도 및 제2 투과 알베도를 누적하여 산출되는 최종 투과 알베도에 기초하여 상기 픽셀 값을 판단하는 단계를 포함하고,
    상기 렌더링 방법은 상기 제1 조립 엘리먼트의 거칠기 및 상기 제2 조립 엘리먼트의 거칠기를 누적하는 단계; 및 상기 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 최종 투과 알베도 획득을 중단하는 단계;를 더 포함하는 것을 특징으로 하는
    렌더링 방법.
  12. 삭제
  13. 삭제
  14. 제11 항에 있어서,
    상기 픽셀 값을 판단하는 단계는, 최종 알베도를 토대로 픽셀 값을 판단하는 단계를 포함하고, 상기 최종 알베도는 제1 투과 알베도 및 제2 투과 알베도를 누적한 값에 상기 제1 조립 엘리먼트의 반사 알베도를 곱하여 산출되는
    렌더링 방법.
  15. 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)의 특성 정보가 저장된 저장부 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 -; 및
    상기 저장부에 저장된 상기 특성 정보를 고려하여 상기 복수의 조립 엘리먼트들이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 제어부;를 포함하되,
    상기 제어부는, 상기 가상 공간에 배치되고 상기 가상 공간 상에서 진행되는 광선의 원점이 되는 가상 카메라로부터 출사되는 가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 상기 투과 알베도 및 상기 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하고, 상기 가상 레이가 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트와 충돌하고, 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트를 통과하는 경우: 상기 제1 투명 조립 엘리먼트의 투과 알베도 및 상기 제2 투명 조립 엘리먼트의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하고, 상기 제1 투명 조립 엘리먼트의 반사 알베도 및 상기 제2 투명 조립 엘리먼트의 반사 알베도 중 상기 가상 레이가 상기 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 반사 알베도를 최종 반사 알베도로 획득하고, 상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 상기 픽셀 값을 판단하고, 상기 제1 투명 조립 엘리먼트의 거칠기 및 상기 제2 투명 조립 엘리먼트의 거칠기를 누적하고, 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 최종 투과 알베도 획득을 중단하는 것을 특징으로 하는
    렌더링 장치.
  16. 가상 공간에 배치되는 복수의 조립 엘리먼트들(assembling elements)이 결합되어 형성되는 조립식 완구(assembling toy)에 관한 이미지를 생성하는 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 기록 매체로서,
    가상 레이가 상기 복수의 조립 엘리먼트들 중 투명 조립 엘리먼트와 충돌하는 경우, 상기 투명 조립 엘리먼트의 특성 정보 - 상기 특성 정보는, 적어도 투과 알베도 및 반사 알베도를 포함함 - 을 고려하여 상기 이미지의 픽셀 중 상기 가상 레이에 대응하는 픽셀의 픽셀 값을 판단하는 컴퓨터 프로그램을 포함하되,
    상기 컴퓨터 프로그램은,
    상기 가상 레이가 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트와 충돌하고, 제1 투명 조립 엘리먼트 및 제2 투명 조립 엘리먼트를 통과하는 경우:
    상기 제1 투명 조립 엘리먼트의 투과 알베도 및 상기 제2 투명 조립 엘리먼트의 투과 알베도를 함께 고려하여 최종 투과 알베도를 획득하는 프로그램 코드,
    상기 제1 투명 조립 엘리먼트의 반사 알베도 및 상기 제2 투명 조립 엘리먼트의 반사 알베도 중 상기 가상 레이가 가상 카메라로부터 출사된 후 먼저 만난 투명 조립 엘리먼트의 반사 알베도를 최종 반사 알베도로 획득하는 프로그램 코드,
    상기 최종 투과 알베도 및 상기 최종 반사 알베도에 기초하여 상기 픽셀 값을 판단하는 프로그램 코드, 및
    상기 제1 투명 조립 엘리먼트의 거칠기 및 상기 제2 투명 조립 엘리먼트의 거칠기를 누적하고, 누적된 거칠기가 미리 정해진 거칠기보다 큰 경우, 상기 최종 투과 알베도 획득을 중단하는 프로그램 코드를 포함하는 것을 특징으로 하는
    컴퓨터 프로그램이 저장된 컴퓨터 판독가능 기록 매체.
KR1020190085396A 2019-07-15 2019-07-15 렌더링 방법 및 이를 수행하는 렌더링 장치 KR102384304B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020190085396A KR102384304B1 (ko) 2019-07-15 2019-07-15 렌더링 방법 및 이를 수행하는 렌더링 장치
US17/627,071 US20220277507A1 (en) 2019-07-15 2020-07-10 Rendering method and rendering device performing the same
PCT/EP2020/069549 WO2021009044A1 (en) 2019-07-15 2020-07-10 Rendering method and rendering device performing the same
CN202080050569.2A CN114097000A (zh) 2019-07-15 2020-07-10 渲染方法和执行该渲染方法的渲染设备
EP20743979.5A EP4000045A1 (en) 2019-07-15 2020-07-10 Rendering method and rendering device performing the same
KR1020220041610A KR102505114B1 (ko) 2019-07-15 2022-04-04 렌더링 방법 및 이를 수행하는 렌더링 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190085396A KR102384304B1 (ko) 2019-07-15 2019-07-15 렌더링 방법 및 이를 수행하는 렌더링 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020220041610A Division KR102505114B1 (ko) 2019-07-15 2022-04-04 렌더링 방법 및 이를 수행하는 렌더링 장치

Publications (2)

Publication Number Publication Date
KR20210008992A KR20210008992A (ko) 2021-01-26
KR102384304B1 true KR102384304B1 (ko) 2022-04-07

Family

ID=71741764

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020190085396A KR102384304B1 (ko) 2019-07-15 2019-07-15 렌더링 방법 및 이를 수행하는 렌더링 장치
KR1020220041610A KR102505114B1 (ko) 2019-07-15 2022-04-04 렌더링 방법 및 이를 수행하는 렌더링 장치

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020220041610A KR102505114B1 (ko) 2019-07-15 2022-04-04 렌더링 방법 및 이를 수행하는 렌더링 장치

Country Status (5)

Country Link
US (1) US20220277507A1 (ko)
EP (1) EP4000045A1 (ko)
KR (2) KR102384304B1 (ko)
CN (1) CN114097000A (ko)
WO (1) WO2021009044A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019045144A1 (ko) * 2017-08-31 2019-03-07 (주)레벨소프트 의료용 항법 장치를 위한 의료 영상 처리 장치 및 의료 영상 처리 방법
CN116524061B (zh) * 2023-07-03 2023-09-26 腾讯科技(深圳)有限公司 一种图像渲染方法和相关装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065100A (ja) * 2011-09-15 2013-04-11 Canon Inc 画像処理装置および画像処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638499A (en) * 1994-05-27 1997-06-10 O'connor; Michael Image composition method and apparatus for developing, storing and reproducing image data using absorption, reflection and transmission properties of images to be combined
US20020190984A1 (en) * 1999-10-01 2002-12-19 Larry D. Seiler Voxel and sample pruning in a parallel pipelined volume rendering system
US7012604B1 (en) * 2002-09-12 2006-03-14 Advanced Micro Devices, Inc. System architecture for high speed ray tracing
US7884819B2 (en) * 2006-09-27 2011-02-08 International Business Machines Corporation Pixel color accumulation in a ray tracing image processing system
KR101475779B1 (ko) * 2008-06-02 2014-12-23 삼성전자주식회사 3d 영상 처리 방법
US8525826B2 (en) * 2008-08-08 2013-09-03 International Business Machines Corporation System for iterative interactive ray tracing in a multiprocessor environment
DK2483868T3 (en) * 2009-10-02 2015-03-23 Lego As Konnektivitets-dependent geometry optimization for real-time rendering

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013065100A (ja) * 2011-09-15 2013-04-11 Canon Inc 画像処理装置および画像処理方法

Also Published As

Publication number Publication date
US20220277507A1 (en) 2022-09-01
KR102505114B1 (ko) 2023-03-06
WO2021009044A1 (en) 2021-01-21
KR20220047940A (ko) 2022-04-19
CN114097000A (zh) 2022-02-25
KR20210008992A (ko) 2021-01-26
EP4000045A1 (en) 2022-05-25

Similar Documents

Publication Publication Date Title
KR20220047940A (ko) 렌더링 방법 및 이를 수행하는 렌더링 장치
US10928189B2 (en) Intensity-modulated light pattern for active stereo
US9082213B2 (en) Image processing apparatus for combining real object and virtual object and processing method therefor
US6452593B1 (en) Method and system for rendering a virtual three-dimensional graphical display
US10970920B2 (en) Systems and methods for ray-traced shadows of transparent objects
WO2015087055A1 (en) Image rendering of laser scan data
JP5873672B2 (ja) 仮想環境のポイントにおいて受光された光の量の推定方法
KR20170059469A (ko) 삼차원 오브젝트를 가시화하기 위한 방법, 가시화 디바이스, 및 컴퓨터 프로그램 제품
CN110704914B (zh) 视线分析方法、装置、计算机设备和存储介质
US20130147785A1 (en) Three-dimensional texture reprojection
EP2677504A2 (en) Method for estimating the quantity of light received by a participating media, and corresponding device
US8508733B2 (en) Method for estimating light scattering
CN116883607A (zh) 基于辐射传输的虚拟现实场景生成系统
KR20140056146A (ko) 가상 환경에서의 어클루젼의 추정을 위한 방법
US20180322687A1 (en) Apparatus and method for providing interactive content
US20150042642A1 (en) Method for representing a participating media in a scene and corresponding device
EP2428935B1 (en) Method for estimating the scattering of light in a homogeneous medium
US20230410419A1 (en) Light field camera system and method of setting baseline and convergence distance
CN118052924A (zh) 显示渲染方法及相关装置
JP2006195940A (ja) 半透明物体レンダリング回路
CN107635119A (zh) 投射方法和设备
CN115728734A (zh) 激光雷达遮挡检测方法、装置、存储介质及激光雷达
JP2008305438A (ja) 画像生成方法、画像生成装置ならびに画像生成プログラムを格納した記録媒体

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant