当前位置: 首页 > news >正文

网站正在建设中亚洲深圳最新消息

网站正在建设中亚洲,深圳最新消息,网页模板网站生成,怎样制作购物网站 微信转发[原理类似spine]我一直工作于unity5支持的Standard Shader(标准着色器)上,并且做了一些关于如何有效地减少draw call的测试,在Unity5全新的standard shader上,实际成果相当可观。我们先科普一下standard shader。Stand…
[原理类似spine]
我一直工作unity5支持的Standard Shader(标准着色器)上并且做了一些关于如何有效地减少draw call测试在Unity5全新的standard shader上实际成果相当可观。
 
我们先科普一下standard shader。Standard Shader是个基于物理的着色器, 物理渲染和当今的主流光照计算最大的区别就是,当今的lambert blinn phone基本上是基于模拟的模型,就是尽可能的去模拟我们看上去的物体反射的颜色,甚至可以说是拍脑袋的模型,用于欺骗我们的眼睛,而基于物理的光照计算则是依据了光线传播的物理特性,更加贴近于真是的光照情况,虽然在实现上还是用了一些近似计算。所以物理渲染在表现自然界的物体时尤其的看上去更加真实。
 
这是个小视频介绍了下standard shader可以实现的效果,官方的U5Shader视频
 
这个standard shader“变化”是变得更快还是更慢,取决于贴图你使用的texture slots。尽管如此,这两种着色器是不同的(即使他们使用的都是standard shader):


<ignore_js_op> 

这两个shader(即使他们是”Standard shader”)
 
当渲染场景时他们是完全不同的shader,因此如果我们想减少一些draw call(setpass call),必须采用完全不同的处理方式。
在谈到如何在Unity5减少draw call之前,我将探讨无论shader是否被使用时怎样减少draw calls,然后讨论在Unity5中使用Standard shader减少draw calls.

 

 
在Unity中用手动方式降低Draw Call
如果我们想减少draw call,在Unity中或者在其他引擎上,可以尽量减少使用的material(材质)。基本上,这些可以还原为这些简单的步骤:
1.整理所有的material并且通过他们的shader类型收集他们
2.第二步:对于使用相同shader的材质,将他们的贴图做成一个图集(Atlas)
3.创建一个material,它将包含shader和图集(Atlas)
4.网格的所有UV重新映射,使用Shader适配图集的坐标
5.用映射的网格创建出步骤3的material

 

第一步:整理所有的material,并收集它们的shader类型
我打算用一个简单的场景解释,这个场景所有网格使用的是相同类型但不同texture的material.
在我们的情况下,我们将使用这个场景(其中包含4个material,其中每一个都具有Bumped Diffuse shader):
    <ignore_js_op>          
注意SetPass calls:4         
  
所以我们要对这一场景的这些material进行处理:   
 
第二步:对于使用相同shader的材质,将他们的贴图做成一个图集(Atlas)
在我们的例子中,我们有2个texture,每一个着色的漫反射贴图使用一个正常的法线贴图和一个基本texture,所以我们需要做的是将这两个texture这样设置:         
   <ignore_js_op> 
保存这些texture在项目视图中,我们一会儿将需要它们:
 
<ignore_js_op>             
        
第三步:创建一个material,它将包含shader和图集(Atlas)
创建一个material,并将两张贴图和Shader(Bumped Diffuse)赋予给材质:      
   <ignore_js_op>             
 
第四步:网格的所有UV重新映射,使用Shader适配图集的坐标
这个修改可以用任何建模软件(Maya/ 3D studio / Max / Blender /等)来操作。
这是很无聊的又很必要的步骤,包括修改网格的UV坐标并且使它们适配texture图集(我们第二步创建的texture图集)。
所以我们要做的是,将每一个UV坐标设置为[ 0,0–1,1 ],我们可以将他们重新定位在一个[ 0,0-1,1 ]的较小的子范围中,这样就与步骤2中创造的图集相匹配。

 

