Fix TAA for envmap
This commit is contained in:
parent
68f2b24738
commit
feac62cc10
|
@ -189,6 +189,9 @@ def make_deferred(cam):
|
|||
links.new(nodes['Reroute.019'].outputs[0], nodes['SMAA'].inputs[5])
|
||||
links.new(nodes['gbuffer2'].outputs[0], nodes['GBuffer'].inputs[2])
|
||||
links.new(nodes['Reroute.014'].outputs[0], nodes['SMAA'].inputs[1])
|
||||
# Clear velocity
|
||||
links.new(nodes['Begin'].outputs[0], nodes['Set Target Veloc'].inputs[0])
|
||||
links.new(nodes['Clear Target Veloc'].outputs[0], nodes['Set Target Mesh'].inputs[0])
|
||||
elif cam.rp_antialiasing == 'FXAA':
|
||||
last_node = 'FXAA'
|
||||
relink('SMAA', 'FXAA')
|
||||
|
|
|
@ -22,7 +22,7 @@ def build_node_trees(assets_path):
|
|||
os.makedirs(arm.utils.build_dir() + '/compiled/Assets/renderpaths')
|
||||
|
||||
build_node_trees.assets_path = assets_path
|
||||
if bpy.data.cameras[0].rp_materials == 'Full':
|
||||
if bpy.data.worlds['Arm'].material_model != 'Restricted':
|
||||
# Always include
|
||||
assets.add(assets_path + 'brdf.png')
|
||||
assets.add_embedded_data('brdf.png')
|
||||
|
|
|
@ -76,7 +76,7 @@ def build_node_tree(world):
|
|||
wrd.world_defs += '_TwoSidedAreaLamp'
|
||||
|
||||
# Alternative models
|
||||
if wrd.lighting_model == 'Cycles':
|
||||
if wrd.material_model == 'Cycles':
|
||||
wrd.world_defs += '_Cycles'
|
||||
|
||||
# TODO: Lamp texture test..
|
||||
|
|
|
@ -16,7 +16,7 @@ def make(context_id, rid):
|
|||
con_mesh = mat_state.data.add_context({ 'name': context_id, 'depth_write': True, 'compare_mode': 'less', 'cull_mode': 'clockwise' })
|
||||
|
||||
if rid == 'forward':
|
||||
if bpy.data.cameras[0].rp_materials == 'Full':
|
||||
if bpy.data.worlds['Arm'].material_model != 'Restricted':
|
||||
make_forward(con_mesh)
|
||||
else:
|
||||
make_forward_restricted(con_mesh)
|
||||
|
|
|
@ -137,7 +137,7 @@ def make(context_id):
|
|||
frag.write('vec3 color = basecol * visibility * lightColor * dotNL * attenuate(distance(wposition * voxelgiDimensions, lightPos));')
|
||||
frag.write('vec3 voxel = wposition * 0.5 + vec3(0.5);')
|
||||
|
||||
if wrd.lighting_model == 'Cycles':
|
||||
if wrd.material_model == 'Cycles':
|
||||
frag.write('color = min(color * 0.9, vec3(0.9)) + min(color / 200.0, 0.1);') # Higher range to allow emission
|
||||
|
||||
# if bpy.data.cameras[0].rp_voxelgi_hdr:
|
||||
|
|
|
@ -26,6 +26,10 @@ def update_preset(self, context):
|
|||
def update_renderpath(self, context):
|
||||
props_renderer.set_renderpath(self, context)
|
||||
|
||||
def update_material_model(self, context):
|
||||
assets.invalidate_shader_cache(self, context)
|
||||
update_renderpath(self, context)
|
||||
|
||||
def update_translucency_state(self, context):
|
||||
if self.rp_translucency_state == 'On':
|
||||
self.rp_translucency = True
|
||||
|
@ -325,21 +329,14 @@ def init_properties():
|
|||
('Max', 'Max', 'Max'),
|
||||
('Render Capture', 'Render Capture', 'Render Capture'),
|
||||
('Grease Pencil', 'Grease Pencil', 'Grease Pencil'),
|
||||
#('Path-Trace', 'Path-Trace', 'Path-Trace')],
|
||||
],
|
||||
name="Preset", description="Render path preset", default='Deferred', update=update_preset)
|
||||
bpy.types.Camera.rp_renderer = EnumProperty(
|
||||
items=[('Forward', 'Forward', 'Forward'),
|
||||
('Deferred', 'Deferred', 'Deferred'),
|
||||
('Deferred Plus', 'Deferred Plus', 'Deferred Plus'),
|
||||
#('Path-Trace', 'Path-Trace', 'Path-Trace')],
|
||||
],
|
||||
name="Renderer", description="Renderer type", default='Deferred', update=update_renderpath)
|
||||
bpy.types.Camera.rp_materials = EnumProperty(
|
||||
items=[('Full', 'Full', 'Full'),
|
||||
('Restricted', 'Restricted', 'Restricted'),
|
||||
],
|
||||
name="Materials", description="Material builder", default='Full', update=update_renderpath)
|
||||
bpy.types.Camera.rp_depthprepass = bpy.props.BoolProperty(name="Depth Prepass", description="Depth Prepass for mesh context", default=False, update=update_renderpath)
|
||||
bpy.types.Camera.rp_meshes = bpy.props.BoolProperty(name="Meshes", description="Render mesh objects", default=True, update=update_renderpath)
|
||||
bpy.types.Camera.rp_hdr = bpy.props.BoolProperty(name="HDR", description="Render in HDR Space", default=True, update=update_renderpath)
|
||||
|
@ -542,11 +539,13 @@ def init_properties():
|
|||
bpy.types.World.force_no_culling = bpy.props.BoolProperty(name="Force No Culling", default=False)
|
||||
bpy.types.World.generate_two_sided_area_lamp = bpy.props.BoolProperty(name="Two-Sided Area Lamps", description="Emit light from both faces of area lamp", default=False, update=assets.invalidate_shader_cache)
|
||||
bpy.types.World.tessellation_enabled = bpy.props.BoolProperty(name="Tessellation", description="Enable tessellation for height maps on supported targets", default=True, update=assets.invalidate_shader_cache)
|
||||
# Lighting flags
|
||||
bpy.types.World.lighting_model = EnumProperty(
|
||||
# Material builder flags
|
||||
bpy.types.World.material_model = EnumProperty(
|
||||
items=[('PBR', 'PBR', 'PBR'),
|
||||
('Cycles', 'Cycles', 'Cycles')],
|
||||
name="Lighting", description="Preferred lighting calibration", default='PBR', update=assets.invalidate_shader_cache)
|
||||
('Cycles', 'Cycles', 'Cycles'),
|
||||
('Restricted', 'Restricted', 'Restricted'),
|
||||
],
|
||||
name="Materials", description="Material builder", default='PBR', update=update_material_model)
|
||||
# For material
|
||||
bpy.types.NodeSocket.is_uniform = bpy.props.BoolProperty(name="Is Uniform", description="Mark node sockets to be processed as material uniforms", default=False)
|
||||
bpy.types.NodeTree.is_cached = bpy.props.BoolProperty(name="Node Tree Cached", description="No need to reexport node tree", default=False)
|
||||
|
|
|
@ -20,7 +20,7 @@ def set_preset(self, context, preset):
|
|||
|
||||
if preset == 'Low':
|
||||
cam.rp_renderer = 'Forward'
|
||||
cam.rp_materials = 'Full'
|
||||
wrd.material_model = 'PBR'
|
||||
cam.rp_shadowmap = '1024'
|
||||
cam.rp_meshes = True
|
||||
cam.rp_translucency_state = 'Off'
|
||||
|
@ -48,7 +48,7 @@ def set_preset(self, context, preset):
|
|||
cam.rp_motionblur = 'None'
|
||||
elif preset == 'Forward':
|
||||
cam.rp_renderer = 'Forward'
|
||||
cam.rp_materials = 'Full'
|
||||
wrd.material_model = 'PBR'
|
||||
cam.rp_shadowmap = '2048'
|
||||
cam.rp_meshes = True
|
||||
cam.rp_translucency_state = 'Auto'
|
||||
|
@ -76,6 +76,7 @@ def set_preset(self, context, preset):
|
|||
cam.rp_motionblur = 'None'
|
||||
elif preset == 'Deferred':
|
||||
cam.rp_renderer = 'Deferred'
|
||||
wrd.material_model = 'PBR'
|
||||
cam.rp_shadowmap = '2048'
|
||||
cam.rp_meshes = True
|
||||
cam.rp_translucency_state = 'Auto'
|
||||
|
@ -103,6 +104,7 @@ def set_preset(self, context, preset):
|
|||
cam.rp_motionblur = 'None'
|
||||
elif preset == 'Max':
|
||||
cam.rp_renderer = 'Deferred'
|
||||
wrd.material_model = 'PBR'
|
||||
cam.rp_shadowmap = '4096'
|
||||
cam.rp_meshes = True
|
||||
cam.rp_translucency_state = 'Auto'
|
||||
|
@ -157,10 +159,11 @@ def set_preset(self, context, preset):
|
|||
cam.rp_rendercapture = True
|
||||
cam.rp_rendercapture_format = '8bit'
|
||||
cam.rp_motionblur = 'None'
|
||||
wrd.lighting_model = 'Cycles'
|
||||
wrd.material_model = 'Cycles'
|
||||
wrd.generate_pcss_state = 'On'
|
||||
elif preset == 'Deferred Plus':
|
||||
cam.rp_renderer = 'Deferred Plus'
|
||||
wrd.material_model = 'PBR'
|
||||
cam.rp_shadowmap = '4096'
|
||||
cam.rp_meshes = True
|
||||
cam.rp_translucency_state = 'Auto'
|
||||
|
@ -188,7 +191,7 @@ def set_preset(self, context, preset):
|
|||
cam.rp_motionblur = 'None'
|
||||
elif preset == 'VR Low':
|
||||
cam.rp_renderer = 'Forward'
|
||||
cam.rp_materials = 'Restricted'
|
||||
wrd.material_model = 'Restricted'
|
||||
cam.rp_shadowmap = '1024'
|
||||
cam.rp_meshes = True
|
||||
cam.rp_translucency_state = 'Off'
|
||||
|
@ -216,7 +219,7 @@ def set_preset(self, context, preset):
|
|||
cam.rp_motionblur = 'None'
|
||||
elif preset == 'Mobile Low':
|
||||
cam.rp_renderer = 'Forward'
|
||||
cam.rp_materials = 'Restricted'
|
||||
wrd.material_model = 'Restricted'
|
||||
cam.rp_shadowmap = '1024'
|
||||
cam.rp_meshes = True
|
||||
cam.rp_translucency_state = 'Off'
|
||||
|
@ -244,7 +247,7 @@ def set_preset(self, context, preset):
|
|||
cam.rp_motionblur = 'None'
|
||||
elif preset == 'Grease Pencil':
|
||||
cam.rp_renderer = 'Forward'
|
||||
cam.rp_materials = 'Restricted'
|
||||
wrd.material_model = 'Restricted'
|
||||
cam.rp_shadowmap = 'None'
|
||||
cam.rp_meshes = False
|
||||
cam.rp_translucency_state = 'Off'
|
||||
|
@ -305,8 +308,7 @@ class GenRPDataPropsPanel(bpy.types.Panel):
|
|||
layout.prop(dat, "rp_preset")
|
||||
layout.separator()
|
||||
layout.prop(dat, "rp_renderer")
|
||||
layout.prop(dat, "rp_materials")
|
||||
layout.prop(wrd, 'lighting_model')
|
||||
layout.prop(wrd, 'material_model')
|
||||
layout.prop(dat, "rp_shadowmap")
|
||||
layout.prop(dat, "rp_meshes")
|
||||
layout.prop(dat, "rp_translucency_state")
|
||||
|
|
Binary file not shown.
Loading…
Reference in a new issue