3P by neo 2달전 | favorite | 댓글 1개

스펙트럼을 통해 광선 추적 이해하기

광선 추적에서 파장이 중요한 이유와 스펙트럼 광선 추적이 컴퓨터 예술에 미치는 영향에 대한 배경 설명임

광선 추적

  • 광선이 가상 카메라와 광원 사이에서 가상 물체들 사이를 반복적으로 튕기며 이동하는 경로를 모델링하여 장면을 "조명"하는 것
  • 성능을 위해 많은 지름길을 택함
    • 예: 광원에서 카메라로 향하는 광선 경로를 역으로 추적
    • 광선을 "색상"에 해당하는 RGB 벡터를 운반하는 입자로 취급하고 파동적 특성은 무시
  • RGB 지름길은 우리 눈이 작동하는 방식 때문에 잘 작동함
    • 우리 눈에는 파장에 민감한 세 가지 유형의 색상 감지 세포가 있음 (SML 원뿔 세포)

스펙트럼 보기

  • 우리가 보는 색상은 단일 파장으로 이루어진 경우가 거의 없고, 많은 파장의 집합인 SPD(spectral power distribution)로 구성됨
  • 단일 색상이 여러 SPD에 해당할 수 있음 (metamerism)
    • 예: 노란색은 580nm 파장에 해당하지만 빨간색과 초록색 빛의 혼합으로도 재현 가능
  • SPD에서 색상으로의 변환은 순수하게 수학적으로 가능 (CIE 1931 색 공간)
    • 물리학, 생리학, 주관적 경험을 연결하는 정량적 링크

파장이 중요한 경우

  • 광선의 파동적 특성이 장면을 통과하는 경로에 직접적인 영향을 미치는 경우
    • 예: 분산 (프리즘), 박막 간섭 (비눗방울의 무지개 패턴)
  • 박막 간섭은 단일 파장으로 스펙트럼을 분할하지 않고 스펙트럼 일부의 기여도를 증가/감소시켜 청록색, 밤색 등의 비분광 색상을 만들어냄

스펙트럼 광선 추적과 컴퓨터 예술

  • 광선의 파동적 특성을 고려하는 광선 추적
  • RGB 색상 대신 장면의 모든 픽셀에 대해 SPD를 생성하고, 광선의 파장과 위상을 활용하여 색상을 더 잘 예측
  • 광 이동을 지배하는 일부 법칙을 의도적으로 깨뜨릴 때 어떤 일이 일어나는지에 대해 호기심 갖게됨
    • 우리 세계와는 조금 다른 우주에서 코드로 카메라 구축
  • JavaScript와 GLSL로 작성한 스펙트럼 광선 추적기를 사용하여 생성한 작품들 소개

GN⁺의 의견

  • 컴퓨터 그래픽스에서 사실적인 렌더링을 위해 고려해야 할 물리적 현상들을 잘 설명하고 있음
    • 특히 우리 눈이 색을 인식하는 방식과 연결지어 설명한 부분이 인상적
  • 예술 작품 제작에 직접 활용된 사례를 보여줘서 이론적인 내용이 실제로 어떻게 적용되는지 알 수 있어 좋음
    • 광선 추적 방식을 변형하여 비현실적이지만 아름다운 영상을 만들어내는 것이 흥미로움
  • 광학 시뮬레이션 외에도 과학적 데이터 시각화, VR/AR, 영화 CG 등 다양한 분야에서 스펙트럼 광선 추적 기술이 활용될 수 있을 것 같음
  • 딥러닝 기반 렌더링 기술이 발전하면서 전통적인 레이트레이싱의 한계를 극복하려는 시도들이 계속 나오고 있음
    • 앞으로 어떤 혁신적인 렌더링 기술들이 만들어질지 기대됨
Hacker News 의견
  • 무료 전자책 "Ray Tracing Gems II"에서는 최신 API와 하드웨어 가속을 사용한 실시간 GPU 레이 트레이싱을 다루며, 스펙트럼 렌더링에 대한 챕터(Chapter 42: Efficient spectral rendering on the GPU for predictive rendering)가 포함되어 있음
  • Mitsuba, Maxwell, Wētā FX의 Manuka 등 스펙트럼 레이 트레이서의 예시들이 제시됨
    • Mitsuba: 오픈소스 리서치 렌더러. 미분 가능한 렌더링 등 다양한 기능 제공
    • Maxwell: 정확도가 다양한 두 가지 스펙트럼 모드 제공. 복잡한 방식은 광학에 자주 사용됨
    • Manuka: 스펙트럼 기반이며 여러 영화에 사용됨
  • 원글 작성자의 코멘트:
    • 스펙트럼 렌더링은 레이 트레이싱 자체가 렌더링의 종착점이 아니라는 예시. 실시간 레이 트레이싱으로 렌더링이 해결되었다는 의견도 있지만 사실과 거리가 멈
    • 대부분의 스펙트럼 렌더링 시스템은 얇은 막 간섭이나 다른 파동 기반 효과를 다루지 않음. 현실에는 놀라울 정도로 많은 디테일이 존재함
  • 하이퍼스펙트럴(3채널 이상) 이미지 생성 제안:
    • 스펙트럼을 강조하여 어린이 색상 교육에 활용 가능
    • 하이퍼스펙트럴 이미지와 카메라는 희귀하고 전통적으로 비쌌으나, 합성 이미지로 대체 가능
    • 매우 낮은 해상도의 브라우저 내 렌더러로 조명과 재질을 인터랙티브하게 다룰 수 있을지도
    • 비정상적 색각, 백내장 제거 후 UV까지 볼 수 있는 인간, 색맹 포유류, 4색 잉어 등의 시점으로 렌더링 가능
  • 직접 레이 트레이싱 구현을 해보는 것이 의외로 쉬움. 무료 책이나 Unity 기반 GPU 튜토리얼 추천
    • 기본 구현을 가지고 놀면서 직관을 얻을 수 있음 (예: 광선을 물체에 끌리거나 밀리는 입자처럼 구현, 마지막 반사각 기억해서 다음 재질에 활용 등)
    • 대부분은 보기 안 좋았지만 직관을 얻을 수 있었음. 카메라를 조금씩 움직이는 것도 도움됨
  • 아름다움을 위해 수정된 내용이 다른 시각화에도 유용할 수 있을지 궁금함
  • 분산 레이 트레이서에 굴절을 구현하려 함
    • 주파수를 무작위로 샘플링하고, 색상을 계산하여 광선 색상을 변조
    • 순수 굴절 색상이 1/3 밝기이므로 결과에 3을 곱해야 함
  • 글 끝에 공유된 아트웍에 대해 더 알고 싶음. 우리와 다른 방식으로 빛이 작용하는 현실을 렌더링한다는 개념이 매력적임
  • RGB 픽셀 대신 스펙트럼 분포를 모델링하는 것이 레이 트레이싱 성능에 미치는 영향을 이해하고 싶음