2 Commits

Author SHA1 Message Date
Brett Williams
a464910426 Always add render engine to Blender args 2024-08-08 23:20:38 -05:00
Brett Williams
a4ff36ac56 Add render engines to system_info 2024-08-08 23:13:31 -05:00
2 changed files with 14 additions and 5 deletions

View File

@@ -1,5 +1,6 @@
import json import json
import re import re
from concurrent.futures import ThreadPoolExecutor
from src.engines.core.base_engine import * from src.engines.core.base_engine import *
from src.utilities.misc_helper import system_safe_path from src.utilities.misc_helper import system_safe_path
@@ -148,7 +149,13 @@ class Blender(BaseRenderEngine):
return options return options
def system_info(self): def system_info(self):
return {'render_devices': self.get_render_devices()} with ThreadPoolExecutor() as executor:
future_render_devices = executor.submit(self.get_render_devices)
future_engines = executor.submit(self.supported_render_engines)
render_devices = future_render_devices.result()
engines = future_engines.result()
return {'render_devices': render_devices, 'engines': engines}
def get_render_devices(self): def get_render_devices(self):
script_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'scripts', 'get_system_info.py') script_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'scripts', 'get_system_info.py')

View File

@@ -40,11 +40,13 @@ class BlenderRenderWorker(BaseRenderWorker):
if custom_camera: if custom_camera:
python_exp = python_exp + f"bpy.context.scene.camera = bpy.data.objects['{custom_camera}'];" python_exp = python_exp + f"bpy.context.scene.camera = bpy.data.objects['{custom_camera}'];"
# Setup Render Engines
self.args['engine'] = self.args.get('engine', 'CYCLES').upper() # set default render engine
# Configure Cycles
if self.args['engine'] == 'CYCLES':
# Set Render Device (gpu/cpu/any) # Set Render Device (gpu/cpu/any)
blender_engine = self.args.get('engine', 'BLENDER_EEVEE').upper()
if blender_engine == 'CYCLES':
render_device = self.args.get('render_device', 'any').lower() render_device = self.args.get('render_device', 'any').lower()
if render_device not in {'any', 'gpu', 'cpu'}: if render_device not in ['any', 'gpu', 'cpu']:
raise AttributeError(f"Invalid Cycles render device: {render_device}") raise AttributeError(f"Invalid Cycles render device: {render_device}")
use_gpu = render_device in {'any', 'gpu'} use_gpu = render_device in {'any', 'gpu'}