KR20220007037A - 렌더링을 위한 방법 및 시스템 - Google Patents

렌더링을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20220007037A
KR20220007037A KR1020217021772A KR20217021772A KR20220007037A KR 20220007037 A KR20220007037 A KR 20220007037A KR 1020217021772 A KR1020217021772 A KR 1020217021772A KR 20217021772 A KR20217021772 A KR 20217021772A KR 20220007037 A KR20220007037 A KR 20220007037A
Authority
KR
South Korea
Prior art keywords
color
fluorescence
coefficient
computer
reflection
Prior art date
Application number
KR1020217021772A
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 찰스 유니버시티
Publication of KR20220007037A publication Critical patent/KR20220007037A/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • 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/04Texture mapping
    • 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/503Blending, e.g. for anti-aliasing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/64Circuits for processing colour signals
    • H04N9/67Circuits for processing colour signals for matrixing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Abstract

렌더링을 위한 컴퓨터에 의해 구현된 방법이 제공된다. 이 방법은: 컬러 공간에서 제1 컬러를 나타내는 제1 세트의 삼자극 값들을 수신하는 단계; 제2 컬러를 나타내는 적어도 하나의 제1 반사 계수에 기초하여 제1 컬러의 제1 근사치를 결정하는 단계; 제2 컬러를 나타내는 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수에 기초하여 제1 컬러의 제2 근사치를 결정하는 단계; 및 제1 컬러로서 제1 컬러의 제1 근사치 또는 제1 컬러의 제2 근사치 중 어느 하나를 렌더러에 저장하는 단계를 포함한다.

Description

