自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

转载 使用VSCODE开发UE4

完全可行,速度很快,智能提示、代码格式化、查找Symbol等等都不比VS+Visual AssistX 差。准备打开编辑器的Editor Preferences>Source Code,选择VSCode在工程的uproject文件上右键>Generate Visual Studio Project,就会生成一个workspace文件,双击即可打开visual stud...

2019-04-04 14:29:00 1297

转载 UE4添加模块

添加模块在这篇文章里已经有详细的描述了:https://orfeasel.com/creating-custom-modules/但是这篇文章中少写了一个步骤:最后要在  <工程名>Editor.Target.cs以及  <工程名>.Target.cs中做一点修改:ExtraModuleNames.AddRange( new s...

2019-04-04 14:17:00 851

转载 游戏串流

所谓游戏串流就是把游戏的实时运算和渲染工作放到一台性能较好的机器上,其他配置较差的机器通过网络访问这台机器,获取游戏画面,并捕获游戏输入。非常类似于windows的远程桌面,但是区别在于仅捕获游戏内容和输入。这种应用主要是应用于一些配置较差的设备(特别是移动端或笔记本)想玩游戏的情况。目前已有的游戏串流服务比较有代表性的是Nvidia 的 Geforce Now。在调研的过程...

2018-12-17 21:47:00 1162

转载 DIY Arduino 方向盘

之前的项目中使用Arduino做UE4的输入设备时候需要用到UE4Duino这个插件,以字符串的形式从Arduino中组装信息并发送到串口,使用UE4Duino进行解析,过程比较麻烦。最近发现的一个工具UnoJoy可以把Arduino变成一个游戏手柄,开发和调试就简单多了。不过要注意它只能模拟一些常规的游戏输入,例如左右摇杆的X,Y axis,各种按钮等。对于自行车轮胎测速这种需求可...

2018-09-18 22:33:00 1449

转载 免费/开源软件推荐

Visual SFM官网组合多张照片生成点云MeshLab官网处理和编辑3D模型VirtualDub官网简单的视频编辑,合成。一个好用的功能是把图片序列合成视频。FFMpeghttps://www.ffmpeg.org/一个跨平台视频音频录制,混编,转换,播放的框架,相当多的视频格式转换和播放软件的后台都是它。可以将视频按频率采样为图...

2018-08-24 18:40:00 129

转载 把引擎插件变成工程插件

1. 找到引擎目录下Plugins/Marketplace/插件名称,移动到工程的Plugins目录下2. 移除引擎中的插件,具体方法:第二步是必须的,否则将会有两个版本的相同插件转载于:https://www.cnblogs.com/AnKen/p/9261711.html...

2018-07-04 09:28:00 109

转载 MergeActors技巧

打开界面MergeActors的界面在Window>DeveloperTools>MergeActors启用合并材质的方法使用Use specific LOD Level一种特殊情况合并材质适用于多个物体材质不统一的情况,但是如果场景中有大量类似物体,材质和uv也都很统一,那么合并材质就会很浪费贴图资源,将多个物体的uv重新摆放,并把相同的材质复制很多...

2018-06-29 10:40:00 512

转载 烘焙卡在99%

可能原因1. 场景中没有LightmassImportanceVolume,或者LightmassImportanceVolume设置有问题 这里着重讲一下后者。据一些用户反馈,LightmassImportanceVolume的Scale不能修改,要保持(1.0,1.0,1.0),而修改大小的任务需要交给Brush Settings 的x,y,z2. 场景中有某个物体...

2018-06-29 10:26:00 239

转载 UMG里没有"Prefab"怎么办?

大家知道在Unity里做UI,利用Prefab是少不了的,但是在UE4里如何做呢?这是实际工作中遇到的问题,我Google关键词“UMG Prefab","UMG resuable”,没发现相关的话题,就自己研究了一下,发现其实UMG里是可以把一部分UI做成"Prefab"的。大家都知道UMG里可以插入其他Widget的,基本上每个讲到UMG的教程都会提到,但是讲的用法都很鸡肋,...

