Commit Graph

177 Commits

Author SHA1 Message Date
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
4e64c4976f refactor!: rename removeAsset to destroyAsset
use render thread methods for lights
2025-01-07 08:25:48 +08:00
Nick Fisher
744e39e8dd fix: move removeIbl to render thread 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
96fe2c89ea internal: add FFI method to check for valid renderable 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
f8ae90b631 internal: add destroyRenderTargetRenderThread 2025-01-07 08:25:48 +08:00
Nick Fisher
b158062ce8 internal: expose View_getRenderTarget and set (Dart) FFIView.renderTarget property on construction 2025-01-07 08:25:48 +08:00
Nick Fisher
e9c14139c2 chore: disable grid center sphere and fix priority 2025-01-07 08:25:48 +08:00
Nick Fisher
d92d47faa5 chore: logging 2025-01-07 08:25:48 +08:00
Nick Fisher
f873f7da66 feat: add setTransparencyMode to Dart Material class 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
7aa0367a3b internal: *Material_createInstance 2025-01-07 08:25:48 +08:00
Nick Fisher
c1a294315a internal: expose Engine getters (TransformManager, RenderableManager), and build/desotry material methods 2025-01-07 08:25:48 +08:00
Nick Fisher
f27628e719 internal: add createGrid/destroyMaterial render thread methods 2025-01-07 08:25:48 +08:00
Nick Fisher
8fa43e5306 feat: allow passing custom material for grid overlay 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
1b979252db feat: re-implement grid overlay 2025-01-07 08:25:48 +08:00
Nick Fisher
852cb58ba9 fix: move material/instance creation to render thread 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
27e150ebf6 chore: clean up static_cast 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
8a894f7e88 refactor: add createGizmoRenderThread 2025-01-07 08:25:48 +08:00
Nick Fisher
9f676f42b9 remove old HighlightOverlay class 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
6d5bc305dc fix SceneManager_createCameraRenderThread 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
5fe985d2c7 add create/set camera render thread functions 2025-01-07 08:25:48 +08:00
Nick Fisher
fb650dbd52 allow null parent to setParent 2025-01-07 08:25:48 +08:00
Nick Fisher
c34c7d5545 change grid priority 2025-01-07 08:25:48 +08:00
Nick Fisher
69643e26f6 whitespace 2025-01-07 08:25:48 +08:00
Nick Fisher
44b502a1e4 add dithering to view 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
Nick Fisher
468cada6c6 update bindings 2024-11-21 12:31:58 +08:00
Nick Fisher
e60ab51b79 fix: remove MaterialInstance from SceneManager storage when destroyed 2024-11-21 12:31:36 +08:00
Nick Fisher
cabb62043d feat: re-add uvScale, vertexScale to unlit material 2024-11-21 12:30:51 +08:00