Hello,
Every time I open the Arnold IPR window I start getting warning messages saying "opaque is deprecated". What does this mean and how can I address it? Thanks!
Michael
==============================================================================
Arnold IPR started at Sun Oct 31 11:54:27 2021
==============================================================================
[c4dtoa] 00:00:10 3502MB WARNING | opaque is deprecated: opaque is off for geometry "/Null/Surface/Loft|Loft", but there is no opacity metadata for some of its shaders
[c4dtoa] 00:00:10 3502MB WARNING | opaque is deprecated: opaque is off for geometry "/Null/Surface/Loft_7|Loft", but there is no opacity metadata for some of its shaders
Select the Opaque check box for those Loft objects.
That Opaque check box is no longer used. Instead, "smart opaque" can figure out whether or not an object is opaque by looking at the surface shaders on the object.
But if you put some other type of shader, like say a Color Correct, on an object, and turn off Opaque, you get that warning.
A custom shader would have to provide the opacity metadata, as shown here:
https://docs.arnoldrenderer.com/display/A5ARP/5.3.0.0
Is that what you're doing?
hi there guys,
can you guys point me to the doc example that shows how to provide the opacity metadata?
the documentation changes and the link from Stephen don't work anymore.
thanks!
You can find it in the Arnold 5.3.0.0 release notes.
The relevant bit:
// - \`opacity_term\` tags a parameter that is opaque when equal to 1 or (1,1,1)
// - \`transparency_term\` tags a parameter that is opaque when equal to 0 or (0,0,0)
// The additional integer brackets together terms with the same number.
// This metadata setup from standard_surface:
AiMetaDataSetInt(node, "opacity", "opacity_term", 0);
AiMetaDataSetInt(node, "transmission", "transparency_term", 1);
AiMetaDataSetInt(node, "transmission_color", "transparency_term", 1);
AiMetaDataSetInt(node, "metalness", "opacity_term", 1);
// is equivalent to setting:
// opaque = (opacity == AI_WHITE) && (transmission == 0 || transmission_color == AI_BLACK || metalness == 1);
I am getting this warning for 5 of my instances every time I use IPR regardless if Opaque is checked for the scatter object or not.
Does this warning even mean anything?
@ssjenforcer191191191 wrote:I am getting this warning for 5 of my instances every time I use IPR regardless if Opaque is checked for the scatter object or not.
Does this warning even mean anything?
The instancer always overrides the opaque flag of the instances hence the warning. (You see 5 messages, because that's the limit of warning messages set in the render settings by default.) The warning itself is harmless, you can ignore it. This parameter was deprecated when the smart-opaque feature was introduced. There are some corner cases where the opaque flag can still be useful, but normally it's not used anymore.