Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The basic math is also dramatically worse, and much more challenging for entry level participants to grasp. The basic idea of matrix math grows dramatically more complex just in terms of sheer number operations. You might be able to get away with your entire app only needing a couple mults or adds for most interaction in 2D. Basic 3D, closer to 150 mults (usually 3 [4x4] mults at 49 mults per [4x4] pair) for the default.

In 2D apps and games, you can often get away with incredibly simplistic calculations. Rarely much other than a translation. Many times 1D with naively obvious solutions. With 3D, you rapidly need to move to 4D matrices than can handle arbitrary scale, translate, rotate, perspective, clip volumes.

Nearly every 3D app anywhere has to handle the model, to world, to camera, to clip space path, which involves a lot of complex math well beyond most 2D apps. Usually, 3 different matrix mults with 4x4 matrices.

  v_world     = M⋅v_model
  v_camera  = V⋅M⋅v_model 
  v_clip    = P⋅V⋅M⋅v_model  

  v_clip   = [[P00,...,P30],[...],[...],[P30,...,P33]] ⋅ [V00...V33] ⋅
             [M00...M33] ⋅ [m00...m33]
It's one of the main reasons voxels have been the only real 3D implementation with large scale use. The amount of work necessary to develop, ... really anything that works with 3D is a large step upward in difficulty unless its totally regular and square. Otherwise, huge numbers of optimizations are no longer available. Plus, the compression cliff for normal users of effectively arbitrary 3D shape design and movement is really steep. Most first time users of an industry 3D CAD package (ProE, Solidworks, AutoCAD, Maya, 3DSMax, Blender, ect...) or similar have the "wall of difficulty" moment.

Edited: dumb math error



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: