
Lymond Ngaiza
mujuningaiza
About Me
EXPERTISE
Generalist
INDUSTRY
Film/TV
Connect
LOCATION
Mwanza,
Tanzania, United Republic of
WEBSITE
Houdini Skills
BEGINNER
Procedural Modeling | Digital Assets | Solaris | Karma | Pyro FX | Fluids | Destruction FX | VEX
Availability
Not Specified
Recent Forum Posts
Arnold Per light AOV June 19, 2025, 3:44 p.m.
ChrisBohm
I know this is an old post, but since I just figured out how to do it I might as well answer for the next generation:
It's actually quite easy.
When you choose a AOV in the dropdown, for example "RGBA", you just change this to "RGBA_*", which means it creates a RGBA AOV for every light group. Same for example for diffuse: Instead of just "diffuse" you change it io "diffuse_*".
It is important though to create a ligth group for your lights. A light group is kind of an id for one or many lights. you can set the light group of a light in the Contribution Tab> AOV Light Group.
Unfortunately the documentation from solidangle does not describe the method very well...
Cheers
Thanks, this worked.
For those who might not understand, here is some important steps.
1. Name Light group under contribution tab e.g keyLight, Fill_Light etc
2. Add AOV and choose from dropdown list e.g diffuse direct and it will be named diffuse_direct, change name from diffuse_direct to diffuse_direct_*
3. Render and you will see diffuse_direct_keyLight, diffuse_direct_Fill_Light etc
Round off to third decimal places Dec. 14, 2022, 5:05 a.m.
jsmack
Assuming adding a layer of vex to convert from float to string is a pain, the ftrim() expression can be used to pretty print floats as strings.ftrim(detail(-1, "test", 0))
Thanks @jsmack for showing me how to use ftrim expression this is helpful, although I can't trim to how many decimals I want. Although with
sprint("%.3f", 0.7838759687)
I believe adding
sprintf
Round off to third decimal places Dec. 13, 2022, 11:06 a.m.
tamte
as mentioned previously, it's has to do with floating point precision
even if you do: f@target = 0.998;
you will see that the Font SOP will still print something else, like: 0.99800002574920654
it's because it can't represent 0.998 precisely as a floating point number
so you'll need to format your floating point number into a string using sprintf() for example
From Tomas attachment there's some function & argument am not familiar with, so incase someone is struggling as I was
When you use
sprint("%f", floatValue);
This work whether you type hard core floats or you're using chf values.
When you want to trim decimal places like 1 or 2 or 3 decimal place you will have to write like
sprint("%.2f", floatValue);
Hopefully this will be helpful as well.