Exemple #1
0
void				*ft_rc_th4(void *env)
{
	t_ray			*ray;
	int				pix[2];
	t_env			*tmp;

	tmp = (t_env *)env;
	pix[1] = 3 * Y_MAX / 4;
	while (pix[1] < Y_MAX)
	{
		pix[0] = 0;
		while (pix[0] < X_MAX)
		{
			ray = (t_ray *)malloc(sizeof(t_ray));
			ray->pix[1] = pix[1];
			ray->pix[0] = pix[0];
			ft_init_ray(ray, tmp->dt);
			ft_inter(ray, tmp->obj);
			ft_get_color(ray, tmp->obj);
			ft_mlx_add_col(tmp->dt, ray);
			pix[0] = pix[0] + 1;
			free(ray);
		}
		pix[1] = pix[1] + 1;
	}
	return (NULL);
}
Exemple #2
0
void			ft_ray_cast(t_dt *dt, t_obj *obj)
{
	t_ray		*ray;
	int			pix[2];

	pix[1] = 0;
	ft_set_param(dt);
	while (pix[1] < Y_MAX)
	{
		pix[0] = 0;
		while (pix[0] < X_MAX)
		{
			ray = (t_ray *)malloc(sizeof(t_ray));
			ray->pix[1] = pix[1];
			ray->pix[0] = pix[0];
			ft_init_ray(ray, dt);
			ft_inter(ray, obj);
			ft_get_color(ray, obj);
			ft_mlx_add_col(dt, ray);
			pix[0] = pix[0] + 1;
			free(ray);
		}
		pix[1] = pix[1] + 1;
		mlx_put_image_to_window(dt->conn, dt->win, dt->img, 0, 0);
	}
}
Exemple #3
0
void				ft_aliase_fin(t_env *env, int ***img)
{
	int				i;
	int				j;

	i = -1;
	while (++i < env->dt->y_max)
	{
		j = -1;
		while (++j < env->dt->x_max)
		{
			img[i][j][0] = img[i][j][0] / (1 + 4 * env->dt->opt_aa);
			img[i][j][1] = img[i][j][1] / (1 + 4 * env->dt->opt_aa);
			img[i][j][2] = img[i][j][2] / (1 + 4 * env->dt->opt_aa);
			ft_mlx_add_col(env->dt, img[i][j], j, i);
			free(img[i][j]);
		}
		free(img[i]);
	}
	free(img);
	ft_expose(env);
}