使用GPU计算骨骼动画(二)我的实践总结


DX11,创建动态贴图,贴图的最大分辨率是 8192*16384 (或者16384*8192),

并且,宽高的最大值就是 16384 。

创建贴图时,宽高的值不要求是2的整数幂。


========================================================================

在HLSL脚本中,定义一个贴图对象:

Texture2D myTexture;

如果你要使用多个贴图对象,不能使用下面的方法:

Texture2D myTexture1;

Texture2D myTexture2;

......

正确的做法是,定义一个贴图对象数组

Texture2D myTextureList[3];


========================================================================

每个顶点受若干根(小于等于4根)骨骼的影响,权重值用来描述骨骼对顶点的影响程度。

有些资料说,必须保证权重的总和是1。

我现在认为不需要保证权重的总和是1。

例如,有一个顶点,它只受两根骨骼的轻微的影响,权重值比较小才能体现“轻微”,那么权重的总和必定不是1。


========================================================================

在HLSL脚本中,函数的return语句最好只有一句,如果有多个return语句可能会报错。

例如,下面这段代码就会报错。

错误描述是 asymmetric returns from if statements not yet implemented 。

float CalculateXX()
{
    if (XX) { return 1.0f; }
    if (YY) { return 0.0f; }
    return 3.0f;
}

========================================================================

在HLSL脚本中,尽量使用uint整数类型,比使用int的运算效率要高。

如果你使用了int整数类型,在把脚本编译成二进制文件时,会给你上面那样的提示信息。


========================================================================











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值