自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

miaobeihai的博客

动脑,动手,开口

  • 博客(255)
  • 资源 (1)
  • 收藏
  • 关注

原创 动态规划阶段总结

1、Maximum Subarray,最大连续子序列class Solution {public:int maxSubArray(vector<int>& nums) {int n=nums.size();int dp[n]={0};dp[0]=nums[0];int maxum=nums[0];for(int i=1;i<n;i++){dp[i]=max(dp[i-1]+nums[i],nums[i]);maxum=max(maxum,dp

2020-07-16 23:22:24 484

原创 虚幻引擎4的实时渲染流程(直播总结)

直播地址:https://www.bilibili.com/video/av35615021/以上4副图为直播的精华。接下来记录一下直播的知识要点:实时渲染流程:CPU: Logic -> Culling -> Draw CallGPU:PrePass -> BasePass -> Lighting -> Reflection -> Translucency -> Posss Procession1、CPU:Logic: ...

2020-06-20 12:23:29 2530

原创 计划2

在3月份给自己立flag,最后还是磕磕碰碰得勉强完成了。5月份回了一趟家,然后出国玩了一趟,之后就是回学校忙各种事。各种笔试、面试,毕设。igg、雷火、37的实习也通通拒绝了,呆在学校好好写论文。每天都感觉自己在瞎忙,感觉又得需要给自己立flag了,要不都不能好好有计划的学习了。前段时间学习了ECS,看了源码也做了一些实践,但感觉还不够成熟还不到时机。接下来也为自己设定1一个月的目标了:1...

2019-08-05 16:20:31 431

转载 Unity 修改material和sharedMaterial的区别

我们在使用Unity引擎的时候,有时候需要去修改某个物体上的Material,在Unity的Renderer类里,提供了两个方法借口供我们使用。Renderer.material和Renderer.sharedMaterial那么这两货有什么区别呢!Renderer.materialReturns the first instantiated Material assignedto th...

2019-06-21 16:22:43 6063

转载 foreach和Stringbuilder内存探究

ILSPY使用指南:http://blog.ctrlxctrlv.net/unity-decompile-dll-ilspy-for-mac/for 与 foreach 真相目的在 Mono 下,研究两种不同方式的 GC 情况。环境同简介中的环境测试代码usingUnityEngine;usingSystem.Collections;usingSystem....

2019-06-18 20:23:43 452

原创 ECS初探

以一个简单的ECS demo为例子对ECS进行总结:https://github.com/fansongy/SampleECS导入Entities package,Unity2018版本以上。可以在一下路径查看ECS源码,建议用everything搜索一下C:\Users\miaob\AppData\Local\Unity\cache\packages\staging-packag...

2019-06-02 11:32:09 597

原创 第五章 纹理贴图及相关技术

1、纹理、纹素和纹理管线。2、凹凸贴图及改进纹理、纹素和纹理管线。简单来说,纹理(Texturing)是一种针对物体表面属性进行“建模”的高效技术。图像纹理中的像素通常被称为纹素(Texels),区别于屏幕上的像素。根据 Kershaw 的术语,通过将投影方程(projector function)运用于空间中的点 ,从而得到一组称为参数空间值(parameter-space...

2019-05-26 10:09:08 1219

原创 第四章 图形渲染与视觉外观

三种着色处理方法。 抗锯齿总结 透明排序 伽马校正三种着色总结:1.平滑着色(Flat shading):简单来讲,就是一个三角面用同一个颜色。如果一个三角面的代表顶点(也许是按在 index 中的第一个顶点),恰好被光照成了白色,那么整个面都会是白的。2.高洛德着色(Gouraud shading):每顶点求值后的线性插值结果通常称为高洛德着色。在高洛德着色的实现中,顶点着色器传递...

2019-05-26 10:06:30 714

原创 第三章 GPU渲染管线与可编程着色器

1、请描述GPU的工作原理和架构,在可编程渲染管线中的作用。2、请简述GPU渲染流程中,各个可编程着色器的作用请描述GPU的工作原理和架构,在可编程渲染管线中的作用。从硬件来说: SP:最基本的处理单元,streaming processor,也称为CUDA core。最后具体的指令和任务都是在SP上处理的。GPU进行并行计算,也就是很多个SP同时做处理。SP...

2019-05-26 10:00:55 791

原创 第二章 图形渲染管线

请简述一下图形渲染管线流程。 请描述和推导下MVP变换(特别是投影变换)渲染管线: 最好能达到口述:渲染管线的主要功能是在给定场景,在物体,相机,光源等等条件下,生成一幅二维图像的过程。在概念上可以分为3个阶段:应用阶段、几何阶段和光栅化阶段。应用阶段一般是cpu与内存的交互,应用阶段的主要任务是准备好场景数据,将需要绘制的图元输入到几何阶段。场景的数据很多,包括...

2019-05-26 09:57:57 577

转载 shader中的法线变换

总结起来有两个,一个是基本的转换,单纯的模型空间转换到世界空间,第二个是需要法线贴图时(Bump Textrue)的时候就转换到切线空间下进行计算。1.从“模型空间”到“世界空间”(Object To World):(1)方法1,使用和“顶点”到“世界”变换矩阵的“逆转置矩阵“对法线进行相同的变换,因此先得到顶点的模型到世界的变换矩阵的“逆矩阵”(Unity_WorldToObjec...

2019-04-08 13:06:20 3462 2

原创 unity协程的实现

usingSystem;usingSystem.Collections;usingSystem.Collections.Generic;namespaceCSharpearning{publicclassCoroutine{internalIEnumeratorenumerator;internalIEnumerat...

2019-03-29 10:49:16 703

原创 计划

给自己定一个目标:2个月内自己写一个简单的shader库。。3个月内刷200道leetcode题,同时弄懂ecs,NPR,应用quadtree

2019-03-21 15:58:08 153

转载 Asset Bundles vs. Resources: A Memory Showdown

For those of you just looking for the TLDR: They don’t, or rather in the long run Asset Bundles will have a much lower memory overhead if you take advantage of what they can do that the Resources syst...

2019-03-04 10:39:22 290

原创 IEnumerable、foreach和GC

今天在某些代码中看到了一种对Dictionary的遍历方法 private Dictionary<uint, uint> _SkillDicts = new Dictionary<uint, uint>(); Dictionary<uint, uint>.Enumerator iter = _SkillDicts.GetEnumerator(); wh...

2019-02-26 11:18:58 787

转载 [c#菜鸟]lambda表达式

 what一、定义Lambda 表达式是一种可用于创建 委托 或 表达式目录树 类型的 匿名函数 。通过使用 lambda 表达式,可以写入可作为参数传递或作为函数调用值返回的本地函数。(微软) 理解1.Lambda表达式是一种匿名方法。匿名方法可省略参数列表,Lambda表达式不能省略参数列表的圆括号()//只需要使用一个delegate关键字,加上作为方法的操...

2019-02-18 20:49:43 388

转载 前向渲染详解

Forward Rendering Path的渲染细节 在开始后面的讨论之前,先要弄懂一个问题就是Unity可以在Forward Rendering Path中可以处理哪些以及处理多少光照。这里只提取官方文档中的一些内容加以说明。 在Forward Rendering中,有三种处理光照(即照亮物体)的方式:逐顶点处理,逐像素处理,球谐函数(Spherical Harmonics,S...

2018-12-20 11:03:49 4004

原创 责任链模式

耽误了很久,重新开始写一些设计模式,打算用Unity来实现,同时找到了一个开源库,授人以鱼不如授人以渔。https://lab.uwa4d.com/lab/5b442b98d7f10a201faf6c69这个模式简单的来说就是像链表一样。每个节点定义自己的处理函数,处理不了传给下个节点。官方的解释是:意图:避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接...

2018-11-29 20:18:25 139

转载 priority_queue

priority_queue调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue用法相似的priority_queue, 以加深对 priority_queue 的理解 #include &lt;iostream&gt; ...

2018-11-28 09:32:34 124

转载 猴子都能看懂的PBR(才怪)

转载自:https://zhuanlan.zhihu.com/p/33464301?utm_medium=social&amp;utm_source=qq 也不知道怎么搞的,PBR(Physicallly-Based-Rendering 基于物理渲染)突然成了一个……你会了就好像什么都会,不会就好像什么都不会的标尺了……嘛,其实PBR也和其他渲染技术类似,虽然是比GPUSkinMesh...

2018-11-14 14:58:34 1444

转载 Unity全局雾

写在前面熟悉Unity的都知道,Unity可以进行基本的雾效模拟。所谓雾效,就是在远离我们视角的方向上,物体看起来像被蒙上了某种颜色(通常是灰色)。这种技术的实现实际上非常简单,就是根据物体距离摄像机的远近,来混合雾的颜色和物体本身的颜色即可。Unity里设置雾效有两种方式,一种最简单的就是直接开启全局雾效,也就是在Edit-&gt;Render Settings里配置,如下图所示:...

2018-10-25 19:27:28 1377

转载 SerializeField总结

可被Serialize的变量的定义方法1. public 变量在没有加入任何Attribute的前提下,public变量是默认被视为可以被Serialize的。2. [SerializeField] Attribute有时候我们需要Serialize一份private或者protected数据段,这个时候可以使用[SerializeField]这个Attribute:[Ser...

2018-09-17 23:37:07 11878 1

转载 浅析Unity中的Enlighten与混合光照

0x00 前言在Unity的5.6版本之前的5.x中,主要使用了Geomerics公司的Enlighten【1】来提供实时全局照明以及烘焙全局照明,在5.6之后Unity引入了新的Lightmapper——Progressive来提供烘焙全局照明并且提供了更多的混合光照模式,但是Enlighten仍然是Unity中全局照明的主要提供者。所以,本文就来聊聊Unity5.6以及Unity2...

2018-08-06 15:36:15 776

原创 解决CinemachineStateDrivenCamera用同一个Controller报错问题

在做游戏时候,创建了几个不同的人物,但是他们都共用一个AnimatorController,并为每个人物创建一个CinemachineStateDrivenCamera时,会一直报错,报的错误为Animator is not playing an animation controller。报错的原因大概为Cinemachine不能同时使用一个controller,因为这样会导致其他Cinemach...

2018-08-05 23:47:36 997

转载 EventSystem

unity5.0开发了新的UI系统UGUI,附带的事件系统EventSystem不仅可以用于UI,对于场景中的对象也同样适用。网络上有很多使用说明,但是仅仅是怎么用而已……这篇文章是我翻了无数遍官方手册整理出来的,包括自己的理解,还有官方文档的传送门,也许你会有兴趣。 一、EventSystem对象的说明当我们在场景中创建任一UI对象后,Hierarchy面板中都可以看到系统自动创建了...

2018-07-19 13:20:39 422

转载 Unity Shader入门精要学习笔记 - 第15章 使用噪声

转载自 冯乐乐的 《Unity Shader 入门精要》消融效果消融效果常见于游戏中的角色死亡、地图烧毁等效果。这这些效果中,消融往往从不同的区域开始,并向看似随机的方向扩张,最后整个物体都将消失不见。我们将学习如何在Unity中实现这种效果。效果如下图所示。要实现上图中的效果,原理非常简单,概括来说就是噪声纹理+透明度测试。我们使用对噪声纹理采样的结果和某个控制消融程度的阈值比较...

2018-07-12 09:21:08 527

转载 Unity Shader入门精要学习笔记 - 第14章非真实感渲染

转载自 冯乐乐的 《Unity Shader 入门精要》尽管游戏渲染一般都是以照相写实主义作为主要目标,但也有许多游戏使用了非真实感渲染(NPR)的方法来渲染游戏画面。非真实感渲染的一个主要目标是,使用一些渲染方法使得画面达到和某些特殊的绘画风格相似的效果,例如卡通、水彩风格等。卡通风格的渲染卡通风格是游戏中常见的一种渲染风格。使用这种风格的游戏画面通常有一些共有的特点,例如物体都被黑色的线条描边...

2018-07-11 19:27:36 602

转载 Unity Shader入门精要学习笔记 - 第13章 使用深度和法线纹理

转载自 冯乐乐的 《Unity Shader 入门精要》获取深度和法线纹理虽然在Unity里获取深度和法线纹理的代码非常简单,但是我们有必要在这之前首先了解它们背后的实现原理。深度纹理实际上就是一张渲染纹理,只不过它里面存储的像素值不是颜色值而是一个高精度的深度值。由于被存储在一张纹理中,深度纹理里的深度值范围是[0,1],而且通常是非线性分布的。那么,这些深度值是从哪里得到的呢?总体来说,这些深...

2018-07-11 19:27:00 286

转载 Unity Shader入门精要学习笔记 - 第12章 屏幕后处理效果

转自 冯乐乐的 《Unity Shader 入门精要》建立一个基本的屏幕后处理脚本系统屏幕后处理,顾名思义,通常指的是在渲染完整个场景得到屏幕图像后,再对这个图像进行一系列操作,实现各种屏幕特效。使用这种技术,可以为游戏画面添加更多艺术效果,例如景深、运动模糊等。因此,想要实现屏幕后处理的基础在于得到渲染后的屏幕图像,即抓取屏幕,而Unity为我们提供了这样一个方便的接口OnRenderImage...

2018-07-11 19:25:52 309

转载 Unity Shader入门精要学习笔记 - 第11章 让画面动起来

转自 冯乐乐的 《Unity Shader入门精要》Unity Shader 中的内置变量动画效果往往都是把时间添加到一些变量的计算中,以便在时间变化时画面也可以随之变化。Unity Shader 提供了一系列关于时间的内置变量来允许我们方便地在Shader中访问允许时间,实现各种动画效果。下表给出了这些内置的时间变量。纹理动画纹理动画在游戏中的应用非常广泛。尤其在各种资源都比较局限的移动平台上,...

2018-07-11 19:25:08 334

转载 Unity Shader入门精要学习笔记 - 第10章 高级纹理

转载自 冯乐乐的 《Unity Shader入门精要》立方体纹理在图形学中,立方体纹理是环境映射的一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了层金属一样反射出周围的环境。和之前见到的纹理不同,立方体纹理一共包含了6张图像,这些图像对应了一个立方体的6个面,立方体纹理的名称也由此而来。立方体的每个面表示沿着世界空间下的轴向观察所得的图像。和之前使用二维纹理坐标...

2018-07-11 19:24:01 271

转载 Unity Shader入门精要学习笔记 - 第9章 更复杂的光照

转载自 冯乐乐的《Unity Shader入门精要》Unity 的渲染路径在Unity里,渲染路径决定了光照是如何应该到Unity Shader 中的。因此,如果要和光源打交道,我们需要为每个Pass指定它使用的渲染路径,只有这样才能让Unity知道,“哦,原来这个程序想要这种渲染路径,那么好的,我把光源和处理后的光照信息都放在这些数据里,你可以访问啦!”也就是说,我们只有为Shader 正确地选...

2018-07-11 19:23:06 281

转载 Unity Shader入门精要学习笔记 - 第8章 透明效果

转载自 冯乐乐的 《Unity Shader入门精要》透明是游戏中经常要使用的一种效果。在实时渲染中要实现透明效果,通常会在渲染模型时控制它的透明通道。当开启透明混合后,当一个物体被渲染到屏幕上时,每个片元出了颜色值和深度值之外,它还有另一个属性——透明度。当透明度为1时,表示该像素是完全不透明的,而当其为0时,则表示该像素完全不会显示。在Unity中,我们通常使用两种方法来实现透明效果:...

2018-07-11 19:22:03 292

转载 周转时间和带权周转时间

周转时间=作业完成时刻—作业到达时刻;带权周转时间=周转时间/服务时间;平均周转时间=作业周转总时间/作业个数;平均带权周转时间=带权周转总时间/作业个数;例:有4个进程A,B,C,D,设它们依次进入就绪队列,因相差时间很短可视为同时到达。4个进程按轮转法分别运行11,7,2,和4个时间单位,设时间片为1。四个进程的平均周转时间为 ?解析:由于是视为同时到达,则到达时刻均为0;根据进程轮换法可知(...

2018-06-19 15:53:02 37014

转载 MonoBehaviour的单例模式问题

我们有一个继承自MonoBehaviour的类是用来做对象交互动作的,想做成单例的,写成通用的方法报错。private static Communication instance;    public static Communication GetInstance()    {      if(instance==null){        instance=new Communication(...

2018-06-02 21:46:19 5836 2

转载 Unity3D中Layers和LayerMask解析

Unity中是用int32来表示32个Layer层。int32表示二进制一共有32位(0—31)。在Unity中可编辑的Layer如下图所示:在Unity中每个GameObject都有Layer属性,默认的Layer都是Default。在Unity中可编辑的Layer共有24个(8—31层),官方已使用的是0—7层,默认不可编辑!LayerMask实际上是一个位码操作,在Unity3D中一共有32...

2018-05-07 19:35:59 1106

原创 通过一个简易的Demo展示Cinemachine

Cinemachine的一些基本使用就不说了,说说自己动手做的一个简单的Demo来实现Cinemachine的基本功能Cinemachine其实使用起来并不是很难,建议有不懂的可以从官方文档来学习。打开Cinemachine中的About,点击Documentation就可以查看到官方文档了。如图首先介绍State-Driven Camera,它的功能非常强大,可以在游戏人物动画状态机切换的时候对...

2018-04-23 19:47:17 4142

原创 Trailing Zeros

Write an algorithm which computes the number of trailing zeros in n factorial.Have you met this question in a real interview? YesExample11! = 39916800, so the out should be 2Challenge Tags Related Pro...

2018-04-16 13:57:58 174

转载 C++string的用法和例子

使用场合:string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。同时C++的算法库对string也有着很好的支持,而且string还和c语言的字符串之间有着良好的接口。虽然也有一些弊端,但是瑕不掩瑜。 其中使用的代码多数都是来自cpp官网,因为例子非常全。声明和初始化方法:想使用string首先要在头文件当中加入&lt; ...

2018-04-16 13:45:09 168

原创 Rotate String

Given a string and an offset, rotate string by offset. (rotate from left to right)Have you met this question in a real interview? YesExampleGiven "abcdefg".offset=0 =&gt; "abcdefg"offset=1 =&gt; "gab...

2018-04-16 13:40:46 236

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除