I don't know much about car paint shaders, may be the reflection color changes as well with the view angle and not just the diffuse color but this might be a start for people wanting to implement such a fancy shader. This shader might be useful as well to implement soap bubble irridescence in a different way. (you might want to check the dicussion on Blender Artists).
surface phong_ramp( float Exp = 1, color C1=color(1,0,0), color C2=color(.8,.2,0), color C3=color(.6,0.4,0), color C4=color(.4,0.4,0.2), color C5=color(.2,0.4,0.4), color C6=color(0,0.4,0.6), color C7=color(0,0.2,0.8), color C8=color(0,0,1), output closure color Cout = 0 ){ color colors[8] = {C1,C2,C3,C4,C5,C6,C7,C8}; Cout = phong_ramp(N, Exp, colors); }As you can see, all there is to this code is transfering the input values to the arguments of the built-in function. The function takes an array of eight colors so we have created eight input color sockets. I admit that it lacks elegance but it works.
Hello,
ReplyDeleteDo you know where I can find the phong_ramp source code in OSL's source files?
I am actually not sure, but this might be a start:
ReplyDeleteblendersource/blender/intern/cycles/kernel/osl/bsdf_phong_ramp.cpp