From 730a5e530e4934c934e7f8eb6e662e1ba3f95652 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Mon, 21 Aug 2023 05:13:56 +0800 Subject: [PATCH 1/6] implement missing method handlers on Linux --- ios/include/ResourceBuffer.hpp | 10 +- lib/filament_controller.dart | 4 +- linux/polyvox_filament_plugin.cc | 200 ++++++++++++++++++++++--------- 3 files changed, 150 insertions(+), 64 deletions(-) diff --git a/ios/include/ResourceBuffer.hpp b/ios/include/ResourceBuffer.hpp index 182e10ae..2ba8e4e9 100644 --- a/ios/include/ResourceBuffer.hpp +++ b/ios/include/ResourceBuffer.hpp @@ -66,11 +66,11 @@ extern "C" { } } #endif - LoadResource mLoadResource; - FreeResource mFreeResource; - LoadResourceFromOwner mLoadResourceFromOwner; - FreeResourceFromOwner mFreeResourceFromOwner; - void* mOwner; + LoadResource mLoadResource = nullptr; + FreeResource mFreeResource = nullptr; + LoadResourceFromOwner mLoadResourceFromOwner = nullptr; + FreeResourceFromOwner mFreeResourceFromOwner = nullptr; + void* mOwner = nullptr; }; typedef struct ResourceLoaderWrapper ResourceLoaderWrapper; diff --git a/lib/filament_controller.dart b/lib/filament_controller.dart index 28811e32..16cd8e7b 100644 --- a/lib/filament_controller.dart +++ b/lib/filament_controller.dart @@ -184,8 +184,8 @@ class FilamentController { } Future loadGlb(String path, {bool unlit = false}) async { - var asset = await _channel - .invokeMethod("loadGlb", [_assetManager, path, unlit ? 1 : 0]); + var asset = + await _channel.invokeMethod("loadGlb", [_assetManager, path, unlit]); if (asset == FILAMENT_ASSET_ERROR) { throw Exception("An error occurred loading the asset at $path"); } diff --git a/linux/polyvox_filament_plugin.cc b/linux/polyvox_filament_plugin.cc index 1bdca77f..b58b9529 100644 --- a/linux/polyvox_filament_plugin.cc +++ b/linux/polyvox_filament_plugin.cc @@ -62,11 +62,28 @@ static gboolean on_frame_tick(GtkWidget* widget, GdkFrameClock* frame_clock, gpo static FlMethodResponse* _create_filament_viewer(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { auto callback = new ResourceLoaderWrapper(loadResource, freeResource); + FlValue* args = fl_method_call_get_args(method_call); + + const double width = fl_value_get_float(fl_value_get_list_value(args, 0)); + const double height = fl_value_get_float(fl_value_get_list_value(args, 1)); + + self->width = width; + self->height = height; + auto context = glXGetCurrentContext(); self->viewer = (polyvox::FilamentViewer*)create_filament_viewer( (void*)context, callback ); + + GtkWidget *w = gtk_widget_get_toplevel (GTK_WIDGET(self->fl_view)); + gtk_widget_add_tick_callback(w, on_frame_tick, self,NULL); + + // don't pass a surface to the SwapChain as we are effectively creating a headless SwapChain that will render into a RenderTarget associated with a texture + create_swap_chain(self->viewer, nullptr, width, height); + create_render_target(self->viewer, ((FilamentTextureGL*)self->texture)->texture_id,width,height); + update_viewport_and_camera_projection(self->viewer, width, height, 1.0f); + g_autoptr(FlValue) result = fl_value_new_int(reinterpret_cast(self->viewer)); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); @@ -91,10 +108,31 @@ static FlMethodResponse* _create_texture(PolyvoxFilamentPlugin* self, FlMethodCa g_autoptr(FlValue) result = fl_value_new_int(reinterpret_cast(texture)); + + Log("Successfully created texture."); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } + +static FlMethodResponse* _update_viewport_and_camera_projection(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + FlValue* args = fl_method_call_get_args(method_call); + + auto width = fl_value_get_int(fl_value_get_list_value(args, 0)); + auto height = fl_value_get_int(fl_value_get_list_value(args, 1)); + auto scaleFactor = fl_value_get_float(fl_value_get_list_value(args, 2)); + + update_viewport_and_camera_projection(self->viewer, width, height, scaleFactor); + + return FL_METHOD_RESPONSE(fl_method_success_response_new(fl_value_new_bool(true))); +} + + +static FlMethodResponse* _get_asset_manager(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + auto assetManager = get_asset_manager(self->viewer); + return FL_METHOD_RESPONSE(fl_method_success_response_new(fl_value_new_int(reinterpret_cast(assetManager)))); +} + static FlMethodResponse* _resize(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { FlValue* args = fl_method_call_get_args(method_call); @@ -165,9 +203,12 @@ static FlMethodResponse* _set_background_image(PolyvoxFilamentPlugin* self, FlMe } static FlMethodResponse* _set_background_color(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { - - const float* color = fl_value_get_float32_list(fl_method_call_get_args(method_call)); - set_background_color(self->viewer, color[0], color[1], color[2], color[2]); + FlValue* args = fl_method_call_get_args(method_call); + const float r = fl_value_get_float(fl_value_get_list_value(args, 0)); + const float g = fl_value_get_float(fl_value_get_list_value(args, 1)); + const float b = fl_value_get_float(fl_value_get_list_value(args, 2)); + const float a = fl_value_get_float(fl_value_get_list_value(args, 3)); + set_background_color(self->viewer, r,g,b,a); g_autoptr(FlValue) result = fl_value_new_string("OK"); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); @@ -196,9 +237,10 @@ static FlMethodResponse* _add_light(PolyvoxFilamentPlugin* self, FlMethodCall* m static FlMethodResponse* _load_glb(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { FlValue* args = fl_method_call_get_args(method_call); - auto path = fl_value_get_string(fl_value_get_list_value(args, 0)); - auto unlit = fl_value_get_bool(fl_value_get_list_value(args, 1)); - auto entityId = load_glb(self->viewer, path, unlit); + auto assetManager = (void*)fl_value_get_int(fl_value_get_list_value(args, 0)); + auto path = fl_value_get_string(fl_value_get_list_value(args, 1)); + auto unlit = fl_value_get_bool(fl_value_get_list_value(args, 2)); + auto entityId = load_glb(assetManager, path, unlit); g_autoptr(FlValue) result = fl_value_new_int((int64_t)entityId); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } @@ -418,19 +460,45 @@ static FlMethodResponse* _set_frame_interval(PolyvoxFilamentPlugin* self, FlMeth return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } -static FlMethodResponse* _zoom_begin(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { +static FlMethodResponse* _grab_begin(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + FlValue* args = fl_method_call_get_args(method_call); + auto x = (float)fl_value_get_float(fl_value_get_list_value(args, 0)); + auto y = (float)fl_value_get_float(fl_value_get_list_value(args, 1)); + auto pan = (bool)fl_value_get_bool(fl_value_get_list_value(args, 2)); + grab_begin(self->viewer, x, y, pan); + g_autoptr(FlValue) result = fl_value_new_string("OK"); + return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); +} + +static FlMethodResponse* _grab_end(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + grab_end(self->viewer); + g_autoptr(FlValue) result = fl_value_new_string("OK"); + return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); +} + +static FlMethodResponse* _grab_update(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + FlValue* args = fl_method_call_get_args(method_call); + auto x = (float)fl_value_get_float(fl_value_get_list_value(args, 0)); + auto y = (float)fl_value_get_float(fl_value_get_list_value(args, 1)); + + grab_update(self->viewer, x,y); + g_autoptr(FlValue) result = fl_value_new_string("OK"); + return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); +} + +static FlMethodResponse* _scroll_begin(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { scroll_begin(self->viewer); g_autoptr(FlValue) result = fl_value_new_string("OK"); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } -static FlMethodResponse* _zoom_end(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { +static FlMethodResponse* _scroll_end(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { scroll_end(self->viewer); g_autoptr(FlValue) result = fl_value_new_string("OK"); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } -static FlMethodResponse* _zoom_update(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { +static FlMethodResponse* _scroll_update(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { FlValue* args = fl_method_call_get_args(method_call); auto x = (float)fl_value_get_float(fl_value_get_list_value(args, 0)); auto y = (float)fl_value_get_float(fl_value_get_list_value(args, 1)); @@ -466,51 +534,60 @@ static FlMethodResponse* _stop_animation(PolyvoxFilamentPlugin* self, FlMethodCa return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } -static FlMethodResponse* _apply_weights(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { - // FlValue* args = fl_method_call_get_args(method_call); - // auto assetPtr = (void*)fl_value_get_int(fl_value_get_list_value(args, 0)); - // auto entityName = fl_value_get_string(fl_value_get_list_value(args, 1)); - // auto weightsValue = fl_value_get_list_value(args, 2); - // float* const weights = (float* const) fl_value_get_float32_list(weightsValue); - // size_t len = fl_value_get_length(weightsValue); - // apply_weights(assetPtr, entityName, weights, (int)len); + +static FlMethodResponse* _set_morph_target_weights(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + FlValue* args = fl_method_call_get_args(method_call); + auto assetManager = (void*)fl_value_get_int(fl_value_get_list_value(args, 0)); + auto asset = (EntityId)fl_value_get_int(fl_value_get_list_value(args, 1)); + auto entityName = fl_value_get_string(fl_value_get_list_value(args, 2)); + auto weightsValue = fl_value_get_list_value(args, 3); + float weight = fl_value_get_float(fl_value_get_list_value(weightsValue, 0)); + size_t len = fl_value_get_length(weightsValue); + set_morph_target_weights(assetManager, asset, entityName, &weight, (int)len); + g_autoptr(FlValue) result = fl_value_new_string("OK"); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } static FlMethodResponse* _set_morph_animation(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { - throw std::invalid_argument( "received negative value" ); - // int64_t assetManager = std::any_cast(args[0]); - // EntityId asset = std::any_cast(args[1]); - // std::string entityName = std::any_cast(fl_value_get_string(fl_value_get_list_value(args, 2))); + FlValue* args = fl_method_call_get_args(method_call); + auto assetManager = (void*)fl_value_get_int(fl_value_get_list_value(args, 0)); + auto asset = (EntityId)fl_value_get_int(fl_value_get_list_value(args, 1)); + auto entityName = fl_value_get_string(fl_value_get_list_value(args, 2)); + + auto morphDataList = fl_value_get_list_value(args, 3); + auto morphDataListLength = fl_value_get_length(morphDataList); + auto morphData = std::vector(morphDataListLength); + + for(int i =0; i < morphDataListLength; i++) { + morphData[i] = fl_value_get_float(fl_value_get_list_value(morphDataList, i)); + } - // std::vector morphData = std::any_cast>(args[3]); - // std::vector morphIndices = std::any_cast>(args[4]); - // int32_t numMorphTargets = std::any_cast(args[5]); - // int32_t numFrames = std::any_cast(args[6]); - // double frameLengthInMs = std::any_cast(args[7]); + auto morphIndicesList = fl_value_get_list_value(args, 4); + auto morphIndicesListLength = fl_value_get_length(morphIndicesList); + auto indices = std::vector(morphIndicesListLength); + + for(int i =0; i < morphIndicesListLength; i++) { + indices[i] = fl_value_get_int(fl_value_get_list_value(morphIndicesList, i)); + } + + int64_t numMorphTargets = fl_value_get_int(fl_value_get_list_value(args, 5)); + int64_t numFrames = fl_value_get_int(fl_value_get_list_value(args, 6)); + float frameLengthInMs = fl_value_get_float(fl_value_get_list_value(args, 7)); - // // Convert morphData from double to float - // std::vector frameData; - // frameData.reserve(morphData.size()); - // for (double value : morphData) { - // frameData.push_back(static_cast(value)); - // } + bool success = set_morph_animation( + assetManager, + asset, + (const char *const)entityName, + (const float *const)morphData.data(), + (const int* const)indices.data(), + static_cast(numMorphTargets), + static_cast(numFrames), + frameLengthInMs + ); + g_autoptr(FlValue) result = fl_value_new_bool(success); - // void* am = reinterpret_cast(assetManager); - - // bool success = set_morph_animation( - // am, - // asset, - // entityName.c_str(), - // frameData, - // morphIndices, - // numMorphTargets, - // numFrames, - // static_cast(frameLengthInMs) - // ); - - // return success; + return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } static FlMethodResponse* _set_animation(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { @@ -596,12 +673,11 @@ static FlMethodResponse* _get_morph_target_names(PolyvoxFilamentPlugin* self, Fl auto assetManager = (void*)fl_value_get_int(fl_value_get_list_value(args, 0)); auto asset = (EntityId)fl_value_get_int(fl_value_get_list_value(args, 1)); auto meshName = fl_value_get_string(fl_value_get_list_value(args, 2)); + g_autoptr(FlValue) result = fl_value_new_list(); auto numNames = get_morph_target_name_count(assetManager, asset, meshName); - std::cout << numNames << " morph targets found in mesh " << meshName << std::endl; - for(int i = 0; i < numNames; i++) { gchar out[255]; get_morph_target_name(assetManager, asset, meshName, out, i); @@ -626,6 +702,10 @@ static void polyvox_filament_plugin_handle_method_call( response = _create_filament_viewer(self, method_call); } else if(strcmp(method, "createTexture") == 0) { response = _create_texture(self, method_call); + } else if(strcmp(method, "updateViewportAndCameraProjection")==0){ + response = _update_viewport_and_camera_projection(self, method_call); + } else if(strcmp(method, "getAssetManager") ==0){ + response = _get_asset_manager(self, method_call); } else if(strcmp(method, "resize") == 0) { response = _resize(self, method_call); } else if(strcmp(method, "getContext") == 0) { @@ -704,20 +784,26 @@ static void polyvox_filament_plugin_handle_method_call( response = _set_camera_rotation(self, method_call); } else if(strcmp(method, "setFrameInterval") == 0) { response = _set_frame_interval(self, method_call); - } else if(strcmp(method, "zoomBegin") == 0) { - response = _zoom_begin(self, method_call); - } else if(strcmp(method, "zoomEnd") == 0) { - response = _zoom_end(self, method_call); - } else if(strcmp(method, "zoomUpdate") == 0) { - response = _zoom_update(self, method_call); + } else if(strcmp(method, "scrollBegin") == 0) { + response = _scroll_begin(self, method_call); + } else if(strcmp(method, "scrollEnd") == 0) { + response = _scroll_end(self, method_call); + } else if(strcmp(method, "scrollUpdate") == 0) { + response = _scroll_update(self, method_call); + } else if(strcmp(method, "grabBegin") == 0) { + response = _grab_begin(self, method_call); + } else if(strcmp(method, "grabEnd") == 0) { + response = _grab_end(self, method_call); + } else if(strcmp(method, "grabUpdate") == 0) { + response = _grab_update(self, method_call); } else if(strcmp(method, "playAnimation") == 0) { response = _play_animation(self, method_call); } else if(strcmp(method, "stopAnimation") == 0) { response = _stop_animation(self, method_call); } else if(strcmp(method, "setMorphTargetWeights") == 0) { - response = _apply_weights(self, method_call); - } else if(strcmp(method, "setAnimation") == 0) { - response = _set_animation(self, method_call); + response = _set_morph_target_weights(self, method_call); + } else if(strcmp(method, "setMorphAnimation") == 0) { + response = _set_morph_animation(self, method_call); } else if(strcmp(method, "getMorphTargetNames") == 0) { response = _get_morph_target_names(self, method_call); } else if(strcmp(method, "setPosition") == 0) { From 568f2af55bc759e72210c3595c5be7075a742583 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 23 Aug 2023 15:37:46 +0800 Subject: [PATCH 2/6] add morphs to example cube asset --- example/assets/cube.blend | Bin 1162104 -> 1125508 bytes example/assets/cube.glb | Bin 102552 -> 104772 bytes example/lib/main.dart | 15 +++++++++++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/example/assets/cube.blend b/example/assets/cube.blend index 6b3f94035b93546ea6054b2d41643b818848e8b3..7578da75a7bca11e99a99adee48c764891d2d033 100644 GIT binary patch delta 143867 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°`^5VIH3ZPun1sw41tFOEy~Y0@^APp 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

