自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(209)
  • 资源 (5)
  • 收藏
  • 关注

原创 【学习总结】C++八股文(应该会持续更新,嗯 )

跑路吧,做游戏没有前途的,hhhhC++八股文C++基础面向对象编程部分类部分内存管理相关关键字相关STL与泛型编程部分容器(Containers)迭代器(iterator)算法(algorithm)仿函数(Functor)适配器(adpater)分配器(allocator)C++基础面向对象编程部分类部分面向对象的三大特性:封装、继承、多态封装:即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别继承:子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性和

2021-08-05 20:12:17 2257 3

原创 【学习总结】通用服务端框架(二)

玩家的数据结构当客户端连接服务端时,它还只是一个连接,只需要处理网络信息收发和心跳。当玩家输入用户名和密码,点击登录按钮之后,客户端会和某个游戏角色关联起来,因此需要一个数据结构来记录这些信息。(这里设置为player对象)当玩家成功登录之后,程序会给player对象赋值,player对象包含id(帐号)等信息,代表一个游戏角色。游戏角色的某些数据需要保存到数据库而另一些则不需要。因此给Player对象定义一个PlayerData类型,它记录了所有需要保存到数据库的信息。 public clas

2022-03-12 16:17:24 5840

原创 【学习总结】通用网络服务端框架(一)

以下内容摘自《Unity3D网络游戏实战》PS:好久没发版号了,感觉要失业了~服务端架构服务端的大致框架如下图所示服务端程序的两大核心是处理客户端的消息和存储玩家数据。(也可以将一些消耗性能的计算放到服务端来进行)。“网络底层”是指处理网络连接的底层模块,它有处理粘包半包,协议解析等功能。消息处理模块属于游戏的逻辑层,比如当收到客户端的MsgMove协议的时候,服务端会在消息处理模块中记录玩家坐标,然后将MsgMove协议广播给所有的客户端。在服务端中,事件处理指的是玩家上线和下线之类的操作,这些

2022-03-09 12:12:01 5994

原创 【学习总结】通用客户端网络模块

内容摘自最近继续看的《Unity3D网络游戏编程》NetMannger和ByreArray综述同前文,网络模块的核心静态类是NetManager,它将提供一些基础的网络方法。NetManager基于异步Socket实现,异步Socket回调函数把收到的消息按顺序存入队列msgList中。Update方法依次读取消息,再跟几乎监听表和协议名,调用相应的处理方法。网络模块分为两个部分,第一部分是框架部分Net。Net包含网络管理器NetManager、为提高运行效率使用的Byte

2022-03-06 20:29:17 4221

原创 【学习总结】《Unity3D网络游戏实战》正确收发数据流

目录TCP数据流粘包半包现象解决方案1.长度信息法2.固定长度法3.结束符号法代码部分大端小端问题解决方案使用Reverse()兼容大小端编码手动解决完整发送数据TCP数据流当客户端和服务器使用TCP协议进行通信的时候,当收到对端数据时,操作系统就会将数据存入到Socket的接收缓冲区中。操作系统层面上的缓冲区完全由操作系统操作,程序并不能直接操作他们,而是要通过Socket.Recive和Socekt.Send方法来间接操作。同时,缓冲区分为发送缓冲区和接收缓冲区两个部分Socket的Recive方

2022-02-05 12:27:52 1232

原创 【学习总结】《Unity3D网络游戏》Part 1

以前都是在客户端这边研究一些逻辑和画面效果,乘着大四最后一个寒假学习一些服务端和客户端交互的内容,正好买了这本书,边看边做边写笔记,希望能用到毕设里面另外多提一句。微软居然把暴雪收购了!!我超,这下压力来到了索尼这边目录Socket相关socket概念Socket通信的流程TCP和UDP协议Unity异步Echo程序客户端部分服务器部分测试Socket相关socket概念网络上的两个程序通过一个双侠奴工的通信连接实现数据交换,这个连接的一端称为一个Socket。一个Socket包含了进行网络通信必

2022-01-19 15:47:57 2364

原创 【渲染】Unity默认管线尝试还原原神角色渲染

这篇文章是大概一个月之前我在知乎的号上写的,现在把链接贴过来【原神】Unity默认管线尝试还原角色渲染

2022-01-19 14:14:21 2619

原创 【学习总结】CatlikeCoding基础渲染部分(资源指路)

利用提前实习的摸鱼时间,摸完了Unity大佬CatlikeCoding的基础渲染部分,然后把完整跟完之后的源码和笔记都上传过来~(Github日常发疯,以后再传了)笔记大致如下源码附带注释

2021-11-11 17:27:13 2756 1

原创 【图形学基础】Unity直观感受矩阵是如何影响点的

刚手推完矩阵,正好就学到一篇用正方体模拟顶点和矩阵做运算的文章文章链接这个DEMO是把每一个正方体预制件当成一个顶点,然后通过顶点直接和这些顶点的位置做运算,让我们可以更直观的看到矩阵是如何影响每一个顶点,进而影响一整个物体的首先是整个操控脚本,这里有一个小技巧,通过GetCompents可以获得组件上所有的具有相同父类的脚本。然后所有的变换矩阵都继承自同一个变换父类Transformation,于是就可以通过这个方法得到所有的变换矩阵using System.Collections;using

2021-09-24 13:08:38 161

原创 【图形学基础】变换矩阵的推导

最近在进行一些基础知识的回顾和复习,补上了之前一直云里雾里,一直调用接口但是并没有自己推过的变换矩阵如果有出现错误的地方,欢迎指出文章结构Model(模型空间→世界空间)View(世界空间→观察空间)Perspective(观察空间→裁剪空间)Model(模型空间→世界空间)将模型上的点从自身的坐标系转换到世界坐标系下矩阵相乘的顺序为先缩放,再旋转,再平移View(世界空间→观察空间)这一步的主要目的是将世界空间下的物体转换到以摄像机为原点的观察空间下做法为平移观察空间,让摄像机远点和世界

2021-09-19 23:38:10 2325

原创 【学习总结】在Unity中用C#写一棵红黑树

红黑树作为基本的二叉查找数据结构,大概是属于游戏客户端这边必须知道的东西。所以一不做二不休,干脆手写一个出来。参考文章或视频:红黑树原理和算法详细介绍红黑树详解首先需要知道的是红黑树的特性:红黑树的每一个节点都必须是红色或者是黑色红黑树的根节点一定是黑色的每个叶子节点(这里指的是NULL的那些节点)是黑色如果一个节点是红色的,则其子节点一定是黑色的,即不存在两个连续的红色节点从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点与AVL树相同,红黑树由于也是一棵平衡二叉树,所以

2021-09-14 13:21:00 613

原创 【算法可视化-Unity】A*寻路算法

开新坑了开新坑了~(这应该是个长期坑,现在的想法是把学过的或者有点难度的算法都做一个可视化)正如标题所说的那样,现在我打算来做一个算法的可视化,除了帮助自己更好的理解算法之外,也帮助其它小伙伴们更好的理解。那么话不多说,进入今天的主角,A*寻路算法。A*寻路算法的核心原理说起来十分简单:每一次都选择综合代价最小的格子,以此实现一定方向的遍历算法的具体实现思路也很简单:整个代码部分是我自己编写的,就一个脚本,注释十分详细,但同时也有很多问题(结构有点冗余,而且有个重载操作符的问题还没解决)现

2021-08-20 18:52:47 586

原创 【学习总结】Ray tracing in the next Weekend

这是Ray tracing三部曲的第二部,这一part稍微有点上了难度,很多地方其实比较难思考,但是书上是说了个大概思路就给出代码过了。我自己去尝试理解这些部分花了些时间(本来应该更早出这篇的)。还是一样,因为原书其实写的很详细了,所以我只对不太好理解的地方做出补充~(或者评论区告诉哪里不太清楚,我们一起探讨一下)如果有错误的地方,烦请指正~!原书链接在这里:Ray Tracing The Next Week推荐翻译在这里:日天大佬的翻译自己的代码GitHub:Ray Tracing The Ne

2021-08-19 12:22:23 1549 5

原创 【C++】关于子类之间使用static_cast进行强制转换的问题

今天研究BVH的构造过程的时候遇到了这样的一行代码:这里的hittable_list和bvh_node的继承自同一个基类hittable,然后他们有共同的虚函数hit。说实话这一行代码给我看的有点懵,不知道怎么完成的转换,于是自己实验了一下:我用三个类模拟了一下上述语句的大致做法,结果发现需要一个从hittable到Bhitable的构造函数于是:扫盲了。如果两个子类之间做转换,转换的步骤应该是:子类A->父类->子类B,是一个三角的上下行转换关系。但是在这样转换的时候却必须要

2021-08-18 15:43:29 419

原创 【学习总结】Ray Tracing in One Weekend(梳理与总结)

被群友推荐了这个光追(这一篇应该是路径追踪)教程,学完下来确实收获蛮多的,也解决了以前遗留的很多问题。最大的感触是,图形学是真的好玩,hhhhh 晚点看看能不能开个超清分辨率来渲染一张图,就看GPU能不能挺住了。如果有错误的地方,欢迎指出这门课的前置知识可能需要闫令琪老师的101课程,b站就可以搜得到(强推)整个制作流程原文在这里:Ray Tracing in One Weekend但我推荐这位老哥的翻译:中文翻译本文还有一些引用的地方来自于这一篇我觉得也可以成为教程级的博客:光线追踪渲染实战

2021-08-08 15:05:03 4330

原创 【学习总结】COCOS的渲染流程

秋招了秋招了,再不写点总结就寄了,由于我最爱的Unity底层代码看不到,所以只能从COCOS底层的渲染过程大致揣测一下Unity的做法文章结构关于COCOS渲染流程的一些总结COCOS渲染流程的启动Visit()方法做了什么关于COCOS渲染流程的一些总结首先,COCOS组织整个项目资源的方式是通过资源树来进行的。据以往学习到的知识来看,使用资源树最大的好处是方便做空间划分然后剔除掉不用渲染和处理的部分,(四叉树,八叉树等空间划分法加速处理过程)。因为只要一个节点不在相机范围之内,那么这个节点之后的

2021-08-05 21:42:27 1945

原创 【学习总结】快速的渲染管线相关知识回顾(入门向)

这两天实习中被指派的新活是将项目的渲染流程和渲染管线做一个整理,写成一篇提供给新人看的入门文档(我也是新人啊喂!新人写给新人看的文档真的好吗,hhhh)然后我摘抄了不涉及保密协议的部分出来,同时对照着之前学习的内容做了一个整理,希望能帮到同样是需要回顾或者入门的同学们另外:如果文中有错漏的地方,十分欢迎在评论区或者私信指出(怕误人子弟)文章结构渲染管线概述应用阶段几何阶段光栅化阶段关于渲染管线的剔除视锥体剔除(平截头体剔除)遮挡剔除裁剪背面剔除渲染管线概述渲染管线一般指的是一个物体从场景中被渲染到

2021-08-03 11:40:16 453

原创 【LeetCode刷题笔记】46.全排(DFS与库函数)

题目:其实这题的核心思想和上一题是一样的(78.子集),只不过呢这道题不需要从最短开始考虑,每一次考虑的都是最长数组,因此需要使用for循环。另外,还有一个原因,C++其实是有全排列函数的,没想到吧!next_permutation(),求该数组或者向量的字典序的下一位所以使用之前需要排序思路也很简单,就是每次先固定去交换一位,然后进一步遍历,遍历完之后再换回来进入下一个循环(固定交换下一位数)C++代码如下(这次我觉得我的比官方简洁):class Solution {public:

2021-08-01 17:50:10 111

原创 【LeetCode刷题笔记】78.子集(DFS板子题)

题目:好久没有刷题了,今天遇到了板子题都还想了一会,秋招是不是可以预先说GG了。hhhh这种类型题目的通解就是DFS,某种程度上来说也是暴力的一种,这里附上板子,基本上所有的DFS的类型都可以按照这个板子来做,包括矩阵(可能涉及到一个方向选择的问题)vector<int> t;void dfs(int cur, int n) { if (cur == n) { // 记录答案 // ... return; } //

2021-08-01 16:40:00 345

原创 【学习总结】游戏客户端可能需要知道的有关服务器消息分发的一些小知识

注:这些知识来源于我实习中的一些总结,由于需要遵守公司的保密协议,所以很多东西不会往深了讲,会关联网上的相关内容进行介绍。作为游戏客户端,MVC游戏架构比较流行的当下,其实是需要去了解客户端如何与服务端交互,需要去了解消息是如何被分发传递下来的。文中还会提及作为游戏客户端需要掌握的一些常见知识,不过这一部分我只会大致提及,具体的内容还是需要找到资料学习清楚文章结构一、大致流程二、Socket套接字2.1 概念2.2 链接过程2.3 Scoket类型2.4套接字缓冲区2.5一般传输模型三、Porotob

2021-07-27 18:58:43 632

原创 【LeetCode刷题笔记】567.字符串的排列

题目:今天这题记录一下的原因有两点:第一:忘了Vector之间重载了方法,可以直接用==和!=比较第二:没想到两个子串长度应该是相等的,导致第一版代码十分臃肿思路:1.这题很容易可以想到是使用滑动窗口,对一定范围的内S2的子序列进行统计字符个数与S1进行比较。2.其中窗口的大小应该设定为S1的长度3.每当一个窗口不符合要求的时候就往下滑动一格,对窗口字符统计数组做相应处理。C++代码(附带测试)#include<iostream>#include<vector>

2021-07-25 15:20:29 75

原创 【LeetCode刷题笔记-167.两数之和Ⅱ】

今天这题记录一下是因为没有想到双指针的解法。第一种:很自然就能想到,遍历数组中的每一个数字,然后去寻找另一个。因此可以用for循环固定+二分查找的办法做。代码:class Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { vector<int> ans; for(int i=0;i<numbers.size().

2021-07-15 09:22:35 80

原创 【LeetCode刷题笔记-977.有序数组的平方】

今天这题有点意思,所以记录一下暴力的想法自然是先遍历一遍数组然后再排序,但是这样会超时,因为时间复杂度还是比较高。因此需要别的方案。由于要按照非递减排序,我们很自然就能想到,平方最大值产生的位置是数组的末尾或者是队首。因此,使用双指针移动遍历数组,每次都进行平方判断,将较大的那个数加入新数组的末尾。最后返回即可。代码:(C++附带测试)#include<iostream>#include<vector>#include<algorithm>#include.

2021-07-14 09:29:47 88

原创 【LeetCode刷题笔记645:错误的集合】

题目:今天这题思路上来就有了,要么排序逐一比对,要么哈希表记录,两种都可以。另外,今天虽然是排序1~n的整数,但是不能使用直接挪动到相应位置上的办法,因为那样虽然可以找出重复的数字,但是无法找出缺少的数字。排序:class Solution {public: vector<int> findErrorNums(vector<int>& nums) { vector<int> errorNums(2); int n

2021-07-04 10:48:16 99

原创 【LeetCode刷题笔记:451.根据字符出现频率排序】

题目:今天这题的思路算是比较简单的,遍历一遍得到每个字符出现的数量,然后根据数量大小排序直接替换string字符即可。但是,写这题的时候没注意看下面的测试用例还有大写字母,所以一开始就按照全小写字母的方式去建立了一个26X2的二维数组,用于统计数量导致出错。优化方法也很简单,既然多了大写字母,那么为了避免额外的一些开销,我们这里还是使用哈希表比较好。因此,思路就变为:我们使用哈希表去存储每一个字符出现的数量。然后将数量和对应字符使用一个Pair暂存到一起,让其可以插入Vector中使用Sort(

2021-07-03 11:38:57 121

原创 【LeetCode刷题笔记:1833.雪糕的最大数量】

考完了,也找到了实习。准备去上海巨人网络了~然后就是紧张的实习生活以及准备秋招。所以开始回到LeetCode当常驻选手了。题目:今天这题如果不使用计数排序法的话,其实就是简单题。只需要简单排序一下数组,然后采用贪心的思路来计算得到最终的结果。(为了复习一下算法,排序并未使用sort,自己重写了一次快排,但是会有一个非常极端的测试用例会超时,所以提交的时候还是用的Sort)代码(C++版本)#include<iostream>#include<vector>#incl

2021-07-02 21:16:53 83

原创 【Unity】个人毕设的第一次场景优化笔记(主要是阴影与屏幕后处理)

之前学习的东西其实都是为了做自己的个人毕业设计准备的,包括随机地图生成,事件,人物移动,轨道摄像机等等。现在算是有了一个雏形的DEMO了。基础的射击,武器系统,道具拾取系统等功能也做了出来,敌人追踪AI也添加进去了,只需要往后继续填充素材即可,当然不排除由于架构不够好可能要重构自己代码的过程。但是这两天我发现一件很严重的事情,我的游戏画面表达极差。什么意思呢?给大家截个图看一看。除了墙体贴图和色彩缺乏之外,这个阴影的质量完全就是没有任何柔化,并且人物进去之后在没有光源的情况下会直接看不到位置。作

2021-06-19 16:43:04 780 3

原创 【Unity】使用事件实现自动开关门

最近学习了关于委托和事件的基本知识,由于比较驳杂,这里先不自己赘述。可以参考一下两个链接:委托与事件委托与事件(视频)这里只提几个比较重要的地方:1.委托在C#之中也是一种类,可以封装或者指向一个或多个方法2.封装的方法要具有相同的返回值和参数列表(类型兼容)3.一般的使用方法是将委托当作方法的参数,传递进入方法中进行动态的调用。(作为模板方法或者回调方法)4.System名称空间下封装了两个内置的委托类型:Action封装了至多16个泛型参数列表,并且返回值为空Func封装了至多16个

2021-06-11 18:30:19 2903 2

原创 【Unity】使用导航网格简单的制作AI(包括波数管理)

这一篇是上一个DFS地图项目的后续。又学到了如何制作追踪式的AI和管理波数。首先,我们先创建一个玩家,并且将它的移动写好。移动脚本(俯视角度移动,看向鼠标方向)using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(Rigidbody))]public class PlayerContol : LivingEntity{ private

2021-06-03 19:38:37 308 2

原创 【Unity】使用DFS(洪水填充算法)建立全联通的随机障碍地图

这两天跟着学了一种随机地图生成算法,使用DFS(准确来说应该叫洪泛算法flood fill)来生成一张确保连通性的随机障碍地图。之所以说是随机障碍地图是因为该地图的随机性其实是体现在障碍物的随机性上,并不算是真正意义上的随机地图(个人理解中)。首先,我们思考怎么生成一张随机地图。我们创建Tile(quad)作为地图瓦片预制体,创建obstacle(Cube)为障碍物。我们选择将Tile连接在一起来组成地图,为了之后能精确的选择到Tile,并在其上创建障碍物,我们还需要一个队列将所有生成的Tile的坐

2021-05-31 19:00:58 1926 7

原创 【剑指Offer57-Ⅱ.和为s的连续正数序列】

题目:这题其实是衔接上题的。离谱的我又只能想到暴力搜索,但是太慢了。看一眼题解,滑动窗口四个字,我就全明白了。本质上呢是上一题双指针的延续。证明这里就不放了,和前一题的证明大致相同。C++代码:class Solution {public: vector<vector<int>> findContinuousSequence(int target) { int i = 1; // 滑动窗口的左边界 int j = 1; // 滑动窗口的右边

2021-05-11 17:03:43 49

原创 【剑指Offer57.和为S的两个数字】

题目:今天这题之所以来写博客是因为解法确实有点巧妙。(我完全没想到来着)我一开始想的是暴力搜索,但是毫无疑问会超时。于是用了一个二分查找法来优化它。但是效率也不是很理想:class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> sup; for(int i=0;i<nums.size();i++){

2021-05-11 16:36:50 66

原创 【剑指Offer54-二叉搜索树的第k大的节点(附带排序二叉树创建测试)】

题目:很简单。反向中序遍历然后提前退出就可以得到答案了。不过这道题我为了加深我非递归中序遍历的印象,使用了正向中序遍历迭代的方式:C++代码附带测试:#include<iostream>#include<algorithm>#include<vector>#include<stack>using namespace std;/** * Definition for a binary tree node. * struct TreeN

2021-05-04 17:19:36 68

原创 【剑指Offer58-Ⅱ.左旋转字符串】

题目:其他方法都还好,也不难理解。但是这个旋转三次的做法是真的牛逼。先翻转前k个字符再翻转后面的所有字符最后整体翻转class Solution {public: string reverseLeftWords(string s, int n) { reverse(s.begin(),s.begin()+n); reverse(s.begin()+n,s.begin()+s.size()); reverse(s.begin(),s.en

2021-05-03 21:15:29 72

原创 【剑指Offer53-Ⅱ.0~n-1中缺失的数字】

题目:这题的二分查找法确实不错。不过这建立在数组必须初步有序的情况下。如果数组无序的话,则还需要进行排序。不过由于是0~n-1的排序,所以相对来说也比较简单。直接将每个数字换到对应的位置上就好了。我这里想介绍的反倒是另一种方法,数学差值法。想到这个主要是因为之前还有做过两个数组找出少了哪个数字的题。核心思想是累加数组中的所有元素然后去和一个特定值比较。方法很简单,这里就直接上代码了:class Solution {public: int missingNumber(vector<

2021-05-03 20:35:06 53

原创 【剑指Offer53-Ⅰ.在排序数组中查找数字】

题目:今天这题使用二分查找加速即可。不过我都忘了C++还有upper_bound和lower_bound这两个函数了。直接相减就可以得到对应的数量。C++代码:class Solution {public: int search(vector<int>& nums, int target) { return (upper_bound(nums.begin(), nums.end(), target)-lower_bound(nums.begin(),

2021-05-03 20:22:46 52

原创 【剑指Offer50-第一个只出现一次的字符】

题目:暴力搜索的复杂度是N^2,所以我们得想个优化办法。我们先遍历字符一次,在map中存入每个字符的频数。然后再遍历一次返回第一个频数为1的字符。C++:class Solution {public: char firstUniqChar(string s) { unordered_map<int, int> frequency; for (char ch: s) { ++frequency[ch]; }

2021-05-02 16:41:10 73

原创 【剑指Offer48-最长不含重复字符的子串】

今天这题只要想清除这个点就很好做了:最长的子串一定是通过滑动窗口得到的什么意思呢?就是比如第一个示例里面的abcabcbb。窗口一开始为空,不断插入直到有abc。那么下一个a进来的时候,我们应当弹出第一个a来保持窗口内的字符唯一。如果这个a在子串的中间,则需要不断弹出直到末尾的元素能进来。这样遍历一遍整个字符串,中间得到的最大值就是答案。并且不会有任何漏掉的情况。我这里使用的是两个时间复杂度可能相对较高的容器set和queue,但是比题解可以用在更宽泛的。set用于记录当前窗口中是否已经含有元.

2021-05-02 16:11:03 44

原创 【剑指Offer47.礼物的最大价值(DFS与动态规划)】

题目:今天这题算是十分常规了。DFS可以做但是最后一个用例会超时。动态规划就是常规的做法,动态转移方程为:dp【i】【j】 = max(dp【i】【j-1】,dp【i-1】【j】)+grid【i】【j】初始化第一行和第一列就可以了。没有什么难度。两种方法的代码:(附带测试)#include<iostream>#include<algorithm>#include<vector>#include<unordered_map>using n

2021-05-02 15:29:52 115

原创 【Unity】常见的性能优化技术

本节笔记摘选自《Unity Shader入门精要》首先,书上的有一个思想我觉得很不错,游戏的优化不应该是做完游戏之后才进行。而是应该在做游戏的时候就嵌入到各个环节里面。做的每一步都应当尽力去优化性能。1.影响性能的因素谈到性能优化的时候,我们首先应当看看有哪些因素会影响性能。一般来说,游戏都会大量的使用CPU和GPU的资源。这其中,CPU主要保证了游戏的帧率,GPU主要保证了分辨率相关的一系列处理。因此可以将性能瓶颈的原因归结为以下几个方面:(1)CPU过多的draw call复杂的脚本或者物

2021-04-29 21:44:06 713

UnityBaseRendering.7z

附带注释和笔记的源码

2021-11-18

OpenGl第一章代码.rar

https://learnopengl-cn.github.io/第一章代码

2021-03-30

JAVA开发的坦克大战

坦克大战,免费下载。

2021-03-08

Unity实现的经典游戏贪吃蛇.rar

Unity实现的经典贪吃蛇游戏,可以配合我写的博文搭配食用。这个是免费的资源,供大家学习交流!字数字数字数

2020-11-14

Anaconda3-2020.07-Windows-x86_64.exe

官网下载的Anaconda安装包,免费Anaconda下载资源,解决官网下载过慢问题。版本为2020.07 64位系统

2020-10-14

空空如也

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

TA关注的人

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