Exemple #1
0
void gouraud_shade(Hpoly *c, Hpoly *p, Hpoly *n, Vector3 v, RContext *rc, Material *m)
{
  int i;
  for (i = 0; i < p->n; i++)
    c->v[i] = v4_v3conv((*m->luminance)(rc_set(rc, v3_unit(v3_sub(v, v3_v4conv(p->v[i]))), 
					       v3_v4conv(p->v[i]), v3_v4conv(n->v[i]), m)));
}
Exemple #2
0
Hpoly *hpoly_polyxform(Hpoly *d, Poly *s, Matrix4 m)
{
  int i;
  for (i = 0; i < d->n; i++) {
    d->v[i] = v4_m4mult(v4_v3conv(s->v[i]), m);
    d->v[i].x /= d->v[i].w;
    d->v[i].y /= d->v[i].w;
    d->v[i].z /= d->v[i].w;
  }
  return d;
}