렌더링을 위한 방법 및 시스템
본 개시내용은 일반적으로 렌더링을 위한 기법들에 관한 것으로, 더 구체적으로는 렌더링을 위해 이용가능한 컬러 공간을 확장시키는 것에 관한 것이다.
물리적 기반 렌더링은 최근에 상당한 주목을 받았다. 몬테 카를로 샘플링 기법(Monte Carlo sampling technique)들 및 정교한 재료 모델들의 가용성은 놀라운 사실감으로 복잡한 가상 세계들의 렌더링들을 생성하는 것을 가능하게 한다.
학계 및 산업 전반에 걸친 수 개의 물리적 기반 렌더링 시스템들은 기본 광 전송을 스펙트럼으로, 즉, 방사량들의 파장 의존성을 고려함으로써 시뮬레이션한다. 단순한 RGB 기반 시뮬레이션들과는 대조적으로, 박막들, 스크래치들, 또는 다른 타입들의 거친 표면 마이크로구조체로 인한 이리데선스(iridescence)와 같은 파동 광학 효과들을 지원하는 것이 잠재적으로 상당히 더 쉽다.
시각 효과들의 맥락에서, 스펙트럼 렌더링이 카메라들의 스펙트럼 감도 곡선들을 복제하는 데 사용되어, 그에 의해 모든 조명 조건들 전반에 걸쳐 실제 및 가상 객체들의 일관된 외관을 달성하기 위해 온셋 객체(onset object)들과 동일한 메타메리즘(metamerism)을 재현한다.
스펙트럼들은 컬러들의 곱(product)들을 컴퓨팅하기 위한 자연적 영역인데, 이는 RGB 삼중선(triplet)들을 통한 이 거동의 근사치가 종종 열악하기 때문이다.
현실적인 관점에서, 스펙트럼 렌더링으로의 천이(transitioning)는 적어도 몇 가지 단점들을 갖는다. 한 가지 단점은, 다양한 RGB 컬러 공간들에서 동작하는 툴들을 사용하여 텍스처들과 같은 장면 콘텐츠가 전형적으로 생성되는데, 이는 차례로, 렌더링이 시작될 수 있기 전에 스펙트럼 데이터로의 모호한 변환을 필요로 한다는 점이다. 이 모호한 변환은 스펙트럼 업샘플링이라고 지칭된다.
다른 단점은, 에너지 절약이 임의의 스펙트럼 렌더러(spectral renderer)의 반사 컬러 채도(reflectance colour saturation)에 대해 하드 한계(hard limit), 즉, 맥아담의 한계(MacAdam's limit)를 부과시킨다는 점이다. 어떠한 재료도, 임의의 주어진 파장에서 그것이 수광하는 것보다 더 많은 광을 탄력적으로 산란시킬 수 없다. 이 단점은, 솔리드 반사(solid reflectance)들의 색역(gamut) 또는 컬러 공간으로 재료들을 제한한다는 효과를 갖는데, 이는 본질적으로 특정 레벨의 채도를 초과하는 컬러들이 결여되어 있다. 그러나, 일부 경우들에서, 그러한 극단적인 컬러들이 요망된다.
이 이슈는 시뮬레이션들로 제약되지 않는다. 예를 들어, 실세계 재료들(예를 들어, 플라스틱들, 직물들 및 페인트)의 설계자들은 비탄성 산란을 통해 이들의 전체적인 컬러 채도를 증대시키기 위해 광학 광택제들 또는 다른 형광 염료들에 일상적으로 의존한다.
대조적으로, RGB 기반 렌더러에서는, 특히 넓은 색역의 RGB 공간이 알베도(albedo)들과 입사 방사 휘도(incident radiance)의 곱셈들이 수행되는 "작업 공간"으로서 사용되는 경우, 매우 높이 포화된(saturated) 컬러들을 생성하는 것이 가능하다. 이 접근법은 기껏해야 물리적으로 의심스러울 뿐이고, 솔리드 반사들의 색역 외측의 컬러들에 대해 문제가 있지만, 스펙트럼 궤적의 한계들 내에서, 순수 RGB 기반 워크플로가 얼마나 밝은 또는 얼마나 포화된 객체들이 나타날 수 있는지에 대한 제약들을 제기하지 않는다는 것은 주목할 만하다.
일 양태에 따르면, 렌더링을 위한 컴퓨터에 의해 구현된 방법은: 컬러 공간에서 제1 컬러를 나타내는 제1 세트의 삼자극 값(tristimulus value)들을 수신하는 단계; 제2 컬러를 나타내는 적어도 하나의 제1 반사 계수(first reflectance coefficient)에 기초하여 제1 컬러의 제1 근사치를 결정하는 단계; 제2 컬러를 나타내는 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수에 기초하여 제1 컬러의 제2 근사치를 결정하는 단계; 및 제1 컬러로서 제1 컬러의 제1 근사치 또는 제1 컬러의 제2 근사치 중 어느 하나를 렌더러에 저장하는 단계를 포함한다.
본 명세서에서 사용되는 바와 같은 '포함하는(comprising)'이라는 용어는 '적어도 부분적으로 ~로 이루어지는(consisting at least in part of)'을 의미한다. 본 명세서에서 '포함하는'이라는 용어를 포함하는 각각의 문장을 해석할 때, 그 용어 이외의 피처(feature)들 또는 그 용어로 시작된 것들이 또한 존재할 수도 있다. '포함하다(comprise)' 및 '포함하다(comprises)'와 같은 관련 용어들이 동일한 방식으로 해석되어야 한다.
일 실시예에서, 적어도 하나의 제1 반사 계수를 결정하는 것은, 컬러 공간에서 제2 컬러와 제1 컬러 사이의 오차를 감소시키는 것을 포함한다.
일 실시예에서, 이 방법은, 적어도 하나의 제1 반사 계수를 사용하여 컬러 공간에서 제2 컬러를 나타내는 제2 세트의 삼자극 값들을 결정하는 단계를 더 포함한다.
일 실시예에서, 제2 세트의 삼자극 값들을 결정하는 단계는, 관찰자의 크로매틱 반응(chromatic response)에 기초하는 함수를 적용하는 단계를 포함한다.
일 실시예에서, 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수를 결정하는 것은, 컬러 공간에서 제2 컬러와 제1 컬러 사이의 오차를 감소시키는 것을 포함한다.
일 실시예에서, 적어도 하나의 제1 반사 계수로부터 적어도 하나의 형광 계수를 결정하는 것은, 기준을 만족시키는 적어도 하나의 형광 계수의 값을 결정하기 위해 적어도 하나의 형광 계수의 값들의 특정된 범위를 평가하는 것을 포함한다.
일 실시예에서, 컬러 공간에서 제2 컬러와 제1 컬러 사이의 오차 거리를 감소시키는 것은, 적어도 하나의 제2 반사 계수와 적어도 하나의 형광 계수 양측 모두를 최적화시키는 것 사이와 적어도 하나의 제2 반사 계수만을 단지 최적화시키는 것 사이를 교번하는 것을 포함한다.
일 실시예에서, 이 방법은, 제2 컬러의 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수를, 제2 컬러에 인접한 컬러의 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수로 대체시키는 단계를 더 포함한다.
일 실시예에서, 형광 계수들은 형광 모델의 방출 피크 파장, 농도 및 스토크 시프트(stoke shift)와 연관된다.
추가의 양태에 따르면, 컴퓨터 시스템은, 적어도 하나의 프로세서; 및 적어도 하나의 프로세서에 의해 실행될 때, 시스템으로 하여금 상기의 방법을 구현하게 하는 명령어들을 저장하는 저장 매체를 포함한다.
추가의 양태에 따르면, 비일시적 저장 매체는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 상기의 방법을 구현하게 하는 명령어들을 저장한다.
추가의 양태에 따르면, 컴퓨터 판독가능 매체는, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금 상기의 방법을 구현하게 하는 명령어들을 운반한다.
본 발명은 하나의 양태에서 수 개의 단계들을 포함한다. 그러한 단계들 중 하나 이상과 다른 단계들 각각의 관계, 구성의 피처들을 구체화하는 장치, 및 그러한 단계들에 영향을 미치도록 적응되는 부분들의 배열 및 요소들의 조합들이 모두 다음의 상세한 개시내용에 예시된다.
본 발명이 관련된 기술분야의 통상의 기술자들에게, 본 발명의 광범위하게 상이한 실시예들 및 적용들 및 구성의 많은 변경들이, 첨부된 청구범위에 정의된 바와 같은 본 발명의 범위로부터 벗어남이 없이 이들 자체를 제안할 것이다. 본 명세서의 개시내용들 및 설명들은 순전히 예시적인 것이고 어떠한 의미로도 제한하는 것으로 의도된 것이 아니다. 본 발명이 관련된 기술분야에서 알려져 있는 동치들을 갖는 특정 정수들이 본 명세서에서 언급되는 경우, 그러한 알려져 있는 동치들은 개별적으로 제시된 것처럼 본 명세서에 포함되는 것으로 간주된다.
본 명세서에서 사용되는 바와 같이, 명사에 뒤이은 '(들)'은 명사의 복수 및/또는 단수 형태들을 의미한다.
본 명세서에서 사용되는 바와 같이, '및/또는'이라는 용어는 '및' 또는 '또는' 또는 이들 양측 모두를 의미한다.
본 명세서에 개시된 숫자들의 범위(예를 들어, 1 내지 10)에 대한 언급은 또한 그 범위 내의 모든 유리수들(예를 들어, 1, 1.1, 2, 3, 3.9, 4, 5, 6, 6.5, 7, 8, 9, 및 10) 그리고 또한 그 범위 내의 임의의 범위의 유리수들(예를 들어, 2 내지 8, 1.5 내지 5.5, 및 3.1 내지 4.7)에 대한 언급을 포함하고, 그에 따라, 본 명세서에 명시적으로 개시된 모든 범위들의 모든 하위 범위들이 이로써 명시적으로 개시된다는 것이 의도된다. 이들은 단지 구체적으로 의도된 것의 예들일 뿐이고, 열거된 최저 값 내지 최고 값의 수치 값들의 모든 가능한 조합들이 유사한 방식으로 본 출원에 명시적으로 언급되는 것으로 간주되어야 한다.
특허 명세서들, 다른 외부 문서들, 또는 다른 정보 소스들에 대한 언급이 이루어진 본 명세서에서, 이것은 일반적으로, 본 발명의 피처들을 논의하기 위한 맥락을 제공하고자 하는 목적을 위한 것이다. 달리 구체적으로 언급되지 않는 한, 그러한 외부 문서들 또는 그러한 정보 소스들에 대한 언급은, 임의의 권한범위(jurisdiction)에서, 그러한 문서들 또는 그러한 정보 소스들이 본 기술분야의 통상적인 일반 지식의 일부를 형성하거나 또는 선행 기술이라는 인정으로서 해석되어서는 안 된다.
본 명세서의 설명에서, 첨부된 청구범위의 범위 내에 있지 않은 대상물(subject matter)에 대한 언급이 이루어질 수도 있다. 그 대상물은 본 기술분야의 통상의 기술자에 의해 쉽게 식별가능해야 하고, 본 첨부된 청구범위에 정의된 바와 같이 본 발명을 실행하는 것을 지원할 수도 있다.
본 발명이 상기에 정의된 바와 같이 광범위하지만, 본 기술분야의 통상의 기술자들은, 본 발명이, 다음의 설명이 예들을 제공하는 실시예들로 제한되지 않고 본 발명이 이 실시예들을 또한 포함한다는 것을 인식할 것이다.
본 개시내용에 따른 다양한 실시예들이 도면들을 참조하여 설명될 것이다:
도 1은 수 개의 색역들을 통해 슬라이스들과 함께 가시 컬러(visible colour)들을 예시하는 다이어그램이다.
도 2는 렌더링의 방법을 도시한다.
도 3은 도 2로부터 제2 반사 계수(들) 및 형광 계수(들)를 획득하기 위한 방법의 일 예를 도시한다.
도 4는 블로키 스펙트럼들(blocky spectra) 및 평활 스펙트럼들(smooth spectra)의 예들을 도시한다.
도 5는 도 3으로부터의 무차별 대입 탐색(brute-force search)의 일 예를 도시한다.
도 6은 전형적인 결과적인 방출 및 흡수 스펙트럼 쌍의 일 예를 도시한다.
도 7은 스틸 이미지들 및/또는 비디오 이미지들의 시퀀스들의 형태로 이미저리(imagery)를 생성하는 데 사용될 수도 있는 바와 같은 예시적인 시각 콘텐츠 생성 시스템을 예시한다.
도 8은 도 1 및 도 2에 예시된 방법들, 및 도 7에 예시된 시스템들의 컴퓨터 시스템들이 구현될 수도 있는 예시적인 컴퓨터 시스템을 예시하는 블록 다이어그램이다.
다음의 설명에서는, 다양한 실시예들이 설명될 것이다. 설명의 목적들을 위해, 특정 구성들 및 세부사항들이 실시예들의 완전한 이해를 제공하기 위해 제시된다. 그러나, 실시예들이 특정 세부사항들 없이 실시될 수도 있다는 것이 본 기술분야의 통상의 기술자에게 또한 명백할 것이다. 게다가, 잘 알려진 피처들이, 설명되는 실시예를 모호하게 하지 않기 위해 생략 또는 단순화될 수도 있다.
렌더링을 위한 기법들, 그리고 더 구체적으로는 렌더링을 위해 이용가능한 컬러 공간을 확장시키는 것이 아래에 개시된다.
도 1은 말굽 형상(horseshoe shape)의 모든 가시 컬러들을 갖는 국제 조명 위원회(
Figure pct00001
)(CIE) 색도 다이어그램의 일 예를 도시한다. 또한, 3차원 컬러 공간들 또는 상이한 색역들을 통한 2차원 컬러 공간들(102, 104, 106, 108, 110)이 도시되어 있다. 컬러 공간들은, 3차원 영역으로부터 투영되는 컬러들의 범위의 2차원 영역들이다.
컬러 공간(102)은 sRGB 색역의 범위를 예시한다. 컬러 공간(104)은 유효 반사의 색역의 한계들을 예시한다. 컬러 공간(106)은 자연 반사의 색역의 한계들을 예시한다.
컬러 공간(108)은 아래에 설명되는 기법들, 예를 들어 방법(200)(도 2 참조)에 대한 입력 컬러 공간으로서 사용되는 ACEScg 색역을 예시한다. 컬러 공간(110)은 형광 스펙트럼 업샘플링을 통해 컬러 공간(108)을 근사시키는 데 사용되는 방법(100)의 출력 컬러 공간을 예시한다. 이 예에서, 컬러 공간(110)은 컬러 공간(104)보다 더 크다.
도 2는 렌더링을 위한 컴퓨터에 의해 구현된 방법(200)의 일 실시예를 도시한다. 이 방법은, 컬러 공간에서 제1 컬러를 나타내는 제1 세트의 값들을 수신하는 단계(202)를 포함한다. 일 예에서, 제1 세트의 값들은, RGB 값들을 나타내는 삼자극 값들이다. 삼자극 값들은, 예를 들어 YCbCr, LMS 또는 XYZ 값들을 또한 포함할 수도 있다.
일 실시예에서, 컬러 공간은, 삼자극 값들과 연관된 컬러들의 범위에 의해 형성되는 3차원 영역을 나타낸다. 제1 세트의 값들은 컬러 공간(108)에서의 컬러를 나타낸다(도 1 참조).
방법(200)은, 제2 컬러를 나타내는 적어도 하나의 제1 반사 계수에 기초하여 제1 컬러의 제1 근사치를 결정 또는 획득한다(204). 제1 반사 계수(들)는 컬러 공간에서 제2 컬러와 제1 컬러 사이의 오차를 감소시킴으로써 결정된다. 일 예에서, 제1 반사 계수들로 나타내어진 컬러와 입력 컬러 사이의 유클리드 거리(Euclidean distance)에 의해 주어지는 목적 함수(objective function)가 최소화된다.
제1 반사 계수(들)를 사용하여 컬러 공간에서 제2 컬러를 나타내는 제2 세트의 값들은 제2 컬러와 제1 컬러 사이의 오차를 감소시키도록 요구된다. 일 예에서, 제2 세트의 값들은 삼자극 RGB 값들이다. 제2 세트의 값들은, 예를 들어 YCbCr, LMS 또는 XYZ 값들과 같은 다른 삼자극 값들을 또한 포함할 수도 있다. 일 실시예에서, 제2 세트의 삼자극 값들은 관찰자의 크로매틱 반응에 기초하는 함수를 적용함으로써 획득된다.
일 예에서, 스펙트럼 업샘플링 기법들이 컬러의 RGB 값들을 전체 스펙트럼으로 업샘플링하는 데 사용된다. 제1 반사 계수(들)는 컬러의 전체 스펙트럼을 나타낸다. 에너지 절약이 최적화 동안 고려되지 않고 스케일링에 의해 추후에 강제되어, 따라서 밝은 스펙트럼들이 항상 달성가능한 것은 아니다.
일 실시예에서, 제1 반사 계수(들)는 3개의 계수들을 가질 수도 있다:
Figure pct00002
간격
Figure pct00003
에 대한 에너지 절약 반사가 다음의 2차 다항식 및 시그모이드(sigmoid)를 사용하여 모델링될 수도 있다. 간격은 반사의 양의 배수를 나타내고, 1은 파장에서의 전체 반사(람다)이고, 0은 반사 없음(전체 흡수)이다. 다음의 2차 다항식 및 시그모이드는, 블로키 스펙트럼들을 사용하는 포화된 컬러들뿐만 아니라 평활 스펙트럼들을 이용하는 더 중도의(moderate) 입력 양측 모두를 표현하는 데 사용된다.
도 4는 블로키 스펙트럼들(402) 및 평활 스펙트럼들(404)의 예들을 도시한다:
Figure pct00004
여기서
Figure pct00005
그리고
Figure pct00006
일 예에서, 제1 반사 계수(들)는 상기의 식을 사용하는 일회성 최적화 단계를 사용하여 생성되는 3D 룩업 테이블로부터 보간된다.
유효 반사들의 색역 또는 컬러 공간의 경계에서의 블로키 스펙트럼들이 회피될 잠재력을 갖는다. 채도의 결여를 보상하기 위해 광학 광택제들로서의 형광 염료들의 혼합물 및 더 평활한 스펙트럼들이 사용된다. 이 접근법은 반사 색역 또는 컬러 공간 외측으로 갈 잠재력을 가지며 더 풍부한 세트의 컬러들을 나타낸다.
계수들로 나타내어진 제1 컬러의 근사치 또는 제2 컬러를 획득하기 위해, 주어진 발광체에 대한 다음의 식의 반사율
Figure pct00007
이 사용된다:
Figure pct00008
반사율
Figure pct00009
은 원하는 컬러 공간과 연관된 컬러 매칭 함수들을 사용하여 RGB로 변환된다. 컬러 매칭 함수들은 적분을 통해 스펙트럼 분포를 삼자극 값들로 감소시킨다. 컬러 매칭 함수들은 관찰자에 따라 변한다. 예를 들어, 인간의 지각(perception)을 나타내는 컬러 매칭 함수는, 카메라의 지각을 나타내는 컬러 매칭 함수와는 상이하다.
도 4는 상기의 에너지-보존 반사 모델을 사용하여 비형광 스펙트럼 업샘플링을 통해 생성되는 수 개의 예시적인 반사 스펙트럼들을 도시한다. 박스형 스펙트럼들(402)은 가시 범위에서 자연 반사 스펙트럼들의 평활도를 고려할 때 바람직하지 않다. 박스형 결과들에는 결과적인 스펙트럼들의 평활도를 정량화하는 메트릭을 사용하여 페널티가 주어진다. 모델
Figure pct00010
가 나노미터(nm) 단위의 가시 범위
Figure pct00011
상에서 생성하는 가장 높은 절대 도함수 값이 사용된다.
일 실시예에서, 실제 최대 절대 도함수보다는 오히려 근사치가 계산된다. 먼저, 함수가 간격에 도달하도록 극값(extremal value)들이 획득된다:
Figure pct00012
Figure pct00013
는 다항식의 전역 최소치 또는 최대치이고, 그것이
Figure pct00014
내지
Figure pct00015
에 있는 경우에만 단지 포함된다.
시그모이드
Figure pct00016
의 단조성(monotonicity)을 활용하여, 이 범위의 중간점이 그의 역을 통해 매핑된다:
Figure pct00017
연관된 파장을 결정하기 위해서는, 2차 식
Figure pct00018
를 해결할 필요가 있다. 최종 근사 도함수 값이
Figure pct00019
또는
Figure pct00020
중 어느 하나로 주어진다. 어느 쪽의 솔루션이든 적합하다. 일 예가 도 4에서 406 및 408에 도시되어 있다.
이 근사치의 정확도가
Figure pct00021
의 최대 기울기에 따라 증가한다. 값들 대부분이 0 또는 1에 가까운 박스형 스펙트럼의 경우, 대응하는 내부 다항식
Figure pct00022
는, 대칭 이유들 때문에
Figure pct00023
에서
Figure pct00024
의 가장 급격한 도함수를 이용하여, 시그모이드
Figure pct00025
에 의해 0에 가깝게 그리고 1에 가깝게 매핑되는, 극도로 낮은 그리고 높은 값들에 도달한다.
특정 경사도를 초과하는 스펙트럼들에 페널티를 주는 것이 바람직하다. 그에 따라, 근사치가 덜 정확한 경우 평활 스펙트럼들을 처리할 필요가 없다.
큰 도함수들은 페널티들을 갖는다. 임계치
Figure pct00026
를 초과하는 절대 도함수를 갖는 스펙트럼들은 최적화 목적에 대해 항
Figure pct00027
를 부가시킴으로써 페널티가 주어진다. 일 예에서, 최적화 목적은 컬러 공간 내측의 거리이다. 예를 들어, 평활 스펙트럼들에 대해 임계치
Figure pct00028
(nm 단위의 파장들에 걸쳐 플로팅될 때)인데, 이는 고전적인 맥베스 컬러 체커(Macbeth colour checker) 상에서 관찰된 시그모이드
Figure pct00029
의 최대 도함수이다. 최대 도함수는, 실제로 반사 스펙트럼들을 나타내지 않는 비현실적으로 경사된 면들을 갖는 시그모이드
Figure pct00030
를 제거하도록 기능한다. 지속적인 최적화 목적을 보장하기 위해
Figure pct00031
를 사용하는 것이 바람직하다.
3차원 컬러 공간 내측의 컬러 거리들이
Figure pct00032
에서의 값들에 도달할 수 있다는 것을 고려하면, 이 차이는 심지어 약간 더 큰 도함수들에 대해서도 타깃 함수(target function)에 영향을 미치기 위해 100의 팩터(factor)만큼 스케일링되어, 옵티마이저로 하여금 제1 컬러와 제2 컬러 사이의 오차를 감소시키도록 형광 성분을 선호하게 할 수 있다.
도 2를 참조하면, 일부 경우들에서, 제1 반사 계수(들)에 기초하는 제2 컬러의 삼자극 값들과 제1 컬러의 삼자극 값들 사이의 오차가 원하는 임계치를 초과한다. 오차가 원하는 임계치를 초과하는 경우(206), 제1 반사 계수(들)는 방출 스펙트럼의 피크 파장, 혼합 팩터, 및 형광단(fluophore)의 스토크스 시프트(stokes shift)를 나타내는 3개의 추가 형광 계수들로 확대된다.
방법(200)은, 제2 컬러를 나타내는 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수에 기초하여 제1 컬러의 제2 근사치를 추가로 결정 또는 획득한다(208).
일 예에서, 제2 컬러의 적어도 하나의 제1 반사 계수는 제1 컬러에 대해 충분히 정확한 근사치를 제공하지 않으며, 더 정확한 근사치를 위해 적어도 하나의 형광 계수가 요구된다. 주어진 입력 컬러에 대해 물리적으로 유효한 반사가 없을 때, 또는 물리적으로 유효한 반사가 존재하지만 너무 박스형인 것에 대해 거부될 때 부정확한 근사들이 발생할 수 있다.
형광은, 광이 하나의 파장에서 흡수되고 다른 파장, 통상적으로는 더 긴 파장에서 재방출되는 프로세스이다. 일 예에서, 이 프로세스는 즉각적인 것으로 가정된다.
형광에 대한 가장 중요한 파라미터들은 흡수 스펙트럼 및 방출 스펙트럼이다. 도 6은 아래에 설명되는 기법들에 의해 결정되는 방출(602) 및 흡수(604) 스펙트럼 쌍의 일 예를 600에 도시한다.
흡수 스펙트럼
Figure pct00033
는 주어진 파장에 대해 흡수되는 광의 양을 결정한다. 그 후에, 이 광은 방출 스펙트럼
Figure pct00034
를 따르는 스펙트럼 분포로 재방출된다. 흡수 스펙트럼과 방출 스펙트럼의 피크 파장 사이의 거리가 스토크스 시프트라고 알려져 있다. 제2 컬러에 형광 성분을 부가시키면 제1 컬러가 더 큰 색역 또는 컬러 공간으로부터 근사되게 한다.
형광은 다음의 식을 사용하여 모델링될 수도 있다:
Figure pct00035
분자의 좌측 피가수(left summand)는 정반사(regular reflection)이다. 좌측에 대한 디랙 델타 함수(Dirac delta function)는,
Figure pct00036
가 흡수 스펙트럼
Figure pct00037
를 스케일링 다운시키기 위해 편의를 위해 도입된 스칼라이고,
Figure pct00038
가 비형광 반사 스펙트럼일 때에만 이 항이 단지 기여한다는 것을 보장한다. 우측 피가수에서, 형광 부분
Figure pct00039
는 양자 수율을 고려하고
Figure pct00040
는 상기에 언급된 방출 스펙트럼이다.
한 세트의 삼자극 값들로 나타내어진 임의의 입력 또는 제1 컬러에 대해, 매칭하는
Figure pct00041
Figure pct00042
가 획득된다.
형광 모델은 구체적인 흡수 및 방출 스펙트럼들을 요구한다. 일 예에서, 모델이 렌더링 시간에 사용하는 것이 효율적이라는 것을 보장하기 위해 단순한 저차원 파라메트릭 모델(low-dimensional parametric model)이 사용된다. 저차원 파라메트릭 모델은 또한 분석적으로 중요도가 샘플링될 수 있고, 컴퓨터 그래픽 렌더링과 같은, 장면을 통해 광이 어떻게 전송되는지를 시뮬레이션하는 데 사용되는 기법들에 대해 사용될 수도 있다. 일 예에서, 형광 모델은 몬테 카를로 광 전송 시뮬레이션에 대해 사용될 수도 있다. 분석 모델은 또한 제1 또는 입력 컬러의 삼자극 값들의 세트에 대한 모델 파라미터들의 상당히 단순화된 최적화를 가능하게 한다.
수 개의 실세계 재료들은 100%에 가까운 양자 수율들
Figure pct00043
를 갖는다. 일 예에서,
Figure pct00044
의 값은 재방사를 통해 더 높은 채도들을 달성하기 위해 물리적으로 합리적일 정도로 높게 선택된다. 일 예에서, 파라미터들의 수를 작게 유지하기 위해 파라미터
Figure pct00045
가 0.96의 값으로 고정된다. 형광 모델을 고려하면, 더 낮은
Figure pct00046
는, 낮아진
Figure pct00047
Figure pct00048
와 커플링된 더 큰
Figure pct00049
와 수학적으로 동등해질 것이므로,
Figure pct00050
에 대한 추가 파라미터를 사용하는 것으로부터 기대되는 이익이 거의 없다.
일 예에서, 형광 계수들은 형광 모델의 방출 피크 파장, 농도 및 스토크 시프트와 연관된다. 형광 계수들은 3개의 파라미터들을 갖는다:
Figure pct00051
. 방출 스펙트럼의 피크 파장은 nm 단위의
Figure pct00052
이다. 혼합 팩터
Figure pct00053
는 형광의 양을 나타낸다. nm 단위의 스토크스 시프트
Figure pct00054
는 방출 스펙트럼과 흡수 스펙트럼의 피크 파장들 사이의 거리를 설명한다.
일 예에서, 방출 스펙트럼은 큐빅 b-스플라인(cubic b-spline)으로 모델링된다:
Figure pct00055
방출 스펙트럼 모델은 다양한 스펙트럼 폭들 및
Figure pct00056
각각을 고려하여 신장 및 변환된다. 흡수 스펙트럼은 파수에 걸쳐 플롯팅된 방출 스펙트럼의 미러 이미지로서 정의된다. 이것은 종종 실제 재료들에 대한 경우이다.
방출 및 흡수 스펙트럼들의 쌍은 이들이 서로 닿지만 중첩되지 않도록 모델링된다. 이 가정은 방출 및 흡수 스펙트럼 모델을 단순화시키는데, 이는 여기(excitation) 및 방출의 효과들이 더 짧은 파장들로 천이되는 샘플링 이벤트들의 위험 없이 분리가능한 것으로서 모델링될 수도 있기 때문이다.
방출 스펙트럼을 신장시키기 위해 스케일링 팩터
Figure pct00057
가 사용될 수도 있어서, 파장에 걸쳐 그것을 미러링하면 특정된 거리
Figure pct00058
에서 흡수 피크 파장을 발생시킨다:
Figure pct00059
이것은 방출 스펙트럼:
Figure pct00060
그리고 흡수 스펙트럼:
Figure pct00061
으로 이어진다.
피크에서 값 1을 취하는 흡수 스펙트럼과는 대조적으로, 방출 스펙트럼은 그것이 1로 적분되도록 정규화 또는 스케일링된다(606). 이 정규화는
Figure pct00062
에 대해 일정하고, 닫힌 형태의 해(closed-form solution)를 가지며,
Figure pct00063
로 주어진다.
일 예에서, 제2 반사 계수(들) 및 형광 계수(들)는 컬러 공간에서 제2 컬러와 제1 컬러 사이의 유클리드 거리를 감소시킴으로써 결정된다.
일 예에서, 형광 계수(들)는 기준을 만족시키는 형광 계수(들)의 값을 결정하기 위해 형광 계수(들)의 특정된 범위의 값들을 평가함으로써 제1 반사 계수(들)로부터 결정된다.
도 3을 참조하면, 에너지-보존 반사 모델로부터 획득된 제1 반사 계수(들)는 낮은 오차를 갖는 한 세트의 형광 계수들을 결정하기 위해 사용될 수도 있다(302). 형광 스펙트럼들의 방출 피크 파장, 농도, 스토크스 시프트를 표시하는 형광 계수들에 대해 합리적인 바운드(bound)들이 발견될 수도 있다. 흡수에 대한 합리적인 바운드들의 하나의 예는 320nm 내지 550nm이다. 방출에 대한 합리적인 바운드들의 하나의 예는 380nm 내지 680nm이다. 스토크스 시프트에 대한 합리적인 바운드들의 하나의 예는 50nm 내지 150nm이다.
적어도 하나의 제1 반사 계수들이 주어지면, 낮은 오차를 갖는 형광 계수들의 값들을 발견하기 위해 무차별 대입 탐색 접근법이 합리적인 바운드들 내에서 사용될 수도 있다.
도 5는 고정된
Figure pct00064
Figure pct00065
에 대한 그러한 무차별 대입 탐색의 1차원 슬라이스를 500에 도시한다. 도 5는 수 개의 로컬 최소치들을 갖는 복잡한 최적화 목적을 나타낸다.
일 예에서, 컬러 공간에서 제2 컬러와 제1 컬러 사이의 유클리드 거리를 감소시키는 프로세스는, 제2 반사 계수(들)와 형광 계수(들) 양측 모두를 최적화시키는 것 사이와 제2 반사 계수(들)만을 단지 최적화시키는 것 사이를 교번하는 것을 수반한다. 일 실시예에서, 비선형 경사 하강 옵티마이저(non-linear gradient descent optimiser)가 최적화를 수행한다.
도 3을 참조하면, 무차별 대입 탐색 접근법으로부터 획득된 형광 계수들은 공동으로 제2 반사 계수들과 함께 추가로 최적화될 수도 있다. 일 실시예에서, 프로세스는 제2 반사 계수들만을 단지 최적화시키는 것과 형광 계수들 및 제2 반사 계수들을 공동으로 최적화시키는 것 사이를 교번한다(306).
최적화 프로세스는 최대 반복 횟수 이후에(310), 또는 오차가 더 이상 개선되지 않을 때(308) 종료된다. 일 예에서, 최대 반복 횟수는 50회 반복들로 설정된다. 일 예에서, 제2 컬러가 제1 컬러와 충분히 가까운 근사치인지 여부에 대한 오차 임계치는 컬러 공간에서 제1 컬러와 제2 컬러 사이의 거리에 기초한다.
일 예에서, 방법(208)은, 제2 컬러보다 더 낮은 오차를 갖는 인접한 컬러의 계수들을 획득하는 단계(304)를 포함한다. 제2 컬러의 형광 계수(들) 및 제2 반사 계수(들)는 제2 컬러에 인접한 컬러의 형광 계수(들) 및 제2 반사 계수(들)로 대체된다. 제2 컬러에 인접한 컬러는 컬러 공간에서의 이웃들이다.
각각의 최적화 반복에 대해, 제2 컬러의 형광 계수들 및 제2 반사 계수들이 오차 임계치 미만으로 아직 수렴되지 않은 경우 인접한 컬러들로부터의 형광 계수들 및 제2 반사 계수들이 사용된다. 일 예에서, 제2 컬러보다 더 낮은 오차를 갖는 계수들에 대해 26개의 인접한 컬러들이 분석된다. 26개의 인접한 컬러들 중 가장 적은 오차를 갖는 것의 계수들이 제2 컬러의 계수들을 대체시키기 위해 선택될 수도 있다.
더 낮은 오차를 갖는 인접한 컬러의 계수들이 발견되는 경우, 제2 반사 계수들과 형광 계수들을 공동으로 최적화시키는 것 사이와 제2 반사 계수들만을 단지 최적화시키는 것 사이를 교번하기 위한 후속 반복의 시작 근사치를 초기화하기 위해 인접한 컬러의 계수들이 사용된다. 이 프로세스는 정보가 더 먼 엔트리들로 전파될 수 있다는 것을 보장하기 위해 수 회 반복된다. 일 예에서, 인접한 컬러의 오차를 제2 컬러의 오차와 비교함으로써 최적화 반복들을 통해 오차 임계치들이 감소된다.
방법(200)은, 제1 컬러로서 제1 컬러의 제1 근사치 또는 제1 컬러의 제2 근사치 중 어느 하나를 예를 들어 렌더링 엔진(750)(도 7 참조)에 저장하는 것을 포함할 수도 있다. 방법(200)은 몬테 카를로 렌더링 시스템들에서 사용될 수도 있다.
예를 들어, 도 7은 스틸 이미지들 및/또는 비디오 이미지들의 시퀀스들의 형태로 이미저리를 생성하는 데 사용될 수도 있는 바와 같은 예시적인 시각 콘텐츠 생성 시스템(700)을 예시한다. 시각 콘텐츠 생성 시스템(700)은 라이브 액션 장면들, 컴퓨터 생성된 장면들, 또는 이들의 조합의 이미저리를 생성할 수도 있다. 실제 시스템에서, 필요한 경우 높은 레벨들과 낮은 레벨들로, 그 이미저리에 들어갈 것을 특정하게 하는 툴들이 사용자들에게 제공된다. 예를 들어, 사용자는 애니메이션 아티스트일 수도 있고 시각 콘텐츠 생성 시스템(700)을 사용하여 사운드 스테이지 상에서 라이브 공연을 하는 2명의 인간 배우들 사이의 상호작용을 캡처하고 인간 배우들 중 1명을 컴퓨터 생성된 의인화된 비인간으로 대체시킨 후에 - 이 컴퓨터 생성된 의인화된 비인간은, 대체된 인간 배우의 움직임들과 매너리즘들을 모방하는 방식들로 거동한다 -, 원하는 이야기를 전달하거나 또는 원하는 이미저리를 생성하기 위해 컴퓨터 생성되는 배경 장면 요소들 및 제3의 컴퓨터 생성된 캐릭터에 모두를 부가시킬 수도 있다.
시각 콘텐츠 생성 시스템(700)에 의해 출력되는 스틸 이미지들은, 2차원 이미지 어레이에 한 포지션을 갖는 픽셀과 각각 연관된 픽셀 컬러 값들의 2차원 어레이와 같은 픽셀 어레이들로서 컴퓨터 메모리에서 나타내어질 수도 있다. 픽셀 컬러 값들은, (예를 들어, RGB 포맷의) 적색 값, 녹색 값, 및 청색 값과 같은, 픽셀당 3개 이상(또는 이하)의 컬러 값들로 나타내어질 수도 있다. 그러한 픽셀 컬러 값들의 2차원 어레이의 치수는 1920 픽셀 열들 × 1280 픽셀 행들과 같은 선호 및/또는 표준 디스플레이 스킴에 대응할 수도 있다. 이미지들은 압축된 포맷으로 저장될 수도 있거나 또는 저장되지 않을 수도 있지만, 어느 쪽이든, 원하는 이미지가 픽셀 컬러 값들의 2차원 어레이로서 나타내어질 수도 있다. 다른 변형에서, 이미지들은 3차원 프리젠테이션들을 위해 한 쌍의 스테레오 이미지들로 나타내어지고 다른 변형들에서는, 이미지 출력의 일부 또는 전부가 단지 2차원 뷰들 대신에 3차원 이미저리를 나타낼 수도 있다.
저장된 비디오 시퀀스는 상술된 스틸 이미지들과 같은 복수의 이미지들을 포함할 수도 있지만, 여기서 복수의 이미지들의 각각의 이미지는 타이밍 시퀀스에서의 한 장소를 가지며, 저장된 비디오 시퀀스는, 각각의 이미지가 순서대로 디스플레이될 때, 타이밍 시퀀스에 의해 표시된 시간에, 디스플레이가 움직이고 있고/있거나 변화하고 있는 이미저리인 것으로 보이는 것을 제시하도록 배열된다. 하나의 표현에서, 복수의 이미지들의 각각의 이미지는, 비디오 시퀀스가 재생을 시작할 때부터 특정된 프레임이 디스플레이될 때까지 경과될 수 있는 시간량에 대응하는 특정된 프레임 번호를 갖는 비디오 프레임이다. 프레임 레이트는 저장된 비디오 시퀀스의 얼마나 많은 프레임들이 단위 시간당 디스플레이되는지를 설명하는 데 사용될 수도 있다. 예시적인 비디오 시퀀스들은, 초당 24 프레임들(24 FPS), 50 FPS, 140 FPS, 또는 다른 프레임 레이트들을 포함할 수도 있다. 일부 실시예들에서, 프레임들은 디스플레이를 위해 인터레이스되거나 또는 그렇지 않으면 제시되지만, 설명의 명확성의 목적을 위해, 일부 예들에서, 비디오 프레임은 하나의 특정된 디스플레이 시간을 갖는 것으로 가정되고 다른 변형들이 가능하다는 것이 이해되어야 한다.
비디오 시퀀스를 생성하는 하나의 방법은, 라이브 액션 장면, 즉, 물리적으로 발생하고 비디오 카메라에 의해 레코딩될 수 있는 이벤트들을 레코딩하기 위해 비디오 카메라를 단순히 사용하는 것이다. 레코딩되는 이벤트들은, 뷰잉된 대로 해석되어야 하는 이벤트들(예컨대, 2명의 인간 배우들이 서로 대화하는 것을 보는 것)일 수 있고/있거나 영리한 카메라 조작들로 인해 상이하게 해석되어야 하는 이벤트들(예컨대, 배우들이 실제로 유사한 체격임에도 불구하고 스테이지 주위의 배우들을 이동시켜 한 배우가 다른 배우보다 더 크게 보이도록 하는 것, 또는 실물 사이즈의 객체들을 포함하는 장면으로서 해석되도록 미니어처 객체들을 다른 미니어처 객체들과 함께 사용하는 것)을 포함할 수 있다.
스토리텔링 또는 다른 목적들을 위해 비디오 시퀀스들을 생성하려면 종종, 말하는 나무, 의인화된 객체, 우주 전투들, 및 이와 유사한 것과 같은, 라이브 배우들로 생성될 수 없는 장면들을 필요로 한다. 그러한 비디오 시퀀스들은 라이브 장면들로부터 광을 캡처하기보다는 오히려 계산적으로 생성될 수도 있다. 일부 경우들에서, 컴퓨터 애니메이팅된 장편 영화(computer-animated feature film)의 경우에서와 같이, 전체 비디오 시퀀스가 계산적으로 생성될 수도 있다. 일부 비디오 시퀀스들에서, 일부 컴퓨터 생성된 이미저리 및 일부 라이브 액션을 갖는 것이 바람직한데, 아마도 이때 일부는 이 둘을 신중하게 병합시킨 것이다.
컴퓨터 생성된 이미저리가 각각의 프레임에서의 각각의 픽셀에 대해 각각의 컬러 값을 수동으로 특정함으로써 생성가능할 수도 있지만, 이것은 너무 지루하여 실용적이지 않을 가능성이 있다. 그 결과, 크리에이터(creator)가 다양한 툴들을 사용하여 더 높은 레벨로 이미저리를 특정한다. 일 예로서, 아티스트는 카메라 뷰 평면, 및 카메라 시점뿐만 아니라, 조명 및/또는 객체들의, 3차원 좌표계와 같은, 장면 공간에서의 포지션들을 특정할 수도 있다. 그 모두를 입력들로서 취하면, 렌더링 엔진이 프레임들 각각에서의 픽셀 값들 각각을 컴퓨팅할 수도 있다. 다른 예에서, 아티스트는 각각의 프레임에서 일부 특정된 텍스처를 갖는 관절형 객체를 나타내는 각각의 픽셀의 컬러를 특정하기보다는 오히려 그 관절형 객체의 포지션 및 움직임을 특정한다.
특정 예에서, 렌더링 엔진은 광선 추적을 수행하고, 여기서 픽셀 컬러 값은, 그 픽셀에 대응하는 카메라 뷰 평면의 한 포인트 또는 부분을 통해 카메라 시점으로부터 장면 공간에서 추적된 광선을 따라 놓여 있는 객체들을 컴퓨팅함으로써 결정된다. 예를 들어, 카메라 뷰 평면은 생성될 최종 이미지의 픽셀들에 대응하는 그리드로 분할되는 장면 공간에서 한 포지션을 갖는 직사각형으로서 나타내어질 수도 있고, 그 그리드에서의 주어진 픽셀 및 장면 공간에서의 카메라 시점에 의해 정의된 광선이 먼저 솔리드한 불투명 청색 객체와 교차하는 경우, 그 주어진 픽셀에는 컬러 청색이 할당된다. 물론, 현대의 컴퓨터 생성된 이미저리의 경우, 픽셀 컬러들을 결정하는 것 - 그리고 그에 의해 이미저리를 생성하는 것 - 이 더 복잡할 수 있는데, 이는 조명 이슈들, 반사들, 보간들, 및 다른 고려사항들이 있기 때문이다.
도 7에 예시된 바와 같이, 라이브 액션 캡처 시스템(702)은 스테이지(704) 상에서 끝까지 연기한 라이브 장면을 캡처한다. 라이브 액션 캡처 시스템(702)은 본 명세서에서 더욱 상세히 설명되지만, 컴퓨터 프로세싱 능력들, 이미지 프로세싱 능력들, 하나 이상의 프로세서들, 사용자 입력 디바이스들 및 사용자 출력 디바이스들뿐만 아니라 하나 이상의 프로세서들에 의해 실행가능한 프로그램 명령어들을 저장하기 위한 프로그램 코드 스토리지(program code storage)를 포함할 수도 있는데, 이들 모두가 도시된 것은 아니다.
특정 라이브 액션 캡처 시스템에서, 카메라들(706(1) 및 706(2))은 장면을 캡처하는 한편, 일부 시스템들에서는, 라이브 장면으로부터 정보를 캡처하는 다른 센서(들)(708)(예를 들어, 적외선 카메라들, 적외선 센서들, 모션 캡처("mo-cap") 검출기들 등)가 있을 수도 있다. 스테이지(704) 상에는, 인간 배우들, 동물 배우들, 무생물 객체들, 배경 객체들, 그리고 아마도 컴퓨터 생성된 이미저리와 쉽게 오버레이되도록 하는 방식으로 라이브 장면 레코딩에서 캡처되도록 설계되는 그린 스크린(710)과 같은 객체가 있을 수도 있다. 스테이지(704)는, 캡처 동안 객체가 어디에 있었는지를 결정하기 위해 포스트-캡처(post-capture)에 사용될 수도 있는 기준점들(712(1) 내지 712(3))과 같은 기준점들로서 기능하는 객체들을 또한 포함할 수도 있다. 라이브 액션 장면이 오버헤드 라이트(714)와 같은 하나 이상의 라이트들에 의해 조명될 수도 있다.
라이브 액션 장면을 캡처하는 동안 또는 그에 뒤이어, 라이브 액션 캡처 시스템(702)은 라이브 액션 푸티지(live action footage)를 라이브 액션 푸티지 스토리지(720)에 출력할 수도 있다. 라이브 액션 프로세싱 시스템(722)은 라이브 액션 푸티지를 프로세싱하여 그 라이브 액션 푸티지에 관한 데이터를 생성하고 그 데이터를 라이브 액션 메타데이터 스토리지(724) 내에 저장할 수도 있다. 라이브 액션 프로세싱 시스템(722)은, 컴퓨터 프로세싱 능력들, 이미지 프로세싱 능력들, 하나 이상의 프로세서들, 사용자 입력 디바이스들 및 사용자 출력 디바이스들뿐만 아니라 하나 이상의 프로세서들에 의해 실행가능한 프로그램 명령어들을 저장하기 위한 프로그램 코드 스토리지를 포함할 수도 있는데, 이들 모두가 도시된 것은 아니다. 라이브 액션 프로세싱 시스템(722)은 라이브 액션 푸티지를 프로세싱하여 프레임 또는 다수의 프레임들에서의 객체들의 경계들을 결정하고, 라이브 액션 장면에서의 객체들의 위치들, 카메라가 일부 액션에 상대적인 경우, 움직이는 객체들과 기준점들 사이의 거리들 등을 결정할 수도 있다. 요소들이 감지 또는 검출되는 경우, 메타데이터는 오버헤드 라이트(714)의 위치, 컬러, 및 세기를 포함할 수도 있는데, 이는, 그것이, 컴퓨터 생성되고 라이브 액션 푸티지 상에 오버레이되는 객체들에 대한 컴퓨터 생성된 조명과 매칭시키기 위한 포스트-프로세싱에 유용할 수도 있기 때문이다. 라이브 액션 프로세싱 시스템(722)은 라이브 액션 푸티지의 수신 및 입력 시에 라이브 액션 메타데이터를 생성 및 출력하도록, 아마도 미리 결정된 프로그램 명령어들에 기초하여, 자율적으로 동작할 수도 있다. 라이브 액션 푸티지는 카메라 캡처된 데이터뿐만 아니라 다른 센서들로부터의 데이터일 수 있다.
애니메이션 생성 시스템(730)은 시각 콘텐츠 생성 시스템(700)의 다른 부분이다. 애니메이션 생성 시스템(730)은, 컴퓨터 프로세싱 능력들, 이미지 프로세싱 능력들, 하나 이상의 프로세서들, 사용자 입력 디바이스들 및 사용자 출력 디바이스들뿐만 아니라 하나 이상의 프로세서들에 의해 실행가능한 프로그램 명령어들을 저장하기 위한 프로그램 코드 스토리지를 포함할 수도 있는데, 이들 모두가 도시된 것은 아니다. 애니메이션 생성 시스템(730)은 생성될 이미저리의 세부사항들을 아마도 프로그램적으로 그리고/또는 대화식으로(interactively) 특정하기 위해 애니메이션 아티스트들, 관리자들, 및 다른 것들에 의해 사용될 수도 있다. 데이터 스토어(data store)(732)로서 표시된 데이터베이스 또는 다른 데이터 소스로부터의 사용자 입력 및 데이터로부터, 애니메이션 생성 시스템(730)은 객체들을 나타내는 데이터(예를 들어, 말, 인간, 공, 주전자, 구름, 광원, 텍스처 등)를 생성하고 이를 객체 스토리지(734)에 출력하거나, 장면을 나타내는 데이터를 생성하고 이를 장면 설명 스토리지(736)에 출력하고/하거나 애니메이션 시퀀스들을 나타내는 데이터를 생성하고 이를 애니메이션 시퀀스 스토리지(738)에 출력할 수도 있다.
장면 데이터는, 객체들 및 다른 시각 요소들의 위치들, 이들의 파라미터들의 값들, 조명, 카메라 위치, 카메라 뷰 평면, 및 렌더링 엔진(750)이 CGI 이미저리를 렌더링하는 데 사용할 수도 있는 다른 세부사항들을 표시할 수도 있다. 예를 들어, 장면 데이터는, 이미저리를 렌더링하게 하는 뷰 장소 및 카메라 시점의 위치들과 함께 2차원 공간, 3차원 공간, 또는 다른 차원 공간(예컨대, 2.5차원 공간, 3/4 차원들, 의사(pseudo)-3D 공간들 등)에 특정된 수 개의 관절형 캐릭터들, 배경 객체들, 조명 등의 위치들을 포함할 수도 있다. 예를 들어, 장면 데이터는, 비디오의 우측 절반에 적색의 흐릿한 말하는 개가 그리고 비디오의 좌측 절반에 고정된 나무가 있어야 함을 표시할 수도 있고, 이들 모두는 카메라 시점 위에 그리고 그 뒤에 있는 밝은 점 광원에 의해 조명된다. 일부 경우들에서, 카메라 시점은 명시적이지 않지만, 뷰잉 절두체(viewing frustum)로부터 결정될 수 있다. 직사각형 뷰로 렌더링되어야 하는 이미저리의 경우에, 절두체는 잘린 피라미드가 될 것이다. 렌더링된 뷰에 대한 다른 형상들이 가능하고, 카메라 뷰 평면은 상이한 형상들마다 상이할 수 있다.
애니메이션 생성 시스템(730)은 대화식이어서, 사용자가 애니메이션 시퀀스들, 장면 설명들, 객체 세부사항들 등을 판독하게 하고 이들을 편집하게 하여, 가능하다면 기존 데이터를 업데이트하거나 또는 대체시키기 위해 이들을 스토리지로 리턴시킬 수도 있다. 일 예로서, 오퍼레이터는 객체 스토리지로부터의 객체들을 베이킹 프로세서(baking processor) 내에 입력시킬 수도 있는데, 이 베이킹 프로세서는 이들 객체들을 더 단순한 형태들로 변환하고 이들을 새로운 또는 상이한 객체들로서 객체 스토리지(734)로 리턴시킬 것이다. 예를 들어, 오퍼레이터는 수십 개의 특정된 파라미터들(움직임가능한 관절들, 컬러 옵션들, 텍스처들 등)을 갖는 객체를 판독하고, 이들 파라미터들에 대한 일부 값들을 선택한 후에, 이제 이들 파라미터들에 대한 고정된 값들을 갖는 단순화된 객체인 베이킹된 객체를 세이빙(save)할 수도 있다.
장면의 각각의 세부사항을 특정해야 하기보다는 오히려, 데이터 스토어(732)로부터의 데이터가 객체 프리젠테이션을 유도하는 데 사용될 수도 있다. 예를 들어, 아티스트가 지구의 표면을 지나가는 우주선의 애니메이션을 생성하고 있는 경우, 해안선을 수동으로 드로잉 또는 특정하는 대신에, 아티스트는 애니메이션 생성 시스템(730)이 지구 해안선들의 좌표들을 포함하는 파일에서 데이터 스토어(732)로부터의 데이터를 판독해야 하고 그 해안선 데이터를 사용하여 장면의 배경 요소들을 생성해야 한다는 것을 특정할 수도 있다.
애니메이션 시퀀스 데이터는, 제어가능한 속성들을 갖는 객체의 제어 포인트들에 대한 데이터의 시계열의 형태로 될 수도 있다. 예를 들어, 객체는, 전형적인 인간 움직임들과 유사한 방식들로 움직임가능한 관절들 및 팔다리들을 갖는 인간형 캐릭터(humanoid character)일 수도 있다. 아티스트는, "왼손이 시간 T1 내지 T2에 걸쳐 위치 (X1, Y1, Z1)로부터 (X2, Y2, Z2)로 움직인다"와 같은 높은 레벨로, 더 낮은 레벨(예를 들어, "팔꿈치 관절을 프레임당 2.5도 움직인다")로 또는 심지어 매우 높은 레벨(예를 들어, "캐릭터 A는, 이 장면에 대해 주어지는 물리 법칙들에 부합하여, 특정된 경로를 따라 포인트 P1로부터 포인트 P2로 움직여야 한다")로 애니메이션 시퀀스를 특정할 수 있다.
애니메이팅된 장면에서의 애니메이션 시퀀스들은 라이브 액션 장면에서 발생하는 것에 의해 특정될 수도 있다. 애니메이션 드라이버 생성기(744)는 라이브 액션 장면 동안 라이브 배우의 신체 부분들의 움직임들 및 포지션들을 나타내는 데이터와 같은 라이브 액션 메타데이터를 판독할 수도 있고, CGI 객체를 애니메이팅함에 있어서의 사용을 위해 애니메이션 시퀀스 스토리지(738)에 저장될 대응하는 애니메이션 파라미터들을 생성할 수도 있다. 이것은 인간 배우의 라이브 액션 장면이 캡처되는 동안 지니고 있는 mo-cap 기준점들(예를 들어, 배우 의류 외측의 고 대비 마커(high-contrast marker)들, 배우 피부, 얼굴 상의 고 가시성의 페인트 등) 및 이들 기준점들의 움직임이 라이브 액션 프로세싱 시스템(722)에 의해 결정되는 경우에 유용할 수 있다. 애니메이션 드라이버 생성기(744)는, 그 움직임 데이터를, 관절형 CGI 캐릭터의 관절들이 시간이 지남에 따라 어떻게 움직여야 하는지의 사양들로 변환할 수도 있다.
렌더링 엔진(750)은 해상도 선택 및 한 세트의 렌더링 파라미터들과 같은 렌더링 엔진 제어 입력들뿐만 아니라 애니메이션 시퀀스들, 장면 설명들, 및 객체 세부사항들을 판독할 수 있다. 해상도 선택은 오퍼레이터가 렌더링의 속도와 세부사항의 선명도 사이의 트레이드오프를 제어하는 데 유용할 수도 있는데, 이는 영화 제작자가 특정 상호작용 또는 디렉션(direction)을 테스트하기 위해서는 속도가 선명도보다 더 중요할 수도 있지만, 영화 제작자가 배포될 장편 영화들의 최종 프린트들에 대해 사용될 데이터를 생성하기 위해서는 선명도가 속도보다 더 중요할 수도 있기 때문이다. 렌더링 엔진(750)은, 컴퓨터 프로세싱 능력들, 이미지 프로세싱 능력들, 하나 이상의 프로세서들, 사용자 입력 디바이스들 및 사용자 출력 디바이스들뿐만 아니라 하나 이상의 프로세서들에 의해 실행가능한 프로그램 명령어들을 저장하기 위한 프로그램 코드 스토리지를 포함할 수도 있는데, 이들 모두가 도시된 것은 아니다.
시각 콘텐츠 생성 시스템(700)은, 라이브 푸티지를 애니메이팅된 콘텐츠와 병합시키는 병합 시스템(760)을 또한 포함할 수 있다. 라이브 액션 푸티지 스토리지(720)로부터 판독하여 라이브 액션 푸티지를 획득함으로써, 라이브 액션 메타데이터 스토리지(724)로부터 판독하여 (아마도 그린 스크린(710)이 라이브 액션 장면의 일부라는 사실에 의해 지원된) 이들의 배경으로부터 라이브 액션 장면에서의 객체들을 세그먼트화하는 캡처된 이미지들에서 추정된 세그먼트화와 같은 세부사항들을 획득함으로써, 그리고 렌더링 엔진(750)으로부터 CGI 이미저리를 획득함으로써, 라이브 푸티지가 획득 및 입력될 수도 있다.
병합 시스템(760)은 병합/조합 스토리지에 대한 규칙 세트들(762)로부터 데이터를 또한 판독할 수도 있다. 규칙 세트에서의 규칙의 매우 단순한 예는 "라이브 푸티지로부터 2차원 픽셀 어레이를 포함하는 전체 이미지를 획득하고, 렌더링 엔진(750)으로부터 2차원 픽셀 어레이를 포함하는 전체 이미지를 획득하고, 라이브 푸티지에서의 대응하는 픽셀이 녹색의 특정 컬러일 때 각각의 픽셀이 렌더링 엔진(750)으로부터의 대응하는 픽셀인 경우에는 이미지를 출력하고, 그렇지 않으면 라이브 푸티지에서의 대응하는 픽셀로부터 픽셀 값을 출력한다"일 수도 있다.
병합 시스템(760)은, 컴퓨터 프로세싱 능력들, 이미지 프로세싱 능력들, 하나 이상의 프로세서들, 사용자 입력 디바이스들 및 사용자 출력 디바이스들뿐만 아니라 하나 이상의 프로세서들에 의해 실행가능한 프로그램 명령어들을 저장하기 위한 프로그램 코드 스토리지를 포함할 수도 있는데, 이들 모두가 도시된 것은 아니다. 병합 시스템(760)은, 프로그래밍 명령어들에 따라, 자율적으로 동작할 수도 있거나, 또는 오퍼레이터가 병합 프로세스를 제어할 수 있게 하는 사용자 인터페이스 또는 프로그램 인터페이스를 가질 수도 있다. 일부 실시예들에서, 오퍼레이터는 병합 프로세스에서 사용할 파라미터 값들을 특정할 수 있고/있거나 세그먼트화된 객체들의 경계들을 수정하는 것, 결함들을 완화시키기 위해 블러들을 삽입하는 것, 또는 다른 효과들을 부가시키는 것과 같은, 병합 시스템(760)의 출력에 대해 이루어질 특정 트윅(tweak)들을 특정할 수도 있다. 그의 입력들에 기초하여, 병합 시스템(760)은 정적 이미지 스토리지(770)에 저장될 이미지 및/또는 애니메이팅된/조합된 비디오 스토리지(772)에 저장될 비디오의 형태의 이미지들의 시퀀스를 출력할 수 있다.
따라서, 설명된 바와 같이, 시각 콘텐츠 생성 시스템(700)은 다양한 컴포넌트들 및 툴들을 사용하여 컴퓨터 생성된 애니메이션과 라이브 액션을 조합하는 비디오를 생성하는 데 사용될 수 있는데, 이들 중 일부는 본 명세서에서 더 상세히 설명된다. 시각 콘텐츠 생성 시스템(700)은 그러한 조합들에 유용할 수도 있지만, 적합한 설정들을 이용하여, 그것은 전체적으로 라이브 액션 푸티지 또는 전체적으로 CGI 시퀀스들을 출력하는 데 사용될 수 있다. 코드는 또한, 일시적 컴퓨터 판독가능 매체, 예를 들어, 송신 매체에 의해 예컨대 네트워크를 통해 송신되는 신호의 형태로 제공 및/또는 운반될 수도 있다.
하나의 실시예에 따르면, 본 명세서에서 설명되는 기법들은 펌웨어, 메모리, 다른 스토리지, 또는 조합에서의 프로그램 명령어들에 따라 기법들을 수행하도록 프로그래밍되는 하나의 또는 일반화된 컴퓨팅 시스템들에 의해 구현된다. 데스크톱 컴퓨터 시스템들, 휴대용 컴퓨터 시스템들, 핸드헬드 디바이스들, 네트워킹 디바이스들 또는 기법들을 구현하기 위해 하드와이어드 및/또는 프로그램 로직을 포함하는 임의의 다른 디바이스와 같은 특수 목적 컴퓨팅 디바이스들이 사용될 수도 있다.
예를 들어, 도 8은 상술된 기법들(도 1 및 도 2 참조) 및/또는 시각 콘텐츠 생성 시스템(700)(도 7 참조)이 구현될 수도 있는 컴퓨터 시스템(800)을 예시하는 블록 다이어그램이다. 컴퓨터 시스템(800)은, 정보를 통신하기 위한 버스(802) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위해 버스(802)와 커플링되는 프로세서(804)를 포함한다. 프로세서(804)는, 예를 들어, 범용 마이크로프로세서일 수도 있다.
컴퓨터 시스템(800)은, 프로세서(804)에 의해 실행될 명령어들 및 정보를 저장하기 위해 버스(802)에 커플링되는, 랜덤 액세스 메모리(random access memory)(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(806)를 또한 포함한다. 메인 메모리(806)는 또한, 프로세서(804)에 의해 실행될 명령어들의 실행 동안 임시 변수들 또는 다른 중간 정보를 저장하는 데 사용될 수도 있다. 그러한 명령어들은, 프로세서(804)에 액세스가능한 비일시적 저장 매체들에 저장될 때, 컴퓨터 시스템(800)을 명령어들에 특정된 동작들을 수행하도록 맞춤화되는 특수 목적 머신으로 렌더링한다.
컴퓨터 시스템(800)은, 프로세서(804)에 대한 정적 정보 및 명령어들을 저장하기 위해 버스(802)에 커플링되는 판독 전용 메모리(read only memory)(ROM)(808) 또는 다른 정적 저장 디바이스를 더 포함한다. 자기 디스크 또는 광학 디스크와 같은 저장 디바이스(810)가 제공되고, 정보 및 명령어들을 저장하기 위해 버스(802)에 커플링된다.
컴퓨터 시스템(800)은 컴퓨터 사용자에게 정보를 디스플레이하기 위해 컴퓨터 모니터와 같은 디스플레이(812)에 버스(802)를 통해 커플링될 수도 있다. 영숫자 및 다른 키들을 포함하는 입력 디바이스(814)가, 정보 및 커맨드 선택들을 프로세서(804)에 통신하기 위해 버스(802)에 커플링된다. 다른 타입의 사용자 입력 디바이스는, 프로세서(804)에 방향 정보 및 커맨드 선택들을 통신하기 위한 그리고 디스플레이(812) 상의 커서 이동을 제어하기 위한 마우스, 트랙볼, 또는 커서 방향 키들과 같은 커서 컨트롤(cursor control)(816)이다. 이 입력 디바이스는 2개의 축들, 즉, 제1 축(예를 들어, x)과 제2 축(예를 들어, y)에서의 2 자유도들을 전형적으로 갖는데, 이는 이 디바이스가 평면에서 포지션들을 특정하게 한다.
컴퓨터 시스템(800)은 컴퓨터 시스템과 조합하여 컴퓨터 시스템(800)이 특수 목적 머신이 되도록 하거나 또는 프로그래밍하는 맞춤형 하드와이어드 로직, 하나 이상의 ASIC들 또는 FPGA들, 펌웨어 및/또는 프로그램 로직을 사용하여 본 명세서에서 설명되는 기법들을 구현할 수도 있다. 하나의 실시예에 따르면, 본 명세서의 기법들은, 프로세서(804)가, 메인 메모리(806)에 포함되는 하나 이상의 명령어들의 하나 이상의 시퀀스들을 실행하는 것에 응답하여 컴퓨터 시스템(800)에 의해 수행된다. 그러한 명령어들은 저장 디바이스(810)와 같은 다른 저장 매체로부터 메인 메모리(806) 내에 판독될 수도 있다. 메인 메모리(806)에 포함되는 명령어들의 시퀀스들의 실행은 프로세서(804)로 하여금 본 명세서에서 설명되는 프로세스 단계들을 수행하게 한다. 대안적인 실시예들에서, 하드와이어드 회로부는 소프트웨어 명령어들 대신에 또는 이들과 조합하여 사용될 수도 있다.
본 명세서에서 사용되는 바와 같은 "저장 매체들"이라는 용어는 머신으로 하여금 특정 방식으로 동작하게 하는 명령어들 및/또는 데이터를 저장하는 임의의 비일시적 매체들을 지칭한다. 그러한 저장 매체들은 비휘발성 매체들 및/또는 휘발성 매체들을 포함할 수도 있다. 비휘발성 매체들은, 예를 들어, 저장 디바이스(810)와 같은 광학 또는 자기 디스크들을 포함한다. 휘발성 매체들은 메인 메모리(806)와 같은 동적 메모리를 포함한다. 통상적인 형태들의 저장 매체들은, 예를 들어, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 솔리드 스테이트 드라이브, 자기 테이프, 또는 임의의 다른 자기 데이터 저장 매체, CD-ROM, 임의의 다른 광학 데이터 저장 매체, 홀(hole)들의 패턴들을 갖는 임의의 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, NVRAM, 임의의 다른 메모리 칩 또는 카트리지를 포함한다.
저장 매체들은 송신 매체들과 구별되지만, 이들과 함께 사용될 수도 있다. 송신 매체들은 저장 매체들 사이의 정보의 전송에 참여한다. 예를 들어, 송신 매체들은, 버스(802)를 포함하는 와이어들을 포함하여, 동축 케이블들, 구리 와이어, 및 광 섬유들을 포함한다. 송신 매체들은 전파(radio-wave) 및 적외선 데이터 통신들 동안 생성된 것들과 같은 음향 또는 광파들의 형태를 또한 취할 수 있다.
다양한 형태들의 매체들이 실행을 위해 하나 이상의 명령어들의 하나 이상의 시퀀스들을 프로세서(804)에 운반하는 데 수반될 수도 있다. 예를 들어, 명령어들은 초기에는 원격 컴퓨터의 자기 디스크 또는 솔리드 스테이트 드라이브 상에 운반될 수도 있다. 원격 컴퓨터는 명령어들을 그의 동적 메모리 내에 로딩하고 네트워크 커넥션을 통해 명령어들을 전송할 수 있다. 컴퓨터 시스템(800)에 로컬인 모뎀 또는 네트워크 인터페이스가 데이터를 수신할 수 있다. 버스(802)는 프로세서(804)가 명령어들을 검색 및 실행하게 하는 메인 메모리(806)로 데이터를 운반한다. 메인 메모리(806)에 의해 수신된 명령어들은, 프로세서(804)에 의한 실행 전에 또는 후에 저장 디바이스(810) 상에 임의로 저장될 수도 있다.
컴퓨터 시스템(800)은, 버스(802)에 커플링되는 통신 인터페이스(818)를 또한 포함한다. 통신 인터페이스(818)는, 로컬 네트워크(822)에 연결되는 네트워크 링크(820)에 대한 양방향 데이터 통신 커플링을 제공한다. 예를 들어, 통신 인터페이스(818)는, 통합 서비스 디지털 네트워크(integrated services digital network)(ISDN) 카드, 케이블 모뎀, 위성 모뎀, 또는 대응하는 타입의 전화선에 대한 데이터 통신 커넥션을 제공하기 위한 모뎀일 수도 있다. 무선 링크들이 또한 구현될 수도 있다. 임의의 그러한 구현에서, 통신 인터페이스(818)는, 다양한 타입들의 정보를 나타내는 디지털 데이터 스트림들을 운반하는 전기, 전자기, 또는 광학 신호들을 전송 및 수신한다.
네트워크 링크(820)는 전형적으로 하나 이상의 네트워크들을 통해 다른 데이터 디바이스들에 데이터 통신을 제공한다. 예를 들어, 네트워크 링크(820)는 로컬 네트워크(822)를 통해 호스트 컴퓨터(824)에 대한 또는 인터넷 서비스 제공자(Internet Service Provider)(ISP)(826)에 의해 동작되는 데이터 장비에 대한 커넥션을 제공할 수도 있다. ISP(826)는 차례로, 이제 "인터넷"(828)이라고 통상적으로 지칭되는 월드 와이드 패킷 데이터 통신 네트워크를 통해 데이터 통신 서비스들을 제공한다. 로컬 네트워크(822)와 인터넷(828) 양측 모두는 디지털 데이터 스트림들을 운반하는 전기, 전자기, 또는 광학 신호들을 사용한다. 컴퓨터 시스템(800)으로의 그리고 이로부터의 디지털 데이터를 운반하는, 통신 인터페이스(818)를 통한 그리고 네트워크 링크(820) 상의 신호들 및 다양한 네트워크들을 통한 신호들은 송신 매체들의 예시적인 형태들이다.
컴퓨터 시스템(800)은, 네트워크(들), 네트워크 링크(820), 및 통신 인터페이스(818)를 통해, 메시지들을 전송하고, 프로그램 코드를 포함하는 데이터를 수신할 수 있다. 인터넷 예에서, 서버(830)는 인터넷(828), ISP(826), 로컬 네트워크(822), 및 통신 인터페이스(818)를 통해 애플리케이션 프로그램에 대한 요청된 코드를 송신할 수도 있다. 수신된 코드는 그것이 수신될 때 프로세서(804)에 의해 실행될 수도 있고/있거나 추후의 실행을 위해 저장 디바이스(810), 또는 다른 비휘발성 스토리지에 저장될 수도 있다.
본 명세서에서 설명되는 프로세스들의 동작들은 본 명세서에서 달리 표시되지 않는 한 또는 그렇지 않으면 맥락에 의해 명백히 모순되지 않는 한 임의의 적합한 순서로 수행될 수 있다. 본 명세서에서 설명되는 프로세스들(또는 이들의 변형들 및/또는 조합들)은 실행가능 명령어들로 구성되는 하나 이상의 컴퓨터 시스템들의 제어 하에서 수행될 수도 있고, 하나 이상의 프로세서들 상에서 집합적으로 실행하는 코드(예를 들어, 실행가능 명령어들, 하나 이상의 컴퓨터 프로그램들 또는 하나 이상의 애플리케이션들)로서, 하드웨어에 의해 또는 이들의 조합들로 구현될 수도 있다. 코드는, 예를 들어, 하나 이상의 프로세서들에 의해 실행가능한 복수의 명령어들을 포함하는 컴퓨터 프로그램의 형태로 컴퓨터 판독가능 저장 매체 상에 저장될 수도 있다. 컴퓨터 판독가능 저장 매체는 비일시적일 수도 있다.
"A, B, 및 C 중 적어도 하나(at least one of A, B, and C)", 또는 "A, B 및 C 중 적어도 하나(at least one of A, B and C)"라는 형태의 어구들과 같은 결합어는, 달리 구체적으로 언급되지 않는 한 또는 그렇지 않으면 맥락에 의해 명확히 모순되지 않는 한, 항목, 용어 등이 A 또는 B 또는 C 중 어느 하나, 또는 A와 B와 C의 세트의 임의의 비어 있지 않은 서브세트일 수도 있다는 것을 제시하기 위해 일반적으로 사용되는 맥락으로 달리 이해된다. 예를 들어, 3개의 멤버들을 갖는 세트의 예시적인 예에서, "A, B, 및 C 중 적어도 하나" 및 "A, B 및 C 중 적어도 하나"라는 결합 어구들은 다음의 세트들: {A}, {B}, {C}, {A, B}, {A, C}, {B, C}, {A, B, C} 중 임의의 것을 지칭한다. 따라서, 그러한 결합어는 특정 실시예들이 A 중 적어도 하나, B 중 적어도 하나 및 C 중 적어도 하나 각각이 존재하도록 요구한다는 것을 의미하도록 일반적으로 의도된 것이 아니다.
본 명세서에 제공된 임의의 그리고 모든 예들, 또는 예시적인 언어(예를 들어, "예컨대(such as)")의 사용은 단지 본 발명의 실시예들을 더 잘 예시하도록 의도되고, 달리 청구되지 않는 한 본 발명의 범위에 대한 제한을 제기하지 않는다. 본 명세서에서의 어떠한 언어도 본 발명의 실행에 필수적인 것으로서 임의의 청구되지 않은 요소를 표시하는 것으로 해석되어서는 안 된다.
전술한 명세서에서, 본 발명의 실시예들은 구현마다 달라질 수도 있는 수많은 특정 세부사항들을 참조하여 설명되었다. 이에 따라, 본 명세서 및 도면들은 제약적인 의미보다는 오히려 예시적인 의미로 간주되어야 한다. 본 발명의 범위의 유일하고 배타적인 지표, 그리고 본 발명의 범위가 되도록 본 출원인들에 의해 의도된 것은, 임의의 후속 정정을 포함하여, 청구항들이 발행된 특정 형태로, 본 출원으로부터 발행된 청구항들의 세트의 문자적이고 동등한 범위이다.
본 개시내용을 판독한 후에 본 기술분야의 통상의 기술자에게 추가의 실시예들이 구상될 수 있다. 다른 실시예들에서, 상기에 개시된 발명의 조합들 또는 하위 조합들이 유리하게 이루어질 수 있다. 컴포넌트들의 예시적인 배열들은 예시의 목적들을 위해 도시된 것이고, 조합들, 부가들, 재배열들, 및 이와 유사한 것이 본 발명의 대안적인 실시예들에서 고려된다는 것이 이해되어야 한다. 따라서, 본 발명이 예시적인 실시예들과 관련하여 설명되었지만, 본 기술분야의 통상의 기술자는 수많은 수정들이 가능하다는 것을 인지할 것이다.
예를 들어, 본 명세서에서 설명되는 프로세스들은 하드웨어 컴포넌트들, 소프트웨어 컴포넌트들, 및/또는 이들의 임의의 조합을 사용하여 구현될 수도 있다. 이에 따라, 본 명세서 및 도면들은 제약적인 의미보다는 오히려 예시적인 의미로 간주되어야 한다. 그러나, 청구범위에 제시된 바와 같은 본 발명의 더 넓은 사상 및 범위로부터 벗어남이 없이 다양한 수정들 및 변경들이 이루어질 수도 있고, 본 발명은 다음의 청구범위의 범위 내에서 모든 수정들 및 등가물들을 커버하도록 의도된다는 것이 명백할 것이다.
본 명세서에 인용된 공보들, 특허 출원들, 및 특허들을 포함하는 모든 참조 문헌들은 이로써, 각각의 참조 문헌이 참조로 포함된 것으로 개별적으로 그리고 구체적으로 표시되고 그 전체가 본 명세서에 제시된 것과 동일한 정도로 참조로 포함된다.

Claims (12)

  1. 렌더링을 위한 컴퓨터에 의해 구현된 방법으로서,
    컬러 공간에서 제1 컬러를 나타내는 제1 세트의 삼자극 값(tristimulus value)들을 수신하는 단계;
    제2 컬러를 나타내는 적어도 하나의 제1 반사 계수(first reflectance coefficient)에 기초하여 상기 제1 컬러의 제1 근사치를 결정하는 단계;
    상기 제2 컬러를 나타내는 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수에 기초하여 상기 제1 컬러의 제2 근사치를 결정하는 단계; 및
    상기 제1 컬러로서 상기 제1 컬러의 제1 근사치 또는 상기 제1 컬러의 제2 근사치 중 어느 하나를 렌더러(renderer)에 저장하는 단계
    를 포함하는, 컴퓨터에 의해 구현된 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 제1 반사 계수를 결정하는 것은, 상기 컬러 공간에서 상기 제2 컬러와 상기 제1 컬러 사이의 오차를 감소시키는 것을 포함하는, 컴퓨터에 의해 구현된 방법.
  3. 제2항에 있어서,
    상기 적어도 하나의 제1 반사 계수를 사용하여 상기 컬러 공간에서 상기 제2 컬러를 나타내는 제2 세트의 삼자극 값들을 결정하는 단계를 더 포함하는, 컴퓨터에 의해 구현된 방법.
  4. 제3항에 있어서,
    상기 제2 세트의 삼자극 값들을 결정하는 단계는, 관찰자의 크로매틱 반응(chromatic response)에 기초하는 함수를 적용하는 단계를 포함하는, 컴퓨터에 의해 구현된 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수를 결정하는 것은, 상기 컬러 공간에서 상기 제2 컬러와 상기 제1 컬러 사이의 오차를 감소시키는 것을 포함하는, 컴퓨터에 의해 구현된 방법.
  6. 제5항에 있어서,
    상기 적어도 하나의 제1 반사 계수로부터 상기 적어도 하나의 형광 계수를 결정하는 것은, 기준을 만족시키는 적어도 하나의 형광 계수의 값을 결정하기 위해 상기 적어도 하나의 형광 계수의 값들의 특정된 범위를 평가하는 것을 포함하는, 컴퓨터에 의해 구현된 방법.
  7. 제5항 또는 제6항에 있어서,
    상기 컬러 공간에서 상기 제2 컬러와 상기 제1 컬러 사이의 오차 거리를 감소시키는 것은, 상기 적어도 하나의 제2 반사 계수와 상기 적어도 하나의 형광 계수 양측 모두를 최적화시키는 것 사이와 상기 적어도 하나의 제2 반사 계수만을 단지 최적화시키는 것 사이를 교번하는 것을 포함하는, 컴퓨터에 의해 구현된 방법.
  8. 제7항에 있어서,
    상기 제2 컬러의 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수를, 상기 제2 컬러에 인접한 컬러의 적어도 하나의 형광 계수 및 적어도 하나의 제2 반사 계수로 대체시키는 단계를 더 포함하는, 컴퓨터에 의해 구현된 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서,
    상기 형광 계수들은 형광 모델의 방출 피크 파장, 농도 및 스토크 시프트(stoke shift)와 연관되는, 컴퓨터에 의해 구현된 방법.
  10. 컴퓨터 시스템으로서,
    적어도 하나의 프로세서; 및
    상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금 제1항 내지 제9항 중 어느 한 항의 방법을 구현하게 하는 명령어들을 저장하는 저장 매체
    를 포함하는, 컴퓨터 시스템.
  11. 비일시적 저장 매체로서,
    적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제9항 중 어느 한 항의 방법을 구현하게 하는 명령어들을 저장하는, 비일시적 저장 매체.
  12. 컴퓨터 판독가능 매체로서,
    적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제9항 중 어느 한 항의 방법을 구현하게 하는 명령어들을 운반하는, 컴퓨터 판독가능 매체.
KR1020217021772A 2020-07-08 2020-07-08 렌더링을 위한 방법 및 시스템 KR20220007037A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/NZ2020/050066 WO2022010364A1 (en) 2020-07-08 2020-07-08 Method and system for rendering

Publications (1)

Publication Number Publication Date
KR20220007037A true KR20220007037A (ko) 2022-01-18

Family

ID=76756001

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217021772A KR20220007037A (ko) 2020-07-08 2020-07-08 렌더링을 위한 방법 및 시스템

Country Status (6)

Country Link
EP (1) EP4179282A4 (ko)
JP (1) JP2022543178A (ko)
KR (1) KR20220007037A (ko)
AU (1) AU2020368983B2 (ko)
CA (1) CA3116076C (ko)
WO (1) WO2022010364A1 (ko)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5323249A (en) * 1993-01-12 1994-06-21 E. I. Du Pont De Nemours And Company Method for reproducing color images having one color gamut with a device having a different color gamut
JP2004064542A (ja) * 2002-07-30 2004-02-26 Canon Inc 画像処理システム、装置及び方法
US7480083B2 (en) * 2002-07-30 2009-01-20 Canon Kabushiki Kaisha Image processing system, apparatus, and method, and color reproduction method
GB0616907D0 (en) * 2006-08-25 2006-10-04 Univ Bath Image construction
JP5251547B2 (ja) * 2008-06-06 2013-07-31 ソニー株式会社 画像撮影装置及び画像撮影方法、並びにコンピュータ・プログラム
US9134178B2 (en) * 2012-07-27 2015-09-15 Imax Corporation Observer metameric failure compensation method

Also Published As

Publication number Publication date
WO2022010364A1 (en) 2022-01-13
CA3116076A1 (en) 2021-07-07
EP4179282A4 (en) 2023-05-31
JP2022543178A (ja) 2022-10-11
AU2020368983B2 (en) 2022-06-02
CA3116076C (en) 2022-05-17
AU2020368983A1 (en) 2022-01-27
EP4179282A1 (en) 2023-05-17

Similar Documents

Publication Publication Date Title
AU2020201618B2 (en) On-set facial performance capture and transfer to a three-dimensional computer-generated model
US11328437B2 (en) Method for emulating defocus of sharp rendered images
US11803998B2 (en) Method for computation of local densities for virtual fibers
CA3116076C (en) Method and system for rendering
US11380048B2 (en) Method and system for determining a spectral representation of a color
US11308586B2 (en) Method for applying a vignette effect to rendered images
KR20220108024A (ko) 피부 애니메이션에 대한 미세 세부사항을 유추하는 방법
GB2584192A (en) On-set facial performance capture and transfer to a three-dimensional computer-generated model
CA3141781C (en) Reconstruction of obscured views of captured imagery using arbitrary captured inputs
CA3143520C (en) Method of computing simulated surfaces for animation generation and other purposes
US11887274B2 (en) Method for interpolating pixel data from image data having depth information
US20220215512A1 (en) Method for Emulating Defocus of Sharp Rendered Images
US20230196702A1 (en) Object Deformation with Bindings and Deformers Interpolated from Key Poses
EP4176415A1 (en) Method for computation of local densities for virtual fibers

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application