2.Optimising Geometry

  Interleaving Attributes

VBO

Draw call size

Triangle Size  32个像素/primitive    ---3vertex so 10pixel/vertex

Face Culling

Sorting Geometry

  Distance

  Render state

Z Pre-pass 不推荐做 因为没用 会有额外clocks 和bandwidth开销

3.Texture

texture size 不是越大越好,大的会费memory和引起cachemissing,最近的时候texel:pixel为1:1,一定用压缩。

NPOT  not power of two

512x128 是POT

NPOT使用GL_CLAMP_TO_EDGE 用默认repeat会有error

有扩展专门处理它 GL_IMG_texture_npot

推荐使用32的倍数

推荐不要使用NPOT 性能下降 涉及mipmaplevel  sizeofTexture target platform

Texture Compression

他家有工具PVRTexTool

PVRTC特点是smaller memory footprint省电

jpc等等是image compression 会在system memory里解压

PVRTC压缩状态直接提交graphic core使用

mipmap 减小cachemissing降低带宽 反走样 memory开销增加

Texture Sampling

dependent texture read 会有fetch texture开销 如果有复杂alu开销可以 通过调度把fetch 开销给掩盖掉

vertex shader lookup 是dependent texture read

只用varying的部分通道比如zw也算 dependent texture read

Texture2DProj() 参数Vec3 或者Vec4有无效的w也是dependent texture read

尽量在vs里算uv 即使PowerVR对此有一定优化, Rouge better than SGX

Texture Uploading

非压缩的tex 是line-scan-line format读取

压缩tex 是block-by-block读取

texture 初始化时传入 最好用他们画一遍trangle 这样可以warm up

颜色用lowp

浮点数                                  精度                整数范围

FP32 highp             ,,[2^31-1,-2^31]

FP16 Mediump [-65504.0,65504.0],,[2^15-1,-2^15] --32768   1 5 11

十位定的小数 lowp   [-2.2], 1/256, [2^9-1,-2^9]

https://docs.unity3d.com/Manual/SL-DataTypesAndPrecision.html

手机 float highp

half Mediump

浮点数精度这里,抄个东西在手机上遇到half的问题

pc上没有这个问题,原来pc会自动把half转为float处理 怪不得我就奇怪他们都是FP16为什么只有手机有问题。。

最新文章

  1. 【从零开始学BPM,Day2】默认表单开发
  2. 如何设置mysql远程访问及防火墙设置
  3. RGB颜色中的参数是变量的时候,为什么要加上两个+号在左右?
  4. 超好用的plsql设置
  5. C# 导出到Excel
  6. KVC 和 KVO 简单总结
  7. Trie树(字典树) 最热门的前N个搜索关键词
  8. JVM-2.Class文件结构
  9. JAVAEE学习——struts2_02:结果跳转方式、访问servletAPI方式、获得参数以及封装和练习:添加客户
  10. Web站点错误提示页面和默认访问页面设置
  11. oracle竖表转横表字段合并
  12. 线程相关函数(1)-pthread_create(), pthread_join(), pthread_exit(), pthread_cancel() 创建取消线程
  13. javascript 获取多种主流浏览器显示页面高度(转)
  14. Alpha版本 - 用户反馈
  15. tableView优化思路
  16. C#析构函数与Dispose
  17. Oracle DBA神器之Toad
  18. 使用ffmpeg实现对h264视频解码 -- (实现了一个易于使用的c++封装库)
  19. scp拷贝提示its a directory 错误
  20. 超全面的JavaWeb笔记day07<Java基础加强>

热门文章

  1. 基于python的App UI自动化环境搭建
  2. linux下源码安装rabbitMq
  3. Jenkins控制台乱码修改
  4. LeetCode 515. 在每个树行中找最大值(Find Largest Value in Each Tree Row)
  5. CSS样式三种形式222
  6. .net framework 4.0 安装一直失败,错误代码0x80240037,解决
  7. IDEA使用技巧--将本地项目和git远程项目关联
  8. C# 泛型集合排序
  9. mongodb入门基本语法
  10. python类中的__str__以及__repr__