add loadIblFromTexture method
This commit is contained in:
@@ -288,8 +288,8 @@ class ThermionViewerFFI extends ThermionViewer {
|
|||||||
///
|
///
|
||||||
///
|
///
|
||||||
@override
|
@override
|
||||||
Future loadIbl(String lightingPath, {double intensity = 30000}) async {
|
Future loadIbl(String lightingPath, {double intensity = 30000, bool destroyExisting= true}) async {
|
||||||
await removeIbl();
|
await removeIbl(destroy:destroyExisting);
|
||||||
|
|
||||||
final completer = Completer();
|
final completer = Completer();
|
||||||
_iblTextureUploadComplete =
|
_iblTextureUploadComplete =
|
||||||
@@ -306,8 +306,11 @@ class ThermionViewerFFI extends ThermionViewer {
|
|||||||
final texture = await bundle.createTexture();
|
final texture = await bundle.createTexture();
|
||||||
final harmonics = bundle.getSphericalHarmonics();
|
final harmonics = bundle.getSphericalHarmonics();
|
||||||
|
|
||||||
final ibl = await FFIIndirectLight.fromIrradianceHarmonics(harmonics,
|
final ibl = await FFIIndirectLight.fromIrradianceHarmonics(
|
||||||
reflectionsTexture: texture, intensity: intensity);
|
harmonics,
|
||||||
|
reflectionsTexture: texture,
|
||||||
|
intensity: intensity,
|
||||||
|
);
|
||||||
|
|
||||||
await scene.setIndirectLight(ibl);
|
await scene.setIndirectLight(ibl);
|
||||||
|
|
||||||
@@ -324,6 +327,18 @@ class ThermionViewerFFI extends ThermionViewer {
|
|||||||
await completer.future;
|
await completer.future;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
Future loadIblFromTexture(Texture texture, { double intensity = 30000, bool destroyExisting = true}) async {
|
||||||
|
await removeIbl(destroy: destroyExisting);
|
||||||
|
|
||||||
|
final ibl = await FFIIndirectLight.fromIrradianceTexture(texture,
|
||||||
|
reflectionsTexture: texture, intensity: intensity);
|
||||||
|
|
||||||
|
await scene.setIndirectLight(ibl);
|
||||||
|
}
|
||||||
|
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
|
|||||||
@@ -97,7 +97,14 @@ abstract class ThermionViewer {
|
|||||||
/// Creates an indirect light by loading the reflections/irradiance from the KTX file.
|
/// Creates an indirect light by loading the reflections/irradiance from the KTX file.
|
||||||
/// Only one indirect light can be active at any given time; if an indirect light has already been loaded, it will be replaced.
|
/// Only one indirect light can be active at any given time; if an indirect light has already been loaded, it will be replaced.
|
||||||
///
|
///
|
||||||
Future loadIbl(String lightingPath, {double intensity = 30000});
|
Future loadIbl(String lightingPath,
|
||||||
|
{double intensity = 30000, bool destroyExisting = true});
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
Future loadIblFromTexture(Texture texture,
|
||||||
|
{double intensity = 30000, bool destroyExisting = true});
|
||||||
|
|
||||||
///
|
///
|
||||||
/// Rotates the IBL & skybox.
|
/// Rotates the IBL & skybox.
|
||||||
|
|||||||
Reference in New Issue
Block a user