react-native-filament
Version:
A real-time physically based 3D rendering engine for React Native
35 lines (33 loc) • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.EnvironmentalLight = EnvironmentalLight;
var _useBuffer = require("../hooks/useBuffer");
var _useFilamentContext = require("../hooks/useFilamentContext");
var _useWorkletEffect = require("../hooks/useWorkletEffect");
/**
* Sets the light of the scene. An environmental light uses an image file to simulate indirect light.
* @note You can only have one environmental light in the scene.
*/
function EnvironmentalLight({
source,
intensity = 25_000,
irradianceBands
}) {
const {
engine
} = (0, _useFilamentContext.useFilamentContext)();
const lightBuffer = (0, _useBuffer.useBuffer)({
source: source,
releaseOnUnmount: false
});
(0, _useWorkletEffect.useWorkletEffect)(() => {
'worklet';
if (lightBuffer == null) return;
engine.setIndirectLight(lightBuffer, intensity, irradianceBands);
lightBuffer.release();
});
return null;
}
//# sourceMappingURL=EnvironmentalLight.js.map