16
2011. 6. 18 초중급 게임 개발자 스터디 데브루키 박민근(알콜코더)

[Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

Embed Size (px)

Citation preview

Page 1: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

2011. 6. 18

초중급 게임 개발자 스터디

데브루키

박민근(알콜코더)

Page 2: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

실시간으로 유리 객체를 렌더링 하는데 널리 쓰이는

알고리즘들에 대한 몇가지 개선 방법들을 소개한다.

Page 3: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

• 투명하다.

• 굴절 시킨다.

• 반사한다.

Page 4: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

Z 버퍼링

• 그릴 픽셀의 Z(깊이) 값 계산

• Z 버퍼안에 이미 저장되어 있는 값과 비교

• Z값이 작은 경우(가까운)에만 렌더링

Page 5: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

색상 블렌딩 공식

덮어쓰기

더하기

Page 6: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

간단히 가까운 픽셀을 덮어 쓰면 된다. (Z값 비교)

불투명한 객체들을 모아서, 앞에서 뒤로 그린다

Page 7: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

알파 블렌딩

Page 8: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

깊이 복잡도

(Depth complexity)

Z 덮어 쓰기 금지• ZWRITE_DISABLE

• Z버퍼에 값을 기록하지

않는다.

Page 9: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

• Z 버퍼를 비운다

• Z검사와 Z 덮어쓰기 활성화

• 모든 불투명 도형들 렌더링

• 후면 컬링 활성화, Z 덮어쓰기 비활성화

• 알파 블렌딩으로 투명 도형들 렌더링

Page 10: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

• Z 버퍼를 비운다

• 모든 불투명 오브젝트 렌더링(앞->뒤)

• 모든 투명 오브젝트 렌더링 (뒤->앞)

Page 11: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과
Page 12: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

• 유리병이나 유리컵의 외곽선은 어둡다

• 눈에 들어오는 반사 빛이 적기 때문

• 카메라 위치에 디퓨즈 라이팅을 달면

해결 할 수 있다. (시야,법선 각이 클 수

록 빛을 적게 받기 때문)

Page 13: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

• 환경 매핍을 이용하여 구현 하면 된다

Page 14: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

• 하나의 환경맵을 생성

• 텍스처링 알고리즘과 전조등 광원을

변조(modulate)

• 적절한 픽셀 혼합과 Z 겂사를 통해서

유리 객체를 투명한 객체로서 렌더링

Page 15: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과

• 적절한 픽셀 혼합과 Z 겂사를 통해서

유리 객체를 투명한 객체로서 렌더링

• 추가적인 혼합을 이용해서(환경맵) 유

리 표면에 반사 이미지를 렌더링

Page 16: [Gpg1권 박민근] 5.10 게임을 위한 그럴듯한 유리 효과