不同显卡对mrt 的支持
ios bits限制大概512bits 低端256bits
mali 也是bits限制 2017年 Mali-T760 128bits
adreno
android显卡4 肯定可以 因为deferred 里面 shadowmask放第五张
这样有些机型不支持 我记得unity里面有判断的UNITY_ALLOWED_MRT_COUNT
它是這樣定義的
#if (defined(SHADER_API_GLES3) && !defined(SHADER_API_DESKTOP)) || defined(SHADER_API_GLES) || defined(SHADER_API_N3DS)
#define UNITY_ALLOWED_MRT_COUNT 4
#else
#define UNITY_ALLOWED_MRT_COUNT 8
#endif
SHADER_API_GLES OpenGL ES 2.0
SHADER_API_GLES3 OpenGL ES 3.0/3.1
看這意思 在mobile上 mrt個數限制只跟 opengles2 3 這樣有關係
3.2之前都是4 如果3.2包在SHADER_API_GLES3里 那android都只能4张rt。。。。
它这代码写的真有意思ogles2不支持mrt吧。。。它还开四张rt干嘛?(有些硬件厂商用扩展给自己的ogles2加了 mrt。。。)
gl_MaxDrawBuffers—The maximum number of multiple render targets (MRTs) supported. The minimum value supported by all ES 3.0 implementations is 4
Page285 OpenglES 3.0 Programming Guide
ogles2.0不支持mrt gl_MaxDrawBuffers=1
ogles3.0/3.1支持mrt gl_MaxDrawBuffers=4
ogles3.2
gl_MaxDrawBuffers
GL_MAX_DRAW_BUFFERS
GL_MAX_COLOR_ATTACHMENTS
https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glDrawBuffers.xhtml
可以query
http://web.eecs.umich.edu/~sugih/courses/eecs487/common/notes/APITables.xml
https://www.khronos.org/registry/OpenGL/index_gl.php
宝贝
https://www.khronos.org/registry/OpenGL/extensions/EXT/EXT_draw_buffers.txt
有很多drawbuffers的扩展 各个平台
有个相关扩展
我不得不说 android上真乱
看来ogles上用的时候就是query一下。。所以尽量用4张。。。就不用这么麻烦了 像shadowmask就是放在第五张 不支持mrts>8的就 没这个功能了
我准备用4张!
最新文章
- 用spm2构建seajs项目的过程
- CSS之深入探究Position
- RequireJS中的require如何返回模块
- git管理测试生产环境代码
- Unable to load native-hadoop library for your platform... using builtin-Java classes where applicable
- MySQL bin-log 日志清理方式
- IE=EmulateIE8和IE=IE8的区别
- webservice简单总结
- 重载操作符 operator overloading 学习笔记
- HDU 2993 MAX Average Problem(斜率优化DP)
- windows10 离线包安装net3.5
- nfs服务端配置文件详解
- 前端随手优化不完全篇-SEO篇
- Mybatis和JDBC区别
- iOS中 MediaPlayer framework实现视频播放 韩俊强的博客
- 为 docker 中的 nginx 配置 https
- Git bash命令
- Anaconda下载地址
- 【ORACLE】解锁scott帐号
- Msfvenom学习总结
热门文章
- [CF429E]Points ans Segments_欧拉回路
- oracle常用命令(1)
- Chrome浏览器控制台报 POST http://*** net::ERR_BLOCKED_BY_CLIENT
- 新拉的项目在idea中启动时报如下错误:org.apache.catalina.core.ContainerBase.addChildInternal ContainerBase.addChild: start:
- 【浅析C++11】std::function和std::bind
- php验证手机号记录
- hdu 3500 还是搜索
- http 协议相关问题
- vue-动态路由+动态组件+动态页面
- 系统性能分析-vmstat命令详解