• skinned mesh 蜘蛛样


    被skinned mesh 折磨了 好久,开始感觉skinindices不对,因为pix显示里面全是0

    后来跟来跟去发现是这样的,那些uchar的整数被pix用float的格式显示出来 (显示为0.0000000而不是按照生命的uint显示为0)

    变成很小的数所以是0.00000

    这样skinindices 就也是对的了 weight看起来也是对的 因为加起来等于1

    哦对了 phyre的d3d11要把shader里面的semantic

    skinindices :BLENDINDICES;

    skinweights :BLENDWEIGHTS;

    要这么写,不能就写个color0 看起来它是由后面的sementic来确定的

    chr的skin运动起来看起来是蜘蛛一样的,并没有拉伸到无穷远,也没有很乱,说明还是比较正确的,只是哪里。。比如没有unormalize或者范围被扩大了(float 才要normalize 这个排除了

    weight错误我也大概能认出来了 是会有蹼状的拉伸

    矩阵如果没有转置会有三角片那样像无限远拉伸

    这种在一个范围内的拉伸反向,看起来是比如把脚跟的matrix乘到了膝盖膝盖上,skintransform看起来也是对的,所以还是skinindices不对,位置不对。。。感觉是这样

    偶然发现了pix显示buffer的方法,在layout那页把你的类型写进去就可以了,那页相当于脚本。

    这样就奇怪了 因为skinindices还是0

    .。。。。。skinindices并不是0 前面有些frame是0是因为那些frame里还没画

    后面找到了数据完全正确的skinindiceds 和weight 矩阵看起来也对

    就只有mul的问题了 也就是一开始就最先怀疑的rowmajor的问题

    被semantic这个问题遮蔽了

    这下人物也正常了 只有define mul(a,b)mul((b),(a))好使就一切ok啦 

    上次升级我大概是手动改的mul 这次一定要找到一个宏

    准备用u4 的处理方法

    //////if you genetated matrix (float3X3(VectA,VectB,VectC)),you must use mul else use MulMatrix means you passed through a matrix para

    if defined XX

    define MulMatrix(Mtx, Vect) mul(Vect, Mtx)

    这是个比较全面的解决方案,忽略我前面文章说的 单纯define mul(a,b)mul((b),(a))这种方法

  • 相关阅读:
    剑指 Offer 30. 包含min函数的栈
    剑指 Offer 35. 复杂链表的复制
    剑指 Offer 18. 删除链表的节点
    剑指 Offer 24. 反转链表
    Jmeter
    Jmeter
    Linux搭建Jenkins
    [基金项目] 青年基金写作的历程与经验(2)
    [基金项目] 青年基金写作的历程与经验(1)
    浅析mysql存储过程
  • 原文地址:https://www.cnblogs.com/minggoddess/p/4169971.html
Copyright © 2020-2023  润新知