Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3D:UGUI将材质应用于UI图像元素的好处_Unity3d - Fatal编程技术网

Unity3D:UGUI将材质应用于UI图像元素的好处

Unity3D:UGUI将材质应用于UI图像元素的好处,unity3d,Unity3d,UI Image()对象具有材质和源图像属性 两个问题: 如果我只是在UI中渲染纯正方形纯色元素(即 背景或非圆形按钮)设置 非空源图像?我想也许添加一个附加到中央精灵贴图的白色“填充”精灵可能会减少绘制调用或其他,但它似乎与只保留精灵为空没有任何效果 在同一个纯正方形纯色元素中,使用非空有什么好处吗 材料?如中所示,Unity是否提供了默认UI着色器 仅使用空设置是否会产生额外的性能值 1) 是的,使用sprite atlas中的白色填充精灵,以便UI引擎可以更轻松地将这些绘制调用批处理在一起

UI Image()对象具有材质和源图像属性

两个问题:

  • 如果我只是在UI中渲染纯正方形纯色元素(即 背景或非圆形按钮)设置 非空源图像?我想也许添加一个附加到中央精灵贴图的白色“填充”精灵可能会减少绘制调用或其他,但它似乎与只保留精灵为空没有任何效果

  • 在同一个纯正方形纯色元素中,使用非空有什么好处吗 材料?如中所示,Unity是否提供了默认UI着色器 仅使用空设置是否会产生额外的性能值

  • 1) 是的,使用sprite atlas中的白色填充精灵,以便UI引擎可以更轻松地将这些绘制调用批处理在一起。但是不要期望从中获得太多的性能提升,除非你有很多这样的提升


    2) 是的,我编写了两个特殊的超级简单着色器:一个用于不可见图像(用于隐藏按钮),另一个用于不透明图像。在iPad3上有12个重叠不透明图像的测试场景中,这大大提高了性能,帧渲染时间从26ms降低到4ms,从38fps大幅增加到理论上的250fps。

    您能参考任何支持#1的内容吗?我已经在各种资产和诸如此类的东西中看到了“填充”精灵,但我无法在任何实际测试中验证它对批处理有任何影响。如果不能证明其好处,那么这样做毫无意义。。。闻起来有些老派的技巧在Unity5.x中挥之不去,这在Unity5.x中很可能是不必要的。关于#2,听起来很性感。。。1:如果我有11个没有图像的精灵和1个中间有图像的精灵。您可以在帧调试器中看到,它创建了3倍的“Draw Mesh”,但如果所有图像都在同一个图集中,则只有1倍的“DrawMesh”。