Less shadow bias for bigger maps

This commit is contained in:
Lubos Lenco 2017-12-05 22:00:27 +01:00
parent f7bf9127cd
commit 8a0c0e40cf
2 changed files with 13 additions and 7 deletions

View file

@ -1534,6 +1534,8 @@ class ArmoryExporter:
o['shadowmap_size'] = int(rpdat.rp_shadowmap)
if o['type'] == 'sun': # Scale bias for ortho light matrix
o['shadows_bias'] *= 25.0
if o['shadowmap_size'] > 1024:
o['shadows_bias'] *= 1 / (o['shadowmap_size'] / 1024) # Less bias for bigger maps
if (objtype == 'POINT' or objtype == 'SPOT') and objref.shadow_soft_size > 0.1:
o['lamp_size'] = objref.shadow_soft_size * 10 # Match to Cycles
gapi = arm.utils.get_gapi()

View file

@ -1,6 +1,7 @@
import bpy
import arm.assets as assets
import arm.utils
import arm.log as log
def build():
assets_path = arm.utils.get_sdk_path() + 'armory/Assets/'
@ -191,10 +192,13 @@ def build():
assets.add_khafile_def('rp_dynres')
if rpdat.arm_soft_shadows == 'On':
assets.add_shader2('dilate_pass', 'dilate_pass')
assets.add_shader2('visibility_pass', 'visibility_pass')
assets.add_shader2('blur_shadow_pass', 'blur_shadow_pass')
assets.add_khafile_def('rp_soft_shadows')
wrd.world_defs += '_SoftShadows'
if rpdat.arm_soft_shadows_penumbra != 1:
wrd.world_defs += '_PenumbraScale'
if rpdat.rp_shadowmap_cascades == '1':
assets.add_shader2('dilate_pass', 'dilate_pass')
assets.add_shader2('visibility_pass', 'visibility_pass')
assets.add_shader2('blur_shadow_pass', 'blur_shadow_pass')
assets.add_khafile_def('rp_soft_shadows')
wrd.world_defs += '_SoftShadows'
if rpdat.arm_soft_shadows_penumbra != 1:
wrd.world_defs += '_PenumbraScale'
else:
log.warn('To enable soft shadows set "Armory Render Path - Cascades" to 1 for now')