Commit Graph

47 Commits

Author SHA1 Message Date
Nick Fisher 4e5a9be97a add standalone SceneAsset_createGeometry method 2025-03-17 16:53:35 +08:00
Nick Fisher 342a53ae7b add View_setScene and rename View_updateViewport to View_setViewport 2025-03-17 16:53:06 +08:00
Nick Fisher 74502ba5b3 add further TEngine methods 2025-03-17 16:52:05 +08:00
Nick Fisher 03c4afb031 update API boundary types & enums 2025-03-17 16:39:13 +08:00
Nick Fisher 20ea43a809 add TScene 2025-03-17 16:38:30 +08:00
Nick Fisher 8b34934755 add TRenderer 2025-03-17 16:37:51 +08:00
Nick Fisher 5ad187d54f add various render thread methods 2025-03-17 16:35:45 +08:00
Nick Fisher 711abe11bd add Camera_lookAt 2025-03-17 16:34:34 +08:00
Nick Fisher e91d1ca0aa support 3D texture/2D texture arrays 2025-03-10 18:05:42 +08:00
Nick Fisher e4de0f3ae0 expose setParameterBool/hasParameter on material + instance 2025-03-08 12:17:06 +08:00
Nick Fisher aa26f4d0df separate out RenderLoop/FilamentViewer construction/destruction 2025-03-07 18:53:36 +08:00
Nick Fisher 74ee35bfcd use render thread methods for Texture/Image/TextureSampler 2025-03-07 14:52:45 +08:00
Nick Fisher 2915655695 remove superseded destroyTexture method (call texture.dispose() instead) 2025-03-05 17:32:48 +08:00
Nick Fisher 593bca3365 feat: expose setCastShadows/setReceiveShadows 2025-03-05 14:47:55 +08:00
Nick Fisher 9abb192148 add setImage method to set texture image directly from buffer 2025-03-04 18:15:54 +08:00
Nick Fisher fc7f5d7b93 create material for texture baking
textures can now be created manually and are no longer tracked by SceneManager (and therefore require manual tracking/disposal)
2025-03-04 14:52:48 +08:00
Nick Fisher 8d52690c97 fix texture/material methods 2025-03-03 15:52:03 +08:00
Nick Fisher 2a8931e1ac add TTexture bindings with TextureFormat, PixelDataType and PixelDataFormat enums 2025-03-03 14:43:20 +08:00
Nick Fisher 94d77ff21b move Engine_ FFI methods to own header/source 2025-03-03 11:32:45 +08:00
Nick Fisher 7a707cda67 move Engine_ FFI methods to own header/source 2025-03-03 11:32:34 +08:00
Nick Fisher 282ee6d103 cherry pick changes onto ThermionDartRenderThreadApi.h 2025-03-01 11:59:36 +08:00
Nick Fisher c5228dff7e add enabled/strength params to setBloom, add setRenderQuality method 2025-03-01 11:54:12 +08:00
Nick Fisher 0e5253f7b3 internal: store bounding box with SceneAsset rather than recalculating from renderables 2025-01-07 12:02:44 +08:00
Nick Fisher 124eed0264 fix: don't return entity from SceneManager_addLightRenderThread 2025-01-07 08:43:36 +08:00
Nick Fisher b1c0d4b2e8 internal: expose more RenderableManager/LightManager bindings 2025-01-07 08:25:48 +08:00
Nick Fisher 916ecd5629 internal: rename Viewer_getMainCamera and return null in Engine_getCameraComponent if camera entity is null 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 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 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 f873f7da66 feat: add setTransparencyMode to Dart Material class 2025-01-07 08:25:48 +08:00
Nick Fisher 0facb3f906 internal: add TMaterial type 2025-01-07 08:25:48 +08:00
Nick Fisher 355c28477b internal: add 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 fd1faa6023 feat: allow passing custom material for 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 def85614d8 feat: add rotation gizmo 2025-01-07 08:25:48 +08:00
Nick Fisher 8a894f7e88 refactor: add createGizmoRenderThread 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 80ca4b97a9 add create/set camera render thread functions 2025-01-07 08:25:48 +08:00
Nick Fisher bf3d4f7c0e add dithering to view 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