zoukankan      html  css  js  c++  java
  • 添加TLBB模型动画需要对OGRE添加的代码段

    要能正确加载TLBB模型动画在OgreSkeletonSerializer.cpp中readAnimationTrack添加如下代码

    void SkeletonSerializer::readAnimationTrack(DataStreamPtr& stream, Animation* anim, Skeleton* pSkel)

    {

      (省略)

      。。。

    // Keep looking for nested keyframes

    if (!stream->eof())

    {

      unsigned short streamID = readChunk(stream);

      while( (streamID == SKELETON_ANIMATION_TRACK_KEYFRAME || 

           streamID == 0x4120 ) && !stream->eof() )

      {

        if (streamID == 0x4120 )

        {

          //新增代码

          unsigned short len;

          unsigned short flags;

          readShorts(stream, &len, 1);

          readShorts(stream, &flags, 1);
          float time;

          for (int i = 0; i < len; i += 1)

          {

            readFloats(stream, &time, 1);

            TransformKeyFrame *kf = pTrack->createNodeKeyFrame(time);
            Quaternion rot = Quaternion::IDENTITY;

            if (flags & 1)

            {

              readObject(stream, rot);

            }

            kf->setRotation(rot);
            Vector3 trans = Vector3::ZERO;

            if (flags & 2)

            {

              readObject(stream, trans);

            }

            kf->setTranslate(trans);

                          Vector3 scale = Vector3::UNIT_SCALE;

            if (flags & 4)

            {

              readObject(stream, scale);

            }

            kf->setScale(scale);

          }

        }

        else

        {

          readKeyFrame(stream, pTrack, pSkel);

        }

        if (!stream->eof())

        {

          // Get next stream

          streamID = readChunk(stream);

        }

      }
      if (!stream->eof())

      {

        // Backpedal back to start of this stream if we've found a non-keyframe

        stream->skip(-STREAM_OVERHEAD_SIZE);

      }

    }

    。。。

    }

  • 相关阅读:
    【Canvas】摆线模拟
    【JS】JS正则表达式常见用法(验证、查找和替换)
    【Canvas】将屏幕坐标系转换成笛卡尔坐标系
    【Canvas】狗撵兔子和贝塞尔曲线
    精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
    用Javascript实现HtmlEncode与HtmlDecode的另类方法
    [Javascript] 如何在客户端验证表单被改变
    关于IE6和IE7关闭窗口时提示和不提示以及上传图片前的本地预览解决办法
    项目开发经验谈(一)
    Windows 7 开发新特性
  • 原文地址:https://www.cnblogs.com/LinuxHunter/p/1884883.html
Copyright © 2011-2022 走看看