20 |
|
#include "bsdfrep.h" |
21 |
|
|
22 |
|
#ifndef NEIGH_FACT2 |
23 |
< |
#define NEIGH_FACT2 0.2 /* empirical neighborhood distance weight */ |
23 |
> |
#define NEIGH_FACT2 0.1 /* empirical neighborhood distance weight */ |
24 |
|
#endif |
25 |
|
/* number of processes to run */ |
26 |
|
int nprocs = 1; |
150 |
|
|
151 |
|
for (x = GRIDRES; x--; ) |
152 |
|
for (y = GRIDRES; y--; ) { |
153 |
< |
ovec_from_pos(dv, x, y); |
154 |
< |
dsf_grid[x][y].val[0] = nf0 * eval_rbfrep(rbf0, dv); |
155 |
< |
dsf_grid[x][y].val[1] = nf1 * eval_rbfrep(rbf1, dv); |
153 |
> |
ovec_from_pos(dv, x, y); /* cube root (brightness) */ |
154 |
> |
dsf_grid[x][y].val[0] = pow(nf0*eval_rbfrep(rbf0, dv), .3333); |
155 |
> |
dsf_grid[x][y].val[1] = pow(nf1*eval_rbfrep(rbf1, dv), .3333); |
156 |
|
} |
157 |
|
} |
158 |
|
|
225 |
|
pm->prow = pricerow(pm,i); |
226 |
|
srow = psortrow(pm,i); |
227 |
|
for (j = to_rbf->nrbf; j--; ) { |
228 |
< |
double d; /* quadratic cost function */ |
228 |
> |
double d; /* quadratic cost function */ |
229 |
|
d = Acos(DOT(vfrom, vto[j])); |
230 |
|
pm->prow[j] = d*d; |
231 |
|
d = R2ANG(to_rbf->rbfa[j].crad) - from_ang; |
562 |
|
double bestd; |
563 |
|
int n; |
564 |
|
|
565 |
+ |
|
566 |
|
if (dsf_list == NULL) |
567 |
|
return; /* XXX should be error? */ |
568 |
|
near_rbf = dsf_list; |
607 |
|
memcpy(mir_rbf, near_rbf, n); |
608 |
|
mir_rbf->ord = near_rbf->ord - 1; /* not used, I think */ |
609 |
|
mir_rbf->next = NULL; |
610 |
+ |
mir_rbf->ejl = NULL; |
611 |
|
rev_rbf_symmetry(mir_rbf, MIRROR_X|MIRROR_Y); |
612 |
|
nprocs = 1; /* compute migration matrix */ |
613 |
< |
if (mig_list != create_migration(mir_rbf, near_rbf)) |
613 |
> |
if (create_migration(mir_rbf, near_rbf) == NULL) |
614 |
|
exit(1); /* XXX should never happen! */ |
615 |
|
/* interpolate normal dist. */ |
616 |
|
rbf = e_advect_rbf(mig_list, norm_vec, 2*near_rbf->nrbf); |