Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vec3 aniso_data[6]
- vec3 color = aniso_data[0] + .. + aniso_data[5];
- float color_s = max(color.r,max(color.g,color.b)); // o dot(color,vec3(0.3333,0.3333,0.3333));, como prefieras
- // haces lo mismo con cada aniso y tenes
- vec3 aniso_s[6];
- entonces
- posweights.x = anido_ds[0]/color_ds;
- posweights.y = anido_ds[1]/color_ds;
- posweights.z = anido_ds[2]/color_ds;
- negweights.x = anido_ds[3]/color_ds;
- negweights.y = anido_ds[4]/color_ds;
- negweights.z = anido_ds[5]/color_ds;
- asi en vez de tener un color por cada eje, tenes una distribucion de la luz que llega a cada eje.
- despues al samplear lo unico que haces es
- vec3 posweights;
- vec3 negweights;
- float weight = dot(max(vec3(0.0),(p_dir * posweights),vec3(1.0)) + dot(max(vec3(0.0),(-p_dir * negweights),vec3(1.0));
- color.rgb*=weight;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement