[quake3-commits] [ioquake/ioq3] d40451: Fix rendering IQM models between model frames

Zack Middleton noreply at github.com
Mon Apr 29 16:14:08 EDT 2019


  Branch: refs/heads/master
  Home:   https://github.com/ioquake/ioq3
  Commit: d404519cce565402aa98c3f9943221ed6ddb2790
      https://github.com/ioquake/ioq3/commit/d404519cce565402aa98c3f9943221ed6ddb2790
  Author: Zack Middleton <zack at cloemail.com>
  Date:   2019-04-29 (Mon, 29 Apr 2019)

  Changed paths:
    M code/qcommon/q_shared.h
    M code/renderergl1/tr_local.h
    M code/renderergl1/tr_model_iqm.c
    M code/renderergl2/tr_local.h
    M code/renderergl2/tr_model_iqm.c

  Log Message:
  -----------
  Fix rendering IQM models between model frames

For lerped frames (refEntity_t frame not equal oldframe) IQM joint
matrices may have incorrect axis scale. This can cause significant model
distortion. The matrix lerp is linear causing each vector to move in a
straight line between frames instead of arcing like a circle. Each joint
frame can have a different scale so can't just normalize the joint
matrix.

Store joints as quaternions and spherical lerp between them and then
convert to a matrix. For my test model, setting up the skeleton is four
times slower now but it still seems to be fast enough to be usable.


  Commit: 95b9cab4d644fa3bf757cfff821cc4f7d76e38b0
      https://github.com/ioquake/ioq3/commit/95b9cab4d644fa3bf757cfff821cc4f7d76e38b0
  Author: Zack Middleton <zack at cloemail.com>
  Date:   2019-04-29 (Mon, 29 Apr 2019)

  Changed paths:
    M code/renderergl1/tr_model_iqm.c
    M code/renderergl2/tr_model_iqm.c

  Log Message:
  -----------
  Fix warnings that IQM blendWeights may not be initialized


Compare: https://github.com/ioquake/ioq3/compare/d13d06424e5a...95b9cab4d644


More information about the quake3-commits mailing list