Skip to content

Commit ddb5ebc

Browse files
committed
Fixed gl color scale issue.
A wrong oglBias would cause a shift in color/opacity for high frequency lookup tables. oglScale needs to be computed over the range of the type (MAX + 1).
1 parent 813462c commit ddb5ebc

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

Rendering/VolumeOpenGL2/vtkOpenGLGPUVolumeRayCastMapper.cxx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -729,12 +729,12 @@ bool vtkOpenGLGPUVolumeRayCastMapper::vtkInternal::LoadVolume(
729729
}
730730
break;
731731
case VTK_UNSIGNED_CHAR:
732-
oglScale = 1.0/VTK_UNSIGNED_CHAR_MAX;
732+
oglScale = 1.0 / (VTK_UNSIGNED_CHAR_MAX + 1);
733733
oglBias = 0.0;
734734
break;
735735
case VTK_SIGNED_CHAR:
736-
oglScale = 2.0/(VTK_SIGNED_CHAR_MAX - VTK_SIGNED_CHAR_MIN);
737-
oglBias = -1.0 - VTK_SIGNED_CHAR_MIN*oglScale;
736+
oglScale = 2.0 / (VTK_UNSIGNED_CHAR_MAX + 1);
737+
oglBias = -1.0 - VTK_SIGNED_CHAR_MIN * oglScale;
738738
break;
739739
case VTK_CHAR:
740740
// not supported
@@ -787,15 +787,15 @@ bool vtkOpenGLGPUVolumeRayCastMapper::vtkInternal::LoadVolume(
787787
}
788788
break;
789789
case VTK_SHORT:
790-
oglScale = 2.0/(VTK_SHORT_MAX - VTK_SHORT_MIN);
791-
oglBias = -1.0 - VTK_SHORT_MIN*oglScale;
790+
oglScale = 2.0 / (VTK_UNSIGNED_SHORT_MAX + 1);
791+
oglBias = -1.0 - VTK_SHORT_MIN * oglScale;
792792
break;
793793
case VTK_STRING:
794794
// not supported
795795
assert("check: impossible case" && 0);
796796
break;
797797
case VTK_UNSIGNED_SHORT:
798-
oglScale = 1.0/VTK_UNSIGNED_SHORT_MAX;
798+
oglScale = 1.0 / (VTK_UNSIGNED_SHORT_MAX + 1);
799799
oglBias = 0.0;
800800
break;
801801
default:

0 commit comments

Comments
 (0)