litote
Dec. 17, 2025 03:45:04
If using Karma, I believe Houdini 20 converts sRGB texture (albedo/diffuse map) internally and automatically to work correctly with ACES color space.
Presumably maps such as normal, displacement and roughness, should not be converted to ACES. To stop them being converted, should they be kept as .exr files so Houdini knows not to alter them?
Heileif
Dec. 17, 2025 07:14:35
Depends on your OCIO config rules. But if you set image type in your shader to anything except color, like vector or float no conversion should happen.
litote
Dec. 18, 2025 08:51:01
My OCIO config rules are set at their defaults. So how does Houdini recognise these different types of files (normal, displacement)? Presumably the normal is a vector type and displacement is a float? Is it by their file extension (e.g. .exr)?
guilhermecasagrandi
Dec. 18, 2025 12:33:57
I believe Houdini still looks for some hints in the filename, like "Raw", "ACEScg", so on and so forth. But take a further look at the docs for that, please.
Here I've developed a pipeline with pdg to always pre-convert everything to the aces colorspace. Normal and similar types of passes are converted to ACES, but numerically they stay the same, but they are in the ACES colorspace, that's why Houdini needs to know the incoming space to decide how to do the conversion.
litote
Dec. 18, 2025 23:36:16
Hi guilhermecasagrandi,
What is pdg? How do you convert them?
guilhermecasagrandi
Dec. 19, 2025 04:09:02
pdg = tops. There's a node that uses the OIIO tool from the Academy. That's the fastest way, but you could either run a copnet to do the same thing.
Nevertheless, you will need to sort the files to set the incoming space for conversion. Here I'm using regex to scan the file names for hints. Things like "normal", "Normal", "N" are treated like raw. The same for "Displacement", "disp", "height" (I coded to use height = displacement). That's the idea.