픽셀 잔디 데모 분석과 Unity 제품화 검토
개발 기록 · 블로그 공개
원본 기록 상태 완료
Godot 잔디 셰이더와 Pixel Camera 소스를 대조했습니다. 독립 식생 모듈과 카메라 연동을 권하며 실행 성능은 미검증입니다.

작업 결과
분석은 완료했습니다. Unity로 유사한 표현을 구현할 수 있는 구조이며, 카메라 픽셀화와 식생 셰이더를 분리해 결합하는 방향을 제안합니다. Unity 이식·실행·성능 측정은 이번 분석에 포함하지 않았고 완료로 표시하지 않습니다.
원본은 Godot 4.4 / Forward Plus를 선언한 3D 픽셀 잔디 데모입니다. 확인한 커밋은 7486b9b99834d95c4287cc917971b3d74ba37d8c입니다. 완성 게임이나 Unity 패키지가 아닌 스크립트·셰이더·모델·텍스처·시연 씬입니다.
영상 페이지를 도구로 가져오지 못했습니다. 영상 전체 시청·음성·시간별 효과 대응은 미확인입니다. 사용자 첨부 화면과 실제 저장소 소스로 분석했습니다. 에디터 실행 화면은 수집하지 않았으며 시각 재현 통과를 주장하지 않습니다.
표현을 구성하는 기술
| 요소 | 소스에서 확인한 처리 | Unity 적용 제안 |
|---|---|---|
| 풀의 모양 | 카메라 방향을 향하는 quad billboard + nearest 텍스처 + 알파 절단 | 픽셀 스프라이트를 얹는 인스턴스 메시 |
| 넓게 흐르는 바람 | 다른 방향·속도·스케일의 두 노이즈를 곱해 회전 생성 | 월드 좌표 바람 필드 공유 |
| 작은 흔들림 | 개별 위치 seed를 가진 사인파 회전 | 공통 바람에 개체별 움직임 추가 |
| 손그림 리듬 | 위치별 phase를 더한 시간을 round(time * FPS) / FPS로 양자화 | 렌더 FPS와 별도로 식생 애니메이션 FPS 제어 |
| 앞뒤로 눕는 인상 | 바람·캐릭터 방향과 카메라 방향에 따라 UV 폭을 변경 | 실제 원근 카메라 대신 재질의 가짜 원근 처리 |
| 자연스러운 색 덩어리 | 월드 노이즈로 3개 색 영역, 드문 accent 스프라이트 선택 | 바닥·풀 색 패턴의 좌표와 스케일 일치 |
| 부드러운 명암 | 계단형 toon 경계 일부에 smoothstep 혼합 | 픽셀 윤곽을 흐리지 않고 명암 경계만 부드럽게 |
| 구름 그림자 | 광원 방향으로 가상 구름 평면에 투영해 노이즈 조명 계산 | 풀·바닥에 같은 월드 조명 마스크 |
| 접촉 반응 | 최대 64개 위치·반경을 전달하고 카메라 축 방향으로 회전 합산 | 소수 캐릭터 배열 또는 넓은 장면용 상호작용 필드 |
카메라와의 관계
Demo.tscn은 640×360 SubViewport, orthographic projection=1, 카메라 size=6.085를 저장합니다. MultiMesh는 40,000개 할당, 30,000개 표시를 설정합니다. 이 숫자는 성능 벤치마크가 아닙니다. 저장 재질의 잔디 애니메이션은 5 FPS이며 CharacterManager의 위치 전달 기본값은 10 Hz입니다. 게임 전체가 5 FPS라는 뜻은 아닙니다. 사용자 첨부의 1·3·5·7 FPS가 정확히 어느 스위치인지 영상 확인은 못 했습니다.
cs는 해상도·팔레트·외곽선 설정을 제공합니다.