Computer graphics - Rendering

이한결·2024년 6월 8일

Computer Graphics

목록 보기
2/5

Shading

  • 빛의 상호작용의 결과(illumination: 아래 설명)를 기반으로 각 픽셀의 색상을 결정

Constant Shading(Flat Shading)

  • 각 면이 동일한 밝기와 색상을 가지며, 면 내부의 모든 픽셀이 동일한 색상
  • Normal Vector(법선 벡터)를 이용하여 조명 게산
  • 결과를 보면 선이 보인다
    장점: 간단하고 빠르다
    단점: 사실성이 떨어진다

Gouraud Shading

intensity interpolation(선형 보간)


각 꼭짓점별로 조명값을 계산한 후 이를 면 내부에서 선형 보간하여 부드러운 그라데이션 생성
장점: Flat보다 부드러운 결과, Phong보다 빠른 연산
단점: 세부 조명의 표현을 못한다

Phong Shading

각 픽셀에서 normal vector를 보간하여 조명 계산을 수행
장점: 사실적, Highlight 표현에 효과적
단점: 계산 비용

Shadow Generation


Self Shadow: 자기 자신에 의해 생기는 그림자
Projective shadow: 물체가 다른 물체나 표면에 드리우는 그림자
그림자는 광원과 물체의 종류가 결정한다

illumination(Lighting)

3D 장면에서 광원과 물체 간의 상호작용을 통해 빛이 물체에 어떻게 도달하고 반사되는지를 계산하는 총체적인 과정

직접광 / 간접광


직접광: 광원에서 바로 나오는 빛
간접광: 직접광이 바닥이나 벽등 주변환경에 부딪히고 반사되는 빛

Local illumination

  • 광원, 물체만 사용하여 계산
  • 간접광과 주변환경을 고려하지 않는다
    Ex: Blinn-Phong illumniation

Global illumination

  • 주변환경과 간접광도 고려

Radiosity

  • 정적 장면의 간접 조명을 계산하는데 사용되는 기법
  • 하이라이트 표현(빛이 매끄럽고 반사적인 표면에 닿아 특정 방향으로 반사될 때 나타나는 밝은 점 또는 영역)이 전혀 없다
  • 에너지 보존법칙
    모든 표면에서 방출하고 흡수한 빛의 총량이 일치
  • 난반사 (Diffuse(Lambertian) Reflection)기반

정반사: 빛이 특정한 방향으로 반사
난반사: 빛이 모든 방향으로 고르게 반사

Radiosity 계산
1. 장면분할(Meshing): 장면을 작은 patch로 분할
2. Form Factor 계산 AiFij = AjFji(Fij: From i to j light energy, Ai:i의면적)
3. 에너지 보존 법칙을 적용하여 연립 방정식 풀기
4. 패치의 색상 결정

장점: 실내 공간 렌더링에 용이, 한번 계산한 조명값은 그대로 사용해 frame당 새로운 계산X
단점: 정반사X, 많은 계산 시간

Radiosity Mesh: 초기에는 큰패치로 시작하여 필요한 곳에서 더 세밀한 Mesh로 분할

Ray Casting

  • 각 픽셀을 통해 광선을 발사하여 2D 화면에 projection하는 간단한 3D 렌더링 기법
  • 광선이 물체와 처음 만나는 지점의 색상을 결정하는데 중점
  • 반사, 굴절, 그림자 등의 복잡한 광학 효과는 고려X
    관찰자 -> 물체 -> 광원까지의 경로를 역추적
    장점: 간단 + 복잡한 효과 고려 X

Ray Tracing

광선이 장면을 탐색하고 물체와 상호작용하는 방식을 시물레이션하여 매우 사실적인 이미지를 생성
계산과정

1. Intersection

Ray: 시각 광선
Sphere: 구체 -> 만나지 않음 / 접합 / 두점에서 만남
Plane: 평면 -> 삼각형 내부인지 확인

  1. 색깔값 구하기 <Blinn-Phong illuminiation이용, Recursive Ray Tracing>

  2. 굴절(뒤에 있는 물질의 색을 적용) <Snell's law>

    θ: 입사각 // n: 굴절률

장점: 사실적 표현
단점: 많은 계산 시간(95%가 교점을 구하는데 사용) -> 개선법: Bounding Volume, Octree

Ray Casting vs Ray Tracing
Ray Casting: 해당 물체에 닿으면 일회성으로 사용되고 더 이상 연산을 수행하지 않는다(경계와 교차점만 찾는데 중점)
Ray Tracing: 빛이 해당 물체의 표면에 닿은 후 현실처럼 빛이 다시 재귀적으로 반사되어 결과물을 렌더링하는 방식

Radiosity vs Ray Tracing

왼쪽: Radioisty 오른쪽: Ray Tracing

-> Ray Tracing이 하이라이트 표현이 되며 조금더 사실적(반사가 잘 표현됨)

다양한 Rendering

Volume Rendering

의료 영상 분야(MRI, CT)에서 사용 -> 물체의 내부까지 표현

Point Sample Rendering

  • 각 점을 샘플로 사용하여 물체를 렌더링하는 방식
  • 동적 조명을 갖는 환경에서 복잡한 물체 렌더링하는데 적합
    장점: 계산량이 적고, 시점 독립적

Image-Based

Image-Based Modeling: 여러 시점의 2차원 영상을 이용하여 3차원 모델 생성
Image-Based Rendering: 2차원 영상의 조합으로부터 새로운 시점의 영상 생성
Image-Based Acceleration: 물체가 가까이 있을 때는 geometric model 사용, 멀리 있을 때는 영상으로 대체
Image-Based Lighting: 2차원 영상으로부터 조명정보 추출

Image-based Modling + Image-based Rendering
장점: 영상의 복잡도랑 독립적이고, 실제감이 높은 영상 생성
단점: 동적환경X, 영상 왜곡

HDRI(Hight Dynamic Range Image)

일반적인 디지털 화상 처리 기법보다 훨씬 높은 다이내믹 레인지를 처리할 수 있는 기법
다이나믹 레인지: 이미지 내에서 가장 어두운 부분과 가장 밝은 부분 사이의 명암비

Non-Photorealistic Rendering

현실 세계를 사실적으로 표현하는대신 예술적이고 감성적인 표현(그림, 만화처럼)에 주안점을 두는 렌더링 기법

요약

마무리

해당 내용은 대학 강의록 및 구글링을 통해 정리한 내용이므로 오류가 있을 수 있습니다.

profile
열정으로 가득할 페이지

0개의 댓글