From dc37334624cd43c84ed926864b15eb99196e38a2 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Thu, 13 May 2021 15:01:48 +0300 Subject: [PATCH] Support exporting ambient occlusion postprocessor from Blender --- blender/io_mspgl/export_scene.py | 6 ++++++ blender/io_mspgl/properties.py | 3 +++ blender/io_mspgl/scene.py | 3 +++ 3 files changed, 12 insertions(+) diff --git a/blender/io_mspgl/export_scene.py b/blender/io_mspgl/export_scene.py index 77755a65..3f0509ab 100644 --- a/blender/io_mspgl/export_scene.py +++ b/blender/io_mspgl/export_scene.py @@ -124,6 +124,12 @@ class SceneExporter: ss.sub.append(seq_res.create_reference_statement("scene", content)) seq_res.statements.append(ss) + if scene.use_ao: + ss = Statement("ambient_occlusion") + ss.sub.append(Statement("occlusion_radius", scene.ao_distance)) + ss.sub.append(Statement("samples", scene.ao_samples)) + seq_res.statements.append(ss) + if scene.use_hdr: seq_res.statements.append(Statement("bloom")) ss = Statement("colorcurve") diff --git a/blender/io_mspgl/properties.py b/blender/io_mspgl/properties.py index 62d8a948..236e79f3 100644 --- a/blender/io_mspgl/properties.py +++ b/blender/io_mspgl/properties.py @@ -163,6 +163,8 @@ class MspGLRenderProperties(bpy.types.Panel): def draw(self, context): scene = context.scene self.layout.prop(scene, "use_hdr") + if scene.eevee.use_gtao: + self.layout.prop(scene, "ao_samples") class MspGLUniform(bpy.types.PropertyGroup): name: bpy.props.StringProperty(name="Name", description="Name of the uniform variable") @@ -197,6 +199,7 @@ def register_properties(): ("SCENE", "Scene", "The scene will be exported"), ("SEQUENCE", "Sequence", "The scene will be exported along with a rendering sequence"))) bpy.types.Scene.use_hdr = bpy.props.BoolProperty(name="High dynamic range", description="Use a range render target with a floating point format", default=False) + bpy.types.Scene.ao_samples = bpy.props.IntProperty(name="Ambient occlusion samples", description="Number of samples to use for ambient occlusion", min=8, max=128, default=32) bpy.types.Mesh.winding_test = bpy.props.BoolProperty(name="Winding test", description="Perform winding test to skip back faces") bpy.types.Mesh.smoothing = bpy.props.EnumProperty(name="Smoothing", description="Smoothing method to use", default="MSPGL", diff --git a/blender/io_mspgl/scene.py b/blender/io_mspgl/scene.py index 50ccb7c2..c89aa3df 100644 --- a/blender/io_mspgl/scene.py +++ b/blender/io_mspgl/scene.py @@ -29,6 +29,9 @@ class Scene: self.exposure = scene.view_settings.exposure self.use_hdr = scene.use_hdr + self.use_ao = scene.eevee.use_gtao + self.ao_distance = scene.eevee.gtao_distance + self.ao_samples = scene.ao_samples if scene.world: out_node = next((n for n in scene.world.node_tree.nodes if n.type=='OUTPUT_WORLD'), None) if out_node: -- 2.43.0