사람의 눈이 포착하거나 사람이 인식하는 것처럼 이미지를 렌더링하십시오.
이것을 해석하는 두 가지 방법이 있습니다. 둘 다하겠습니다.
해석 1 : 지각 적으로 사실적으로 보이는 이미지를 렌더링합니다.
하루가 끝나도 이미지는 여전히 어딘가에 표시 되어야 합니다. 핵심은 다음과 같습니다 . 특정 디스플레이 장치에서 해당 이미지를 * 표시 * 할 때 원래 방사선 이미지가 생성했을 때와 동일한 느낌을 생성하는 방식으로 이미지 를 렌더링 하려고합니다 .
그 아이디어의 포장을 푸는 방법은 다음과 같습니다.
실제 세계에서 방사선 스펙트럼 (즉, 실제 빛의 분포)이 눈에 들어가 약 1 개의 4 개의 빛 수용체를 자극 합니다. 수용체의 자극은 이미지와 관련된 색상의 감각을 생성합니다.
렌더링에서는 우리가 생성하는 스펙트럼을 임의로 제어 할 수 없습니다. 다행스럽게도, 일반적으로 스칼라 값만 생성하는 원뿔이 3 개뿐이므로 정확히 3 개의 원색을 사용하여 색각을 재현 할 수 있습니다. 결론 은 세 가지 파장의 선형 조합 만 사용하여 색상을 생성 할 수 있다는 것입니다.
기본을 선택할 수 없습니다. 거의 모든 컬러 디스플레이 장치는 sRGB 표준을 사용하여 3 개의 기본 (일반적으로 단일 파장이 없음)을 제공합니다. 그것은 모두 추상화되어 있으며 신경 쓸 필요가 없기 때문에 괜찮습니다.
지각 적으로 정확한 렌더링 인 혼란을 명확히하기 위해 알고리즘은 다음과 같습니다.
- 올바른 방사선 계산을 사용하여 이미지를 렌더링하십시오. 개별 파장의 파장 또는 파장의 버킷을 추적합니다. 도대체 무엇이. 결국 모든 지점에서 수신 한 스펙트럼을 나타내는 이미지가 있습니다.
- 각 픽셀에서 렌더링 한 스펙트럼을 가져 와서 CIE XYZ 색상 공간으로 변환합니다 . 이것은 스펙트럼의 곱을 표준 옵저버 기능 과 통합하는 것으로 작동 합니다 (CIE XYZ 정의 참조) .
- 이는 CIE XYZ 색상 인 3 개의 스칼라 값을 생성합니다.
- 행렬 변환을 사용하여 이것을 선형 RGB로 변환 한 다음 선형 / 전력 변환을 사용하여 선형 RGB를 sRGB로 변환하십시오 .
- 부동 소수점에서 uint8로 변환하고 값을 클램핑하여 범위를 벗어났습니다 (모니터가이를 나타낼 수 없음).
- uint8 픽셀을 프레임 버퍼로 보냅니다.
- 디스플레이는 sRGB 색상을 취하고 역변환을 수행하여 특정 강도의 3 원색을 생성합니다. 각각은 담당하는 모든 그림 요소의 출력을 조정합니다. 그림 요소가 켜지고 스펙트럼이 생성됩니다. 이 스펙트럼은 렌더링 한 원래 스펙트럼에 대한 메타 머일 것 입니다.
- 렌더링 된 스펙트럼을 인식 한 것처럼 스펙트럼을 인식합니다.
해석 2 : 시각화 목적으로 또는 LDR 디스플레이에 대한 보상을 위해 사람의 눈이받을 최종 데이터를 시뮬레이션하려고합니다.
이것은 덜 유용한 의미를 가지고 있다고 생각합니다. 본질적으로, 두뇌가 재미 / 이익을 위해 인식하는 방식을 조정하는 이미지를 만들려고합니다.
예를 들어, SIGGRAPH에는 올해 이미지가 지각 적으로 다르게 보이도록 잔상과 색 감소를 시뮬레이션 한 종이 가있었습니다 . 물론 그들이하는 유일한 이유는 우리가 작업하는 디스플레이가 모두 낮은 동적 범위 (LDR)이기 때문입니다. 요점은 실제 이미지 데이터로 실제 HDR (High-dynamic Range) 디스플레이에 노출 된 경우 누군가가 볼 수있는 효과를 시뮬레이션하는 것입니다.
실제로 이것은 잘 작동하지 않는 것으로 판명되었습니다. 예를 들어 잔상의 경우 매우 밝은 자극 소진 컬러 셀로 인해 잔상이 보입니다. 대신 가짜 잔상으로 효과를 자극하려고하면 비슷한 느낌이 들지만 완전히 다른 메커니즘이기 때문에 설득력이 없습니다.
이런 종류의 그래픽은 실제로 당신이 그것을 원한다면 문헌에서 탐구 중입니다. 언급 된 논문은 우리가 보유한 가장 최신의 접근법의 예입니다. 그러나 현재의 합의는 실제로 (적어도 현재는) 시뮬레이션하려고 시도 할 가치가 없다는 것입니다. 최상의 당신은 다른 것을 대체하여 실제 시력 효과를 근사 할 뿐이므로 실제로는 그렇지 않습니다. 작업.
1 Rod + 3 * cones, 일반적인 경우. 인간은 기능상 최대의 빛 수용체를 제로까지 최대 7 개 (최대 5 개)까지 가질 수 있기 때문에 대략적인 수치입니다.