2018-04-17 12:50:00 203

转载 UE4 使用VaRest的最佳实践

背景介绍:用Node.js,express,Mongo搭建了一个简单后台,为项目提供REST风格的API服务。第一个查询是通过Get进行,返回一个json字符串。在虚幻里使用VaRest来进行访问API是一个很好的选择。折腾了半天,才摸索出请求json的最佳实践:切记Construct Json Request,如果是普通的url请求,Content Type一...

2018-04-10 17:20:00 6189

转载 Unity3D 中的FOV

一直以为Unity中的相机FOV指的是frustum两个对角边的方向夹角,所以在看一篇教程的时候怎么算都算不对。后来灵机一动,查了一下,才发现Unity中的Fov指的是垂直方向的FOV:参见这里:https://docs.unity3d.com/ScriptReference/Camera-fieldOfView.htmlThis is the vertical field ...

2018-03-23 10:04:00 3501

转载 Replicate(网络复制),ActorRole(角色),Ownership(所有权)以及RPC(远程调用)等等...

I. ReplicationReplication指的是 从服务端向客户端 传递数据和信息的行为。注意是单向的,不会从客户端传递信息和数据到服务端。假设一个Actor被设置为Replicates, 当且仅当它被服务端生成 ,那么它会被所有客户端生成,并被Replicated。言外之意,即使是Replicates的Actor,如果在某个客户端生成,它也只会在本客户端生成,是 不会在...

2018-03-19 14:57:00 747

转载 3D Computer Grapihcs Using OpenGL - 20 结合Buffer

在上一节的案例中,我们使用了四个Buffer Object,立方体的VertexBuffer,立方体的索引Buffer,四面体的VertexBuffer,四面体的索引Buffer。我们这节尝试把两个图形的Vertex Buffer结合,两个图形的索引Buffer结合,形成两个Buffer,让程序更加简化。先看最终代码: MyGlWindow.cpp: 1 #includ...

2018-02-05 12:00:00 123

转载 3D Computer Grapihcs Using OpenGL - 19 Vertex Array Object(顶点数组对象)

