예제 #1
0
파일: main.c 프로젝트: vle-guen/RT
void	all_effect(t_env *e)
{
	give_effect(e);
	e->pixel_color = plus(&(e->pixel_color), &(e->effect.bri));
       	limit_for_vec(&(e->pixel_color), 0, 1);
	e->pixel_color = a_x_b(&(e->pixel_color), &(e->effect.light));
}
예제 #2
0
파일: all_light.c 프로젝트: NSSX/Raytrac
t_vec3d  my_light(t_env *e)
{
  t_obj   *obj;
  t_vec3d  light;
  t_vec3d  my_light;

  obj = e->obj;
  light = (t_vec3d){0, 0, 0};
  while (obj)
    {
      if (obj->type == 8)
        {
          my_light = lambert_alg(obj, e);
          light = plus(&light, &my_light);
        }
      obj = obj->next;
    }
  light = mult_value(&light, e->nl);
  limit_for_vec(&light, 0.0, 1.0);
  return (light);
}
예제 #3
0
파일: all_light.c 프로젝트: NSSX/Raytrac
t_vec3d  light_effect(t_env *e)
{
  t_obj   *obj;
  t_vec3d  form;
  double val;

  obj = e->obj;
  form = (t_vec3d){0, 0, 0};
  while (obj)
    {
      if (obj->type == 8)
	{
	  val = phong_alg(obj, e);
	  form.x = form.x + val;
	  form.y = form.y + val;
	  form.z = form.z + val;
	}
      obj = obj->next;
    }
  limit_for_vec(&form, 0, 1);
  return (form);
}