title: Assertion failed: !XMVector3Equal(UpDirection, XMVectorZero())
body: <p>So i m basicly writting a camera class that is linked to an 3D object (that i have loaded into my programm as an .obj file).</p>
  
  <p>The camera acts as a third person.</p>
  
  <p>i get the error when i write this :</p>
  
  <pre><code>    World *= XMMatrixTranslation(XMVectorGetX(position), m_y, XMVectorGetZ(position)); //LAST MODIFICATION BEFORE BREAK
  </code></pre>
  
  <p>The original code was :</p>
  
  <pre><code>    World = XMMatrixScaling(m_xscale, m_yscale, m_zscale);
      World *= XMMatrixRotationX(XMConvertToRadians(m_xangle));
      World *= XMMatrixRotationY(XMConvertToRadians(m_yangle));
      World *= XMMatrixRotationZ(XMConvertToRadians(m_zangle));
      World *= XMMatrixTranslation(m_x, m_y, m_z); //LINE THAT GETS MODIFIED
  </code></pre>
  
  <p>Also :</p>
  
  <pre><code>XMVECTOR position = XMVector3TransformCoord(cam-&gt;GetCharPos(), World);
  </code></pre>
  
  <p>Where <strong>cam->GetCharPos()</strong> is a XMVECTOR(0.0f, 0.0f, 0.0f, 0.0f) and World is a XMMATRIX that has a positon (that changes each time i move) of, let's say, (1.0f, 0.0f, 0.0f) // x, y and z position</p>
  
  <p>So in theory, the position vector gets an XM vector of (1.0f, 0.0f, 0.0f, 0.0f)//And it does i debugged it.</p>
  
  <p>Also i was wondering what causes this type of error in general? apart from what cause it to break my code here.Because i know they are at least 4 version of this error :</p>
  
  <pre><code>assert(!XMVector3Equal(EyeDirection, XMVectorZero()));
  assert(!XMVector3IsInfinite(EyeDirection));
  assert(!XMVector3Equal(UpDirection, XMVectorZero()));
  assert(!XMVector3IsInfinite(UpDirection));
  </code></pre>