First up on the chopping block is satin.
Satin is almost metallic in appearance but not in a way that reflects the environment in detail, it reflects blurred light sources instead and it's seemingly view dependent. I want red satin, so my first task is to make a highly reflective red shader that reflects highlights only.
I get my mia_material, give it a dark red diffuse color. Crank up the reflectivity, but I'll also have to crank up the BRDF values because these cap off the minimum and maximum reflectivity, slide the values up so the material will be highly reflective no matter what the viewing angle. Also, under the reflectivity section, check on “Highlights only” because I don't want the entire environment to be reflected only the bright areas.
Now, for this to look like a red metallic surface, there needs to be red in its reflection color, but because of the nature of satin, the brightness of that color needs to change across the surface depending how its facing the viewer. So now we need two more nodes. A ramp texture to provide those colors and the samplerInfo node to control the conditions under which the colors change.
Shift+MMB drag the samplerInfo node onto the ramp, and in the Connection Editor connect the facingRatio of the samplerInfo into the U and V coord of the ramp
That's done, then I MMB dragged and dropped the ramp onto the reflection color of the mia_material. Now this surface has a reflection color of blue for the points facing the camera, and as it bends away from the camera the reflection color fades to green and finally red.
Now to tweak that ramp. The more black a color has in it, the less reflective it'll make the surface appear.
Unlike the two darker reds in the ramp, the brightest red isn't at full saturation, I find that overkills the highlights, though full saturation might look gravy-cakes to someone else. With its new red ramp, it now looks like this
Almost done, at this point, the highlights are too sharp, to give them the smooth satin look, I'm going to blur the reflections to about 0.4 and …done!
Actually you can take it a step further and do this to the color channel as well, this image is from another test. Personally, I think it looks better without the ramp in the diffuse.
Note: I am using a linear workflow here and for the sake of avoiding clutter and confusion of gamma nodes, I used a default mia_material_x.
The same method can be used to simulate a velvet shader and various other effects, like toon shading, electron microscope images etc. You just have to get a bit creative with where you plug the ramp!
Googled velvet examples