void main(void)
{
#ifdef HAS_OES_DERIVATIVES
    highp vec3 materialBump = mix( vec3(0.5, 0.5, 1.0),
	                               texture2D( uMapNormal, 
									          vec2(vKdMapCoord.s / uMapNormalScale.s, 
											       vKdMapCoord.t / uMapNormalScale.t)).xyz, 
								   uNormalEmphasis);
	
	materialBump = normalize (materialBump*2.0 - 1.0);
    
    highp vec3 normal = perturb_normal( normalize(vNormal.xyz), 
                                        vPosition.xyz, 
                                        materialBump, 
                                        vec2(vKdMapCoord.s / uMapNormalScale.s,
                                             vKdMapCoord.t / uMapNormalScale.t) );
    
    gl_FragColor = vec4(normal, vpPosition.z/vpPosition.w);
    //gl_FragColor = vec4(materialBump, vpPosition.z/vpPosition.w);
    //gl_FragColor = vec4(normal.x*0.5 + 0.5, normal.y*0.5 + 0.5, normal.z*0.5 + 0.5, 1);
#else
    gl_FragColor = vec4(vNormal.xyz, vpPosition.z/vpPosition.w);
#endif
    
    
    
    
}
Ejemplo n.º 2
0
void	tangle_normal(double *nvec, double *obj_coor,
		      double *pert, t_obj *obj)
{
  nvec[0] = 4 * pow(obj_coor[0], 3) - 20 * pow(obj->size[0], 2) * obj_coor[0];
  nvec[1] = 4 * pow(obj_coor[1], 3) - 20 * pow(obj->size[0], 2) * obj_coor[1];
  nvec[2] = 4 * pow(obj_coor[2], 3) - 20 * pow(obj->size[0], 2) * obj_coor[2];
  if (obj->ipt->bump > ZERO)
    apply_bump(nvec, obj_coor, obj->ipt->bump);
  perturb_normal(nvec, obj_coor, pert);
}
Ejemplo n.º 3
0
void		tore_normal(double *nvec, double *obj_coor,
			    double *pert, t_obj *obj)
{
  double	k;

  k = 4 * (pow(obj_coor[0], 2)
           + pow(obj_coor[1], 2)
           + pow(obj_coor[2], 2)
           + pow(obj->size[0], 2)
           - pow(obj->size[1], 2));
  nvec[0] = obj_coor[0] * k - 8.0 * pow(obj->size[0], 2) * obj_coor[0];
  nvec[1] = obj_coor[1] * k - 8.0 * pow(obj->size[0], 2) * obj_coor[1];
  nvec[2] = obj_coor[2] * k;
  if (obj->ipt->bump > ZERO)
    apply_bump(nvec, obj_coor, obj->ipt->bump);
  perturb_normal(nvec, obj_coor, pert);
}