Disable fov extracting.

This commit is contained in:
Lubos Lenco 2016-11-05 14:12:36 +01:00
parent 2348aa06f9
commit 16771d48a1
4 changed files with 58 additions and 27 deletions

View file

@ -1966,17 +1966,15 @@ class ArmoryExporter:
o['fov'] = objref.angle
# Viewport Camera - override fov for every camera for now
if bpy.data.worlds['Arm'].arm_play_viewport_camera:
# Extract fov from projection
mat = self.get_viewport_projection_matrix()
if mat != None:
yscale = mat[1][1]
if yscale < 0:
yscale *= -1 # Reverse
fov = math.atan(1.0 / yscale) * 0.9
o['fov'] = fov
else:
o['fov'] = math.pi / 3.0
# if bpy.data.worlds['Arm'].arm_play_viewport_camera and ArmoryExporter.in_viewport:
# # Extract fov from projection
# mat = self.get_viewport_projection_matrix()
# if mat != None:
# yscale = mat[1][1]
# if yscale < 0:
# yscale *= -1 # Reverse
# fov = math.atan(1.0 / yscale) * 0.9
# o['fov'] = fov
if objref.type == 'PERSP':
o['type'] = 'perspective'
@ -2330,6 +2328,8 @@ class ArmoryExporter:
ArmoryExporter.export_physics = False # Indicates whether rigid body is exported
if not hasattr(ArmoryExporter, 'compress_enabled'):
ArmoryExporter.compress_enabled = False
if not hasattr(ArmoryExporter, 'in_viewport'):
ArmoryExporter.in_viewport = False
ArmoryExporter.option_mesh_only = False
ArmoryExporter.option_mesh_per_file = True
ArmoryExporter.option_optimize_mesh = bpy.data.worlds['Arm'].arm_optimize_mesh

View file

@ -61,6 +61,7 @@ def export_data(fp, sdk_path, is_play=False, is_publish=False, in_viewport=False
assets.embedded_data = sorted(list(set(assets.embedded_data)))
physics_found = False
ArmoryExporter.compress_enabled = is_publish
ArmoryExporter.in_viewport = in_viewport
for scene in bpy.data.scenes:
if scene.game_export:
ext = '.zip' if (scene.data_compressed and is_publish) else '.arm'
@ -397,26 +398,42 @@ def on_compiled(mode): # build, play, play_viewport, publish
html5_app_path = 'http://localhost:8040/build/html5'
webbrowser.open(html5_app_path)
def clean_project():
def clean_cache():
os.chdir(armutils.get_fp())
wrd = bpy.data.worlds['Arm']
# Preserve envmaps
if wrd.arm_cache_envmaps:
envmaps_path = 'build/compiled/Assets/envmaps'
if os.path.isdir(envmaps_path):
shutil.move(envmaps_path, '.')
envmaps_path = 'build/compiled/Assets/envmaps'
if os.path.isdir(envmaps_path):
shutil.move(envmaps_path, '.')
# Remove compiled data
if os.path.isdir('build/compiled'):
shutil.rmtree('build/compiled')
# Move envmaps back
if os.path.isdir('envmaps'):
os.makedirs('build/compiled/Assets')
shutil.move('envmaps', 'build/compiled/Assets')
def clean_project():
os.chdir(armutils.get_fp())
wrd = bpy.data.worlds['Arm']
# Preserve envmaps
# if wrd.arm_cache_envmaps:
# envmaps_path = 'build/compiled/Assets/envmaps'
# if os.path.isdir(envmaps_path):
# shutil.move(envmaps_path, '.')
# Remove build and compiled data
if os.path.isdir('build'):
shutil.rmtree('build')
# Move envmaps back
if wrd.arm_cache_envmaps and os.path.isdir('envmaps'):
os.makedirs('build/compiled/Assets')
shutil.move('envmaps', 'build/compiled/Assets')
# if wrd.arm_cache_envmaps and os.path.isdir('envmaps'):
# os.makedirs('build/compiled/Assets')
# shutil.move('envmaps', 'build/compiled/Assets')
# Remove compiled nodes
nodes_path = 'Sources/' + wrd.arm_project_package.replace('.', '/') + '/node/'

View file

@ -52,7 +52,7 @@ def init_properties():
bpy.types.World.arm_object_advanced = BoolProperty(name="Advanced", default=False)
bpy.types.World.arm_material_advanced = BoolProperty(name="Advanced", default=False)
bpy.types.World.arm_cache_shaders = BoolProperty(name="Cache Shaders", description="Do not rebuild existing shaders", default=True, update=assets.invalidate_shader_cache)
bpy.types.World.arm_cache_envmaps = BoolProperty(name="Cache Envmaps", description="Do not remove prefiltered maps when cleaning project", default=True)
#bpy.types.World.arm_cache_envmaps = BoolProperty(name="Cache Envmaps", description="Do not remove prefiltered maps when cleaning project", default=True)
bpy.types.World.arm_play_live_patch = BoolProperty(name="Live Patching", description="Sync running player data to Blender", default=True)
bpy.types.World.arm_play_auto_build = BoolProperty(name="Auto Build", description="Rebuild scene on operator changes", default=True)
bpy.types.World.arm_play_viewport_camera = BoolProperty(name="Viewport Camera", description="Start player at viewport camera position", default=False)

View file

@ -438,12 +438,12 @@ class ArmoryBuildPanel(bpy.types.Panel):
else:
layout.operator("arm.patch")
layout.operator("arm.kode_studio")
layout.operator("arm.clean")
layout.operator("arm.clean_cache")
layout.prop(wrd, 'arm_project_target')
layout.prop(wrd, 'arm_build_advanced')
if wrd.arm_build_advanced:
layout.prop(wrd, 'arm_cache_shaders')
layout.prop(wrd, 'arm_cache_envmaps')
# layout.prop(wrd, 'arm_cache_envmaps')
layout.prop(wrd, 'arm_minimize')
layout.prop(wrd, 'arm_optimize_mesh')
layout.prop(wrd, 'arm_sampled_animation')
@ -483,6 +483,7 @@ class ArmoryProjectPanel(bpy.types.Panel):
layout.prop(wrd, 'arm_spawn_all_layers')
layout.label('Armory v' + wrd.arm_version)
layout.operator('arm.check_updates')
layout.operator("arm.clean_project")
class ArmoryPlayButton(bpy.types.Operator):
'''Launch player in new window'''
@ -598,11 +599,24 @@ class ArmoryKodeStudioButton(bpy.types.Operator):
make_utils.kode_studio()
return{'FINISHED'}
class ArmoryCleanButton(bpy.types.Operator):
'''Delete all cached data'''
bl_idname = 'arm.clean'
class ArmoryCleanCacheButton(bpy.types.Operator):
'''Delete all compiled data'''
bl_idname = 'arm.clean_cache'
bl_label = 'Clean'
def execute(self, context):
if bpy.data.filepath == "":
self.report({"ERROR"}, "Save blend file first")
return {"CANCELLED"}
make.clean_cache()
return{'FINISHED'}
class ArmoryCleanProjectButton(bpy.types.Operator):
'''Delete all cached project data'''
bl_idname = 'arm.clean_project'
bl_label = 'Clean Project'
def execute(self, context):
if bpy.data.filepath == "":
self.report({"ERROR"}, "Save blend file first")