精华内容
下载资源
问答
  • 一将之合还是一合之将
    千次阅读
    2020-05-22 11:39:03

    git将一个分支合入到另一个分支

    将分支a合入到分支b

    1.首先需要切到分支b,然后pull一下,使b分支代码与远程b分支代码一致;准备就绪,在b分支下创建一个新的分支async/a-to-b

    // 创建并cd到新分支上
    git checkout -b async/a-to-b
    

    2.实行merge将远程分支amerge到本地新分支上

    git merge origin/a
    

    3.你可以通过vscode去解决代码上的冲突

    // vscode上解决冲突
    // 解决冲突按各自喜欢
    

    4.加入本地缓存

    git add .
    

    5.再次merge,看下冲突是否解决完,控制台有标识,此处不再截图

    git merge origin/a
    

    6.修改提交记录

    git commit --amend
    

    7.推代码

    git push origin async/a-to-b -f
    
    更多相关内容
  • 通常我们会各个图单独画出来看效果,但是写文章过程中,经常为了排版等问题,需要几个图分别以子图的形式个图,这时候使用subplot,然后各个图重新在子图中画出,但是这种方法,我们需要这些的画图...

    解决问题:已经画好了多个figure,在不重复添加画图程序时,将多个图合为一个图。

    通常我们会将各个图单独画出来看效果,但是写文章过程中,经常为了排版等问题,需要将几个图分别以子图的形式合为一个图,这时候使用subplot,然后将各个图重新在子图中画出,但是这种方法,我们需要将这些的画图程序重新写一遍或者复制一遍,在这里我们使用一个创建子对象的方法实现,不需要再添加画图程序。

    MATLAB中的图像,实际上是一个对象集合,打开任意图像,输入gcf就显示当前图像的对象组成:

    ef5746022b4824207d378d056e1607c4.png

    其中与图像内容相关的子对象为:Children和CurrentAxes。

    每个坐标轴对象(CurrentAxis)又有自己的子对象:

    9956b01630c3984216aabfa6ca3f5207.png

    解决方法:

    如果将两个图做为子图重绘到新的figure,即需要将其中的坐标轴对象导出,复制到新的figure的子图中。

    程序如下:

    clear;

    clc;

    close all;

    t = 0:0.001:10;

    y1 = sin(t);

    y2 = cos(t);

    figure(1);

    plot(t,y1);

    figure(2);

    plot(t,y2);

    fig(1) = get(figure(1), 'CurrentAxes');

    fig(2) = get(figure(2), 'CurrentAxes');

    figure(3);

    subplot(2,1,1);

    axChildren = get(fig(1),'Children');

    copyobj(axChildren, gca);

    subplot(2,1,2);

    axChildren = get(fig(2),'Children');

    copyobj(axChildren, gca);

    程序运行结果:

    figure 1:

    6905c67b18912bba0d31b36385862410.png

    figure 2:

    377dcd4c07134ffbfff0555e3b06de6e.png

    figure 3:

    85acd507faf38ac2b5382b8f212b7829.png

    标签:axChildren,figure,get,对象,画图,图以子,fig,MATLAB

    来源: https://www.cnblogs.com/pupilLZT/p/12542506.html

    展开全文
  • Unity 性能优化之合

    千次阅读 2022-04-07 23:06:49
    动态批与静态批其本质是对多次绘制请求,在允许的条件下进行合并处理,减少cpu对gpu绘制请求的次数,达到提高性能的目的。 首先,啥是批? 批量渲染其实是个老生常谈的话题,它的另个名字叫做“批”。...

    前言

    动态合批与静态合批其本质是对将多次绘制请求,在允许的条件下进行合并处理,减少cpu对gpu绘制请求的次数,达到提高性能的目的。

    首先,啥是合批?

    批量渲染其实是个老生常谈的话题,它的另一个名字叫做“合批”。在日常开发中,通常说到优化、提高帧率时,总是会提到它。

    为啥要合批?

    批量渲染是通过减少CPU向GPU发送渲染命令(DrawCall)的次数,以及减少GPU切换渲染状态的次数,尽量让GPU一次多做一些事情,来提升逻辑线和渲染线的整体效率。但这是建立在GPU相对空闲,而CPU把更多的时间都耗费在渲染命令的提交上时,才有意义。

    调用Draw Call性能消耗原因是啥?

    我们的应用中每一次渲染,进行的API调用都会经过Application->Runtime->Driver->显卡(GPU),其中每一步都会有一定的耗时。
    每调用一次渲染API并不是直接经过以上说的所有组件通知GPU执行我们的调用。Runtime会将所有的API调用先转换为设备无关的“ 命令”(之所以是设备无关的,主要是因为这样我们写的程序就可以运行在任何特性兼容的硬件上了。运行时库使不同的硬件架构相对我们变的透明。)
    Draw Call性能消耗原因是 命令从Runtime到Driver的过程中,CPU要发生从用户模式到内核模式的切换。
    模式切换对于CPU来说是一件非常耗时的工作,所以如果所有的API调用Runtime都直接发送渲染命令给Driver,那就会导致每次API调用都发生CPU模式切换,这个性能消耗是非常大的。Runtime中的Command Buffer可以将一些没有必要马上发送给Driver的命令缓冲起来,在适当的时机一起发送给Driver,进而在显卡执行。以这样的方式来寻求最少的CPU模式切换,提升效率。

    每次调用DC

    将一些没有必要马上发送给Driver的命令缓冲起来,在适当的时机一起发送给Driver

    解决渲染Batch过多的主要方法:

    • 一个是合批,
    • 一个是对Driver进行优化,降低Driver的性能开销。

    合批优化的是CPU还是GPU?

    合批只是对CPU的优化,与GPU没有任何关系

    合批是节省了CPU的相关准备工作的工作量。

    合批后,经过VS,PS,尝试测试,模板测试后,此时已没有了纹理,顶点,索引的概念,只剩下一个个孤立的像素,各像素间没有任何关系了。像素送到GPU后进行批量处理,呈现到屏幕硬件上。因此合批与GPU没有任何关系,也几乎没有影响。不管是一批还是多批,最终在此帧送到GPU的像素数量是相等的,数据是相同的。合批与否,对GPU的影响仅是像素到达的慢了还是快了,几乎不影响GPU的性能


    目前比较新的图形API如:DirectX12、Vulkan、Metal,在Driver上的性能消耗已经降低了很多。但是通过合批来降低渲染的Draw call仍然是十分必要的。这也是我们对Draw call优化唯一能够做的事情。接下来我们介绍一下几种常见的合批处理。

    合批技术分离线合批和实时合批。

    一、离线合批(Offline Batch)

    离线合批就是在游戏运行前,先用工具把相关资源做合批处理,以减轻引擎实时合批的负担。

    适合离线合批的是静态模型和场景物件。如场景地表装饰面:石头/砖块等等。

    离线合批方式有:

    • 1. 美术利用专业建模工具合批。如3D Max/Maya等。
    • 2. 利用引擎插件或工具。如Unity的插件MeshBaker和DrawCallMinimizer,可以将静态物体进行合批。
    • 3. 自制离线合批工具。如果第三方插件无法满足项目需求,就要程序专门实现离线合批工具。

    二、实时合批(Runtime Batch)

    Unity引擎内建了两种合批渲染技术:Static batching(静态合批)和Dynamic batching(动态合批)。

    2.1 静态合批(Static batching)

    静态合批是勾选Static,Unity在Build的时候,会自动下生成合并的网格,并将它以文件形式存储合并后的数据,这样在当场景被加载时,一次性提交整个合并模型的顶点数据,根据引擎的场景管理系统判断各个子模型的可见性。然后设置一次渲染状态,调用多次Draw call分别绘制每一个子模型。

    2.1.1 使用

    PlayerSettings中开启static batching,对需要静态合批物体的Static打钩即可

    通过勾选开关标记单位参与静态合批

    2.1.2 前提:

    共享相同的材质
    运行时不能移动,旋转或缩放

    2.1.3 优点

    静态合批采用了以空间换时间的策略来提升渲染效率。

    静态合批并不减少Draw call的数量,但是由于我们预先把所有的子模型的顶点变换到了世界空间下,并且这些子模型共享材质,所以在多次Draw call调用之间并没有渲染状态的切换,渲染API会缓存绘制命令,起到了渲染优化的目的。另外,在运行时所有的顶点位置处理不再需要进行计算,节约了计算资源。

    2.1.4 缺点

    包含静态合批的场景体积大了一丢丢

    • 打包之后体积增大,应用运行时所占用的内存体积也会增大
    • 需要额外的内存来存储合并的几何体。
    • 注意如果多个GameObject在静态批处理之前共享相同的几何体,则会在编辑器或运行时为每个GameObject创建几何体的副本,这会增大内存的开销。例如,在密集的森林级别将树标记为静态可能会产生严重的内存影响
    • 静态合批在大多数平台上的限制是64k顶点和64k索引

    2.2 动态合批(Dynamic batching)

    动态合批是专门为优化场景中共享同一材质的动态GameObject的渲染设计的。目标是以最小的代价合并小型网格模型,减少Drawcall。

    动态合批的原理也很简单,在进行场景绘制之前将所有的共享同一材质的模型的顶点信息变换到世界空间中,然后通过一次Draw call绘制多个模型,达到合批的目的。模型顶点变换的操作是由CPU完成的,所以这会带来一些CPU的性能消耗

    2.2.1 使用

    Unity自动处理

    2.2.2 前提

    共享相同的材质

    2.2.3 限制

    1,900个顶点以下的模型。
    2,如果我们使用了顶点坐标,法线,UV,那么就只能最多300个顶点。
    3,如果我们使用了UV0,UV1,和切线,又更少了,只能最多150个顶点。
    4,如果两个模型缩放大小不同,不能被合批的,即模型之间的缩放必须一致。
    5,合并网格的材质球的实例必须相同。即材质球属性不能被区分对待,材质球对象实例必须是同一个。
    6,如果他们有Lightmap数据,必须相同的才有机会合批。
    7,使用多个pass的Shader是绝对不会被合批。因为Multi-pass Shader通常会导致一个物体要连续绘制多次,并切换渲染状态。这会打破其跟其他物体进行Dynamic batching的机会。
    8,延迟渲染是无法被合批。

    除了上面这两种合批技术外,Unity还有一些其他合批技术,这边只做介绍,不进行展开

    运行时静态合批(Static Batching In Runtime):其实就是运行时手动代码合批。
    Unity还提供了一种灵活度很高的运行时静态合批方法。我们可以在运行时调用合并函数: StaticBatchingUtility.Combine实现手动将一些模型合并成一个完整模型。

    三、GPU Instancing 简单介绍

    GPU Instancing 没有动态合批那样对网格数量的限制,也没有静态网格那样需要这么大的内存,它很好的弥补了这两者的缺陷,但也有存在着一些限制,我们下面来逐一阐述。

    与动态和静态合批不同的是,GPU Instancing 并不通过对网格的合并操作来减少Drawcall,GPU Instancing 的处理过程是只提交一个模型网格让GPU绘制很多个地方,这些不同地方绘制的网格可以对缩放大小,旋转角度和坐标有不一样的操作,材质球虽然相同但材质球属性可以各自有各自的区别。

    但是旧版本显卡可能不支持,自己写Shader也需要开启GPU Intancing 支持如下图:

     

    展开全文
  • 硬盘引导二合一安装黑群晖

    万次阅读 2020-03-03 09:55:39
    unas3.11功能太少,网上教程太少,索性安装黑群晖,按照前人的经验,硬盘格式化失败,错误代码35,才动了硬盘安装的想法。网上教程也比较少,所以写这篇文章供参考。...第个文件夹存放了镜像文件,...

    unas3.11功能太少,网上教程太少,索性安装黑群晖,按照前人的经验,硬盘格式化失败,错误代码35,才动了硬盘安装的想法。网上教程也比较少,所以写这篇文章供参考。
    工具:img写盘工具
    dsm镜像
    windowsPE //安装windowspe的U盘容量至少16G
    用于部署的机器大于的硬盘大于16G

    //要用到的资源
    安装
    1.下载提供的资源文件,里面有两个文件夹
    第一个文件夹存放了镜像文件,第二个文件夹是Img写盘工具,
    将它们全部下载,镜像文件是一个压缩包,解压后14.2G所以我要求安装windowspe的U盘至少16G,当然你也可以不选择存放在U盘,只要能让pe系统使用就行。用于安装系统的硬盘必须大于16g ,将要用的资源存放在pe系统的U盘内。在这里插入图片描述
    2.在U盘上安装winndowspe,什么pe系统都行,要有diskgenius这款工具。
    3.启动pe系统,打开DG,将要用于安装系统的硬盘的全部分区删除。
    4.打开img写盘工具,将安装镜像写入硬盘。写入完成后重启。
    很多步骤没图,我安装时没有截图,现在也不可能重新部署一遍黑群晖,不建议小白使用,当然能看到这篇文章的人应该已经看过网上的其他教程了。
    参考文章:黑群晖DSM6.17硬盘引导二合一镜像以及安装方法 这篇文章是有图的,我认为作者有一些东西没说清楚,所以写这篇文章做补充。

    展开全文
  • 原标题:分钟学会磁盘区,妈妈再也不用担心!自从上篇文章《分钟搞定电脑磁盘分区,再也不求人!》中小编讲到了,日常生活中我们的电脑该如何区分区...首先了解一下什么是“磁盘区”硬盘区简单说就是...
  • 本发明涉及种无源多路音频路处理模块,属于音频路设计领域。背景技术:在现有技术中,通过两种方案来实现音频路的处理,种是有源多路音频路:采用混合放大电路,即经过运算放大器对每一路信号进行整合和...
  • Java stream两个list个list

    万次阅读 2019-07-02 10:59:48
    示例:两个bean,个汇总bean @Data public class RepaymentPlanUserDTO implements Serializable { /** * 当前期数 **/ private Integer period; /** * 应还日期 按账单生成规则进行生成,格式:yyyy-mm...
  • 宙LuatIDE直播教程第

    万次阅读 2021-06-10 11:12:09
    行业福音,宙LuatIDE今日正式发布
  • 1、打开控制面板,搜索“电源” 2、点击“更改电池设置” 3、点击“更改计划设置” ... 5、点击“电源按钮和盖子”,选择“上盖子的操作”为:“不采取任何操作” 喜欢技术的,一起进群交流学习吧!!! ...
  • 现在的工作最重视的是什么?当然是工作能力和工作效率,很多使用Linux系统的小伙伴们都遇到同意个问题,想要导入...下面小编就教大家Linux系统中如何多个文件成为个,希望对大家有用!在iDB Cloud 中发现...
  • 注:库中需安装有xlwt 第步:安装库,安装代码:pip install xlrd, pip install pandas 代码演示: import xlrd import pandas as pd wb = xlrd.open_workbook("file_name.xls") #打开Excel 文件 df = pd.DataFrame...
  • 现在是无论是电商客服,微商客服,支付二维码等,可能会出现个公众号出现需要展示多个客服的情况,或是需要展示多种支付方式,但又不可能所有的客服二维码一一列出来,或各种支付二维码一一列出来,这个时候,...
  • 章 命题逻辑 1.4 析取范式与取范式

    千次阅读 多人点赞 2019-08-06 15:31:18
    1.4 析取范式与取范式 这小节内容较多,我们由浅入深的来。首先要明白简单析取式和简单取式的定义。 ...注意:个简单文字既是简单析取式,又是简单取式。 例如: p , ¬q既是...
  • 什么是游戏脚本? 游戏脚本基本只能做到和真实玩家一样的事情,只是不怕苦不怕累,能一直干活而已。由于不涉及修改游戏信息,因此也没有外挂的那些...这里就有个热血击辅助脚本,能够帮助玩家热血击挂机刷图、换
  • 多路监控视频信息化合成软件(以下简称“视频合成软件”)是款全自主研发的拥有自主知识产权的多路视频采集与应用系统信息化合成的软件,这里介绍该软件在驾驶人考试系统中的应用。 本视频合成软件可以同步监控...
  • Excel多个工作簿成为个工作表

    万次阅读 2020-08-21 14:02:20
    Excel多个工作簿成为个工作表 目录 前言 第步:多张工作簿合并成一个“汇总工作簿”,操作如下: 第二步:把多张sheet表合并成一张sheet工作表,操作如下: 总结 前言 在工作中,我们会遇到这种情况,...
  • Unity性能优化 :批篇

    千次阅读 2021-11-03 15:16:33
    Unity批小知识 前言 在在早期Unity中,对于批的处理手段主要是下面三种: Static Batching Dynamic Batching GPU Instancing 并且对于他们有着严格的使用限制,而在Unity推出SPR后,为了提升批的范围与效率...
  • 教你传奇区方法

    千次阅读 2021-07-30 07:25:29
    .打开老区1.连接老区并进入2....在线消息(s),然后准备好的区消息粘贴发送(例:本服务器合并至无忧网络. 玩家可自定义添加名为:网络 IP:125.91.123.13 请本区玩家及时登陆新区,本于今天下午2点后关闭,...
  • AIR105是宙LuatOS生态下的款芯片, 1月初上市, 开发板与摄像头一起搭售. 从配置信息看, 芯片性能相当不错: Cortex-M4F内核, 最高频率204Mhz, 片上内建640KB SRAM和4MB Flash. QFN88封装, 尺寸10x10mm, 56个可编程...
  • 大话西游手游2021年6月已经有过区了,小编每区时间、服务器列表都会给大家分享,之前只分享到5月份,这次来了解一下6月最新区列表。大话西游手游安卓通用版【点击下载】每年免费领鎏金宝鉴!送神兽...
  • 真实体验 AppCube + WeLink 发布款应用。 历史博客中橡皮擦已经完成过几篇 AppCube相关的博客了,具体清单如下所示,如果你希望了解一下关于 ...第次接触低代码平台 AppCube,还是有点门槛的丨【玩转应用魔方
  • 3月20日春分,正是人间好时节,场推迟的年度大会在期盼中如花绽放。 来自深圳、广州、合肥、杭州、郑州、北京等地的宙小伙伴们,纷纷汇聚上海总部——浦东盛大天地。 不少平日线上合作无间的小伙伴,今天却...
  • python 多个图片成为个视频

    万次阅读 2017-12-11 13:48:53
    参考python + opencv 图片保存为视频–2016年更新, code example 为:def imgs2video(imgs_dir, save_name): fps = 24 fourcc = cv2.VideoWriter_fourcc(*'MJPG') video_writer = cv2.VideoWriter(save_name, ...
  • Batch(批)全面讲解(

    万次阅读 2019-04-26 17:06:38
    批处理(Batch)就是对某对象进行批量的处理,本篇文章给大家介绍一下Batch的基本概念、Batch的特点和导致Draw call性能开销的主要原因。...调用次渲染API的绘制接口(如:Direct3D的DrawPrimitive/DrawIndexedPr...
  • 步:先切换到需要合并代码的哪个分支上 第二步:
  • 可以简单的理解为:批量渲染是通过减少CPU向GPU发送渲染命令...批后,经过VS,PS,尝试测试,模板测试后,此时已没有了纹理,顶点,索引的概念,只剩下个个孤立的像素,各像素间没有任何关系了。像素送到GPU后进行批

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 549,153
精华内容 219,661
关键字:

一将之合还是一合之将