FoliMesh

PlayCanvas용 사실적 스타일 선인장 · 다육식물

PlayCanvas는 이 식물들을 GLB container 에셋으로 불러옵니다. 파일을 Editor에 올리면 모델 계층이 담긴 template이 만들어지고, 코드에서는 app.assets.loadFromUrl(url, 'container')와 asset.resource.instantiateRenderEntity()를 사용합니다. 사실적 세트는 사와로 선인장, 배럴 선인장, 부채선인장, 아가베, 알로에로 구성되며, 줄기에는 노멀·러프니스 맵을 쓰는 PBR metal/roughness 머티리얼, 잎에는 알파 테스트 카드를 씁니다.

PlayCanvas에는 기본 제공 LOD 컴포넌트가 없어서 짧은 스크립트가 카메라 거리를 비교해 LOD0–LOD3 엔티티의 render 컴포넌트를 켜고 끕니다. 먼 단계에서는 가지와 잎 카드가 빠지므로 수백 그루가 화면에 올라오는 사막 장면도 가볍게 유지됩니다. 마스크된 잎은 깊이를 기록해 정렬이 필요 없고 그림자도 정확합니다. 정적 식물은 batch group으로 묶이고, 빽빽한 사와로 군락은 meshInstance.setInstancing()에 잘 맞습니다. 1인칭·3인칭 생존, 오픈 월드, 서부극 시뮬레이터에 적합합니다.

모델
5
LOD 단계
LOD0 – LOD3
포맷
GLB · FBX · OBJ

사실적 스타일 소개

사실적인 모델은 glTF 2.0, Unity, Unreal, Godot, three.js가 그대로 읽는 PBR metal/roughness 워크플로를 사용합니다.

  • 나무껍질: 줄기와 가지에 베이스 컬러, 노멀, 러프니스 맵.
  • 잎: 잎 뭉치 텍스처를 쓴 알파 테스트(Masked) 카드로, 알파 블렌딩이 아니어서 깊이를 기록하고 정렬이 필요 없으며 그림자도 정확합니다.
  • 나무껍질과 잎은 별도 머티리얼이라 드로우 콜 수를 예측하기 쉽고 GPU 인스턴싱과 잘 맞습니다.
  • LOD0은 근경용이고, LOD1–LOD3은 가지와 잎 카드를 줄여 마지막 단계는 원경에 충분히 가볍습니다.

PC·콘솔의 1인칭/3인칭 게임, 서바이벌, 오픈 월드, 시뮬레이터에 가장 잘 맞습니다. 모바일에서는 LOD1 또는 LOD2를 가장 가까운 단계로 쓰고 잎의 오버드로를 확인하세요.

PlayCanvas에서 사용하기

PlayCanvas는 GLB를 컨테이너 에셋으로 다룹니다. 에디터에서 GLB를 업로드하면(FBX는 임포트 시 GLB로 변환) 모델 계층이 담긴 템플릿이 생기고, 엔진 전용 코드에서는 app.assets.loadFromUrl(url, 'container')와 asset.resource.instantiateRenderEntity()를 사용합니다.

  • LOD: 내장 LOD 컴포넌트가 없으므로 작은 스크립트로 카메라 거리를 비교해 LOD0–LOD3 엔티티의 render 컴포넌트를 전환합니다.
  • 정적인 나무는 배치 그룹을 공유해 드로우 콜을 합칠 수 있고, 큰 숲에는 meshInstance.setInstancing()과 변환 행렬 버텍스 버퍼로 하드웨어 인스턴싱을 사용하세요.
  • 잎: glTF MASK가 StandardMaterial의 alphaTest를 설정하며, 양면 잎에는 컬 모드를 none으로 지정합니다.
  • 콜리전 메시: mesh 타입 collision 컴포넌트와 정적 rigidbody를 붙이고 render 컴포넌트는 끕니다.

팩

다른 카테고리

다른 스타일로 보기

다른 엔진용으로 보기