상세 컨텐츠

본문 제목

Rendering 프로세스 이해하기

똑똑한 개발/컴퓨터 그래픽스

by 성댕쓰 2022. 3. 2. 22:45

본문

크게 2 개의 파트가 3D 화면 Rendering 프로세스를 구성한다.

  - perspective projection과 visibility problem

  - light transport와 shading

 

위 그림처럼 3차원 물체의 꼭지점과 우리 눈까지의 직선을 그엇을 때 canvas위에 한 점과 만난다. 이렇게 만난 점을 이으면 어떤 물체를 canvas 위에 그릴 수 있다. 이러한 작업을 perspective projection이라고 한다.

perspective projection만 했을 때 물체의 어떤 부분이 보이고 어떤 부분은 안보이는지 알 수 없다. 어떤 부분을 안보이게 처리하고 보이게 처리할 건지 계산하는 것을 visibility problem이라고 한다.

visibility problem을 해결하기 위한 다양한 방법이 존재하는데 대부분 다음 2가지 카테고리 중 하나에 속한다.

  - Rasterization

  - Ray-tracing

 

Shading은 물체가 빛과 상호작용하여 어떤 색깔, 질감, 밝기를 가지고 있는지 계산하고 정하는 작업이다.

물체와 빛이 상호작용하는 과정을 simulate하고 계산하는 모듈을 CG에서 Shader라고 부른다.

 

발광지에서 빛이 나와 물체에 맞아 우리 눈에 들어오는 과정을 simulating하면 복잡하고 정확히 알 수 없을 뿐더러 구현하여도 너무 많은 계산이 필요해 사용하기 어렵다. 반대로 눈 -> 물체 -> 광원으로 빛을 추적하면 효율적으로 구현할 수 있다. 전자를 forward tracing, 후자를 backward tracing이라고 한다. 이러한 빛의 경로를 추적하는 작업을 light transport라고 한다.

rendering process를 구성하는 다양한 지금까지 살펴본 두 가지 카테고리 중 하나에 속한다.

참조 : Rendering an Image of a 3D Scene: an Overview (An Overview of the Rendering Process: Visibility and Shading) (scratchapixel.com)

관련글 더보기

댓글 영역