大部分OpenGL教程都会在一开始就讲解VAO,但是该教程的作者认为这是很不合理的,因为要理解它的作用需要建立在我们此前学过的知识基础上。因此直到教程已经进行了一大半,作者才引入VAO这个概念。在我看来这也是非常合理和自然的。准备工作为了讲解后面的内容,我们对代码进行了更改(算是回退吧,改回到以前不使用Instancing的版本):去掉了sendDataToOpenGL(...

2018-02-03 13:17:00 109

转载 3D Computer Grapihcs Using OpenGL - 18 相机移动

移动相机需要用到键盘按键,按键事件的引入需要包含头文件#include <Qt3DInput\qkeyevent.h>并实现QWidget中定义的虚函数keyPressEvent我们首先在MyGlWindow中重写这个虚函数。在MyGlWindow.h加入 void keyPressEvent(QKeyEvent*);在MyGlWindo...

2018-02-02 11:45:00 98

转载 3D Computer Grapihcs Using OpenGL - 17 添加相机(旋转)

在11节我们说过,MVP矩阵中目前只应用了两个矩阵,World to View 矩阵被省略了,这就导致我们的画面没有办法转换视角。本节我们将添加这一环节,让相机可以旋转。为了实现这一目的,我们添加一个相机类, Camera类。Camera.h: 1 #pragma once 2 #include <glm\glm.hpp> 3 4 class...

2018-02-01 17:16:00 149

转载 3D Computer Grapihcs Using OpenGL - 16 使用DrawElementsInstanced绘制立方体

我们使用15节学到的知识来绘制14节的立方体。在第14节我们使用了两次glDrawElements实现了OpenGL实例化,发现这样仍然不太方便,如果需要绘制成千上万的立方体,就需要手写成千上万次的glDrawElements().而15节我们知道了glDrawElementsInstanced函数可以支持批量绘制。我们需要绘制的多个立方体唯一不同的只是转换矩阵,为了达到这个...

2018-01-29 17:01:00 502

转载 3D Computer Grapihcs Using OpenGL - 15 Draw Element Instanced

友情提示:继续本节之前,需要保存此前的代码,本节为了试验,会对代码做一些修改,但后续的修改需要我们把代码返回之前的进度。OpenGL内置支持Instancing,有专门的函数来处理这件事情。为了方便,我们先使用最简单的三角形来学习先修改sendDataToOpenGL()函数: 1 void MyGlWindow::sendDataToOpenGL() 2 {...

2018-01-29 15:58:00 120

转载 3D Computer Grapihcs Using OpenGL - 14 OpenGL Instancing

如果我们需要绘制两个(或者多个)一样的立方体(或者物体),只是位置、缩放、旋转不一样,那么我们可以不需要多次将这个物体的顶点信息、颜色信息等发送到显卡,而是发送一次,绘制多次,仅仅是每次绘制之前应用不同的转换矩阵。这种方法叫做OpenGL Instancing。它的效率比每次都重新发送一次数据到显卡要高很多。看具体代码: 1 void MyGlWindow::paintGL(...

2018-01-29 11:21:00 81

转载 3D Computer Grapihcs Using OpenGL - 13 优化矩阵

上节说过矩阵是可以结合的,而且相乘是按照和应用顺序相反的顺序进行的。我们之前初始化translationMatrix和rotationMatrix的时候,第一个参数都是使用的一个初始矩阵 glm::matrix4(),实际上我们可以对代码稍作优化,让初始化过程精简一些。对比一下优化之前和优化之后的代码:之前:1 glm::mat4 projectionMatrix = g...

2018-01-29 09:26:00 90

转载 3D Computer Grapihcs Using OpenGL - 12 Rotation Matrix

为了证明我们上节渲染出来的是一个立方体而不是一个平面,我们决定将它旋转一定角度,这样我们就需要一个旋转矩阵(也属于ModelTransformMatrix的一部分)上一节我们的ModelTransformMatrix中做了一个移动(translation)的操作,所以我们将它重命名为translationMatrix。先看修改后的paintGL()函数: 1 void M...

2018-01-26 16:29:00 175

转载 3D Computer Grapihcs Using OpenGL - 11 Model View Projection Matrices

本节我们将绘制一个3维物体,立方体。如果要渲染3D物体,我们需要了解MVP(Model View Projection),它表示三个转换矩阵。实际上这个名字不够明确,更加确切的释义如下:Model - Model to World 模型空间到世界空间View - World to View 世界空间到视图空间Projection - View to Pro...

2018-01-25 10:46:00 129

转载 3D Computer Grapihcs Using OpenGL - 10 Color Buffer

本节我们将尝试利用三角形制作一个“走马灯”效果。一个三角形如图示方式,从左向右依次移动。先看一下代码:MyGlWindow.cpp 1 #include <gl\glew.h> 2 #include "MyGlWindow.h" 3 #include <iostream> 4 #include <fstream>...

2018-01-24 22:32:00 83

转载 3D Computer Grapihcs Using OpenGL - 09 Enable Depth Test

启用Depth TestOpenGL是个3D绘图API,也就是说不只有xy坐标轴,还有第三个坐标轴z,z轴的方向是垂直于屏幕,指向屏幕内。靠近人眼的方向是负方向,标准化设备坐标的最小值是-1, 最大正值是1.在未启用深度测试的情况下,同一个像素如果被绘制两次,后绘制的像素会覆盖先绘制的像素。如果启用了深度测试,情况则完全不同了。后绘制的像素会对深度做一次比较,如果后绘制的...

2018-01-24 16:12:00 89

转载 3D Computer Grapihcs Using OpenGL - 08 Text File Shaders

使用之前的方法写Shader是一件很痛苦的事情,把Shader代码直接卸载C++文件中,需要使用很多引号来包裹,既不美观也不方便。我们这节的目的是使用纯文本文件保存Shader。首先在工程中创建两个文件,分别命名为VertexShaderCode.glsl 和 FragmentShaderCode.glsl,后缀名可以自己随意指定,不一定非要是glsl。然后把上节的Shade...

2018-01-23 21:43:00 58

转载 3D Computer Grapihcs Using OpenGL - 07 Passing Data from Vertex to Fragment Shader

上节的最后我们实现了两个绿色的三角形,而绿色是直接在Fragment Shader中指定的。这节我们将为这两个三角形进行更加自由的着色——五个顶点各自使用不同的颜色。要实现这个目的,我们分两步进行,首先在顶点数组里增加数据用来表示颜色修改sendDataToOpenGL()函数中的verts数组: 1 GLfloat verts[] = 2 {...

2018-01-23 20:54:00 76

转载 3D Computer Grapihcs Using OpenGL - 06 Vertex and Fragment Shaders

从这里就接触到了可编程图形渲染管线。下面介绍使用Vertex Shader (顶点着色器)和 Fragment Shader(像素着色器)的方法。我们的目标是使用这两个着色器给三角形填充绿色。添加了一个cpp文件存放Shader文件,MyShaderCode.cpp: 1 const char* vertexShaderCode = 2 " #versio...

2018-01-23 19:22:00 132

转载 3D Computer Grapihcs Using OpenGL - 05 EBO

本节将采用两种方法绘制两个三角形。先看第一种方法的代码MyGlWindow.cpp 1 #include <gl\glew.h> 2 #include "MyGlWindow.h" 3 4 void MyGlWindow::initializeGL() 5 { 6 glewInit(); 7 8 GLfloat ...

2018-01-22 21:22:00 62

转载 3D Computer Grapihcs Using OpenGL - 04 First Triangle

本节将绘制一个三角形先看最终代码:MyGlWindow.cpp: 1 #include <gl\glew.h> 2 #include "MyGlWindow.h" 3 4 void MyGlWindow::initializeGL() 5 { 6 glewInit(); 7 GLfloat verts[]= 8 ...

2018-01-22 20:33:00 52

转载 3D Computer Grapihcs Using OpenGL - 03 OpenGL Buffer Data

本节绘制一个三角形,并讲解Buffer Object-缓冲对象OpenGL的窗口坐标屏幕中心为坐标原点,横向朝右为x正方向,纵向朝上为y正方向,最大值最小值分别为1,-1.Buffer Object缓冲对象为内存中的一块空间,用来和OpenGL交互数据。使用BufferObject的步骤:创建Buffer的“名称”(或者理解为ID,地址), GLuint类型;...

2018-01-22 20:09:00 61

转载 3D Computer Grapihcs Using OpenGL - 02 QGLWidget

用红色来填充GLWidget窗口修改MyGlWindow.h,添加两个函数,一个用来初始化OpengGL,一个用来绘制OpenGL#pragma once#include <QtOpenGL\qgl.h>class MyGlWindow:public QGLWidget{protected: void initializeGL(); ...

2018-01-22 19:37:00 59

转载 3D Computer Grapihcs Using OpenGL - 01 环境设置

这系列文章是我学习Youtube上一套OpenGL教程的笔记,自己对教程的案例重新制作并且做了一定程度的修改(更有条理,且修正了一些问题)。后续将持续更新。Visual Studio 2017工程教程使用的是visual studio 2012,我电脑上装的是visual studio 2017。先创建一个Visual C++ Win32 Console Appli...

2018-01-22 19:32:00 69

转载 Online Game Development in C++ 第五部分总结

I. 教程案例框架描述该套教程做了一个简单的汽车控制系统,没有用到物理模拟。用油门和方向控制汽车的加速度和转向,同时还有一些空气阻力和滚动摩擦力的设置增加了真实感。汽车的位置是通过加速度和时间等计算出来的。关键的参数包括:加速度,速度,质量,最大驱动力,最小转弯半径等。详细的计算方式就不细说了,重点是没有用到物理模拟。II. 联网游戏要面对的两大问题,以及模拟这些困难的方...

2018-01-19 20:06:00 187

转载 Actor Roles 图示

Udemy上的教程《Unreal Multiplayer Mastery - Online Game Development in C++》中对Actor Roles的总结非常直观到位,一看就懂,而且忘不了。相比之下纯文字的官方文档逊色不少,希望官方文档也能做的更人性化一些,而不是仅仅追求严谨。转载于:https://www.cnblogs.com/AnKen/p/82990...

2018-01-16 21:58:00 67

转载 OpenGL 开发环境配置:Visual Studio 2017 + GLFW + GLEW

Step1:Visual Studio 2017Why开发环境,后面编译GLFW 和 GLEW也要用How这里使用的是Visual Studio 2017的 Community 版本,直接官网下载,注册,就可以免费用。2017版本在安装界面里注意要勾选c++相关选项,否则默认不安装c++组件。当然,较早版本(2015,2013,2010什么的)也是可以的。...

2017-12-18 12:47:00 272

转载 UE4联网测试的快捷方法

工程中测试创建bat文件,格式如下:UE4Editor.exe路径 工程文件名 [地图名及参数] -game [其他自定义参数]UE4Editor.exe路径表示虚幻编辑器相应版本的UE4Editor.exe的绝对或者相对路径,如果路径名称中有空格,需要用引号把路径包裹住工程文件名表示uproject文件的绝对或相对路径,如果路径名称...

2017-12-12 13:02:00 286

转载 UE4网络功能相关笔记

RepNotity的作用把变量设置成RepNotify除了像C#语言中的"属性"一样,提供一个改变变量时调用一个函数的机会以外,其真正重要的作用其实是应对网通同步延迟问题。一定要牢记网络同步是需要时间的,不像单机编程一样,程序的执行是同步的,即时的。每个设置成“replicated"的属性的同步,以及RPC都是需要时间的,即使是局域网,即使是同一台机器上多个客户端,相互直接通...

2017-12-06 23:39:00 250

转载 Cmdow-一个win32窗口管理命令行工具

最近有个需求,将同一个程序运行8个实例,并按照规则在两个窗口上分布,本以为用bat就可以实现,结果发现没那么容易,搜了很久找到了这个工具cmdow.exe,发现这个东西真不错。符合了我们项目的需求:单文件,离线可用,免安装,非常省心。直接bat里调用,可以实现很多功能,但是我们这次的需求用bat实现还比较难(bat的for循环里的赋值结合运算很难搞),于是就结合C#实现了。...

2017-12-06 14:53:00 629

转载 UE4联网游戏中让不同的客户端生成不同的Pawn类型

效果描述一个服务器,两个客户端,让他们连接后分别生成不同的Pawn,并且在不同的位置生成。意义这是个项目需求,但是我发现如果能够彻底理解并制作出这个功能,会对虚幻4内置的网络功能以及一些重要的Gameplay 的类有更深入的了解。目前已有解决方案在Google上也搜了好久,但是相关信息并不多,比较靠谱的最终都指向同一个wiki页面:Spawn Different Pa...

2017-11-25 23:23:00 484

转载 Behaviour Tree Service 中的几个函数

Service中可以override的函数有8个,因为每个函数都有个AI版本的,所以实际上是4组函数,AI版本的和非AI版本基本一样,他们分别是:Receive Search Start (AI)Receive Activation (AI)Receive Tick (AI)Receive Deactivation (AI)我们以下图为例:这个分支是一个S...

2017-09-21 11:51:00 94

空空如也

空空如也

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

TA关注的人

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