import mathutils
class SceneExporter:
- def export_to_file(self, context, out_fn, *, selected_only=False, visible_only=True, collection=True, skip_existing=True):
- from .util import Progress
- progress = Progress(context)
-
+ def export_to_file(self, ctx, out_fn, *, selected_only=False, visible_only=True, collection=True, skip_existing=True):
from .scene import create_scene_from_current
- scene = create_scene_from_current(context, selected_only=selected_only, visible_only=visible_only)
+ task = ctx.task("Preparing scene", 0.1)
+ scene = create_scene_from_current(task, selected_only=selected_only, visible_only=visible_only)
resources = {}
- self.export_scene_resources(context, scene, resources, progress)
+ task = ctx.task("Exporting resources", 0.9)
+ self.export_scene_resources(task, scene, resources)
+ task = ctx.task(scene, 1.0)
scene_res = self.export_scene(scene, resources)
- progress.set_progress(1.0)
path, base = os.path.split(out_fn)
base, ext = os.path.splitext(base)
+ task = ctx.task("Writing files", 1.0)
if collection:
existing = None
if skip_existing:
for r in scene_res.collect_references():
r.write_to_file(os.path.join(path, r.name))
- def export_scene_resources(self, context, scene, resources, progress):
+ def export_scene_resources(self, ctx, scene, resources):
from .export import DataExporter
data_exporter = DataExporter()
- data_exporter.export_resources(context, scene.prototypes, resources, None, progress)
+ data_exporter.export_resources(ctx, scene.prototypes, resources, None)
def export_scene(self, scene, resources):
from .datafile import Resource, Statement, Token
st = Statement("effect", "shadow_map")
st.sub.append(Statement("type", Token("shadow_map")))
+ st.sub.append(Statement("enable_for_method", "blended"))
st.sub.append(Statement("size", *self.compute_shadowmap_size(shadowed_lights)))
target, radius = self.compute_bounding_sphere(shadow_casters)
st.sub.append(Statement("target", *target))