Adding Realistic Shadows to my 3D Python Game
- Minecraft의 멋진 쉐이더가 차별화되는 요소는 Sun의 위치에 따라 블록에서 그림자를 드리우기 때문이다. 🌞
- 알파 버전의 Minecraft에서 진한 그림자 기법은 명확하게 나타난다. 👾
- 현실적인 그림자를 만드는 것은 쉬워 예상보다 쉽고, 프로그래밍 경험이 없는 사람들도 쉽게 이해할 수 있다. 🤔
- 쉐이드 기술은 "Shadow Mapping" 이라고 불리고, Light source의 관점에서 세상을 렌더링해서 밝은 곳과 그림자를 구분하는 기법이다. 🔦
- glsl (OpenGL Shading Language)은 GPU에서 셰이더를 실행하기 위한 언어이다. 💻
- 셰이더의 유형은 버텍스 셰이더(점 번역)와 프래그먼트 셰이더(색상 계산)로 나뉜다. 🎨
- 셰이더가 처리된 이미지는 "프레임 버퍼(frame buffer)"에 저장됩니다. 🖼️
- OpenGL은 렌더링 중 각 피셀의 깊이를 기록하는 "깊이 버퍼(depth buffer)"를 사용합니다. 🌊
- Light source에서 보는 각 피셀의 깊이를 이용하여 그림자를 구현한다. 🕶️