GPG 1권.5.10게임을 위한 그럴듯한 유리 효과2011. 6. 18초중급 게임 개발자 스터디데브루키박민근(알콜코더)
목적실시간으로 유리 객체를 렌더링 하는데 널리 쓰이는 알고리즘들에 대한 몇가지 개선 방법들을 소개한다.
투명한 객체들 – 유리의 시각적 특성투명하다.
굴절 시킨다.
반사한다.레스터화, 프레임 버퍼, Z 버퍼, 픽셀 혼합Z 버퍼링그릴 픽셀의 Z(깊이) 값 계산
Z 버퍼안에 이미 저장되어 있는 값과 비교
Z값이 작은 경우(가까운)에만 렌더링불투명 객체와 투명 객체색상 블렌딩 공식𝑅𝐺𝐵𝑟𝑒𝑠𝑢𝑙𝑡=𝑅𝐺𝐵𝑠𝑜𝑢𝑟𝑐𝑒×𝑠𝑓𝑎𝑐𝑡𝑜𝑟 + 𝑅𝐺𝐵𝑑𝑒𝑠𝑡𝑖𝑛𝑎𝑡𝑖𝑜𝑛×𝑑𝑓𝑎𝑐𝑡𝑜𝑟 덮어쓰기𝑅𝐺𝐵𝑟𝑒𝑠𝑢𝑙𝑡=𝑅𝐺𝐵𝑠𝑜𝑢𝑟𝑐𝑒×1 + 𝑅𝐺𝐵𝑑𝑒𝑠𝑡𝑖𝑛𝑎𝑡𝑖𝑜𝑛×0 더하기𝑅𝐺𝐵𝑟𝑒𝑠𝑢𝑙𝑡=𝑅𝐺𝐵𝑠𝑜𝑢𝑟𝑐𝑒×1 + 𝑅𝐺𝐵𝑑𝑒𝑠𝑡𝑖𝑛𝑎𝑡𝑖𝑜𝑛×1 
불투명 객체 그리기간단히 가까운 픽셀을 덮어 쓰면 된다. (Z값 비교)불투명한 객체들을 모아서, 앞에서 뒤로 그린다
투명한 객체 그리기알파 블렌딩𝑅𝐺𝐵𝑟𝑒𝑠𝑢𝑙𝑡=𝑅𝐺𝐵𝑠𝑜𝑢𝑟𝑐𝑒×𝐴𝑠𝑜𝑢𝑟𝑐𝑒 + 𝑅𝐺𝐵𝑑𝑒𝑠𝑡𝑖𝑛𝑎𝑡𝑖𝑜𝑛×(1.0 − 𝐴𝑠𝑜𝑢𝑟𝑐𝑒) 
투명한 객체 그리기깊이 복잡도 (Depth complexity)Z 덮어 쓰기 금지ZWRITE_DISABLE
Z버퍼에 값을 기록하지 않는다.하나의 간단한 해결책Z 버퍼를 비운다
Z검사와 Z 덮어쓰기 활성화
모든 불투명 도형들 렌더링
후면 컬링 활성화, Z 덮어쓰기 비활성화
알파 블렌딩으로 투명 도형들 렌더링간단한 해결책 두번째Z 버퍼를 비운다
모든 불투명 오브젝트 렌더링(앞->뒤)

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