DrawCall_draw a drawing

DrawCall_draw a drawing关于unity优化,DrawCall肯定占了比较重要的一部分,下面我们就简单了解一下什么是Drawcall。什么是DrawCall?在电脑运行层面理解:rawcall是CPU对底层图形绘制接口的调用命令GPU执行渲染操作,渲染流程采用流水线实现,CPU和GPU并行工作,它们之间通过命令缓冲区连接,CPU向其中发送渲染命令,GPU接收并执行对应的渲染命令。这里drawcall影响绘制的原因主要是因为每次绘制时,CPU都需要调用drawcall而每个drawcall都需要很多准备工作,检测渲染状态、提交

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

关于unity优化,DrawCall肯定占了比较重要的一部分,下面我们就简单了解一下什么是Drawcall。

什么是DrawCall?

在电脑运行层面理解:Drawcall是CPU对底层图形绘制接口的调用命令GPU执行渲染操作,渲染流程采用流水线实现,CPU和GPU并行工作,它们之间通过命令缓冲区连接,CPU向其中发送渲染命令,GPU接收并执行对应的渲染命令。
这里drawcall影响绘制的原因主要是因为每次绘制时,CPU都需要调用drawcall而每个drawcall都需要很多准备工作,检测渲染状态、提交渲染数据、提交渲染状态。而GPU本身具有很强大的计算能力,可以很快就处理完渲染任务
在unity运行层面:,每次CPU准备数据并通知GPU的过程就称之为一个DrawCall。
具体过程就是:设置颜色–>绘图方式–>顶点坐标–>绘制–>结束,所以在绘制过程中,如果能在一次DrawCall完成所有绘制就会大大提高运行效率,进而达到优化的目的。

DrawCall过多会怎样?

如果Draw Call的数量太多,CPU就会把大量时间花费在提交Draw Call 上,造成CPU的过载。

如何减少DrawCall?

核心思想:还是运用批处理的方法吧,尽量把小的DrawCall合并到一个大的DrawCall中
(1)避免使用大量很小的网格。当不可避免的需要使用很小的网格结构时,考虑是否可以合并它们。

(2)避免使用过多的材质。尽量在不同的网格之间共用同一个材质。
(3)合并本身有消耗,因此尽量在编辑器下进行合并。

总结

用了很长时间的drawcall也没有仔细分析过,今天又听到了有人聊关于drawcall的知识借此巩固一下,自己懒得码字观看借用了很多关于两位大神关于drawcall的分析,这里附上原文链接:
原文链接:https://blog.csdn.net/yu1368072332/article/details/85676537
原文链接:https://blog.csdn.net/srk19960903/article/details/73457321

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/191937.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • word去掉万恶的域代码

    word去掉万恶的域代码背景:写论文使用mathtype插入公式后,有时候会显示域代码更新软件环境:macos10.14.6,word16.45解决过程:刚开始在域代码那里接受修订,然后重新打开word还是现实域代码,去网上找了教程(mac下)先选中,然后command+shift+F9解决了问题。如果是windows应该是ctrl+shift+F9(我没试过哈,猜的)…

    2022年6月6日
    47
  • 从零开始学android编程之Toast提示信息框「建议收藏」

    从零开始学android编程之Toast提示信息框「建议收藏」Toast类可以在程序界面上显示一个简单的提示信息,这个提示信息框用于向用户生成简单的提示信息。1创建包含信息的提示框通过Toast类的静态方法makeText()创建信息提示框,该提示框中包含了指定的信息。该方法的格式为publicstaticToastmakeText(Contextcontext,CharSequencetext,intduration);其

    2022年6月10日
    56
  • java如何访问private方法_java什么叫方法重写

    java如何访问private方法_java什么叫方法重写当Java的类有一个方法的访问修饰符是private,我们在写测试类时该怎样对它进行测试吗?道难是先将它的修饰符改成public,然后在做完测试之后再将其改回public,其实完全不用这样做,我们在编写测试类的时候只要将其私有方法抽出,让其可以访问,就可以按要求进行测试了.开始我们先写一个被测试类,如下:package com.srcopen.test;public class Exa

    2022年9月1日
    5
  • 手把手教你python画图(精简实例,一看就懂)

    手把手教你python画图(精简实例,一看就懂)1、不叨叨,直接上代码importmatplotlib.pyplotaspltx=[1,2,3,4,5]y=[0,3,2,7,9]plt.figure()plt.plot(x,y,’r-‘,lw=5)plt.show()2、结果图

    2022年6月2日
    44
  • Eclipse中使用SVN Eclipse配置SVN[通俗易懂]

    Eclipse中使用SVN Eclipse配置SVN[通俗易懂]Eclipse集成SVN文章目录Eclipse集成SVN一、安装SVN二、导入Eclipse中的项目到SVN三、检出Checkout项目到Eclipse中四、提交Commit修改后的内容到服务器五、在Eclipse中执行update更新代码六、在Eclipse中解决冲突七、在Eclipse中恢复历史版本一、安装SVN二、导入Eclipse中的项目到SVN三、检出Checkout项目到Eclipse中四、提交Commit修改后的内容到服务器五、在Ec

    2022年9月26日
    6
  • matlab归一化方法,数据归一化的基本方法

    matlab归一化方法,数据归一化的基本方法1.线性归一化简单公式表达:y=(x-minValue)/(maxValue-minValue)其中,x是归一化之前的数据,y是归一化之后的数据,maxValue和minValue分别对应这一组数据中的最大值和最小值。范围:[0,1]。适用于:把原来数据等比例缩放限定在某一范围内,在不涉及距离度量和协方差计算的时候使用。2.标准差归一化简单公式表达:y=(x-μ)/σ其中,…

    2022年6月23日
    193

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号