axonis22 commited on
Commit
c6c8400
·
verified ·
1 Parent(s): 1e976f5

Fix mirrored camera in lookAt (closed models, correct orientation)

Browse files
Files changed (1) hide show
  1. parsers.js +1 -0
parsers.js CHANGED
@@ -63,6 +63,7 @@ M.lookAt = function(eye, center, up){ /* from Muse engine.js */
63
  var sx = fy*uz - fz*uy, sy = fz*ux - fx*uz, sz = fx*uy - fy*ux;
64
  var sl = Math.hypot(sx, sy, sz) || 1; sx /= sl; sy /= sl; sz /= sl;
65
  var cx = sy*fz - sz*fy, cy = sz*fx - sx*fz, cz = sx*fy - sy*fx;
 
66
  var o = new Float32Array(16);
67
  o[0]=sx; o[1]=cx; o[2]=fx; o[4]=sy; o[5]=cy; o[6]=fy; o[8]=sz; o[9]=cz; o[10]=fz;
68
  o[12]=-(sx*eye[0]+sy*eye[1]+sz*eye[2]); o[13]=-(cx*eye[0]+cy*eye[1]+cz*eye[2]); o[14]=-(fx*eye[0]+fy*eye[1]+fz*eye[2]); o[15]=1;
 
63
  var sx = fy*uz - fz*uy, sy = fz*ux - fx*uz, sz = fx*uy - fy*ux;
64
  var sl = Math.hypot(sx, sy, sz) || 1; sx /= sl; sy /= sl; sz /= sl;
65
  var cx = sy*fz - sz*fy, cy = sz*fx - sx*fz, cz = sx*fy - sy*fx;
66
+ sx = -sx; sy = -sy; sz = -sz; /* lookAt fix: right = up x back (stops mirrored view and missing faces) */
67
  var o = new Float32Array(16);
68
  o[0]=sx; o[1]=cx; o[2]=fx; o[4]=sy; o[5]=cy; o[6]=fy; o[8]=sz; o[9]=cz; o[10]=fz;
69
  o[12]=-(sx*eye[0]+sy*eye[1]+sz*eye[2]); o[13]=-(cx*eye[0]+cy*eye[1]+cz*eye[2]); o[14]=-(fx*eye[0]+fy*eye[1]+fz*eye[2]); o[15]=1;