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

来源:互联网 发布:苹果mac浏览器如何收藏 编辑:程序博客网 时间:2024/05/16 07:05


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
原创粉丝点击