美文网首页
移动平台渲染爬坑知识点汇总

移动平台渲染爬坑知识点汇总

作者: 龙凕 | 来源:发表于2020-02-24 14:06 被阅读0次

Shader部分

预编译指令 fragmentoption

  1. ARB_precision_hint_nicest
    fragment使用最高精度,fp32,降低性能,增强效果,精度不足可能是这个原因
  2. ARB_precision_hint_fastest
    fragment使用最低精度,fp16,提高性能和速度

以上两个指令不能同时使用

  • fx10 定点数
  • fp16 半精度浮点数
  • fp32 单精度浮点数
  • fp64 双精度浮点数

在 ARM Mali, Imagination PowerVR 这种移动GPU上,都有独立的fp16单元,也就是说,fp16是从硬件电路级别上被支持的,这就意味对其的处理会非常的快。

贴图采样

移动平台默认低精度,如果有精度要求可以指定float高精度,比如sampler2D_float。最好针对各种平台都做一遍宏定义,d3d metal vulkan glcore gles3 gles

GLSL HLSL

framebuffer fetch,HLSL中的in_VCOLOR0在GLSL中不认识,需要替换为in_COLOR0

GPU

Mali G76及以下

  1. 不支持inout语法

高通GPU驱动

1.Unity GPU instance中的color使用了bitfieldExtract函数,在高通上的实现是错的,需要自行替换。

  1. 510及以下对于framebuffer fetch的支持有问题。有alpha test的像素点会失效。

Arm GPU

1.不支持SSBO,无法使用GPU instance,无法使用GPU粒子。改成非GPU粒子,自己输入矩阵数值。

A11

  1. A11处理器在采样深度图的时候,和a系列其他款都有细微精度差异。后来改为a11使用point,其他使用bilinear

相关文章

网友评论

      本文标题:移动平台渲染爬坑知识点汇总

      本文链接:https://www.haomeiwen.com/subject/hffcqhtx.html