PuAL-f=VKwy=;a?Jk6tr*#Tb$?rspk>?x+|< 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

DQSi&h0te2Tu-D8un{&9aWl$%?%t)g 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 diff --git a/example/assets/cube.glb b/example/assets/cube.glb index f211d1c0e9768842edbba9ed04888db5d354f9b0..8397d6f23e6514d2152237cea262bc3caa280b64 100644 GIT binary patch delta 4535 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 P$o;0b+7~x~bDaMGU~Wbq diff --git a/example/lib/main.dart b/example/lib/main.dart index 44b35fae..4b13fec2 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -206,7 +206,7 @@ class _ExampleWidgetState extends State { .interpolateMorphWeights(0, 4, 0, 1) .build(); _filamentController.setMorphAnimationData(_cube!, animation); - }, "animate morph weights #1 and #2"), + }, "animate cylinder morph weights #1 and #2"), _item(() async { var morphs = await _filamentController.getMorphTargetNames(_cube!, "Cylinder"); @@ -217,7 +217,18 @@ class _ExampleWidgetState extends State { .interpolateMorphWeights(0, 4, 0, 1) .build(); _filamentController.setMorphAnimationData(_cube!, animation); - }, "animate morph weights #3 and #4"), + }, "animate cylinder morph weights #3 and #4"), + _item(() async { + var morphs = + await _filamentController.getMorphTargetNames(_cube!, "Cube"); + final animation = AnimationBuilder( + availableMorphs: morphs, framerate: 30, meshName: "Cube") + .setDuration(4) + .setMorphTargets(["Key 1", "Key 2"]) + .interpolateMorphWeights(0, 4, 0, 1) + .build(); + _filamentController.setMorphAnimationData(_cube!, animation); + }, "animate cube morph weights #1 and #2"), _item(() { _filamentController.setMaterialColor(_cube!, "Cone", 0, Colors.purple); }, "set cone material color to purple") From 03dd2cf6acacccf14c63de315fcce32e6d03d55d Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 23 Aug 2023 15:38:12 +0800 Subject: [PATCH 3/6] fix int64->int32 conversion bug for morph indices --- ios/src/AssetManager.cpp | 9 ++++++++- ios/src/PolyvoxFilamentApi.cpp | 2 ++ lib/filament_controller.dart | 4 ++-- linux/polyvox_filament_plugin.cc | 21 +++++++++++++++------ 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ios/src/AssetManager.cpp b/ios/src/AssetManager.cpp index 642a2264..1ecbe6b1 100644 --- a/ios/src/AssetManager.cpp +++ b/ios/src/AssetManager.cpp @@ -390,9 +390,16 @@ void AssetManager::setMorphTargetWeights(EntityId entityId, const char* const en } RenderableManager &rm = _engine->getRenderableManager(); + + auto renderableInstance = rm.getInstance(entity); + + if(!renderableInstance.isValid()) { + Log("Warning: failed to find renderable instance for entity %s", entityName); + return; + } rm.setMorphWeights( - rm.getInstance(entity), + renderableInstance, weights, count ); diff --git a/ios/src/PolyvoxFilamentApi.cpp b/ios/src/PolyvoxFilamentApi.cpp index 446aaf69..7113408a 100644 --- a/ios/src/PolyvoxFilamentApi.cpp +++ b/ios/src/PolyvoxFilamentApi.cpp @@ -191,6 +191,8 @@ extern "C" { ); } + + FLUTTER_PLUGIN_EXPORT bool set_morph_animation( void* assetManager, EntityId asset, diff --git a/lib/filament_controller.dart b/lib/filament_controller.dart index 16cd8e7b..51a84fd2 100644 --- a/lib/filament_controller.dart +++ b/lib/filament_controller.dart @@ -89,9 +89,9 @@ class FilamentController { await _channel.invokeMethod("updateViewportAndCameraProjection", [size.width.toInt(), size.height.toInt(), 1.0]); - - _initialized.complete(true); _assetManager = await _channel.invokeMethod("getAssetManager"); + _initialized.complete(true); + _textureIdController.add(_textureId); } diff --git a/linux/polyvox_filament_plugin.cc b/linux/polyvox_filament_plugin.cc index b58b9529..94eafe09 100644 --- a/linux/polyvox_filament_plugin.cc +++ b/linux/polyvox_filament_plugin.cc @@ -540,15 +540,23 @@ static FlMethodResponse* _set_morph_target_weights(PolyvoxFilamentPlugin* self, auto assetManager = (void*)fl_value_get_int(fl_value_get_list_value(args, 0)); auto asset = (EntityId)fl_value_get_int(fl_value_get_list_value(args, 1)); auto entityName = fl_value_get_string(fl_value_get_list_value(args, 2)); - auto weightsValue = fl_value_get_list_value(args, 3); - float weight = fl_value_get_float(fl_value_get_list_value(weightsValue, 0)); - size_t len = fl_value_get_length(weightsValue); - set_morph_target_weights(assetManager, asset, entityName, &weight, (int)len); + auto flWeights = fl_value_get_list_value(args, 3); + size_t numWeights = fl_value_get_length(flWeights); + + std::vector weights(numWeights); + for(int i =0; i < numWeights; i++) { + float val = fl_value_get_float(fl_value_get_list_value(flWeights, i)); + weights[i] = val; + } + + set_morph_target_weights(assetManager, asset, entityName, weights.data(), (int)numWeights); g_autoptr(FlValue) result = fl_value_new_string("OK"); return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } +template class std::vector; + static FlMethodResponse* _set_morph_animation(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { FlValue* args = fl_method_call_get_args(method_call); auto assetManager = (void*)fl_value_get_int(fl_value_get_list_value(args, 0)); @@ -565,10 +573,11 @@ static FlMethodResponse* _set_morph_animation(PolyvoxFilamentPlugin* self, FlMet auto morphIndicesList = fl_value_get_list_value(args, 4); auto morphIndicesListLength = fl_value_get_length(morphIndicesList); - auto indices = std::vector(morphIndicesListLength); + auto indices = std::vector(morphIndicesListLength); for(int i =0; i < morphIndicesListLength; i++) { - indices[i] = fl_value_get_int(fl_value_get_list_value(morphIndicesList, i)); + FlValue* flMorphIndex = fl_value_get_list_value(morphIndicesList, i); + indices[i] = static_cast(fl_value_get_int(flMorphIndex)); } int64_t numMorphTargets = fl_value_get_int(fl_value_get_list_value(args, 5)); From 7687e54a0d99f63e88fe750583cd026305d91153 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 24 Aug 2023 00:57:33 +0800 Subject: [PATCH 4/6] fix animation looping bug --- example/lib/main.dart | 14 ++++++++------ ios/src/AssetManager.cpp | 3 +++ lib/filament_controller.dart | 11 ++--------- 3 files changed, 13 insertions(+), 15 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index 4b13fec2..40fa2cde 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -231,16 +231,20 @@ class _ExampleWidgetState extends State { }, "animate cube morph weights #1 and #2"), _item(() { _filamentController.setMaterialColor(_cube!, "Cone", 0, Colors.purple); - }, "set cone material color to purple") + }, "set cone material color to purple"), + _item(() { + _loop = !_loop; + setState(() {}); + }, "toggle animation looping ${_loop ? "OFF" : "ON"}") ]; if (_animations != null) { children.addAll(_animations!.map((a) => _item(() { _filamentController.playAnimation(_cube!, _animations!.indexOf(a), - replaceActive: true, crossfade: 0.5); + replaceActive: true, crossfade: 0.5, loop: _loop); }, "play animation ${_animations!.indexOf(a)} (replace/fade)"))); children.addAll(_animations!.map((a) => _item(() { _filamentController.playAnimation(_cube!, _animations!.indexOf(a), - replaceActive: false); + replaceActive: false, loop: _loop); }, "play animation ${_animations!.indexOf(a)} (noreplace)"))); } @@ -268,9 +272,7 @@ class _ExampleWidgetState extends State { // _item(36 () async { 'play animation 3'), // _item(34 () async { 'play animation 3 (noreplace)'), // _item(37 () async { 'stop animation 0'), - // _item(11 () async { - // Text( - // _loop ? "don't loop animation" : "loop animation")), + // _item(14 () async { 'set camera'), // _item(15 () async { 'animate weights'), // _item(16 () async { 'get target names'), diff --git a/ios/src/AssetManager.cpp b/ios/src/AssetManager.cpp index 1ecbe6b1..9ce75cb4 100644 --- a/ios/src/AssetManager.cpp +++ b/ios/src/AssetManager.cpp @@ -303,6 +303,9 @@ void AssetManager::updateAnimations() { break; } } + if(anim.mLoop && elapsed >= anim.mDuration) { + anim.mStart = now; + } // animation has completed } else { completed.push_back(anim); diff --git a/lib/filament_controller.dart b/lib/filament_controller.dart index 51a84fd2..f5eac296 100644 --- a/lib/filament_controller.dart +++ b/lib/filament_controller.dart @@ -337,15 +337,8 @@ class FilamentController { bool reverse = false, bool replaceActive = true, double crossfade = 0.0}) async { - await _channel.invokeMethod("playAnimation", [ - _assetManager, - asset, - index, - loop ? 1 : 0, - reverse ? 1 : 0, - replaceActive, - crossfade - ]); + await _channel.invokeMethod("playAnimation", + [_assetManager, asset, index, loop, reverse, replaceActive, crossfade]); } void setAnimationFrame( From 482666da3131f2f63973358c49cec02e69c0ef98 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 24 Aug 2023 09:29:16 +0800 Subject: [PATCH 5/6] expose setToneMapping method --- ios/include/FilamentViewer.hpp | 6 ++++++ ios/include/PolyvoxFilamentApi.h | 1 + ios/src/FilamentViewer.cpp | 31 ++++++++++++++++++++++++------- ios/src/PolyvoxFilamentApi.cpp | 4 ++++ lib/filament_controller.dart | 8 ++++++++ linux/polyvox_filament_plugin.cc | 9 ++++++++- 6 files changed, 51 insertions(+), 8 deletions(-) diff --git a/ios/include/FilamentViewer.hpp b/ios/include/FilamentViewer.hpp index 6ae31988..70fd6eee 100644 --- a/ios/include/FilamentViewer.hpp +++ b/ios/include/FilamentViewer.hpp @@ -42,11 +42,17 @@ using namespace camutils; typedef int32_t EntityId; namespace polyvox { + + enum ToneMapping { + ACES, FILMIC, LINEAR + }; + class FilamentViewer { public: FilamentViewer(const void* context, const ResourceLoaderWrapper* const resourceLoaderWrapper); ~FilamentViewer(); + void setToneMapping(ToneMapping toneMapping); void loadSkybox(const char* const skyboxUri); void removeSkybox(); diff --git a/ios/include/PolyvoxFilamentApi.h b/ios/include/PolyvoxFilamentApi.h index 93363ef4..7f0be856 100644 --- a/ios/include/PolyvoxFilamentApi.h +++ b/ios/include/PolyvoxFilamentApi.h @@ -14,6 +14,7 @@ void clear_background_image(const void* const viewer); void set_background_image(const void* const viewer, const char *path); void set_background_image_position(const void* const viewer, float x, float y, bool clamp); void set_background_color(const void* const viewer, const float r, const float g, const float b, const float a); +void set_tone_mapping(const void* const viewer, int toneMapping); void load_skybox(const void* const viewer, const char *skyboxPath); void load_ibl(const void* const viewer, const char *iblPath, float intensity); void remove_skybox(const void* const viewer); diff --git a/ios/src/FilamentViewer.cpp b/ios/src/FilamentViewer.cpp index a4420ea5..9a73b7b0 100644 --- a/ios/src/FilamentViewer.cpp +++ b/ios/src/FilamentViewer.cpp @@ -136,6 +136,8 @@ FilamentViewer::FilamentViewer(const void* context, const ResourceLoaderWrapper* Log("Main camera created"); _view = _engine->createView(); + setToneMapping(ToneMapping::ACES); + decltype(_view->getBloomOptions()) opts; opts.enabled = true; opts.strength = 0.6f; @@ -144,13 +146,6 @@ FilamentViewer::FilamentViewer(const void* context, const ResourceLoaderWrapper* _view->setScene(_scene); _view->setCamera(_mainCamera); -// ToneMapper *tm = new ACESToneMapper(); - ToneMapper *tm = new LinearToneMapper(); - colorGrading = ColorGrading::Builder().toneMapper(tm).build(*_engine); - delete tm; - - _view->setColorGrading(colorGrading); - _cameraFocalLength = 28.0f; _mainCamera->setLensProjection(_cameraFocalLength, 1.0f, kNearPlane, kFarPlane); @@ -243,6 +238,28 @@ FilamentViewer::FilamentViewer(const void* context, const ResourceLoaderWrapper* _scene->addEntity(imageEntity); } +void FilamentViewer::setToneMapping(ToneMapping toneMapping) { + + ToneMapper* tm; + switch(toneMapping) { + case ToneMapping::ACES: + tm = new ACESToneMapper(); + break; + case ToneMapping::LINEAR: + tm = new LinearToneMapper(); + break; + case ToneMapping::FILMIC: + tm = new FilmicToneMapper(); + break; + } + + + auto newColorGrading = ColorGrading::Builder().toneMapper(tm).build(*_engine); + _view->setColorGrading(newColorGrading); + _engine->destroy(colorGrading); + delete tm; +} + void FilamentViewer::setFrameInterval(float frameInterval) { Renderer::FrameRateOptions fro; fro.interval = frameInterval; diff --git a/ios/src/PolyvoxFilamentApi.cpp b/ios/src/PolyvoxFilamentApi.cpp index 7113408a..808bdb36 100644 --- a/ios/src/PolyvoxFilamentApi.cpp +++ b/ios/src/PolyvoxFilamentApi.cpp @@ -48,6 +48,10 @@ extern "C" { ((FilamentViewer*)viewer)->setBackgroundImagePosition(x, y, clamp); } + FLUTTER_PLUGIN_EXPORT void set_tone_mapping(const void* const viewer, int toneMapping) { + ((FilamentViewer*)viewer)->setToneMapping((ToneMapping)toneMapping); + } + FLUTTER_PLUGIN_EXPORT void load_skybox(const void* const viewer, const char* skyboxPath) { ((FilamentViewer*)viewer)->loadSkybox(skyboxPath); } diff --git a/lib/filament_controller.dart b/lib/filament_controller.dart index f5eac296..5c5e4b60 100644 --- a/lib/filament_controller.dart +++ b/lib/filament_controller.dart @@ -13,6 +13,8 @@ typedef AssetManager = int; typedef FilamentEntity = int; const FilamentEntity FILAMENT_ASSET_ERROR = 0; +enum ToneMapper { ACES, FILMIC, LINEAR } + class FilamentController { late MethodChannel _channel = MethodChannel("app.polyvox.filament/event"); @@ -358,6 +360,12 @@ class FilamentController { } } + void setToneMapping(ToneMapper mapper) async { + if (!await _channel.invokeMethod("setToneMapping", mapper.index)) { + throw Exception("Failed to set tone mapper"); + } + } + void setCameraFocalLength(double focalLength) async { await _channel.invokeMethod("setCameraFocalLength", focalLength); } diff --git a/linux/polyvox_filament_plugin.cc b/linux/polyvox_filament_plugin.cc index 94eafe09..b36f7745 100644 --- a/linux/polyvox_filament_plugin.cc +++ b/linux/polyvox_filament_plugin.cc @@ -696,7 +696,12 @@ static FlMethodResponse* _get_morph_target_names(PolyvoxFilamentPlugin* self, Fl return FL_METHOD_RESPONSE(fl_method_success_response_new(result)); } - +static FlMethodResponse* _set_tone_mapping(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + FlValue* args = fl_method_call_get_args(method_call); + polyvox::ToneMapping toneMapping = static_cast(fl_value_get_int(args)); + set_tone_mapping(self->viewer, toneMapping); + return FL_METHOD_RESPONSE(fl_method_success_response_new(fl_value_new_bool(true))); +} // Called when a method call is received from Flutter. static void polyvox_filament_plugin_handle_method_call( @@ -715,6 +720,8 @@ static void polyvox_filament_plugin_handle_method_call( response = _update_viewport_and_camera_projection(self, method_call); } else if(strcmp(method, "getAssetManager") ==0){ response = _get_asset_manager(self, method_call); + } else if(strcmp(method, "setToneMapping") == 0) { + response = _set_tone_mapping(self, method_call); } else if(strcmp(method, "resize") == 0) { response = _resize(self, method_call); } else if(strcmp(method, "getContext") == 0) { From e1edb6299aee9533b2b6e10f2ee97272e064a64e Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 24 Aug 2023 09:36:30 +0800 Subject: [PATCH 6/6] add setBloom method --- ios/include/FilamentViewer.hpp | 1 + ios/include/PolyvoxFilamentApi.h | 1 + ios/src/FilamentViewer.cpp | 12 ++++++++---- ios/src/PolyvoxFilamentApi.cpp | 5 +++++ lib/filament_controller.dart | 6 ++++++ linux/polyvox_filament_plugin.cc | 8 ++++++++ 6 files changed, 29 insertions(+), 4 deletions(-) diff --git a/ios/include/FilamentViewer.hpp b/ios/include/FilamentViewer.hpp index 70fd6eee..373f92b6 100644 --- a/ios/include/FilamentViewer.hpp +++ b/ios/include/FilamentViewer.hpp @@ -53,6 +53,7 @@ namespace polyvox { ~FilamentViewer(); void setToneMapping(ToneMapping toneMapping); + void setBloom(float strength); void loadSkybox(const char* const skyboxUri); void removeSkybox(); diff --git a/ios/include/PolyvoxFilamentApi.h b/ios/include/PolyvoxFilamentApi.h index 7f0be856..f6c24029 100644 --- a/ios/include/PolyvoxFilamentApi.h +++ b/ios/include/PolyvoxFilamentApi.h @@ -15,6 +15,7 @@ void set_background_image(const void* const viewer, const char *path); void set_background_image_position(const void* const viewer, float x, float y, bool clamp); void set_background_color(const void* const viewer, const float r, const float g, const float b, const float a); void set_tone_mapping(const void* const viewer, int toneMapping); +void set_bloom(const void* const viewer, float strength); void load_skybox(const void* const viewer, const char *skyboxPath); void load_ibl(const void* const viewer, const char *iblPath, float intensity); void remove_skybox(const void* const viewer); diff --git a/ios/src/FilamentViewer.cpp b/ios/src/FilamentViewer.cpp index 9a73b7b0..ba5abb0e 100644 --- a/ios/src/FilamentViewer.cpp +++ b/ios/src/FilamentViewer.cpp @@ -138,10 +138,7 @@ FilamentViewer::FilamentViewer(const void* context, const ResourceLoaderWrapper* setToneMapping(ToneMapping::ACES); - decltype(_view->getBloomOptions()) opts; - opts.enabled = true; - opts.strength = 0.6f; - _view->setBloomOptions(opts); + setBloom(0.6f); _view->setScene(_scene); _view->setCamera(_mainCamera); @@ -238,6 +235,13 @@ FilamentViewer::FilamentViewer(const void* context, const ResourceLoaderWrapper* _scene->addEntity(imageEntity); } +void FilamentViewer::setBloom(float strength) { + decltype(_view->getBloomOptions()) opts; + opts.enabled = true; + opts.strength = strength; + _view->setBloomOptions(opts); +} + void FilamentViewer::setToneMapping(ToneMapping toneMapping) { ToneMapper* tm; diff --git a/ios/src/PolyvoxFilamentApi.cpp b/ios/src/PolyvoxFilamentApi.cpp index 808bdb36..c97b4c9b 100644 --- a/ios/src/PolyvoxFilamentApi.cpp +++ b/ios/src/PolyvoxFilamentApi.cpp @@ -52,6 +52,11 @@ extern "C" { ((FilamentViewer*)viewer)->setToneMapping((ToneMapping)toneMapping); } + FLUTTER_PLUGIN_EXPORT void set_bloom(const void* const viewer, float strength) { + Log("Setting bloom to %f", strength); + ((FilamentViewer*)viewer)->setBloom(strength); + } + FLUTTER_PLUGIN_EXPORT void load_skybox(const void* const viewer, const char* skyboxPath) { ((FilamentViewer*)viewer)->loadSkybox(skyboxPath); } diff --git a/lib/filament_controller.dart b/lib/filament_controller.dart index 5c5e4b60..c54058db 100644 --- a/lib/filament_controller.dart +++ b/lib/filament_controller.dart @@ -366,6 +366,12 @@ class FilamentController { } } + void setBloom(double bloom) async { + if (!await _channel.invokeMethod("setBloom", bloom)) { + throw Exception("Failed to set bloom"); + } + } + void setCameraFocalLength(double focalLength) async { await _channel.invokeMethod("setCameraFocalLength", focalLength); } diff --git a/linux/polyvox_filament_plugin.cc b/linux/polyvox_filament_plugin.cc index b36f7745..71303bde 100644 --- a/linux/polyvox_filament_plugin.cc +++ b/linux/polyvox_filament_plugin.cc @@ -703,6 +703,12 @@ static FlMethodResponse* _set_tone_mapping(PolyvoxFilamentPlugin* self, FlMethod return FL_METHOD_RESPONSE(fl_method_success_response_new(fl_value_new_bool(true))); } +static FlMethodResponse* _set_bloom(PolyvoxFilamentPlugin* self, FlMethodCall* method_call) { + FlValue* args = fl_method_call_get_args(method_call); + set_bloom(self->viewer, fl_value_get_float(args)); + return FL_METHOD_RESPONSE(fl_method_success_response_new(fl_value_new_bool(true))); +} + // Called when a method call is received from Flutter. static void polyvox_filament_plugin_handle_method_call( PolyvoxFilamentPlugin* self, @@ -722,6 +728,8 @@ static void polyvox_filament_plugin_handle_method_call( response = _get_asset_manager(self, method_call); } else if(strcmp(method, "setToneMapping") == 0) { response = _set_tone_mapping(self, method_call); + } else if(strcmp(method, "setBloom") == 0) { + response = _set_bloom(self, method_call); } else if(strcmp(method, "resize") == 0) { response = _resize(self, method_call); } else if(strcmp(method, "getContext") == 0) {