]> git.tdb.fi Git - libs/gl.git/commitdiff
Support exporting ambient occlusion postprocessor from Blender
authorMikko Rasa <tdb@tdb.fi>
Thu, 13 May 2021 12:01:48 +0000 (15:01 +0300)
committerMikko Rasa <tdb@tdb.fi>
Thu, 13 May 2021 12:01:48 +0000 (15:01 +0300)
blender/io_mspgl/export_scene.py
blender/io_mspgl/properties.py
blender/io_mspgl/scene.py

index 77755a65b7479353958f36ebee02c8f77635a1bd..3f0509ab6d7ec18007a3b8f4b5edb9213efe3f86 100644 (file)
@@ -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")
index 62d8a948ec5a14fe22cf6d3042659e454c40704b..236e79f30118fa80b377f5580caac99adb3f2e69 100644 (file)
@@ -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",
index 50ccb7c2d694fd91632ea6e36eeacdb93a1fd80f..c89aa3df2e3950476cebace4e765a498123ce752 100644 (file)
@@ -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: