加载中
malloc和new

new/delete是C++关键字,malloc/free是库函数。 new底层调用的是malloc。new会先准备一块内存放置object,分配好之后会调用构造函数。 1. operator new函数底层其实就是调用的malloc(可以通...

2020/05/12 13:41
42
Unity内存管理

什么是内存 物理内存 CPU访问内存是先去自己的cache访问,当全部miss,会去主内存访问拿一段连续的指令回到cache。如果指令不连续会导致大量cache miss。dots和ecs可以让数据在内存中不连续的...

2020/04/11 12:02
249
六边形网格笔记

using System.Collections; using System.Collections.Generic; using UnityEngine; public class Hexagonal : MonoBehaviour { public GameObject prefab; public Transform root; priva......

2020/03/11 15:50
100
UGUI图片层级和渲染顺序的奇怪关系

之前见别人的文章总是说,在Hierachy下,相同图集的图片要连续排列,这样Unity会对相同图集的图片进行合批,从而减少draw call。今天做了简单的试验发现情况并不是这么简单的。 第一种情况:...

2020/02/27 18:47
406
C#弱引用

C#中存在强引用和弱引用,我们常用的是强引用。如果实例化了一个对象,GC是不会在他所有的强引用失效前回收这个对象的。如果使用了弱引用就可以解决这个情况,如果这个对象只被弱引用引用,G...

Lua
2020/02/26 16:34
82
Material和SharedMaterial

参考链接: https://blog.csdn.net/ecidevilin/article/details/52461525 因为官方总结25种导致合批失败的原因时说到了different materials,因为平时操作中如果直接改变material.color会造成...

2020/02/24 17:43
195
SetPass Calls/Batches/Draw Calls

1. SetPass Calls SetPass Calls表示材质切换的次数,通常要远小于Batches和Draw Calls。有时会出现大于的情况,可能是因为粒子特效播放结束了,但是没有SetActive False,导致摄像机还会遍历...

渲染学习笔记——Command Buffer和ShaderLab

1.命令缓冲区 CPU将DrawCall放入命令缓冲区(显存),GPU获取一批DrawCall并执行。 2.Unity Shader基础ShaderLab Unity将CPU应用阶段封装成黑盒。 3.空间变换 4.透视投影......

2020/02/19 18:46
230
渲染学习笔记——各种测试

1.模板测试 每个像素点都有颜色缓冲区。模板缓冲区和深度缓存区记录了像素的模板值和深度值。一个片元舍弃与否都可以更新模板缓冲区中的值。 2.深度测试 没通过深度缓冲的片元无法改变深度缓...

2020/02/19 16:11
173
渲染学习笔记——GPU应用阶段

1.GPU流水线 注:绿色可编程,橙色可控不可编程,红色完全不可控 2.顶点着色器 顶点着色器计算速度快于片元着色器,所以很多中间数据在顶点着色器计算。 3.裁剪 4.屏幕映射 5.三角形 6.片元着...

2020/02/19 15:22
137
渲染学习笔记——渲染管线介绍及CPU应用阶段

1.GPU优越性及缺点 注意:GPU并行结构if/else两边都会进行计算(现在有改观) 2.渲染流水线 3.CPU应用阶段 Unity有一些资源可以开启read/write选项,当开启后,加载到现存中的数据不会在内存...

2020/02/19 15:08
267
Leetcode(136)之只出现一次的数字

题目描述: 解题思路: 考验异或操作,由于异或操作满足结合律,0 ^ n = 0,n ^ n = 0,所以只要用0与数组中所有数依次做异或运算,两两相同的数字运算会得到0,0与唯一的数运算又会得到那个...

2020/01/04 17:54
56
Leetcode(104)之二叉树的最大深度

题目描述: 解题思路: 代码: public int MaxDepth(TreeNode root) { if (root == null) return 0; return Mathf.Max(MaxDepth(root.left) + 1, MaxDepth(root.right) + 1); }......

2020/01/04 11:44
42
Leetcode(9)之回文数

题目描述: 解题思路: 只要反转后面一半的位数,和前面剩下的一半的数(向上取整)比,如果一样就是回文数。如果这个数是奇数位,比如12321,我们翻转最后3位就是123,前面剩下的两位是12,...

2020/01/04 11:27
52
Leetcode(206)之反转链表

题目描述: 解题思路: 1.迭代 首先设置三个指针,temp和next指向null,curr指向head,下面迭代开始。 a. next指向 curr -> next(如上图)。 b. 然后将 curr -> 指向temp(如上图)。 c. 然...

2020/01/04 10:19
46
Leetcode(771)之宝石与石头

题目描述: 解题思路: 其实就是考验知不知道hashset。 代码: public int NumJewelsInStones(string J, string S) { int count = 0; HashSet<char> gems = new HashSet<char>(); foreach (c...

2020/01/03 15:26
73
Leetcode(62)之不同路径

题目描述: 解题思路: 类似杨辉三角,维护一个二维数组,如果 i == 0 或者 j == 0,dp[i, j] = 1。其余 dp[i, j] = dp[i - 1, j] + dp[i, j - 1]。 代码: public int UniquePaths(int m, ...

2020/01/03 14:53
10
Leetcode(7)之整数反转

题目描述: 解题思路: 维护一个结果数,每次将x除以10取余弹出一位,弹出的数加上结果数乘以10。由于 int.MaxValue = 2147483647, in.MinValue = -2147483648,所以结果数乘以10之前要小于 ...

2020/01/03 14:29
43
Leetcode(191)之位1的个数

题目描述: 解题思路: 如果将n和n-1进行与运算,如果n的最后一位是1,那么n-1的最后一位必是0,且前面的位数都与n相同,那么一次与运算会减少一个1;如果n的最后一位是0,那我们找到n最后一...

2020/01/03 12:00
19
Leetcode(226)之翻转二叉树

题目描述: 解题思路: 简单的遍历加递归。 代码: public TreeNode InvertTree(TreeNode root) { if (root == null) return null; TreeNode temp = root.left; root.left = root.right; .....

2020/01/02 20:49
49

没有更多内容

加载失败,请刷新页面

返回顶部
顶部