게임 개발 · 기술 동향미로의 개발노트
카테고리

Pixel Foliage

Dylearn 원본과 Pixel Foliage·Camera 기능별 상세 대조

개발 기록 · 블로그 공개

원본 기록 상태 완료

원본과 현재 구현은 동일한 이식본이 아닙니다. 표현·성능 구조·추가 기능·미구현 항목과 실제 검증 수준을 소스로 구분했습니다.

수정 전: 줄기 뒤로 밝은 하늘
Pixel Foliage의 다른 개발 기록에 첨부된 이미지 · 수정 전: 줄기 뒤로 밝은 하늘

작업 결과

현재 구현은 원본 잔디 시스템을 그대로 Unity에 이식한 상태가 아닙니다. 바람·접촉·단계별 시간 같은 개념을 다른 메시·셰이더로 구현하고 꽃·관목·나무용 구조를 더한 상태입니다. 원본의 외형을 만드는 일부 핵심 기능은 아직 빠져 있거나 단순화돼 있습니다. 원본과 같은 외형·더 낮은 GPU 비용을 달성했다고 검증한 상태가 아닙니다.

판정은 소스 기준입니다. ‘대응’도 같은 결과나 같은 성능을 뜻하지 않습니다. 최신 식생 개선은 컴파일·관리형 검사만 통과했으며 실제 화면 QA는 사용자 화면 조작 보류로 미실행입니다.

표현 기능

항목 Dylearn 원본 현재 Pixel Foliage 차이 판정
풀의 기본 모양 잔디 그림을 붙인 사각형 스프라이트1장. 알파로 윤곽을 자름 직접 작성한 잎3장의3D 메시. 묶음당36정점·12삼각형. 예제에 원본 잔디 그림을 쓰지 않음 다른 방식
카메라를 향함 카메라의 가로·세로·깊이 축으로 모델뷰를 구성하는 전체 billboard 높이축을 유지하고 카메라 쪽으로 수평 회전하는 Y축 billboard 선택 부분 대응
큰 초록색 덩어리/얼룩 풀과 지면에3색·노이즈2종·임계값 설정으로 넓은 색 영역을 만듦 구역별 tint와 해시 기반 작은 색 변화, 공유 구름 명암 원본의3색 영역 방식 미구현
잔디 사이 포인트2종 같은 잔디 셰이더에서 확률에 따라 포인트 텍스처를 선택 꽃·관목 등을 별도 메시·Patch로 배치 다른 방식
바람 월드 노이즈 회전과 화면 방향의 사인 회전을 따로 조절 공간 노이즈·이동 파동·잔흔들림으로 정점을 이동. 뿌리/높이별 가중치 개념 대응, 수식 다름
Fake perspective 바람·유닛 방향에 따라 UV 폭을 왜곡해 눕거나 돌아가는 깊이감을 흉내냄 정점 휘어짐만 있음. 대응하는 UV 왜곡 없음 미구현
단계별 애니메이션 시간을 설정 FPS로 끊고 풀마다 phase를 달리함 같은 개념의 시간 양자화·phase 선택. 기본 예제는 연속,06번은 단계 비교 대응 구현
유닛 접촉 현재 캐릭터 위치를 기준으로 스프라이트를 화면 축으로 회전시킴 현재 위치와 주변 풀의 거리로 밀어냄. 4초 흔적을 감쇠시키며 복원. 과거 위치 기록 최대64개 현재 쪽 추가
Toon 명암 Godot 조명·빛 감쇠와 그림자를 받는 light() 안에서 단계 경계를 부드럽게 섞음 자체 lightDirection/lightColor와3단계 기본 명암·부드러운 경계 단순화된 대응
구름 명암 표면 높이에서 광원 방향으로 구름 높이 평면에 투영, 노이즈2개 결합 월드XZ의2D 노이즈를 이동시켜 밝기에 곱함 높이·광원 투영 미구현
실제 씬 광원/그림자 연동 DirectionalLight 방향을 공유값으로 전송, Grass/Floor가 빛 감쇠 사용 World에 수동 광원값.

출처

중앙 아카이브 원문

이전 아카이브 기록

같은 카테고리의 글

개발 기록 아카이브 전체 보기 ↗