URP Cookbook: Compute shaders - Part 2: Flocking
- Flocking은 새들의 움직임 관찰에서 비롯되었으며, 무리의 움직임은 몇 가지 간단한 규칙으로 단순화될 수 있다는 결론에 도달했습니다. 🐦
- Flocking의 세 가지 규칙은 분리(separation), 정렬(alignment), 응집(cohesion)입니다. 👨🏫
- 분리는 지역 보이드들이 붐비는 것을 피하도록 조종합니다. 避
- 정렬은 지역 보이드들의 평균 방향으로 조종합니다. 🧭
- 응집은 지역 보이드들의 평균 위치로 이동하도록 조종합니다. 🏘️
- Compute Shader에서 보이드의 위치와 방향을 계산한 후, RenderMeshIndirect를 사용하여 실제로 보이드를 렌더링합니다. 🖥️
- Lit Shader를 수정하여 인스턴스 ID에 접근하고, 버텍스 셰이더에서 개별 보이드의 위치와 방향을 사용하여 매트릭스를 생성합니다. 💡
- Args Buffer는 버텍스/프래그먼트 셰이더가 렌더링에 사용할 추가적인 버퍼입니다. 🧰
- 분리 계산 시, 거리가 0이 되는 것을 방지하기 위해 1/거리를 사용합니다. ➗
- 최종적으로, 모든 보이드들이 함께 모여 무리 위치를 중심으로 공전합니다. 💫