← 개념 · 데모 가이드 | 구현 허브 | 8장. 잔디 렌더링 (사례연구)
IMPLEMENTATION · CHAPTER 8 · CASE STUDY

잔디 렌더링 — 10가지 기법 총정리

이 장은 지금까지 배운 것들이 실제 게임에서 어떻게 하나로 합쳐지는가를 보여주는 사례연구입니다. 잔디밭 하나에 GPU 인스턴싱(4장)·빌보드/텍스처(2장)·알파 테스트(7장)·레이마칭(6장)·버텍스 바람(4장)·LOD/컬링(7장)이 전부 들어갑니다. 대량 잔디를 모바일에서도 60fps로 그리는 10가지 기법을 각각 Direct3D 11/HLSL로 코드 한 줄·상태 하나까지 구현합니다.

규약 이 시리즈는 D3D 규약으로 통일합니다: 행벡터 v' = v * M(HLSL mul(v, M)), 행렬 행 우선 저장, 왼손 좌표계, 클립 z 범위 [0, 1], 텍스처 V축 위→아래. 원본 WebGL 데모의 로직을 그대로 이식하되, D3D11의 상태 기반 API와 HLSL로 옮기고 그 밑의 원리를 파헤칩니다.
가장 중요한 한 문장 타일드 모바일 GPU(Adreno/Mali/Apple)에서 프레임의 진짜 적은 정점 수가 아니라 오버드로우(같은 픽셀을 여러 번 덧칠)입니다. 그래서 잔디는 알파 블렌드 대신 알파 테스트(clip/discard), 단일 드로우콜 인스턴싱, 거리별 LOD가 핵심입니다.

기법 한눈에 비교

기법비용핵심적합 거리
① 지오메트리높음진짜 메시 blade, 품질 최고근거리
② 빌보드/크로스쿼드중간4정점 쿼드, 알파 오버드로우 주의중거리
③ 셸 텍스처링중간레이어 적층, 정점 적고 오버드로우↑근~중거리 평지
④ 지형 텍스처거의 공짜평면에 텍스처, 입체감 없음원거리
⑤ 레이마칭높음(픽셀)메시 0, 프래그먼트에서 볼륨 행진특수/스타일
⑥ 밟힘중간밟힘맵 샘플로 눕히기플레이어 주변
⑦ 베지어 잎중~높음큐빅 베지어로 우아한 곡선근거리 고품질
⑧ 툰/스타일중간색 밴딩 + 넓은 잎스타일 게임
⑨ 바람 그리드낮음바람장 + vorticle 돌풍전역 효과
⑩ LOD 통합가변근:지오 · 중:빌보드 · 원:텍스처전 거리

세부 페이지

1 / 10

지오메트리 잔디

blade 한 포기 = 삼각형 스트립. 수만 포기를 단일 드로우콜로 인스턴싱하고 바람은 버텍스에서 sin으로.

인스턴싱 · 정점 버퍼 · Divisor · 버텍스 바람
2 / 10

빌보드 / 크로스쿼드

잔디 다발을 4정점 쿼드에 텍스처로 압축, 카메라를 향해 회전. 오버드로우 히트맵으로 비용 확인.

빌보드 · 알파 테스트 · 오버드로우 · clip()
3 / 10

셸 텍스처링

지면을 살짝 띄운 여러 겹(shell)을 인스턴싱으로 적층, 노이즈 임계값으로 strand를 discard.

셸 레이어 · SV_InstanceID · 노이즈 discard
4 / 10

지형 텍스처

먼 거리는 평면에 잔디 텍스처 한 장. 정점·오버드로우 거의 0. LOD 스택의 마지막 단계.

원경 LOD · 절차적 노이즈 · 하이브리드
5 / 10

볼류메트릭 레이마칭

메시 0. 풀스크린 삼각형에서 픽셀마다 광선을 쏘고 3D 노이즈로 잔디 밀도를 판정해 색을 쌓기.

풀스크린 패스 · 레이마칭 · Worley · taper
6 / 10

인터랙티브 밟힘

플레이어 주변 잔디가 바깥으로 휘고 납작해짐. 밟힘맵(RenderTexture)을 버텍스에서 샘플.

밟힘맵 · 버텍스 텍스처 페치 · 휨 벡터
7 / 10

큐빅 베지어 잎

잎 하나를 4개 제어점의 큐빅 베지어로 정의해 우아하게 휘게. Ghost of Tsushima 방식.

큐빅 베지어 · 세그먼트 · 곡률 랜덤화
8 / 10

툰 / 스타일라이즈드

색을 2~3단계로 밴딩하고 뿌리는 어둡게(AO), 끝은 하이라이트. Breath of the Wild 풍.

색 밴딩 · AO 그라디언트 · 넓은 잎
9 / 10

통합 바람 그리드

월드를 셀 그리드로 보고 바람 방향/세기를 저장, 움직이는 소용돌이(vorticle)로 자연스러운 돌풍.

바람장 · vorticle · flow map · 돌풍 파동
10 / 10

LOD 통합 씬

카메라 거리에 따라 근:지오메트리 · 중:빌보드 · 원:텍스처로 자동 전환(경계 페이드). 실전 조합.

LOD 전환 · 페이드 · 거리 분기 · 통합

참고 링크