add arg for ibl intensity

This commit is contained in:
Nick Fisher
2023-03-12 14:41:25 +08:00
parent a8d0e37fec
commit b70d0a022b
6 changed files with 10 additions and 9 deletions

View File

@@ -362,7 +362,8 @@ public class SwiftPolyvoxFilamentPlugin: NSObject, FlutterPlugin, FlutterTexture
clear_assets(viewer!)
result("OK")
case "loadIbl":
load_ibl(self.viewer, call.arguments as! String)
let args = call.arguments as! Array<Any?>
load_ibl(self.viewer, args[0] as! String, Float(args[1] as! Double))
result("OK");
case "removeIbl":
remove_ibl(self.viewer)

View File

@@ -53,7 +53,7 @@ namespace polyvox {
void loadSkybox(const char* const skyboxUri);
void removeSkybox();
void loadIbl(const char* const iblUri);
void loadIbl(const char* const iblUri, float intensity);
void removeIbl();
SceneAsset* loadGlb(const char* const uri);

View File

@@ -32,7 +32,7 @@ void set_background_image(void* viewer, const char* path);
void set_background_color(void* viewer, const float* color);
void set_background_image_position(void* viewer, float x, float y, bool clamp);
void load_skybox(void* viewer, const char* skyboxPath);
void load_ibl(void* viewer, const char* iblPath);
void load_ibl(void* viewer, const char* iblPath, float intensity);
void remove_skybox(void* viewer);
void remove_ibl(void* viewer);
int32_t add_light(void* viewer, uint8_t type, float colour, float intensity, float posX, float posY, float posZ, float dirX, float dirY, float dirZ, bool shadows);

View File

@@ -822,7 +822,7 @@ void FilamentViewer::removeIbl() {
_scene->setIndirectLight(nullptr);
}
void FilamentViewer::loadIbl(const char *const iblPath) {
void FilamentViewer::loadIbl(const char *const iblPath, float intensity) {
removeIbl();
if (iblPath) {
Log("Loading IBL from %s", iblPath);
@@ -848,7 +848,7 @@ void FilamentViewer::loadIbl(const char *const iblPath) {
_indirectLight = IndirectLight::Builder()
.reflections(_iblTexture)
.irradiance(3, harmonics)
.intensity(30000.0f)
.intensity(intensity)
.build(*_engine);
_scene->setIndirectLight(_indirectLight);

View File

@@ -39,8 +39,8 @@ extern "C" {
((FilamentViewer*)viewer)->loadSkybox(skyboxPath);
}
void load_ibl(void* viewer, const char* iblPath) {
((FilamentViewer*)viewer)->loadIbl(iblPath);
void load_ibl(void* viewer, const char* iblPath, float intensity) {
((FilamentViewer*)viewer)->loadIbl(iblPath, intensity);
}
void remove_skybox(void* viewer) {

View File

@@ -202,8 +202,8 @@ class PolyvoxFilamentController extends FilamentController {
}
@override
Future loadIbl(String lightingPath) async {
await _channel.invokeMethod("loadIbl", lightingPath);
Future loadIbl(String lightingPath, {double intensity = 30000}) async {
await _channel.invokeMethod("loadIbl", [lightingPath, intensity]);
}
@override