Skip to content

Commit

Permalink
Getting CI tests working again
Browse files Browse the repository at this point in the history
  • Loading branch information
rtabbara committed Dec 11, 2023
1 parent bbfe2ce commit ee6ce37
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 19 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,11 @@ jobs:
environment:
- {
os: "ubuntu-latest",
mitsuba-version: "3.3.0"
mitsuba-version: "3.4.1"
}
- {
os: "windows-latest",
mitsuba-version: "3.3.0"
mitsuba-version: "3.4.1"
}
blender:
- {
Expand Down
2 changes: 1 addition & 1 deletion mitsuba-blender/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@

from . import io, engine

DEPS_MITSUBA_VERSION = '3.3.0'
DEPS_MITSUBA_VERSION = '3.4.1'

def get_addon_preferences(context):
return context.preferences.addons[__name__].preferences
Expand Down
5 changes: 3 additions & 2 deletions mitsuba-blender/engine/properties.py
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ def draw(self, layout):

def to_dict(self):
'''
Function that converts the plugin into a dict that can be loaded or savec by mitsuba's API
Function that converts the plugin into a dict that can be loaded or saved by mitsuba's API
'''
plugin_params = {'type' : name}
if 'parameters' in self.args:
Expand All @@ -249,7 +249,8 @@ def to_dict(self):
list_type = param['values_type']
if list_type == 'integrator':
for integrator in self.integrators.collection:
plugin_params[integrator.name] = getattr(integrator.available_integrators, integrator.active_integrator).to_dict()
# Make sure we don't have any leading underscores for names - Mitsuba will otherwise complain!
plugin_params[integrator.name.lstrip('_')] = getattr(integrator.available_integrators, integrator.active_integrator).to_dict()
elif list_type == 'string':
selected_items = []
for choice in param['choices']:
Expand Down
2 changes: 1 addition & 1 deletion mitsuba-blender/io/exporter/export_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ def data_add(self, mts_dict, name=''):
del mts_dict['id']

except KeyError:
name = '__elm__%i' % self.counter
name = 'elm__%i' % self.counter

self.scene_data.update([(name, mts_dict)])
self.counter += 1
Expand Down
9 changes: 2 additions & 7 deletions mitsuba-blender/io/exporter/materials.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@ def convert_float_texture_node(export_ctx, socket):
raise NotImplementedError( "Node type %s is not supported. Only texture nodes are supported for float inputs" % node.type)

else:
if socket.name == 'Roughness':#roughness values in blender are remapped with a square root
#roughness values in blender are remapped with a square root
if 'Roughness' in socket.name:
params = pow(socket.default_value, 2)
else:
params = socket.default_value
Expand Down Expand Up @@ -272,12 +273,6 @@ def convert_principled_materials_cycles(export_ctx, current_node):
clearcoat = convert_float_texture_node(export_ctx, current_node.inputs['Clearcoat'])
clearcoat_roughness = convert_float_texture_node(export_ctx, current_node.inputs['Clearcoat Roughness'])

# Undo default roughness transform done by the exporter
if type(roughness) is float:
roughness = np.sqrt(roughness)
if type(clearcoat_roughness) is float:
clearcoat_roughness = np.sqrt(clearcoat_roughness)

params.update({
'type': 'principled',
'base_color': base_color,
Expand Down
2 changes: 1 addition & 1 deletion mitsuba-blender/io/importer/mi_spectra_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ def convert_mi_srgb_reflectance_spectrum(mi_obj, default):
#######################

def convert_mi_srgb_emitter_spectrum(mi_obj, default):
assert mi_obj.class_().name() == 'SRGBEmitterSpectrum'
assert mi_obj.class_().name() == 'SRGBReflectanceSpectrum'
obj_props = _get_mi_obj_properties(mi_obj)
radiance = list(obj_props.get('value', default))
return get_color_strength_from_radiance(radiance)
11 changes: 8 additions & 3 deletions mitsuba-blender/io/importer/renderer.py
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ def apply_mi_independent_properties(mi_context, mi_props):
bl_independent_props.sample_count = mi_props.get('sample_count', 4)
bl_independent_props.seed = mi_props.get('seed', 0)
# Cycles properties
bl_renderer.sampling_pattern = 'SOBOL'
bl_renderer.sampling_pattern = 'SOBOL' if bpy.app.version < (3, 5, 0) else 'SOBOL_BURLEY'
bl_renderer.samples = mi_props.get('sample_count', 4)
bl_renderer.preview_samples = mi_props.get('sample_count', 4)
bl_renderer.seed = mi_props.get('seed', 0)
Expand All @@ -210,7 +210,7 @@ def apply_mi_stratified_properties(mi_context, mi_props):
bl_stratified_props.jitter = mi_props.get('jitter', True)
# Cycles properties
# NOTE: There isn't any equivalent sampler in Blender. We use the default Sobol pattern.
bl_renderer.sampling_pattern = 'SOBOL'
bl_renderer.sampling_pattern = 'SOBOL' if bpy.app.version < (3, 5, 0) else 'SOBOL_BURLEY'
bl_renderer.samples = mi_props.get('sample_count', 4)
bl_renderer.seed = mi_props.get('seed', 0)
return True
Expand All @@ -228,7 +228,12 @@ def apply_mi_multijitter_properties(mi_context, mi_props):
bl_multijitter_props.seed = mi_props.get('seed', 0)
bl_multijitter_props.jitter = mi_props.get('jitter', True)
# Cycles properties
bl_renderer.sampling_pattern = 'CORRELATED_MUTI_JITTER' if bpy.app.version < (3, 0, 0) else 'PROGRESSIVE_MULTI_JITTER'
if bpy.app.version < (3, 0, 0):
bl_renderer.sampling_pattern = 'CORRELATED_MUTI_JITTER'
elif bpy.app.version < (3, 5, 0):
bl_renderer.sampling_pattern = 'PROGRESSIVE_MULTI_JITTER'
else:
bl_renderer.sampling_pattern = 'TABULATED_SOBOL'
bl_renderer.samples = mi_props.get('sample_count', 4)
bl_renderer.seed = mi_props.get('seed', 0)
return True
Expand Down
6 changes: 4 additions & 2 deletions tests/fixtures/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,10 @@ def _bitmap_extract(self, bmp, require_variance=True):
b_root = b_root.convert(Bitmap.PixelFormat.XYZ, Struct.Type.Float32, False)
return np.array(b_root, copy=True), None
else:
img = np.array(split[1][1], copy=False)
img_m2 = np.array(split[2][1], copy=False)
# Check which split contains moments - it may not be the first one after root
m2_index = 1 if split[1][0].startswith('m2_') else 2
img = np.array(split[m2_index][1], copy=False)
img_m2 = np.array(split[m2_index][1], copy=False)
return img, img_m2 - img * img

def render_scene(self, scene_file, **kwargs):
Expand Down

0 comments on commit ee6ce37

Please sign in to comment.