FoliMesh

Деревья для Bevy

Bevy читает GLB напрямую через AssetServer: asset_server.load(GltfAssetLabel::Scene(0).from_asset("oak.glb")) возвращает сцену, которую вы спавните с SceneRoot, а меши и материалы остаются доступны по метке. Все 14 деревьев — Дуб, Сосна, Ель, Берёза, Ива, Клён, Баобаб и остальные — поставляются именно в этом формате. Для FBX и OBJ в Rust нужны сторонние крейты, так что на практике берут GLB.

У каждой модели есть LOD0–LOD3: назначьте сущностям LOD компонент VisibilityRange, и Bevy будет переключать уровни по расстоянию с дизеренным кроссфейдом. Листья приходят из glTF с alphaMode MASK и становятся AlphaMode::Mask(cutoff), а двусторонние материалы отключают отсечение задних граней. Сущности с общим мешем и материалом батчатся и инстансируются автоматически, поэтому густой лес остаётся дешёвым. Коллизионный меш подойдёт для Avian или bevy_rapier, а каждый новый seed даёт новую вариацию.

Модели
14
Уровни детализации
LOD0 – LOD3
Форматы
GLB · FBX · OBJ

Как использовать в Bevy

Bevy загружает glTF/GLB через AssetServer: asset_server.load(GltfAssetLabel::Scene(0).from_asset("tree.glb")) и спавн через SceneRoot; отдельные меши и материалы доступны по меткам. Для FBX и OBJ нужны сторонние крейты, поэтому используйте GLB.

  • LOD: дайте сущностям LOD0–LOD3 компонент VisibilityRange (начальный и конечный отступы) — переключение по дистанции с дизерингом при переходе, это механизм HLOD в Bevy.
  • Листва: alphaMode MASK из glTF превращается в AlphaMode::Mask(cutoff) у StandardMaterial, а у двусторонних материалов отключено отсечение задних граней.
  • Сущности с общими мешем и материалом батчатся и инстансятся автоматически, так что множество копий деревьев обходится дёшево.
  • Коллизия: встроенной физики в Bevy нет; соберите коллайдер из меша коллизии с помощью Avian или bevy_rapier.

Наборы

Другие категории

То же в других стилях

То же для других движков