Commit Graph

32 Commits

Author SHA1 Message Date
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