I see a number of references in the Java3d documentation that "Java 3D assumes that a linear (gamma-corrected) visual is used for all colors." I assume that this means that Java3d assumes that images loaded (i.e. textureloader) contain linear RGB and not sRGB. If that is the case, what I am not clear about is once all the texturing and/or blending occurs, does Java3d convert the linear RGB to sRGB prior to rendering it on a monitor. Most monitors assume sRGB imput data not linear RGB. If Java3d is displaying linear RGB to a monitor that assumes it is sRGB, the colors will be off.
Is my understanding above correct and if so, is there a way to gamma encode the linear RGB before Java3D renders it?
Thanks for the quick response. Unfortunately none of the supported formats for texture loader is sRGB. Obviously I can convert the sRGB image to linear RGB before using the texture loader with format RGBA. If I do that, I am confident that the blending will occur in linear space, which is what I need to happen My real question is that happens on the output rendering side. Does the linear RGB just get sent to the monitor? And if so, is there a way to intercept it to convert it back to sRGB before the monitor gets in when Java3d is rendering the image.