Interesting… I was wondering why I was getting an error message about the file being from a newer version of Blender that isn’t even out yet. I’m on 4.0 and anxiously awaiting 4.1 on the 19th.
In your demo animation, the stationary CD has the rainbow rotating too. I think the trick would be to have the camera data tie into the rotation so that rotation is dependent upon the angle relative to camera.
EDIT:
Okay, I loaded the file. I see you did some fancy programming with the world node. I was going to add my HDRI, but I decided to explore the world node and saw where you had your HDRI plugged in and pointed to my HDRI file and got it to work.
And I was mistaken about the ‘stationary’ CD. They are all moving, so I deleted animation from one CD just to see if it is static and indeed the reflections behave correctly.
This looks pretty darned good.
BTW, here’s what I did 14 years ago in Maya. I remember it took me about five minutes to get the reflectivity effect.
Ah, I figured that out about the HDRI without visibility. The simpler way is to go to the Film submenu of the render settings and click “transparent”. But your method offers more flexibility. I can have any color background. Neat trick.
So I’m trying to figure out how this group of nodes works.
I don’t know what’s going on with the separate XYZ and why the outputs are being added back together. Same goes with the Combine XYZ when only the Z input is used. Would it work if that node were bypassed?
The whole setup is WAY above my paygrade. Blender should just come up with a CD shader or more technically, a Diffraction Grating shader to make this easier.
I also deliberately added a few more hard edges with the constant black and white colour ramp because there are hard edges in the reflections I see on real cd’s.
It is up to us to come up with a more correct shader!
Blender gives us tools to use.
My approach is “faking it” the real thing is a result of refraction and dispersion on the reflections of the cd’s micro grooves, or “diffraction”. The transparent coating disperses the colours reflected off the grooves.
There probably is a way to do this more physically but It would take a setup even more complex, there are a few threads here on BA that talk about glass dispersion shaders, but it would not just involve the dispersion, you would have to mimic the micro groves and the glass like “diffractive coating” somehow and work out a way to get it all working in conjunction.
This is really looking quite excellent now. I can’t say there’s anything that catches my eye as not realistic.
The thing that is sad for me is that all this node programming is way over my ability to comprehend.
Frankly, I don’t have the first clue as to the reasons 90% of those nodes exist, how you knew to use them and what values to plug in.
Even if I were to randomly experiment, it would take me centuries to stumble across something like this.
I’m thinking, “maybe I better stick to AI art and using text prompts”… LOL
Oh, just noticed a strange anomaly when I switch to Cycles render:
Well it is experimenting, there are probably nodes in there that are not doing what I wanted (like that view vector). The reason I put it in there was to bend the Anisotropics highlights a bit depending on the tangent of the view angle, which it does but it does not look good at all angles. (maybe I could restrict its effect so it does not bend too far. )
Thank you for explaining the tangent vector node. That indeed fixed the artifact with Cycles. Hopefully I will be able to render this with EEVEE because it’s so much faster.
Sorry for my tardy response. I’ve been in the hospital four days following my second heart attack this month. The hourglass of life is nearly run out for me.
Finally, here’s the completed updated version of the project I originally built in Maya in 2010.
Blender 4.1 used here. Tried to make it as close as possible to the original, but better realism. Also re-did the music portion with modern equipment & samples.