<ignore_js_op>            
接着……我们为每个网格共享相同的shader。            
 
第五步:用你映射的网格创建出步骤3的material         
我们基本上完成了!我们还有几步要做:            
1。选择你所有的UV映射网格,用他们替换旧网格的位置并且停用旧的网格
        
2。将步骤3创造的材质赋予所有的UV映射网格。   
<ignore_js_op>          
 
到了这里,我们就结束了!,现在让我们点击play看看:
            
<ignore_js_op>      
在优化前,如果你回到步骤1,我们有4个SetPass call,现在优化已经完成,我们最终就有1个 SetPass call!太惊人了!在这种情况下,它的75%draw call减少了。            
在Unity5中减少绘制调用的标准着色        
在这里,你应该知道多了解些在standard shader上优化过程是如何做的。我在开头写了,standard shader内部“变化”和越来越快/慢,取决于你使用的texture slots。就是说,我们必须收集我们对象的material,如果他们使用了texture也使用的Standard shader。
通过使用的texture归类这些对象,我们只需要遵循我们用于所有shader的以下几个步骤:
            
1.整理所有的material并且通过他们的shader类型收集他们
2.第二步:对于使用相同shader的材质,将他们的贴图做成一个图集(Atlas)
3.创建一个material,它将包含shader和图集(Atlas)
4.网格的所有UV重新映射,使用Shader适配图集的坐标
5.用映射的网格创建出步骤3的material
           
这是我为测试创建的一个小场景:
<ignore_js_op>          
如果你比较原始场景的draw call(91)和优化后场景的draw call(22),你可以看到,有75%draw call减少了!,太惊人了!   
此外,如果你可以尝试尽可能多的组合网格,这也有很多帮助!。            
 

原文链接:http://www.pencilsquaregames.com ... ss-calls-on-unity5/



http://www.lbrq.cn/news/2740555.html

相关文章:

  • 和优网站建网站建设域名注册人查询
  • wordpress 和dokuwiki河南智能seo快速排名软件
  • 微信网站制作合同举一个病毒营销的例子
  • 企业网站内容如何更新软文类型
  • 网站seo技术能不能赚钱免费下优化大师
  • 网站建设维护工作搜索关键词优化服务
  • 哔哩哔哩适合夫妻看的电视剧seo应该如何做
  • cms做门户网站朋友圈软文
  • 网页设计一张多少钱上海seo公司哪家好
  • 政府网站建设情况怎样做好网络推广呀
  • 哪些网站的做的好看的图片全球外贸采购网
  • php网站建设公司信息流广告的特点
  • 上海网站建设运营站霸网络搜索引擎搜索
  • 为什么做网站网站整站seo定制
  • 电子商务网站开发论文报告关键词搜索爱站
  • 米拓网站建设教程计算机培训班有用吗
  • 镜像网站做优化同城推广
  • 网站的信任度电商网站分析
  • 受欢迎的常州做网站上海网站营销seo电话
  • 网络规划设计师考试资料百度云新手学seo
  • 网页布局有哪些山西seo优化
  • 东莞做网站卓诚营销课程
  • 龙岗做商城网站建设seo推广软件费用
  • 如何优化网站关键词排名平台做推广的技巧
  • 网站平台做推广方案设计国际新闻最新消息今天 新闻
  • 南城网站建设百度爱采购排名
  • 深圳网站建设 卓越创图们网络推广
  • 中企动力中山分公司网站网站制作的流程是什么
  • 济南网站建设服务商北京seo相关
  • 凡客做网站怎么样爱站网seo工具
  • 要想在Trae运行Java程序,该怎样配置Java环境?
  • 登录与登录校验:Web安全核心解析
  • 电路方案分析(二十一)笔记本电脑散热风扇参考设计
  • 谈谈《More Effective C++》的条款30:代理类
  • 第1篇_Go语言初探_环境搭建与HelloWorld
  • Android 欧盟网络安全EN18031 要求对应的基本表格填写