摘要: UE4中使用多线程的有两种方式,一种方式就是使用FRunnable和FRunnableThread,另一种方式是Task Graph System。Task Graph System有时会占用游戏线程的时间,适合用在简单的计算或者需要开多个线程的情况。FRunnable适用于复杂运算。但是当创建太多 阅读全文
posted @ 2018-01-25 09:56 Litmin 阅读(3591) 评论(0) 推荐(1) 编辑
摘要: 用途1: 半透明材质中实现遮挡Mesh自己其他部分的效果。 不遮挡效果如下: 遮挡后效果如下: 实现方法: 深度信息是越远值越大,使用两个Mesh,一个正常渲染,另一个渲染到custom depth buffer 即勾选Render Custom Depth Buffer,注意这个用来渲染到cust 阅读全文
posted @ 2017-05-03 15:39 Litmin 阅读(4324) 评论(0) 推荐(0) 编辑
摘要: Unity中访问Renderer的material属性会给你额外创建一个材质实例,这样会增加一次渲染影响性能,但是有时又需要单独修改一个材质的参数,这种情况就可以使用Renderer的SetPropertyBlock。 阅读全文
posted @ 2018-05-05 10:47 Litmin 阅读(2981) 评论(0) 推荐(0) 编辑
摘要: 在现在的游戏开发中,很多逻辑需要并发或者并行的实现,而且现代CPU大多都是多核的,如果能充分利用多核CPU的优势,降低主线程的压力,游戏的性能将会大大提高。下面介绍三种在Unity中实现异步编程的方法。 一,协程 协程不是多线程,它还是在主线程上执行的,但协程可以将一个函数分成多个部分来顺序执行,从 阅读全文
posted @ 2018-04-13 16:47 Litmin 阅读(1911) 评论(0) 推荐(0) 编辑
摘要: 高斯模糊(英语:Gaussian Blur),也叫高斯平滑,通常用它来减少图像噪声以及降低细节层次。这种模糊技术生成的图像,其视觉效果就像是经过一个半透明屏幕在观察图像,这与镜头焦外成像效果散景以及普通照明阴影中的效果都明显不同。高斯平滑也用于计算机视觉算法中的预先处理阶段,以增强图像在不同比例大小 阅读全文
posted @ 2018-04-02 14:01 Litmin 阅读(4221) 评论(0) 推荐(0) 编辑
摘要: 第一种实现可以利用模板缓冲。 第二种实现可以使用边缘检测。边缘检测的原理就是利用一些边缘检测算子对图像进行卷积操作。 卷积指的就是用一个卷积核kernel对一张图像中的每个像素进行一系列操作。卷积核通常是一个四方形网格结构,该区域内每个方格都有一个权重值,当对图像中的某个像素进行卷积时,我们会把卷积 阅读全文
posted @ 2018-04-02 12:52 Litmin 阅读(3486) 评论(0) 推荐(0) 编辑
摘要: 单例模式是对象的创建模式之一,保证一个类仅有一个实例,并提供一个访问它的全局访问点。 在什么情况下使用单例: 1,一些管理器类。比如声音管理器、场景管理器、用户管理器等, 2,一些辅助函数。 Unity中单例实现分为两种,一种是继承自monobehavior的单例,另一种是普通的单例,这里不考虑多线 阅读全文
posted @ 2018-03-23 12:34 Litmin 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 第四章 入门 1,全局变量的初始化不要依赖另一个全局变量。因为无法判断顺序。 2,每一个源代码文件就是一个最小的编译单元,每一个编译单元都能独立编译而不需要知道其他编译单元的存在及其编译结果。好处:公开接口、隐藏实现,减少代码修改后重新编译的时间。 3,一个低级数据类型对象总是优先转换为能够容纳的下 阅读全文
posted @ 2018-03-15 11:37 Litmin 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 某天发现一个神奇的网站https://visualgo.net/en,对于学习各个算法非常有用,它将算法的步骤可视化,能很好地帮助我们理解。 顺序为从小到大。 1,冒泡排序 从头到尾两两比较,如果前者比后者大就交换,重复这个过程,直到不需要交换。 visualgo伪代码: UE4中C++实现: 2, 阅读全文
posted @ 2018-02-12 14:25 Litmin 阅读(2545) 评论(1) 推荐(0) 编辑
摘要: 项目中经常需要对texture进行读写操作,所以做个总结。 方法1: 注意需要添加RHI和RenderCore模块,在4.17以后可以直接使用UTexture2D::UpdateTextureRegions。 方法2: 这种方法每次调用都会Lock/UnLock,和updateResource,每次 阅读全文
posted @ 2018-02-04 15:15 Litmin 阅读(8079) 评论(0) 推荐(1) 编辑
摘要: 多线程+WASAPI获取系统音频: 音频数据存储在m_AudioData,因为是实时获取,这里得到相应长度的数据后就会把它删除,如果要实现录音功能,改为不删除取出的数据即可。 阅读全文
posted @ 2018-01-28 15:31 Litmin 阅读(1817) 评论(0) 推荐(0) 编辑
摘要: (一)class的前置声明 class的前置声明有两种。 (二) struct前置声明 struct的前置声明只能用第一种。 (三) 有typedef的前置声明 阅读全文
posted @ 2018-01-25 11:30 Litmin 阅读(1949) 评论(0) 推荐(0) 编辑