From 1937e4067facfcd8e20f79224d82228296588590 Mon Sep 17 00:00:00 2001 From: Payton Gilbertson Date: Thu, 14 May 2026 11:37:57 -0700 Subject: [PATCH 1/2] Fixing GLSL implementation to stop always setting to 1 `mx_rgbtohsv` and `xm_hsvtorgb` had hardcoded output alpha set to `1.0`. The alpha channel should forward the preexisting alpha value `_in.a` unchanged. --- libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl | 2 +- libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl | 2 +- libraries/stdlib/genosl/mx_hsvtorgb_color4.osl | 2 +- libraries/stdlib/genosl/mx_rgbtohsv_color4.osl | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl b/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl index 6f401bb202..9114951762 100644 --- a/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl +++ b/libraries/stdlib/genglsl/mx_hsvtorgb_color4.glsl @@ -2,5 +2,5 @@ void mx_hsvtorgb_color4(vec4 _in, out vec4 result) { - result = vec4(mx_hsvtorgb(_in.rgb), 1.0); + result = vec4(mx_hsvtorgb(_in.rgb), _in.a); } diff --git a/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl b/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl index e4e6e001b7..a7374bad77 100644 --- a/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl +++ b/libraries/stdlib/genglsl/mx_rgbtohsv_color4.glsl @@ -2,5 +2,5 @@ void mx_rgbtohsv_color4(vec4 _in, out vec4 result) { - result = vec4(mx_rgbtohsv(_in.rgb), 1.0); + result = vec4(mx_rgbtohsv(_in.rgb), _in.a); } diff --git a/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl b/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl index 60e76c011e..ed10b8a3c9 100644 --- a/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl +++ b/libraries/stdlib/genosl/mx_hsvtorgb_color4.osl @@ -1,4 +1,4 @@ void mx_hsvtorgb_color4(color4 _in, output color4 result) { - result = color4(transformc("hsv","rgb", _in.rgb), 1.0); + result = color4(transformc("hsv","rgb", _in.rgb), _in.a); } diff --git a/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl b/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl index 92edec0e73..11a3ecf071 100644 --- a/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl +++ b/libraries/stdlib/genosl/mx_rgbtohsv_color4.osl @@ -1,4 +1,4 @@ void mx_rgbtohsv_color4(color4 _in, output color4 result) { - result = color4(transformc("rgb","hsv", _in.rgb), 1.0); + result = color4(transformc("rgb","hsv", _in.rgb), _in.a); } From b73fe18c9ea5323376c16ce9f4c258732c18bcaa Mon Sep 17 00:00:00 2001 From: Payton Gilbertson Date: Thu, 14 May 2026 16:17:23 -0700 Subject: [PATCH 2/2] Removing uisoftmin and uisoftmax restrictions for web viewer Signed-off-by: Payton Gilbertson --- javascript/MaterialXView/source/viewer.js | 24 ++++++----------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/javascript/MaterialXView/source/viewer.js b/javascript/MaterialXView/source/viewer.js index 89dcddca1e..2dfd56ac3e 100644 --- a/javascript/MaterialXView/source/viewer.js +++ b/javascript/MaterialXView/source/viewer.js @@ -1240,14 +1240,10 @@ export class Material var step = 0; if (nodeDefInput) { - if (nodeDefInput.hasAttribute('uisoftmin')) - minValue = parseFloat(nodeDefInput.getAttribute('uisoftmin')); - else if (nodeDefInput.hasAttribute('uimin')) + if (nodeDefInput.hasAttribute('uimin')) minValue = parseFloat(nodeDefInput.getAttribute('uimin')); - if (nodeDefInput.hasAttribute('uisoftmax')) - maxValue = parseFloat(nodeDefInput.getAttribute('uisoftmax')); - else if (nodeDefInput.hasAttribute('uimax')) + if (nodeDefInput.hasAttribute('uimax')) maxValue = parseFloat(nodeDefInput.getAttribute('uimax')); if (nodeDefInput.hasAttribute('uistep')) @@ -1292,14 +1288,10 @@ export class Material } else { - if (nodeDefInput.hasAttribute('uisoftmin')) - minValue = parseInt(nodeDefInput.getAttribute('uisoftmin')); - else if (nodeDefInput.hasAttribute('uimin')) + if (nodeDefInput.hasAttribute('uimin')) minValue = parseInt(nodeDefInput.getAttribute('uimin')); - if (nodeDefInput.hasAttribute('uisoftmax')) - maxValue = parseInt(nodeDefInput.getAttribute('uisoftmax')); - else if (nodeDefInput.hasAttribute('uimax')) + if (nodeDefInput.hasAttribute('uimax')) maxValue = parseInt(nodeDefInput.getAttribute('uimax')); if (nodeDefInput.hasAttribute('uistep')) @@ -1377,14 +1369,10 @@ export class Material if (nodeDefInput) { - if (nodeDefInput.hasAttribute('uisoftmin')) - minValue = nodeDefInput.getAttribute('uisoftmin').split(',').map(Number); - else if (nodeDefInput.hasAttribute('uimin')) + if (nodeDefInput.hasAttribute('uimin')) minValue = nodeDefInput.getAttribute('uimin').split(',').map(Number); - if (nodeDefInput.hasAttribute('uisoftmax')) - maxValue = nodeDefInput.getAttribute('uisoftmax').split(',').map(Number); - else if (nodeDefInput.hasAttribute('uimax')) + if (nodeDefInput.hasAttribute('uimax')) maxValue = nodeDefInput.getAttribute('uimax').split(',').map(Number); if (nodeDefInput.hasAttribute('uistep'))