Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Create XYW-UV matrix for midpoint texture mapping (@todo optimize)
- if(p_obj->flags & (XD_OBJECT_SHADE_TEXTURE | XD_OBJECT_TM_PC_MIDPOINT)) {
- xd_matrix_xywuv_t * m = &poly.mat_xywuv;
- m->k = LAP_ONE * ( (u2*p1->w*p0->y)-(u1*p2->w*p0->y)-(u2*p0->w*p1->y)+(u0*p2->w*p1->y)+(u1*p0->w*p2->y)-(u0*p1->w*p2->y));
- m->l = LAP_ONE * (-(u2*p1->w*p0->x)+(u1*p2->w*p0->x)+(u2*p0->w*p1->x)-(u0*p2->w*p1->x)-(u1*p0->w*p2->x)+(u0*p1->w*p2->x));
- m->m = LAP_ONE * (-(u2*p1->x*p0->y)+(u1*p2->x*p0->y)+(u2*p0->x*p1->y)-(u0*p2->x*p1->y)-(u1*p0->x*p2->y)+(u0*p1->x*p2->y));
- m->_03 = 0.0f;
- m->n = LAP_ONE * ( (v2*p1->w*p0->y)-(v1*p2->w*p0->y)-(v2*p0->w*p1->y)+(v0*p2->w*p1->y)+(v1*p0->w*p2->y)-(v0*p1->w*p2->y));
- m->p = LAP_ONE * (-(v2*p1->w*p0->x)+(v1*p2->w*p0->x)+(v2*p0->w*p1->x)-(v0*p2->w*p1->x)-(v1*p0->w*p2->x)+(v0*p1->w*p2->x));
- m->q = LAP_ONE * (-(v2*p1->x*p0->y)+(v1*p2->x*p0->y)+(v2*p0->x*p1->y)-(v0*p2->x*p1->y)-(v1*p0->x*p2->y)+(v0*p1->x*p2->y));
- m->_13 = 0.0f;
- m->r = LAP_ONE * ( ( p1->w*p0->y)-( p2->w*p0->y)-( p0->w*p1->y)+( p2->w*p1->y)+( p0->w*p2->y)-( p1->w*p2->y));
- m->s = LAP_ONE * (-( p1->w*p0->x)+( p2->w*p0->x)+( p0->w*p1->x)-( p2->w*p1->x)-( p0->w*p2->x)+( p1->w*p2->x));
- m->t = LAP_ONE * (-( p1->x*p0->y)+( p2->x*p0->y)+( p0->x*p1->y)-( p2->x*p1->y)-( p0->x*p2->y)+( p1->x*p2->y));
- m->_23 = 0.0f;
- m->_30 = 0.0f;
- m->_31 = 0.0f;
- m->_31 = 0.0f;
- m->_33 = LAP_ONE;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement