[Bf-extensions-cvs] [fbc03fdd] master: Cycles: update addons for squared roughness convention.

Brecht Van Lommel noreply at git.blender.org
Sat Mar 10 20:32:18 CET 2018


Commit: fbc03fdd10836f79c509e5d8c19514bc5f983253
Author: Brecht Van Lommel
Date:   Sat Mar 10 20:25:27 2018 +0100
Branches: master
https://developer.blender.org/rBAfbc03fdd10836f79c509e5d8c19514bc5f983253

Cycles: update addons for squared roughness convention.

===================================================================

M	materials_utils/material_converter.py
M	materials_utils/materials_cycles_converter.py
M	modules/cycles_shader_compat.py

===================================================================

diff --git a/materials_utils/material_converter.py b/materials_utils/material_converter.py
index c682e612..bf52bec1 100644
--- a/materials_utils/material_converter.py
+++ b/materials_utils/material_converter.py
@@ -1,6 +1,7 @@
 # -*- coding: utf-8 -*-
 
 import bpy
+import math
 from mathutils import Vector
 from bpy.types import Operator
 from .warning_messages_utils import (
@@ -665,7 +666,7 @@ def makeCyclesFromBI(cmat):
 
     # Make Diffuse and Output nodes
     mainShader = makeMainShader(TreeNodes)
-    mainShader.inputs['Roughness'].default_value = cmat.specular_intensity
+    mainShader.inputs['Roughness'].default_value = math.sqrt(max(cmat.specular_intensity, 0.0))
     mainDiffuse = mainShader
     materialOutput = makeMaterialOutput(TreeNodes)
     links.new(mainShader.outputs['BSDF'], materialOutput.inputs['Surface'])
diff --git a/materials_utils/materials_cycles_converter.py b/materials_utils/materials_cycles_converter.py
index ddd4eb6e..13e1e1ec 100644
--- a/materials_utils/materials_cycles_converter.py
+++ b/materials_utils/materials_cycles_converter.py
@@ -6,7 +6,7 @@ import bpy
 from os import path as os_path
 from bpy.types import Operator
 from math import (
-    log2, ceil,
+    log2, ceil, sqrt,
 )
 from bpy.props import (
     BoolProperty,
@@ -381,7 +381,7 @@ def AutoNode(active=False, operator=None):
             else:
                 # Create Clay Material (Diffuse, Glossy, Layer Weight)
                 shader.inputs['Color'].default_value = PAINT_SC_COLOR
-                shader.inputs['Roughness'].default_value = 0.9
+                shader.inputs['Roughness'].default_value = 0.9486
 
                 # remove Color Ramp and links from the default shader and reroute
                 try:
@@ -415,10 +415,10 @@ def AutoNode(active=False, operator=None):
                     shader.inputs['Roughness'].default_value = cmat.specular_intensity
 
                 if shader.type == 'ShaderNodeBsdfGlossy':
-                    shader.inputs['Roughness'].default_value = 1 - cmat.raytrace_mirror.gloss_factor
+                    shader.inputs['Roughness'].default_value = sqrt(max(1 - cmat.raytrace_mirror.gloss_factor, 0.0))
 
                 if shader.type == 'ShaderNodeBsdfGlass':
-                    shader.inputs['Roughness'].default_value = 1 - cmat.raytrace_mirror.gloss_factor
+                    shader.inputs['Roughness'].default_value = sqrt(max(1 - cmat.raytrace_mirror.gloss_factor, 0.0))
                     shader.inputs['IOR'].default_value = cmat.raytrace_transparency.ior
 
                 if shader.type == 'ShaderNodeEmission':
diff --git a/modules/cycles_shader_compat.py b/modules/cycles_shader_compat.py
index 8a967f46..c85ba667 100644
--- a/modules/cycles_shader_compat.py
+++ b/modules/cycles_shader_compat.py
@@ -19,6 +19,7 @@
 # <pep8 compliant>
 
 import bpy
+import math
 
 __all__ = (
     "CyclesShaderWrapper",
@@ -392,7 +393,7 @@ class CyclesShaderWrapper():
 
     def hardness_value_set(self, value):
         node = self.node_mix_color_hard
-        node.inputs["Color1"].default_value = (value,) * 4
+        node.inputs["Color1"].default_value = (math.sqrt(max(value, 0.0)),) * 4
 
     def hardness_image_set(self, image):
         node = self.node_mix_color_hard



More information about the Bf-extensions-cvs mailing list