自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

先锋小牛

我不是知识的创造者,我只是知识的搬运工。

原创 UE4 C++ —— UMG和C++交互

简述 在UE4开发中,我们想使用UMG创建显示界面,而在C++代码中编写逻辑处理代码。这样就需要UMG和C++进行交互,即在C++中引用UMG中的控件,并进行事件绑定等操作 交互方法一,强转子集GetRootWidget()        //获取根节点 GetChildAt()        ...

2018-09-20 20:28:50 3631 0

原创 UE4 C++ —— 代理

简述 UE4中的代理(或者叫委托)可以动态的绑定类对象的函数,类似于C中的函数指针,但代理更加安全、可靠。UE4提供了三种类型的代理,单播代理,多播代理,动态代理。单播代理 宏 详解 DECLARE_DELEGATE( DelegateName ) 无参无返回值 DECLAR...

2018-09-15 20:07:43 1330 0

原创 UE4 C++ —— 碰撞检测

简述 UE4集成了PhysX物理引擎,用来模拟刚体的物理行为,包括常用的碰撞响应。 碰撞基础概念碰撞对象通道 每个碰撞体都会设置一种(Object Responses)碰撞对象通道,碰撞对象通道可以是ue4默认的几种,也可以新建自定义的碰撞对象通道 新建自定义的碰撞对象通道,点击Projec...

2018-09-15 20:06:48 2639 0

原创 Direct3D11程序框架搭建

  简述 以简单直观的方式搭建Direct3D11程序框架,其中包含了顶点缓存,索引缓存,顶点着色器,像素着色器,变换矩阵等基本的功能,在此基础上学习Direct3D11和HLSL。 简要流程 程序主实现了窗口的创建,D3D中设备,缓存等一些东西的初始化,并在事件循环中进行渲染,渲染结束后释放...

2018-05-16 22:11:08 942 0

原创 蓝图通信(10) —— 直接蓝图通信

简述蓝图类之间有多种通信方法,其中直接蓝图通信比较常用,通过在当前蓝图类中创建一个目标蓝图类的引用变量,并在关卡中指定目标蓝图的实例。创建两个蓝图类新建继承Actor的蓝图类,命名为Actor_1,复制一份,命名为Actor_2打开Actor_1,添加Static Mesh组件并设置Mesh为1M...

2018-05-12 15:46:27 912 0

原创 蓝图通信(11) —— 事件分配器

