Disable fov extracting.
This commit is contained in:
parent
2348aa06f9
commit
16771d48a1
|
@ -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
|
||||
|
|
|
@ -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/'
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
|
|
Loading…
Reference in a new issue