2009.10.17 19:45

표면하 산란에 의한 스킨셰이더(1/8) ~ 유사 라디오시티 라이팅(1/2) (Half Lambert Lighting)


2009-04-04 17:59:00
3Dゲームグラフィックスでは人間のキャラクタ取り扱うことが多く、その際に避けられないのが人肌の表現だ。ただ、肌色に塗ったテクスチャを貼り付けて拡散反射のライティングを行っただけでは素焼きの焼き物かプラ ...... >> Read more

(C) Mainichi Communications Inc. All rights reserved.


3D게임 그래픽스에서는 인간형 캐릭터를 다루는 경우가 많으며, 그 때 피할 수 없는 것이 피부의 표현이다.

단지, 피부색의 텍스처를 붙여서 확산반사 라이팅을 해 준 것 만으로는 설익은 구이나 플라스틱처럼 보여 버린다. 신선한 살아 있는 피부의 느낌을 내기 위해, 지금까지 다양한 수단들이 시도되어 왔다.

이번회 부터는, 가장 기본적인 의사(疑似, 유사)방법과 비교적 물리적으로 올바르게 처리해서 리얼한 결과를 낼 수 있는 방법을 소개해 가려고 한다.

하프라이프2에서 사용된 유사 라디오시티(radiosity) 라이팅
「하프
램버트 라이팅」(Half Lambert Lighting)

미국 VALVE SOFTWARE가 개발한 「하프 라이프2」(2004년)에서는, 인간 캐릭터등의 동적 캐릭터에는 이 회사가 독자 개발한 「하프 램버트 라이팅」(Half Lambert Lighting)이라 불리는 특별한 라이팅을 사용했다.

이 방법은, 물리적으로는 전혀 올바르지 않은 완전한 모의방법이지만, 복잡한 상호반사에 의한 라이팅(라디오시티:Radiosity) 처럼 부드러운 음영이 나오기 때문에, 부드러운 빛으로 가득 찬 공간에서의 라이팅 구현을 가능하게 해준다. 하프라이프2에서 이것은 포토 리얼리스틱한 비주얼 이미지 실현에 큰 역할을 했다.

하프 램버트 라이팅의 원형은, 물론「램버트 라이팅」이다.

램버트 라이팅은 확산반사의 음영처리로 많이 알려진 일반형으로, 시선 방향에 의존하지 않고 광원의 입사방향과 면의 방향(법선 벡터)만으로 계산되는 음영처리 기법이다. 이 기법에는 「그 지점의 밝기는, 면의 방향과 빛의 입사 방향이 이루는 각도θ의 cosθ값에 비례한다」라는 「램버트 코사인법칙」이 정의되어 있지만, 실제로 이것으로 라이팅을 하면 명암이 매우 강렬하게 나오는 특성이 있다.

                             램버트의 코사인 법칙

<그림 설명>
광원(光源)、
L: 광원벡터(光源ベクトル)
N: 법선벡터(法泉ベクトル, 노말벡터)、
I = Ii * kd * cosθ = Ii * kd * (N · L)
I: 반사광의 세기(反射光の強さ)、
Ii: 입사광이 세기(入射光の強さ)、
kd: 확산반사율(拡散反射率)


하프라이프2에서는, 이 심하게 변하는 코사인 곡선에 바이어스를 걸어 어두운 부분의 계조(단계영역)를 들어 올리는 생각을 했다. 램버트 코사인 법칙의 코사인 곡선이 절반이 되도록 "1/2"을 곱한 다음, "1/2"을 더하고, 다시 이것을 제곱해서 완만한 곡선으로 변환해서 음영처리를 실시하기 때문에 「"하프" 램버트 라이팅」이라고 한다.(계속)

빨간색의 커브가 램버트 코사인 법칙의 기본 코사인 곡선. 파랑색이 하프 램버트 라이팅의 곡선. 왼쪽 화상이 통상의 램버트 라이팅의 결과, 오른쪽이 하프 램버트 라이팅의 결과


(トライゼット西川善司)

Trackback 0 Comment 0