Polls

Que API tiene más futuro?
 
Inicio arrow Noticias arrow Tutoriales arrow Ejemplo de Cg
Ejemplo de Cg PDF Print E-mail
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;
}
Comentarios
AgregarnuevoBuscar
Escribir comentario
Nombre:
Email:
 
Website:
Título:
Código UBB:
[b] [i] [u] [url] [quote] [code] [img] 
 
Security Image
Por favor introduce el codigo anti-spam que puedes leer en la imagen.

Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved.



menéameDigg!Del.icio.us!Google!Technorati!Yahoo!
 
< Prev   Next >

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.