Commit Graph

28 Commits

Author SHA1 Message Date
Nick Fisher 0e5253f7b3 internal: store bounding box with SceneAsset rather than recalculating from renderables 2025-01-07 12:02:44 +08:00
Nick Fisher b1c0d4b2e8 internal: expose more RenderableManager/LightManager bindings 2025-01-07 08:25:48 +08:00
Nick Fisher 86ecd53de7 internal: use std::vector for geometry material instances 2025-01-07 08:25:48 +08:00
Nick Fisher 1d615e7568 fix: UV calculation for geometry 2025-01-07 08:25:48 +08:00
Nick Fisher 4cb118ad65 feat: use existing material instances when creating an instance of GeometrySceneAsset and no material instance is passed 2025-01-07 08:25:48 +08:00
Nick Fisher baf86d1ade refactor!: move light methods from FilamentViewer to SceneManager/TLightManager and rename clearLights/clearAssets to destroyLights/destroyAssets 2025-01-07 08:25:48 +08:00
Nick Fisher 3e181b6aff fix: allow destroying instances independently of owner 2025-01-07 08:25:48 +08:00
Nick Fisher 8e0ba8ac4e fix: glTF instancing when loaded via buffer 2025-01-07 08:25:48 +08:00
Nick Fisher 8d8acef481 feat: remove bounding box from SceneAsset and create renderable wireframe bounding box in ThermionAsset 2025-01-07 08:25:48 +08:00
Nick Fisher d92d47faa5 chore: logging 2025-01-07 08:25:48 +08:00
Nick Fisher fc4842ed6d chore: remove colors from Gizmo 2025-01-07 08:25:48 +08:00
Nick Fisher a519701510 chore: logging 2025-01-07 08:25:48 +08:00
Nick Fisher 94863134fc feat: allow passing custom material for grid overlay 2025-01-07 08:25:48 +08:00
Nick Fisher 7cf1468f38 feat: more rotation gizmo improvements 2025-01-07 08:25:48 +08:00
Nick Fisher def85614d8 feat: add rotation gizmo 2025-01-07 08:25:48 +08:00
Nick Fisher 0ad73d06e0 internal: pass NameComponentManager to GltfSceneAsset, used for finding child entities by name 2025-01-07 08:25:48 +08:00
Nick Fisher 6b883f3352 chore: update hit test entities used for gizmo 2025-01-07 08:25:48 +08:00
Nick Fisher 29c35f9037 refactor: Gizmo internals 2025-01-07 08:25:48 +08:00
Nick Fisher 278575c3e2 internal: add bounding box to SceneAsset & subclasses 2025-01-07 08:25:48 +08:00
Nick Fisher fe0f63c4cb chore: update gizmo materials 2025-01-07 08:25:48 +08:00
Nick Fisher cb9320f3a1 remove pragma from Geometry builder cpp 2025-01-07 08:25:48 +08:00
Nick Fisher 1c5b5c890b reimplement grid as SceneAsset 2025-01-07 08:25:48 +08:00
Nick Fisher 69643e26f6 whitespace 2025-01-07 08:25:48 +08:00
Nick Fisher d72ed58436 in createGeometry, all geometry entities to scene 2025-01-07 08:25:48 +08:00
Nick Fisher d53a8b20b8 move Geometry asset builder from header to own implementation 2025-01-07 08:25:48 +08:00
Nick Fisher aa7350c419 gizmo & picking improvements 2025-01-07 08:25:48 +08:00
Nick Fisher c2077cb6b1 fix: store reference to material instances in ThermionViewer so they can be cleaned up on dispose 2025-01-07 08:25:48 +08:00
Nick Fisher ed444b0615 feature!:
This is a breaking change needed to fully implement instancing and stencil highlighting.

Previously, users would work directly with entities (on the Dart side, ThermionEntity), e.g.

final entity = await viewer.loadGlb("some.glb");

However, Filament "entities" are a lower-level abstraction.

Loading a glTF file, for example, inserts multiple entities into the scene.

For example, each mesh, light, and camera within a glTF asset will be assigned an entity. A top-level (non-renderable) entity will also be created for the glTF asset, which can be used to transform the entire hierarchy.

"Asset" is a better representation for loading/inserting objects into the scene; think of this as a bundle of entities.

Unless you need to work directly with transforms, instancing, materials and renderables, you can work directly with ThermionAsset.
2024-11-27 15:02:37 +11:00