12345678910111213141516171819202122232425262728293031323334353637383940 |
- package hide.view.l3d;
- class ProbeBakerProcess {
- public var progress : Float = 0.;
- var lightProbeBaker : hide.view.l3d.LightProbeBaker;
- var volumetricLightmap : hrt.prefab.vlm.VolumetricLightmap;
- var bakeTime : Float;
- var resolution : Int;
- public function new(volumetricLightmap, res, useGPU, bakeTime = 0.016 ){
- progress = 0;
- this.bakeTime = bakeTime;
- this.volumetricLightmap = volumetricLightmap;
- this.resolution = res;
- lightProbeBaker = new hide.view.l3d.LightProbeBaker();
- lightProbeBaker.useGPU = useGPU;
- }
- public function init( env : h3d.scene.pbr.Environment, sceneData : hrt.prefab.Prefab , shared : hide.prefab.ContextShared, scene : hide.comp.Scene) {
- lightProbeBaker.initScene(sceneData, shared, scene, env);
- }
- public function update(dt:Float) {
- lightProbeBaker.bake(volumetricLightmap.volumetricLightmap, resolution, bakeTime);
- progress = (volumetricLightmap.volumetricLightmap.lastBakedProbeIndex +1.0) / volumetricLightmap.volumetricLightmap.getProbeCount();
- if( progress == 1 ) {
- lightProbeBaker.dispose();
- lightProbeBaker = null;
- onEnd();
- }
- }
- public dynamic function onEnd() {
- }
- }
|