简述 事件分配器可以绑定一个或多个事件,调用事件分配器后,与其绑定的所有事件将触发 创建事件分配器 打开关卡蓝图,在My Blueprint面板,点击Event Dispatchers后面的“+”创建事件分配器,命名为EventDispatcherTest,(蓝图类中的事件分配器使用方法和关卡...

2018-05-12 15:46:23 640 2

原创 蓝图通信(12) —— 蓝图投射

简述通过引用全局蓝图类来实现两个蓝图的信息交互,在ue4中有几个默认注册的全局蓝图类,游戏中的任何蓝图类或关卡蓝图都可以引用到,一般在Game Model中设置配置全局蓝图转到内容浏览器,找到Default Pawn Class设置的默认蓝图ThirdPersonCharacter打开ThirdP...

2018-05-12 15:46:17 662 0

原创 OpenGL读取帧缓存数据

简述有些时候我们可能需要获取渲染后的图像数据,比较常用的函数是glReadPixels,它可以直接把显存中的数据拷贝到内存中glReadPixels读取帧缓存数据void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, G...

2018-05-09 12:43:01 3246 0

原创 状态模式(C++)

简述当一个对象内在状态改变时,允许改变其行为,这个对象看起来像改变了其类,单控制一个对象的状态转换的条件表达式过于复杂时,把状态的判断逻辑转移,到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化场景说明状态模式中,不同状态对象表现的也不同。就像变色龙一样,它随自己心情的变化会变成不同的颜色,它...

2018-05-08 17:21:54 243 0

原创 建造者模式(C++)

简述将一个复杂对象的构建与它的表示分离,使同样的构造过程可以创建不同的表示,用户通过指定建造的类型就可以得到它们,而不需要关心具体的建造过程和细节,场景说明,建造一辆车是比较复杂的,一辆车的部件必须包括车身,轮胎和引擎,但不同车辆的部件是不同的。比如卡车和小轿车,它们建造流程相同,都需要车身,轮胎...

2018-05-08 17:21:40 356 0

原创 OPenGL--几何着色器的应用(多视口输出)

简述在OpenGL中,可以将一个物体的渲染结果输出到不同的帧缓冲区域,实现多个的视口效果,着色器中提供了一个内置的输出变量gl_ViewportIndex来重定向输出,它的值也可以作为片元着色器的输入使用。多视口在三维建模软件中比较常见,如3DMAX。在OpenGL应用程序中可以通过glViewp...

2018-05-08 17:20:03 642 0

原创 蓝图基础(1) —— 变量和变量类型

概述蓝图 - 是虚幻4实现的一套完整的可视化脚本系统。它和其他脚本语言(python,lua等)的不同之处在于,它无需编写代码,可以通过拖拽节点来直观的实现所需的功能。但它本质上还是属于一种编程语言,也有变量,数据类型,函数等概念,开发中也需遵循者面向对象的思想,以学习一门新语言的方法来学习它,相...

2018-05-06 19:42:14 1775 0

原创 蓝图基础(2) —— 结构体和枚举

简述UE4中除了基础的数据类型,还有一些聚合数据类型。结构体:存储相同类型或不同类型数据的集合。枚举:是被命名的整型常数的集合,通过对整型类型的重命名,可以更加直观的表达。结构体创建结构体类型在内容浏览器内,右键 -> Blueprintd -> Structure创建...

2018-05-06 19:42:09 1310 3

原创 蓝图基础(3) —— 分支与循环

简述在所有的开发语言中分支与循环都是必不可少的,它能有效的控制程序执行的流程,在蓝图中是由一些分支与循环节点来实现的。点击右键 -> Utilities -> Flow Control 弹出一些标准的流程控制节点,如图(一)、BranchBranch是一个判断节点,当输...

2018-05-06 19:41:05 1219 0

原创 蓝图基础(4) —— 容器(Array,Map,Set)

简述容器用来存储数据的,数据可以是用户自定义类型(对象),也可以是预定义类型,ue4提供了三种不同的容器,即Array, Map, Set。Array:直译过来是数组,是有序的元素序列,可以存储多个相同类型的数据。数组在内存空间是连续存储的,可以通过下标来访问。Map:是一种键值对容器,里面的数据...

2018-05-06 19:41:00 2077 0

原创 蓝图基础(5) —— 函数

简述在UE4中函数其实就是节点,对完成一定的功能的模块进行封装,使程序结构更清晰,易读。函数有唯一的入口和出口,但它的传入值和传出值可以有多个。比如当前有一功能需要实现,求出两个数之间的所有水仙花数,保存到Array并返回。注:水仙花是指一个3位数,他的每个位上的数字的3次幂之和等于它本身,(如1...

2018-05-06 19:40:50 594 0

原创 蓝图类型(6) —— 关卡蓝图

简述Ue4提供了几种不同类型的蓝图,分别为关卡蓝图,蓝图类,宏,接口,它们有者不同的使用方式和适用场景,关卡蓝图可以作用于整个关卡的全局事件图表。它保存了关卡中所以实例化Actor的引用,可以对关卡内的所以Actor实例进行操作。打开关卡蓝图每一个关卡对应一个关卡蓝图,关卡蓝图无法新建,只能打开默...

2018-05-06 19:40:37 1887 0

原创 蓝图类型(7) —— 蓝图类

简述蓝图类(Blueprint Class)定义对象的属性和功能,根据需求,可以通过继承现有的蓝图类来实现特定的功能,蓝图类使用可视化蓝图脚本来定义。创建蓝图类转到内容浏览器,在空白区域点击右键,在弹出的菜单栏中点击Blueprint Class(当前工程模板为Third Person)在弹出框中...

2018-05-06 19:40:29 1621 0

原创 蓝图类型(8) —— 蓝图宏

简述蓝图宏和和函数一样,都是对一些功能算法进行了封装,它们都有一个输入点和输出点,调用方法也类似创建蓝图宏蓝图宏可以在蓝图类,关卡节点和宏库中创建,这里我门在关卡蓝图中创建,打开关卡蓝图,转到My Blueprint面板,点击Macros后面的“+”,创建蓝图宏,命名为Macro_0双击Macro...

2018-05-06 19:40:19 1258 0

原创 蓝图类型(9) —— 蓝图接口

简述蓝图接口,可以实现同类功能的在不同的Actor中表达各自的特点,比如,两个Actor都有在三维空间中变换的功能,在接口中定义一个变换函数SetTransform(),两个Actor通过包含这个接口,并实现各自的变换功能,新建接口转到主界面,在内容浏览器中依次  右键 -> Blu...

2018-05-06 19:39:59 1113 1

翻译 UE4 蓝图教程(四) UI

简述在游戏中,开发人员使用图像和文字向玩家显示游戏信息,如血量或得分。这就是所说的用户界面(UI)。在虚幻引擎4中你可以用Unreal Motion Graphics(UMG)创建UI。UMG允许您通过拖拽UI元素,例如拖拽按钮和文本标签快捷的构建UI。在本教程中,您将学习如何:1,创建显示信息标...

2018-03-18 21:02:26 7453 3

翻译 UE4 蓝图教程(三) 材质

简述和现实世界一样,游戏中也包含各种各样的物体,每个物体都有自己的外表。在虚幻引擎中,材质定义了这些外部。它是什么颜色的?有多亮的?是透明的吗?这些都是在材质中定义的。在虚幻引擎中,几乎所有的外表元素都使用了材质。你可以将材质应用于各种物体,例如网格,粒子和UI元素。在本教程中,您将学习如何:1 ...

2018-03-01 22:49:58 6514 1

翻译 UE4 蓝图教程(一) 开始

简述Unreal Engine 4是一款游戏开发引擎, 能够开发从2D移动游戏到AAA级主机游戏的的所有产品。基于这款引擎开发的游戏有发方舟,生存进化,铁拳7和王国之心。对于初学者来说,在虚幻引擎4中开发是非常简单的。使用蓝图可视化脚本系统,您可以创建完整的游戏,而无需编写一行代码!结合一个易于使...

2018-03-01 21:56:44 15240 4

翻译 UE4 蓝图教程(二) 蓝图

蓝图蓝图是虚幻4中的可视化脚本系统,是一种快速开发游戏原型的方法。无需逐行编写代码,您可以直观的做所有事情:拖放节点,将它们的属性设置在UI中,并拖动连接线来连接。除了成为一个快速的原型开发工具之外,蓝图还使得非编程人员可以很快速地上手编写脚本。在本教程中,您将用蓝图:1 设置一个从上向下看的摄像...

2018-03-01 21:56:33 4468 2

原创 OPenGL点精灵

简述 点精灵使使用片元着色器渲染的OpenGL点。运行的时候需要考虑点内的片元坐标,这个坐标由内置的两维向量gl_PointCoord保存,这个变量最常见的作用是当作纹理坐标使用或者用于计算颜色和覆盖率。   给点精灵贴上纹理 在OpenGL绘制的点,只有一个位置坐标。如果要给一个点贴上纹理,则需...

2018-01-19 19:11:35 844 0

翻译 OPenGL--Transform feedback示例解析

简述 英文地址https://open.gl/feedback 到目前为止,我们总是将顶点数据发送到图形处理器,并且只在帧缓存中生成绘制的像素。如果我们想要在经过顶点着色器或几何着色器之后捕获这些顶点呢?在这一章中,我们将探讨一种方法,即transform feedback。 到目前为止,我...

2018-01-12 10:41:45 3368 0

原创 OPenGL--Transform feedback基础

简述 TransformFeedback是OpenGL管线中,顶点处理(如果有几何着色器,那么就在几何着色器后)之后,图元装配之前的一个步骤。它可以重新捕获即将装配为图元(点,线段,三角形)的顶点,然后将部分或全部属性传递到缓存对象上来。每当一个顶点传递到图元装配阶段时,将所有需要捕获的属性记录...

2018-01-11 18:32:40 597 0

原创 OPenGL纹理基础

简述 纹理是一个2D/1D/3D图片,可以更加逼真的描述物体,把一张砖的图片贴合到3d的房子上,这样房子看起来就像有砖墙了。 OpenGL支持多类型多维数的纹理对象,每个纹理对象表示一组可以组成纹理的一组图象,纹理可以包括1维,2维或多维的数组,称为纹理数组。   纹理环绕方式 纹理坐标的范围通...

2018-01-02 19:26:16 629 0

原创 OpenGL缓存数据

简述 缓存对象(buffer  object)在OpenGL中十分重要,几乎所有的功能都需要用到它。常见操作包括它的创建,数据的输入, 数据的输出,销毁。   创建 在OPenGL中可以使用函数glGenBuffers()来创建缓存对象,调用之后只是得到了一个缓存对象名称的数组,这些名称只是个标记...

2017-12-29 16:34:45 1853 0

原创 OpenGL绘制方式详解

简述 OpenGL绘制方式 OpenGL可以支持很多不同的图元类型,最基础的为点,线,或三角形。线和三角形可以组合成条带,循环体或者扇面三角形。点,线,或三角形也是大部分图象硬件设备支持的基础图元类型。   点 点可以通过单一的顶点来表示,点实际上不存在面积,在OpenGL中它通过屏幕上的一个矩形...

2017-12-29 16:27:57 2763 1

原创 OpenGL帧缓存

简述一般在OpenGL环境搭建过程中,窗口系统会创建一个默认的帧缓存,这个帧缓存是唯一可以被图形服务器的显示系统所识别的帧缓存,所以应用程序自定义的帧缓存只能用于离屏渲染的场合。帧缓存不会直接存储渲染数据,必须将渲染的结果保存到一些附件中(颜色,深度和模板)。窗口系统的帧缓存在创建之初就有自己的缓...

2017-12-29 16:05:49 1641 2

原创 OPenGL--几何着色器的应用(多实例绘制)

简述 多实例渲染是一种连续执行多次相同的渲染命令的方法,并且每个渲染命令所产生的结果都会有轻微的差异。这是一种使用少量API来渲染大量几何体的有效方法。 当一个模型需要创建多个实例时,一般地可以在程序中循环调用glDrawArrays()函数完成多次绘制,这样,顶点着色器对每次输入的顶点运行一次,...

2017-12-29 15:37:41 1478 0

原创 OPenGL--几何着色器的应用(法线向量可视化)

简述 几何着色器可以多次调用EmitVertex()输出多种数量的图元,它产生的输出图元比输入的图元更多,这种方法叫扩充。使用这种方法可以显示任意物体顶点的法线向量。首先需要创建两个着色器程序,一个不适应几何着色器正常绘制物体,另一个通过几何着色器生成法线向量,然后输出直线(法线向量)。 顶点着色...

2017-12-27 19:12:54 698 0

原创 OPenGL--几何着色器基础入门

简述 几何着色器在渲染管道中几何着色器位于片段着色之前,它接收的是一系列顶点组成的图元,并且以数组的形式输入。 基本的几何着色器 #version 330 core //设置输入的图元类型为三角形 layout (triangles) in; //设置输出的图元类型为三角形带,产生的最大顶点个...

2017-12-27 18:57:38 421 0

原创 封装一个Window线程类

概述 封装一个简单的线程类,线程函数结束后线程不会自动退出,而是阻塞到了事件函数上,当再次运行该线程时,会触发事件解除阻塞运行函数,而不会重新创建线程。想要使线程退出,必须手动设置线程才会退出。 共有两个基类CThread和CThreadFunc,其中CThread是主要的线程类,它保存线程句柄...

2017-12-25 15:34:46 189 0

原创 Window多线程同步(事件)

概述 事件是内核对象,用于线程间通信和同步。事件分为无信号状态和有信号状态,无信号状态会阻塞到WaitForSingleObject()函数,直到触发事件(即调用SetEvent)。有信号状态则会忽略事件触发信号,不会阻塞到WaitForSingleObject()函数。   相关API Res...

2017-12-25 14:53:07 442 0

原创 Window多线程同步之(互斥锁)

简述 互斥锁是用在多线程间对操作同一资源进行互斥的。一个线程占用了一个资源,那么别的线程就操作此资源,直到这个线程该释放互斥锁,其他的线程才开始可以重新抢夺这个互斥锁,成功获得互斥锁的线程利用这个资源,其他线程再次阻塞,周而复始。如对全局变量的访问,线程加锁后对变量进行读写操作,完成后释放互斥锁...

2017-12-22 14:41:45 2949 0

转载 向量的几何意义及编程应用(6)

转载自:http://blog.csdn.net/popy007/article/details/376952 3-D空间中的基变换与坐标变换 一、空间坐标系的基和基矩阵 在3-D空间中,我们用空间坐标系来规范物体的位置,空间坐标系由3个相互垂直的坐标轴组成,我们就把它们作为我们观察3-D空...

2017-12-22 13:33:32 272 0

转载 向量的几何意义及编程应用(5)

转载自:http://blog.csdn.net/popy007/article/details/376948 物体的旋转 欢迎回来这里!此次我们要讨论向量的旋转问题,包括平面绕点旋转和空间绕轴旋转两部分。对于游戏程序员来说,有了向量的旋转,就代表有了操纵游戏中物体旋转的钥匙,而不论它...

2017-12-22 13:31:04 114 0

转载 推导相机变换矩阵

一些网友写信给我希望能够了解固定流水线中世界空间到相机空间变换矩阵的具体推导过程。其实之前我在《向量几何在游戏编程中的使用6》中已经简单的把相机变换作为一个使用基理论的例子进行了说明,但可能仍然不够具体。这篇文章中,我会尽力阐述相机变换的整个来龙去脉。希望能够对正在学习固定流水线的朋友们有所帮助。...

2017-12-22 10:00:07 186 0

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