Hi All,
I am trying to see a light beam that is being reflected in a volumetric atmosphere. Basically like a mirror ball effect.
I tried to get it working in C4DtoA but had no success. I can see the beam hitting the mirror surface (between light source and mirror) in the atmosphere but the bounced light is not visible in the atmosphere.
Is this possible?
Any ideas much appreciated.
Not possible, afaik. I've tried a few times and asked around too.
You can make it work in certain cases.
What you need to do is to calculate the beam direction, hit point and derive a dynamic adapting bouncer, so whenever you move your light a new bouncer is calculated and send to framebuffer.
That will also work for like a really thin lazor beam.
Distance to point, take a measure of hit normal, correct 1st bouncer, set 1st bouncer to cast single ray which shoots in some other direction, distance to point, rinse and repeat.
Thanks for taking the time to reply Mads.
I must admit that I don't have a clue what you mean though. I am new to Arnold and just testing it to see if it is the way forward. How do I go about achieving what you said?
Thanks
You need to fabricate, through a particle engine a pseudo raytrace mechanism that can auto spawn new lights along the ray distance, scale and orient them so you cast the area affected into a new direction where the spread and start intensity and possible over-distance falloff features are respected. So its not exactly trivial, and it wont work in all cases. But your shiny sphere and stuff of that nature with just 1-3 "bounce" should be doable. Bouncing things around based on initial angle.
This is a - relay system - You relay hits.
You can visualize the R&D process by making the particle engine fabricate a spline with 2 vertices, 1 connected to the initial light source and the other end keeps hit testing on mesh in the scene that passes by the spline, and you dynamically move the second vertex to the closests hitpoint. From this hitpoint you add a new point on the spline or make a new spline that starts at vertex 2 and hit tests seen from the bounce angle. So you need to incorporate an angle calculation based on the surface normal hit and the vector direction.
For area you can sum area of world normal not some single point hit, you need to add in, I guess a cone tracing mechanism. done from hitisurface side in a naive way.
Cone tracing sends out a single ray and blurs it over distance.
You should also be able to dynamically terminate new bounces if some float value that determins wether a scattering is too diffuse and uniform that no new particle with a light attached is needed.
Thanks Mads. Nice to see something is potentially possible. Did you do that in 3DS Max or do you have a C4D file you can share so I can see how it is achieved? The explanation makes sense from a technical perspective but me achieving it in C4D is another thing entirely 🙂
I dont normally operate with the interface you use, so cant assist directly unfortunatly.
Can't find what you're looking for? Ask the community or share your knowledge.