아래에서 퍼옴

http://allosha.tistory.com/category/니시카와%20젠지/표면下%20산란과%20스킨표현


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"을 더하고, 다시 이것을 제곱해서 완만한 곡선으로 변환해서 음영처리를 실시하기 때문에 「"하프" 램버트 라이팅」이라고 한다.(계속)

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


 

하프 라이프2의 속편인「하프 라이프2 에피소드1」(2006년)에서는, 이 하프 램버트 라이팅에 추가해서 씬 광원에 대하여 실시간 퐁 경면반사(鏡面反射, 거울반사, 정반사) 라이팅(Phong Specular Lighting)을 해 주고 있다.

퐁 경면반사는 광택이 강하게 나오는 경면반사의 일반형으로, 법선벡터 방향과 광원벡터 방향 외에 관측자의 시선 방향도 고려되는 음영처리이다. 퐁 경면반사에서는 시선 방향 E와 법선벡터 방향 N의 2개 벡터로 계산한 반사방향 R과 광원방향 L이 이루는 각도 θ의 코사인(COSθ)값을 구해, (이것을) 시선으로부터 보이는 빛의 세기로 정의하고 있다. 직관적으로는 (아래) 그림 안의 R과 L의 각도가 작아지면 작아질 수록 강한 반사가 된다는 이미지이다.

                        퐁 경면반사 (Phong Specular Reflection)

<그림 설명>
광원(光源)、
시선벡터(視線ベクトル) E、
법선벡터(法泉ベクトル) N
접선(接線),
광원벡터(光源ベクトル) L、
반사벡터(
反射ベクトル) R



피부에 한결같이 퐁 경면반사를 적용해 버리면 금속처럼 보이게 되므로, 약간의 방법을 고안하고 있다.

그것은, 그 3D 캐릭터상의 "표현하고 싶은 물질"이 어느 정도 강도의 하이라이트(광택)를 내는지를 나타낸 분포도(텍스처)와, 어느 곳에 어느 정도 강도의 경면반사를 해 줄 것인가의 분포도(텍스처)를 준비해서, 렌더링 시에는 이 2개의 정보를 고려해서 퐁 경면반사의 음영 처리를 해 준다는 것이다. 개발팀에서는 이 2개의 추가 텍스처 정보를, 전자는 경면반사 지수(Specular Exponent), 후자는 「경면반사 마스크」(Specular Mask)라고 불렀다고 한다.

경면반사를 하는 방법의 분포를 담은 텍스처를 준비하고, 이것을 참조하면서 퐁 경면반사의 음영 처리를 해 간다


이것은 예를 들면 입술, 코, 이마등은 강한 하이라이트가 나오지만, 뺨이나 입 주위에서는 확산반사가 지배적이다……라고 하는 분포도이다. 이 분포도는 물리적인 측정 결과에 의한 것을 이용하거나, 혹은 아티스트가 그러한 물리 측정 데이터를 본따 리얼하게 보이도록 인공적으로 만든 것을 사용한다.

아래 그림은 Tim Weyrich씨등이 SIGGRAPH 2006에서 발표한 「Analysis of Human Faces using a Measurement-Based Skin Reflectance Model」안에 포함되어 있는 것이다. 세로축 ρs는 경면반사 강도를 나타내고, 가로축 m은 면의 거친 정도를 나타내고 있고, 안면을 10개의 영역로 나누어 ρs와 m에 대한 분포를 집계한 것이다. 실제의 구현에서는 이러한 실측 데이터를 참고로 분포도를 작성 해 나간다.
(역자: Torrance-Sparrow BRDF 모델을 사용한 것으로 Torrance-Sparrow (T-S)는 반사되는 표면은 미시적으로  /\/\/\  과 같은 굴곡들(grooves)로 이루어 졌고, 이런 굴곡면들(microfacets, perfect reflectors)에 의해서 빛이 반사하고 있다고 가정한다.)

안면의 10군데에서의 경면반사 강도 ρs(세로축)와, 면의 거친 정도 m(가로축)의 분포.「Analysis of Human Faces using a Measurement-Based Skin Reflectance Model」(Tim Weyrich,SIGGRAPH 2006)로 부터

나아가 프레넬 반사도 고려해, 하이라이트가 나오는 모습을 시선과 면의 방향을 고려해 결정한다. 프레넬 반사에 대해서는 54회를 참조해 주었으면 하지만, 간단하게 말하면 면과 수평이 되는 각도로 보는 경우에 하이라이트가 나오기 쉽고, 면과 시선이 수직에 가까워지면 가까워질수록 확산 반사의 결과가 지배적이 되는…… 처리를 해 주는 것이다.

이렇게 만들어진 하프라이프2 에피소드1의 인물 캐릭터 영상은, 텍스처와 경면반사, 확산반사의 조합만으로 만들어진 것 치고는 상당히 리얼하게 보인다.(계속)

하프 램버트 라이팅에 경면반사 분포를 적용하는 것만으로 피부의 라이팅은 여기까지 리얼하게 보여질  수 있다.


 

Posted by 노을삼킨별
,