Detect voxel support
This commit is contained in:
parent
8a0c0e40cf
commit
f056c35903
|
@ -280,9 +280,7 @@ def build_project(is_play=False, is_publish=False, is_render=False, is_render_an
|
|||
state.is_render = is_render
|
||||
state.is_render_anim = is_render_anim
|
||||
state.is_publish = is_publish
|
||||
|
||||
# Clear flag
|
||||
state.in_viewport = False
|
||||
state.in_viewport = in_viewport
|
||||
|
||||
# Save blend
|
||||
if arm.utils.get_save_on_build() and not state.krom_running:
|
||||
|
@ -426,7 +424,6 @@ def play_project(in_viewport, is_render=False, is_render_anim=False):
|
|||
|
||||
# Build data
|
||||
build_project(is_play=True, is_render=is_render, is_render_anim=is_render_anim, in_viewport=in_viewport)
|
||||
state.in_viewport = in_viewport
|
||||
|
||||
khajs_path = get_khajs_path(in_viewport, state.target)
|
||||
if not wrd.arm_cache_compiler or \
|
||||
|
|
|
@ -2,6 +2,7 @@ import bpy
|
|||
import arm.assets as assets
|
||||
import arm.utils
|
||||
import arm.log as log
|
||||
import arm.make_state as state
|
||||
|
||||
def build():
|
||||
assets_path = arm.utils.get_sdk_path() + 'armory/Assets/'
|
||||
|
@ -107,17 +108,24 @@ def build():
|
|||
assets.add(assets_path + 'vr.png')
|
||||
assets.add_embedded_data('vr.png')
|
||||
|
||||
assets.add_khafile_def('rp_gi={0}'.format(rpdat.rp_gi))
|
||||
rp_gi = rpdat.rp_gi
|
||||
has_voxels = state.in_viewport == False or bpy.app.version >= (2, 80, 1)
|
||||
if not has_voxels:
|
||||
rp_gi = 'Off'
|
||||
assets.add_khafile_def('rp_gi={0}'.format(rp_gi))
|
||||
if rpdat.rp_gi != 'Off':
|
||||
assets.add_khafile_def('rp_gi={0}'.format(rpdat.rp_gi))
|
||||
assets.add_khafile_def('rp_voxelgi_resolution={0}'.format(rpdat.rp_voxelgi_resolution))
|
||||
assets.add_khafile_def('rp_voxelgi_resolution_z={0}'.format(rpdat.rp_voxelgi_resolution_z))
|
||||
if rpdat.rp_voxelgi_hdr:
|
||||
assets.add_khafile_def('rp_voxelgi_hdr')
|
||||
if rpdat.arm_voxelgi_shadows:
|
||||
assets.add_khafile_def('rp_voxelgi_shadows')
|
||||
if rpdat.arm_voxelgi_refraction:
|
||||
assets.add_khafile_def('rp_voxelgi_refraction')
|
||||
if has_voxels:
|
||||
assets.add_khafile_def('rp_gi={0}'.format(rpdat.rp_gi))
|
||||
assets.add_khafile_def('rp_voxelgi_resolution={0}'.format(rpdat.rp_voxelgi_resolution))
|
||||
assets.add_khafile_def('rp_voxelgi_resolution_z={0}'.format(rpdat.rp_voxelgi_resolution_z))
|
||||
if rpdat.rp_voxelgi_hdr:
|
||||
assets.add_khafile_def('rp_voxelgi_hdr')
|
||||
if rpdat.arm_voxelgi_shadows:
|
||||
assets.add_khafile_def('rp_voxelgi_shadows')
|
||||
if rpdat.arm_voxelgi_refraction:
|
||||
assets.add_khafile_def('rp_voxelgi_refraction')
|
||||
else:
|
||||
log.warn('Disabling Voxel GI - Blender 2.8 is required for voxels in viewport')
|
||||
|
||||
if rpdat.arm_rp_resolution != 'Display':
|
||||
assets.add_khafile_def('rp_resolution={0}'.format(rpdat.arm_rp_resolution))
|
||||
|
@ -201,4 +209,4 @@ def build():
|
|||
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')
|
||||
log.warn('Disabling soft shadows - "Armory Render Path - Cascades" requires to be set to 1 for now')
|
||||
|
|
|
@ -8,6 +8,7 @@ import arm.assets as assets
|
|||
import arm.utils
|
||||
import arm.node_utils as node_utils
|
||||
import arm.log as log
|
||||
import arm.make_state as state
|
||||
|
||||
def build(active_worlds):
|
||||
fp = arm.utils.get_fp()
|
||||
|
@ -118,10 +119,12 @@ def build_node_tree(world):
|
|||
wrd.world_defs += '_NoShadows'
|
||||
assets.add_khafile_def('arm_no_shadows')
|
||||
# GI
|
||||
if rpdat.rp_gi == 'Voxel GI':
|
||||
voxelgi = True
|
||||
elif rpdat.rp_gi == 'Voxel AO':
|
||||
voxelao = True
|
||||
has_voxels = state.in_viewport == False or bpy.app.version >= (2, 80, 1)
|
||||
if has_voxels:
|
||||
if rpdat.rp_gi == 'Voxel GI':
|
||||
voxelgi = True
|
||||
elif rpdat.rp_gi == 'Voxel AO':
|
||||
voxelao = True
|
||||
# SS
|
||||
# if rpdat.rp_dfrs:
|
||||
# wrd.world_defs += '_DFRS'
|
||||
|
|
|
@ -24,7 +24,8 @@ def get_rpasses(material):
|
|||
ar = []
|
||||
|
||||
rpdat = arm.utils.get_rp()
|
||||
vgirefract = rpdat.rp_gi == 'Voxel GI' and rpdat.arm_voxelgi_refraction
|
||||
has_voxels = make_state.in_viewport == False or bpy.app.version >= (2, 80, 1)
|
||||
vgirefract = rpdat.rp_gi == 'Voxel GI' and rpdat.arm_voxelgi_refraction and has_voxels
|
||||
|
||||
if material.arm_decal:
|
||||
ar.append('decal')
|
||||
|
@ -36,7 +37,7 @@ def get_rpasses(material):
|
|||
ar.append('mesh')
|
||||
for con in add_mesh_contexts:
|
||||
ar.append(con)
|
||||
if rpdat.rp_gi == 'Voxel GI' or rpdat.rp_gi == 'Voxel AO':
|
||||
if (rpdat.rp_gi == 'Voxel GI' or rpdat.rp_gi == 'Voxel AO') and has_voxels:
|
||||
ar.append('voxel')
|
||||
if rpdat.rp_renderer == 'Deferred Plus':
|
||||
ar.append('rect')
|
||||
|
|
Loading…
Reference in a new issue