|
|
Inicio Noticias Tutoriales Ejemplo de Cg
|
Friday, 03 January 2003 |
En la web de Nervus podemos encontrarunos un ejemplo de iluminación por pixel escrito en el lenguaje de nVIDIA. A parte, en la web podemos ver algunas cosillas mas, como un articulo de generación de Texturas para landscapes (publicado previamente en gamedev.net)
Si nunca has visto codigo Cg, aqui tienes un ejemplo...
vertout main(appin IN,
uniform float4x4 ModelViewProj,
uniform float4x4 ModelViewIT,
uniform float4 LightVec)
{
vertout OUT;
OUT.TexCoord = IN.TexCoord; // copy texture coords
OUT.Position = mul(ModelViewProj, IN.Position); // transform position
float3 normal = mul(ModelViewIT,IN.Normal).xyz; // transform normal to view space
float3 eye = float3(0,0,1);
float ambient = 0.2f;
float3 lightvec = mul(ModelViewIT,normalize(LightVec)).xyz; // transform LightVec to view space
float3 halfvec = normalize(lightvec + eye); // compute half angle vector
float diffuse = dot(normal, lightvec); // the diffuse dot product
float NdotL = diffuse < 0 ? 0 : diffuse;
float NdotH = diffuse < 0 ? 0 : dot(normal, halfvec); // the specular dot product
OUT.Diffuse = min(1,ambient + NdotL);
OUT.Specular = pow(NdotH,32);
return OUT;
}
|
|
Lista de Correo
visita la lista de correo de codepixel. Es una lista abierta, asi que podrás subscribirte y preguntar tus dudas de programación, compartir tus opiniones, aportar ideas, y formar parte de la comunidad codepixelera.
|