OCIO's GPU processor will automatically switch the texture resource type from a 2D texture to a 1D texture with sufficiently small 1D LUTs (i.e. going from 4096x2 to 2048x1). (As illustrated by the issue @remia discovered with our integration.) The OpenGL sample does implement this, but I'd unfortunately missed this behavior entirely.
Fixing this remains problematic however. Unreal does not support 1D textures, and for reference neither does Unity nor OpenGL ES / WebGL. (I believe any sampling performance difference is non-existent, making them superfluous?)
As such, having an option to disable their use and always default to 2d textures would be essential. As Remi suggested, something like a setAllowTexture1D exposed on the GpuShaderCreator or the GpuShaderDesc class would work.
(Happy to work on a PR if this feature request gets approved.)
Hi,
OCIO's GPU processor will automatically switch the texture resource type from a 2D texture to a 1D texture with sufficiently small 1D LUTs (i.e. going from 4096x2 to 2048x1). (As illustrated by the issue @remia discovered with our integration.) The OpenGL sample does implement this, but I'd unfortunately missed this behavior entirely.
Fixing this remains problematic however. Unreal does not support 1D textures, and for reference neither does Unity nor OpenGL ES / WebGL. (I believe any sampling performance difference is non-existent, making them superfluous?)
As such, having an option to disable their use and always default to 2d textures would be essential. As Remi suggested, something like a
setAllowTexture1D
exposed on theGpuShaderCreator
or theGpuShaderDesc
class would work.(Happy to work on a PR if this feature request gets approved.)