zoukankan      html  css  js  c++  java
  • 不同显卡对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的扩展 各个平台

    有个相关扩展

     GL_NV_fbo_color_attachments

    我不得不说 android上真乱

    看来ogles上用的时候就是query一下。。所以尽量用4张。。。就不用这么麻烦了 像shadowmask就是放在第五张 不支持mrts>8的就 没这个功能了

    我准备用4张!

  • 相关阅读:
    ibatis学习笔记
    记ibatis使用动态列查询问题(remapresults)
    jQuery(九)、ajax对象操作
    jQuery(八)、ajax
    jQuery(七)、效果和动画
    jQuery(六)、事件
    jQuery(五)、筛选
    jQuery(四)、文档处理
    jQuery(三)、属性、CSS
    jQuery(二)、选择器
  • 原文地址:https://www.cnblogs.com/minggoddess/p/11303464.html
Copyright © 2011-2022 走看看