3D程序性能优化思路浅析

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

3D程序的性能消耗发生在:

  1. 顶点相关数据和纹理数据加载入内存
    把大量的模型数据顶点相关数据和纹理数据从磁盘或网络加载到内存中,3D程序中,这块的数据量是相当大的,可能会有上GBytes的数据需要加载到内存中。

  2. 显示数据从内存传输到显卡中
    显卡提供了接口,传输framebuffer, 传输texture, 传输shader, 把加载到的内存中数据传递给显卡。

  3. 显卡渲染pipeline执行,执行相关顶点、像素等shader处理

针对这3项,通常我们优化的方向有:

  1. 针对数据量,减少加载的数据量
    a. 通过lod,对数据的加载,提供层次简模,减少同一时刻需要加载的数据数量
    b. 3D模型中一般图片占资源总大小比例很高,可以通过纹理简化DDS-DXT,RGB565纹理,
    c. 顶点索引相关数据简化,例如,索引使用ushort;也可以考虑顶点合并,三角形简化等各类思路

  2. 针对向显卡传送渲染数据,数据量减少的前提下,同样的渲染数据量情况下,减少接口调用次数
    a. 顶点相关数据减少批次数量:通过合并批次,提高交互的效率,减少显卡接口调用的次数
    b. 纹理合并,减少传递纹理的次数

  3. shader程序优化,精简shader中无用的逻辑
    a. shader逻辑精简,减少查询纹理相关复杂操作的次数
    b. 可以在顶点shader中做的,优于在像素shader中做

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

春夜喜雨

稀罕你的喜欢!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值