Upload
mingeun-park
View
866
Download
3
Embed Size (px)
Citation preview
2011. 6. 18
초중급 게임 개발자 스터디
데브루키
박민근(알콜코더)
실시간으로 유리 객체를 렌더링 하는데 널리 쓰이는
알고리즘들에 대한 몇가지 개선 방법들을 소개한다.
• 투명하다.
• 굴절 시킨다.
• 반사한다.
Z 버퍼링
• 그릴 픽셀의 Z(깊이) 값 계산
• Z 버퍼안에 이미 저장되어 있는 값과 비교
• Z값이 작은 경우(가까운)에만 렌더링
색상 블렌딩 공식
덮어쓰기
더하기
간단히 가까운 픽셀을 덮어 쓰면 된다. (Z값 비교)
불투명한 객체들을 모아서, 앞에서 뒤로 그린다
알파 블렌딩
깊이 복잡도
(Depth complexity)
Z 덮어 쓰기 금지• ZWRITE_DISABLE
• Z버퍼에 값을 기록하지
않는다.
• Z 버퍼를 비운다
• Z검사와 Z 덮어쓰기 활성화
• 모든 불투명 도형들 렌더링
• 후면 컬링 활성화, Z 덮어쓰기 비활성화
• 알파 블렌딩으로 투명 도형들 렌더링
• Z 버퍼를 비운다
• 모든 불투명 오브젝트 렌더링(앞->뒤)
• 모든 투명 오브젝트 렌더링 (뒤->앞)
• 유리병이나 유리컵의 외곽선은 어둡다
• 눈에 들어오는 반사 빛이 적기 때문
• 카메라 위치에 디퓨즈 라이팅을 달면
해결 할 수 있다. (시야,법선 각이 클 수
록 빛을 적게 받기 때문)
• 환경 매핍을 이용하여 구현 하면 된다
• 하나의 환경맵을 생성
• 텍스처링 알고리즘과 전조등 광원을
변조(modulate)
• 적절한 픽셀 혼합과 Z 겂사를 통해서
유리 객체를 투명한 객체로서 렌더링
• 적절한 픽셀 혼합과 Z 겂사를 통해서
유리 객체를 투명한 객체로서 렌더링
• 추가적인 혼합을 이용해서(환경맵) 유
리 표면에 반사 이미지를 렌더링