CPU:

比如广泛的设备兼容性,比如上面说的精确逻辑处理,比如可以根据距离对Skinning进行LOD(如近距离角色每秒30帧Skinning,远距离角色每秒15帧Skinning),比如多Pass渲染时只需要一次Skinning(还要考虑阴影渲染的pass),等等

对于多Pass的shader,也省去了每一个pass都要做一次蒙皮的冗余操作。比如,做ShadowMap的时候,渲染深度时,算好的蒙皮结果可以直接用于后续的着色处理,而不需要再蒙皮一次。
 
GPU:
一些GPU的常量寄存器数量也不足(如都D3D9设备和GLES 2.0设备),实现GPU Skinning的时候需要额外的处理。
 
 1.烘焙的贴图过大,因为为了存储浮点数,必须使用rgbahalf的格式,这个格式每个像素有64个字节,是真彩色的两倍。假设一个小兵有1000个顶点,那么1s的动作就需要1000*64,也就是64000个字节,而正常情况下,我们小兵在2000个顶点左右,动画在5s以上,那么每个动画贴图大概就在2M以上,甚至有可能是4M。而我们有60多个兵种,这样一算竟然有240M。虽然小米超神使用了RGMB来减少每个像素的大小,但那也高达120M的动画贴图了。而我们知道,原始的骨骼动画数据其实只有几百k左右。

  2.无法计算光照,因为法线始终保持T-pos形态,在shader里面改变顶点位置的时候,无法重新计算法线。为了能够使用正常的光照计算,必须将法线也一起烘焙。幸运的是法线都是单位向量,可以采用rgba存储,但也需要大概1M左右的空间。

  3.没有动画之间的blend,为了实现blend,必须对两个动作的贴图进行采样,然后lerp。这样会导致shader里放两张4M的贴图,对手游来说还是不小的开销。
 
ref:
https://www.zhihu.com/question/67301295/answer/251770734
https://gameinstitute.qq.com/community/detail/127819

CPU 和GPUskinning对比的更多相关文章

  1. CPU的性能对比

    笔记本CPU之前的性能对比 下面的分数都是根据PerformanceTest测试的出来的结果,现在的笔记本CPU有很多种,你在购买笔记本的时候只看到CPU的型号,而且现在的CPU型号太多而且命名方式也 ...

  2. 百度VS高德:LBS开发平台ios SDK对比评测

    随着iPhone6手机的热销,目前的iOS应用开发市场也迎来了全盛时期.据了解,目前市面上已有的iOS应用基本覆盖了购物.上门服务.用车服务.娱乐等行业.而在这些iOS应用中,内置LBS服务的应用占大 ...

  3. three.js粒子效果(分别基于CPU&GPU实现)

    前段时间做了一个基于CPU和GPU对比的粒子效果丢在学习WebGL的群里,技术上没有多作讲解,有同学反馈看不太懂GPU版本,干脆开一篇文章,重点讲解基于GPU开发的版本. 一.概况 废话不多说,先丢上 ...

  4. 国内首款 FPGA 云服务器,性能是通用 CPU 服务器 30 倍以上

    版权声明:本文由薛梁原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/628340001485134638 来源:腾云阁 ht ...

  5. CPU负载过高异常排查实践与总结

    昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就会发现咱们的业务系统并不是一个高并 ...

  6. (Matlab)GPU计算简介,及其与CPU计算性能的比较

    1.GPU与CPU结构上的对比 2.GPU能加速我的应用程序吗? 3.GPU与CPU在计算效率上的对比 4.利用Matlab进行GPU计算的一般流程 5.GPU计算的硬件.软件配置 5.1 硬件及驱动 ...

  7. 【转帖】处理器史话 | 服务器CPU市场的战役, AMD、Intel和ARM的厮杀

    处理器史话 | 服务器CPU市场的战役, AMD.Intel和ARM的厮杀 https://www.eefocus.com/mcu-dsp/377300   说完了个性鲜明的消费类电子,接下来聊一聊通 ...

  8. 服务器 CPU 100% 异常排查实践与总结

    一个执着于技术的公众号 问题背景 昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就 ...

  9. 程序猿是如何解决SQLServer占CPU100%的

    文章目录 遇到的问题 使用SQLServer Profiler监控数据库 SQL1:查找最新的30条告警事件 SQL2:获取当前的总报警记录数 有哪些SQL语句会导致CPU过高? 查看SQL的查询计划 ...

  10. Linux2.6.11版本:classic RCU的实现

    转载自:http://www.wowotech.net/kernel_synchronization/linux2-6-11-RCU.html 一.前言 无论你愿意或者不愿意,linux kernel ...

随机推荐

  1. C#/.NET/.NET Core技术前沿周刊 | 第 22 期(2025年1.13-1.19)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  2. el-table关于选择行的三个常用事件

    变量声明 data(){ return{ selectList: [], } } 事件绑定 <el-table @select-all="selectAllChange" @ ...

  3. java中匿名类,Bean规范,全局变量

    实现看见一个人,我们对它说hello public class study01 { public static void main(String[] args) { Me me = new Me(); ...

  4. Apache Amoro数据湖管理和治理工具部署

    一.Amoro介绍 2024 年 3 月 11 日,Amoro 项目顺利通过投票,正式进入 Apache 软件基金会(ASF,Apache Software Foundation)的孵化器,成为 AS ...

  5. FreeSql学习笔记——11.LinqToSql

    前言   Linq的强大大家有目共睹,可以以简便的方式对数据集进行复杂操作,LinqToSql经常使用在数据库的联表.分组等查询操作中:FreeSql对LinqToSql的支持通过扩展包FreeSql ...

  6. [CF576E] Painting Edges 题解

    模版题的升级了. 使用二分图经典判定方法(一个点拆成两个点 \(x,x+n\),连边 \((x,y)\) 就是连接 \((x,y+n),(x+n,y)\),那么是否是二分图就等价于判断 \(x,x+n ...

  7. [Windows] 联发科秒开bl一键版(mtk)

    声明 不是所有的联发科都可 天机 8000 8100 9000等不行 已知 天机820 天机1000 mtk G90t 天机800 可以 其余自己测试 除了新款均可 第一步 下载软件 (是个压缩包需要 ...

  8. Azkaban的job从创建到执行

    单一 job Step1: 创建 job 描述文件 xxx.job: job 的描述文件 type =  command command =  echo 'hello, this is my firs ...

  9. C++调用动态链接库DLL的隐式链接和显式链接基本方法小结

    C++程序在运行时调用动态链接库,实现逻辑扩展,有两种基本链接方式:隐式链接和显式链接.下面就设立最基本情形实现上述链接. 创建DLL动态链接库 编辑头文件 mydll_3.h: #pragma on ...

  10. 2025 年最值得尝试的几款 DevOps 平台工具推荐

    随着软件开发和运维的深度融合,DevOps 平台已成为现代企业加速数字化转型的核心引擎.在 2025 年,面对快速迭代的市场需求与复杂的技术架构,选择一款适配性强.功能完备的 DevOps 平台,不仅 ...