diff --git a/src/Core/Materials/OOShaderMaterial.m b/src/Core/Materials/OOShaderMaterial.m index 457f8e7f..9dba2a25 100644 --- a/src/Core/Materials/OOShaderMaterial.m +++ b/src/Core/Materials/OOShaderMaterial.m @@ -260,13 +260,19 @@ static NSString *MacrosToString(NSDictionary *macros); if (OK) { // write gloss and index of refraction to the uniforms dictionary - - float gloss = OOClamp_0_1_f([configuration oo_floatForKey:@"gloss" defaultValue:0.5f]); - [self setUniform:@"uGloss" floatValue:gloss]; - float ior = [configuration oo_floatForKey:@"ior" defaultValue:1.0f]; - if (ior <= 0.0f) ior = 0.001f; - [self setUniform:@"uIOR" floatValue:ior]; + if (![uniforms objectForKey:@"uGloss"]) + { + float gloss = OOClamp_0_1_f([configuration oo_floatForKey:@"gloss" defaultValue:0.5f]); + [self setUniform:@"uGloss" floatValue:gloss]; + } + + if (![uniforms objectForKey:@"uIOR"]) + { + float ior = [configuration oo_floatForKey:@"ior" defaultValue:1.0f]; + if (ior <= 0.0f) ior = 0.001f; + [self setUniform:@"uIOR" floatValue:ior]; + } } if (!OK)