Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.62 KB | None | 0 0
  1. // Create XYW-UV matrix for midpoint texture mapping (@todo optimize)
  2.         if(p_obj->flags & (XD_OBJECT_SHADE_TEXTURE | XD_OBJECT_TM_PC_MIDPOINT)) {
  3.             xd_matrix_xywuv_t * m = &poly.mat_xywuv;
  4.  
  5.             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));
  6.             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));
  7.             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));
  8.             m->_03 = 0.0f;
  9.             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));
  10.             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));
  11.             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));
  12.             m->_13 = 0.0f;
  13.             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));
  14.             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));
  15.             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));
  16.             m->_23 = 0.0f;
  17.             m->_30 = 0.0f;
  18.             m->_31 = 0.0f;
  19.             m->_31 = 0.0f;
  20.             m->_33 = LAP_ONE;
  21.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement