flutter_scene 0.13.0
flutter_scene: ^0.13.0 copied to clipboard
3D rendering library for Flutter. Currently only supported when Impeller is enabled.
0.13.0 #
- Add
ShaderMaterial, the foundation for custom materials. Supply a fragment shader (compiled offline throughflutter_gpu_shaders/impellercinto a.shaderbundle), then bind uniform blocks and textures by name withsetUniformBlock/setUniformBlockFromFloats/setTexture. Render-state knobs (cullingMode,windingOrder,isOpaqueOverride) are exposed on the material. The opt-inuseEnvironmentflag binds the scene's IBL textures (radiance_texture,irradiance_texture,brdf_lut) when the fragment shader declares them. - Add
MATERIALS.md: an end-to-end guide to the engine uniform / varying contract for custom fragment shaders, std140 uniform-block packing, theflutter_gpu_shadersbuild-hook setup, and the limitations of the current surface (see issue #22 for the planned declarative material format). - The example app gains a worked toon-shader demo
(
examples/flutter_app/lib/example_toon.dart).
0.12.0 #
- Add bounding-volume and frustum-culling infrastructure. The scene
encoder now builds a
Frustumonce per render from the camera's view-projection matrix and skips entire subtrees whose combined local-space AABB lies outside it. - Skinned subtrees are culled against an offline-baked pose-union
AABB that covers every animated pose. The runtime falls through
to the always-visible path for skinned content imported via the
runtime GLB importer (
Node.fromGlbBytes/Node.fromGlbAsset) since the pose-union analysis runs only in the offline importer. - New public API:
Geometry.localBounds,Geometry.localBoundingSphere,Geometry.setLocalBounds(aabb, sphere).Mesh.localBounds(cached union of primitive bounds) andMesh.markLocalBoundsDirty().Node.combinedLocalBounds(cached union including transformed descendants),Node.frustumCulled(defaulttrue),Node.markBoundsDirty(),Node.isVisibleTo(camera, dimensions).Camera.getFrustum(dimensions).
0.0.1-dev.1 #
- Initial render box.
0.1.0 #
- Rewrite for Flutter GPU.
- Physically based rendering.
- More conventional interface for scene construction.
0.1.1 #
- Rename PhysicallyBasedMaterial and UnlitMaterial
- Fix environment lighting problems in PhysicallyBasedMaterial.
- Add default environment map.
0.2.0 #
- Skinned mesh import.
- Fix readme for pub.dev.
0.2.1-0 #
- Switch to pre-release versioning.
- Bump version of flutter_scene_importer.
0.2.1-1 #
- Bump flutter_scene_importer version.
0.3.0-0 #
- Add Animation/playback support (Animation, AnimationPlayer, and AnimationClip).
- Import animations from scene models.
- Add support for cloning nodes.
0.4.0-0 #
- Support node cloning for skins.
- Fix default/animation-less pose.
0.5.0-0 #
- Support non-embedded/URI-only image embeds.
0.6.0-0 #
- Fix memory leak in transients buffer.
- Optional MSAA support on iOS and Android (enabled by default).
- Cull backfaces by default.
- Fix animation blending bugs.
- Pin native_assets_cli to <0.9.0 (https://github.com/bdero/flutter_gpu_shaders/issues/3)
- Add car model and animation blending examples.
- Fancy readme and FAQ.
0.7.0-0 #
- Update to native_assets_cli 0.9.0.
- Update to flutter_gpu_shaders 0.2.0.
0.8.0-0 #
- Update to Flutter 3.29.0-1.0.pre.242.
0.9.0-0 #
- Update to native_assets_cli 0.13.0.
- Update to flutter_gpu_shaders 0.3.0.
0.9.1-0 #
- Fix invalid usage of textureLod on desktop platforms.
0.9.2-0 #
- Fix globalTransform calculation.
0.11.1 #
- Fix
Node.globalTransformsetter. The previous implementation computedtransform * parent.globalTransform.invert(), butMatrix4.invert()returns the determinant (adouble) and mutates the receiver, so this was scalar-multiplyingtransformby the parent's determinant rather than composing with the parent's inverse. Coincidentally produced correct results when the parent haddet=1, but produced garbage for any negative-determinant or non-uniformly- scaled parent.
0.11.0 #
- Add a runtime GLB importer.
Node.fromGlbBytes(Uint8List)andNode.fromGlbAsset(String)decode a glTF binary directly at runtime — no offline.modelconversion, no build-hook step. Useful for user-uploaded models, network-loaded assets, and model editors. (#12) - Bump
flutter_scene_importerto^0.11.0(pure-Dart.glb→.modelbuild hook; CMake is no longer required).
0.10.0 #
- Migrate from
native_assets_cli(discontinued) tohooks1.0. Breaking: build hook authors must nowimport 'package:hooks/hooks.dart'instead ofpackage:native_assets_cli/native_assets_cli.dart. (#82) - Drop the
--enable-experiment=native-assetsflag from the importer process invocation. The flag was rejected by Dart 3.10+ and was the literal cause of build failures for users on recent Dart channels. (#82) - Reorganize the repository as a pub workspace with separate
flutter_sceneandflutter_scene_importerpackages and anexamples/sibling. No user-facing surface changes from this; consumers see a cleaner package. (#36) - Update
flutter_gpu_shadersto^0.4.0(also migrated tohooks).