I know this is mainly a GLSL issue, but it does relate to the way the Lighting environment and GLSL patches work specifically in Quartz Composer, so maybe someone will have tried to do this themselves and will be able to help.
I'm trying to implement a really basic Phong Directional GLSL shader inside a
Lighting environment patch, and have been having problems getting the specular
contribution to work.
I've attached a QTZ example, which has a very simple setup:
A Lighting macro patch at the top-level
Inside this is a GLSL Shader patch containing the shader code
Inside the GLSL Shader is a Sphere primitive patch.
This is the Vertex Shader code:
varying vec3 normal, lightDir, halfVector;
varying vec4 diffuse, ambient;
void phongVS(in vec3 N)
{
// Normal to FS
normal = normalize(gl_NormalMatrix * N);
// Light direction vector to FS
lightDir = normalize(vec3(gl_LightSource[0].position));
// Halfvector to FS
halfVector = normalize(gl_LightSource[0].halfVector.xyz);
// Diffuse and Ambient terms to FS
diffuse = gl_FrontMaterial.diffuse * gl_LightSource[0].diffuse;
ambient = gl_FrontMaterial.ambient * gl_LightSource[0].ambient;
ambient += gl_LightModel.ambient * gl_FrontMaterial.ambient;
}
void main()
{
vec4 Vertex = gl_ModelViewMatrix * gl_Vertex;
phongVS(gl_Normal);
gl_Position = ftransform();
}
and the Fragment Shader code:
varying vec3 normal, lightDir, halfVector;
varying vec4 diffuse, ambient;
vec4 phongDirectionalFS()
{
vec3 n, halfV;
float NdotL, NdotHV;
// Ambient term (always present)
vec4 final_color = ambient;
// Normal
n = normalize(normal);
NdotL = max(dot(n,lightDir),0.0);
if (NdotL > 0.0) {
final_color += diffuse * NdotL;
halfV = normalize(halfVector);
final_color += gl_FrontMaterial.specular
* gl_LightSource[0].specular
* pow(NdotHV, gl_FrontMaterial.shininess);
}
return final_color;
}
void main (void)
{
gl_FragColor = phongDirectionalFS();
}
Any tips much appreciated.
Cheers.
a|x
http://machinesdontcare.wordpress.com
__________________________________________________________
Sent from Yahoo! Mail.
A Smarter Email http://uk.docs.yahoo.com/nowyoucan.html
PhongDirectional (QCDevList).qtz
Description: application/quartzcomposer
_______________________________________________ Do not post admin requests to the list. They will be ignored. Quartzcomposer-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/quartzcomposer-dev/archive%40mail-archive.com This email sent to [EMAIL PROTECTED]

