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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • iphone上的设备管理去哪里了_设备管理在哪里

    iphone上的设备管理去哪里了_设备管理在哪里正常是没有设备管理的选项的,当你的iPhone上有未信任程序(已经安装好的才行,正在下载/安装的都不算)时才会有这个选项设置>通用>设备管理

    2022年8月1日
    4
  • Effective C++ 条款24

    Effective C++ 条款24

    2022年1月19日
    67
  • 郑州java面试难吗_java开发人员培训机构

    郑州java面试难吗_java开发人员培训机构前言周末花了2天时间学习了额RabbitMQ,总结了最核心的知识点,带大家快速掌握RabbitMQ,整理不易希望帮忙点赞,转发,分享下,谢谢目录进入SpringBoot世界讲述Sping、SpringBoot和SpringCloud之间的关系,还重点讲述了如何利用开发工具(如IDEA)来实现开发,如何通过API文档来寻找类对象方法,告诉我们在开发过程中如何学习、发现和解决问题需要免费领取这份Alibaba架构师耗时一年整理的《SpringBoot实战,让你的开发像搭积木一样简单

    2022年9月28日
    2
  • cloudsim仿真平台扩展的例子_云编程

    cloudsim仿真平台扩展的例子_云编程CloudSim3.0.3的网络编程详解—以*org.cloudbus.cloudsim.examples.network.NetworkExample1为例

    2022年10月12日
    3
  • JAVA线程通信详解[通俗易懂]

    JAVA线程通信详解[通俗易懂]目录一、概述二、wait/notify机制三、Condition四、生产者/消费者模式五、线程间的通信——管道六、方法Join的使用一、概述    线程与线程之间不是相互独立的个体,它们彼此之间需要相互通信和协作,最典型的例子就是生产者-消费者问题:当队列满时,生产者需要等待队列有空间才能继续往里面放入商品,而在等待的期间内,生产者必须释放对临界资源(即队列…

    2022年6月19日
    28
  • SQL2000 数据库日志 清空

    SQL2000 数据库日志 清空

    2021年4月30日
    122

发表回复

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

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