CD Surface material.

Hey guys i’ve been told that there’s a CD surface material tutorial here in this forum but i haven’t been able to find it. I am (like duh) trying to make a CD material and would like to get that nice radial reflectivity thingamajinggit. If you know wheere to go for that tutorial or can help me out, please do tell. I’m a super noob here, just started Blender for like a month or so.

Cheers

1 Like

I don’t know about the forums (probably get a lot of results with “CD” and “texture” in them), but there was something in the release notes a while back: http://www.blender3d.org/cms/Radial_Blend_Type.677.0.html

Let me know if you need a bit of help and I’ll see what I can do. I’ve never done it myself, you understand, but colourbands can be a little odd if you haven’t used them before and I do have some experience with them.

I hope that helps.

Thanks but i’m actually trying to achieve that rainbow specularity thingamajinggit. I’ve now figured out the radial colourband thing but it’s not animated when the CD moves from the camera. Get me?

Neways if you’ve got a way around it, do share. thanks.

You could rotate the cd and keyframe it to emulate that effect.

Hm i’ve started a CD shader (based on the actual physical effect) for Lightwave a while back…never really worked 100% correctly, the best i could get was this:
http://lynx.aspect-design.de/stuff/cd04.jpg

Though on different angles it didn’t really look that great most of the time g
If someone wants to try porting the code to blender, i can publish it…
i also saved the paper i used somewhere…

Hhmm i thought of that, only thing is the CD is labeled so parts of it has that rainbow reflectivity while other parts aren’t. So it’d be obivous to the camera if i rotated it in animation. Another idea i got was to create 2 different objects/materials, one rotated one static.

Also a friend of mine told me to do it requires some coding to make blender calculate how the light breaks into different colours and forms the rainbow effect. since i’m stlil a noob i wont be touching that.

Neways a friend of mine offered to help me out. So no worries :stuck_out_tongue:

Hey guys got a way to simulate that cd surface material that i talked about before, my friend taught me how to do it so i figured i should share it in here.

Basically the material is made up out of 5 textures, 1 being the cd label while the other 4 is that rainbow effect that you see on CD surfaces when you turn it around at different angles. Each texture is made being using a colour band of a simple rainbow, set at Blend>Radial. The colours are not important as you can be as creative as you want. Then 2 empties are made in the centre of the CD which is parented to the CD itself. The textures are Mapped to the empties, so that when the empties are rotated, the textures follow while the CD remains the same. I made 2 of the textures follow 1 empty each. Finally one of the empty is track-to constrained to another empty somewhere in the scene, whereas the other one is track-to constrained to the camera. Therefore if you animate the cd moving from left to right of the camera, the cd label texture remains static, while the rainbow textures follow whichever empty that they’re targetted to.


The CD mesh with 2 empties in the middle to map the textures.


1 Empty is targetting the camera while the other another empty somewhere eles in the scene.


The Material setup. pretty simple really.





The rainbow colour textures. s’ a lil messy but you get the concept.

But that’s as far as i go, i wont go into detail on specularity and stuff like that. Just sharing the little trick on simulating the rainbow refractions. Cheers

Screenshots in different angles:


I was able to do this in Maya 20 years ago, but I have not been able to replicate the effect in Blender either.

The best I can do is a linear rainbow across the disc surface. But it should be radial and should change with the incidence angle of light.

Try the Anisotropic shader
Try adding anisotropy to the glossy shaders

1 Like

Anisotropy is not working in Blender 4.0.

It does work. Changing the rotation of the anisotropic does change the reflections.

Here is my try, I used a radial array to map the colour mix. I mixed all this with another simple mirror texture so that it will mirror when you look flat on it.

I have no idea of the real math to get the CD’s changing colours with angles etc This one does change at angles but is far from the real thing. maybe someone really clever has an idea.

Edit;
Version 2.0 has more movement :smiley:
I also stuck a cube in there to have something to reflect.

cd.blend (135.3 KB)

4 Likes

Wow! This is a FAR improvement over my feeble attempts. In a pinch, it could suffice as good enough. And it’s probably as good as I did in Maya 20 years ago for an animation project involving a DVD disc flying into a DVD player drawer.

I will probably spend a few days just studying how your shader network achieves this effect. Thank you very much for pointing me in the right direction!

1 Like

Well it is not perfect, I wanted the mapping rotation to spin the colours, but it sort of twists them a bit with the layer weight, I will have another go on sunday.

With a real cd the colours get really sharp at slight angles and disperse the more face on, I am not sure if that can be pulled off.

It is mesmorising to turn a real cd around under a light!

2 Likes

This will work for stills, but animation looks a bit off because the radial rainbows are stationary to the disc. I experimented with a physical CD and found that the angle of the rainbows remains constant if I move my vantage point while the CD is stationary. However, if I tilt the CD, the rainbows rotate. That’s what I am now trying to solve.
I was hoping Camera Data plugged into the Isotropic Rotation input would do it, but nope. :frowning:

2 Likes

I have got the rainbows rotating when you rotate the cd by adding a Geometry node modifier that outputs the objects rotation. I added up x,y and z values of that and use the result to drive the rotation of the colour ramp.

I also set colour management to standard to get get more saturated rainbows.

cd2.blend (160.3 KB)

Edit;
I had to set all the materials and GNodes to single user for it to work on the 4 cd’s independently. (maybe I could have got away with just making the material single user I did not try.) Have updated the file.

1 Like

Thanks for that. I’m doing a test animation, but I’m not seeing the radial rotation of the rainbow reflection as I do with a real CD when I hold it and tilt it in my hands. The reflection seems static in both versions.

1 Like

The last version should rotate the radial array when you rotate the cd (you have to give the CD the GN node to get the cd’s rotation. I will try a video to see what happens.

1 Like

I see the rotation input is connected to the GN node. But the reflection is still static.

The only change I made was to change the world color to a HDRI image and set transparent:

1 Like

Will take a while (I am rendering with cycles, Eevee looks too dul)

1 Like

Ok done;

You can get it to spin faster with the value node marked “rotation speed”

Here is the file with the animation.

cd3.blend (167.8 KB)

I know it is still not the “real deal”!

EDIT;
I have just realized that this file works in Blender 4.2 but not in 4.0. I made the video with 4.2

In 4.0 the rotation does not work (I think it has to do with the new rotation inputs)

in 4.0 the rotation string is red (bad news!)

4,2 All ok (string pink)

This is probably why it did not work for you.

EDIT (again LOL)

zeroskilz gave me the solution, in 4.0 you need an extra Euler to rotation node

I have updated the file in this post. (cd3)

3 Likes