自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

a359877454的博客

UE4 游戏开发 DirectX学习 C++学习

  • 博客(96)
  • 资源 (5)
  • 论坛 (1)

原创 UE4 C++利用函数名调用UFUNCTION函数(含蓝图函数)

对于纯蓝图定义的函数可以使用函数UObject中的 virtual void ProcessEvent( UFunction* Function, void* Parameters )进行调用比如蓝图终定义了BP_Func()可在C++代码中这样调用:ProcessEvent(FindFunctionChecked(FName("BP_Func"),NULL);第二...

2020-07-11 17:14:37 229

原创 UE4通过类名符串和函数名字符串调用函数

UPROPERTY() FACTION_DATA CurActionData; UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回调类(不要A,U前缀如Actor非AActor)") FString ClassName; UPROPERTY(EditAnywhere, BlueprintReadWrite, DisplayName = "播放完成回调函数") FName CallBackUFunction;F...

2020-06-11 16:34:59 203

原创 UE4纯C++黑板Blackboard键添加(备忘

FindObject<UEnum>(ANY_PACKAGE, *FString("EEnemyAIState"), true)

2020-05-29 14:39:10 172

原创 UE4 URPOPERTY限制变量最大max最小值min值

UPROPERTY(EditAnywhere, Category = "Call", meta = (ClampMin=0,ClampMax=10)) uint8 CallNum= 3;更多URPOPERTY完全详解参考:https://blog.csdn.net/qq_22159557/article/details/81137933挺棒的笔记,很多UPROPERTY中不常用的标记也有,赞博主。...

2020-05-14 14:46:50 349

原创 UE4 的 USTRUCT()垃圾回收问题

分为两类1.被UPROPERTY标记的USTRUCT或者被UPROPERTY标记的TArray可以被垃圾回收的2.函数内自己动态new的USTRUCT需要你自己管理释放,UE4不会帮你释放。参考资料:1.https://www.ue4community.wiki/Legacy/Structs,_USTRUCTS(),_They%27re_Awesome#Garbage_Col...

2020-04-29 10:40:37 495

原创 UE4遍历枚举

UE4遍历枚举方式UEnum*MyEnum=StaticEnum<MyEnumType>();for(int32 i;i<MyEnum->NumEnums()-1;i++){ MyEnumType(MyEnum->GetValueByIndex(i));}GetValueByIndex获取的值为int64,需要转为你枚举定义的类型。...

2020-04-02 09:57:16 469

原创 UE4原生内置多人语音聊天

一.创建会话1.创建 创建服务器和加入服务器的UI2.实现创建会话和加入会话的功能(1)创建会话功能(2)加入会话功能二.配置文件设置1.DefaultEngine.ini文件配置(1)在[OnlineSubsystem]下的bHasVoiceEnabled需要设置为true[OnlineSubsyste...

2019-09-18 14:27:19 1605 10

转载 UE4入门-常见基本数据类型-字符串(备忘)

原文地址:https://blog.csdn.net/u012793104/article/details/78470388字符串FNameFName 通过一个轻型系统使用字符串。在此系统中,特定字符串即使会被重复使用,在数据表中也只存储一次。FNames 不区分大小写。它们为不可变,无法被操作。FNames 的存储系统和静态特性决定了通过键进行 FNames 的查找和访问速度较快。FNa...

2019-08-09 10:39:08 1472

转载 UE4编辑器扩展踩坑血泪史

转载自:https://segmentfault.com/a/1190000018367388俗话说的好,一流程序写架构,三流程序写UI。可是在游戏开发过程中,特别是引擎和工具链开发的时候,UI是绕不过去的坑,UE4现在是各大厂越来越流行了,各种工具层出不穷,可是和unity相比,Slate UI做编辑器扩展和插件的时候,难度不是大了一个level,最为关键的是,UE4的编辑器埋藏了无数的暗坑...

2019-07-23 14:47:47 2902

转载 UE4笔记---C++加载BP蓝图及C++BP蓝图文件并创建UUserWidget对象

UE4笔记---C++加载BP蓝图及C++BP蓝图文件并创建UUserWidget对象// 加载BP蓝图文件并创建 UUserWidgetUUserWidget* UserWidget = nullptr;TSubclassOf<UUserWidget> WidgetClass = LoadClass<UUserWidget>(this, TEXT("/Game/B...

2019-07-17 10:37:12 551

原创 升级UE4项目VS版本

原本项目用的是VS2015,后来要升级到VS2017,也尝试了在UE4编辑器中进行设置vs版本,重新生成VS项目后仍旧是2015的,但是没什么效果。后来找到这个方法,用以下CMD命令行来重新生成vs项目D:/UnrealEngine-4.17.1-release/Engine/Binaries/DotNET/UnrealBuildTool.exe -projectfiles -pr...

2019-04-09 16:07:20 1800

转载 WNDCLASS中cbClsExtra和cbWndExtra区别及其用法

cbClsExtra和cbWndExtra主要区别:1,两者都是附加额外空间。2,cbClsExtra是对类的(这里所说的类不是C++中的类,而是WNDCLASS结构的变量用RegisterClass注册后,在系统中记录的一组信息,是窗口的一个模板),用该类生成的所有窗口共享该附加空间。类似于C++类中的static变量。3,cbWndExtra是对窗口的,每实例化一个窗口都有这么一个...

2019-03-29 10:38:36 218

转载 UE4摄像机系统解析

一.摄像机工作原理在游戏中,摄像机是玩家的眼睛,他控制了玩家的视点(POV即PointOfView,后面简称POV)位置以及玩家的视野大小(FOV即FieldOfView,后面简称FOV)。一句话,摄像机决定了我们去观察这个游戏世界。游戏的类型多种多样,有第一人称的FPS游戏,有第三人称的动作游戏,还有需要统筹全局来观察的RTS游戏。简单来说,第一人称就是把POV放在人眼睛的位置,第三人称...

2018-09-21 10:37:56 804

转载 UE4文件及路径类库使用总结

感谢博主,原博地址:https://blog.csdn.net/qq_35221523/article/details/80462176一直在研究虚幻的插件,期间碰到许多诸如文件操作,路径操作等问题,总结记录一下。环境:UE4版本4.19.2+Win10+VS2017。文件操作类(一):IPlatformFile//实例化IPlatformFile对象IPlatformFile...

2018-08-22 15:48:00 2555 1

转载 C++调用dll文件的两种方法

DLL中导出函数的声明有两种方式:一种是在函数声明中加上_declspec(dllexport)关键字,另一种方式就是采用模块定义文件声明。.def 文件为连接器提供了有关被链结程序的导出、属性及其他方面的信息。在连接阶段,可以使用/DEF(指定模块定义文件)连接器选项调用.def 文件。.def 文件必须至少包含下列模块定义语句: 1】文件中的第一个语句必须是LIBRARY 语句。此语句将 .d...

2018-06-22 10:50:52 29099 2

原创 UE4 C++ SpawnActor产生带参构造函数Actor示例

一般UE4里我们产生Actor使用SpawnActor来产生实例比如:SpawnActor(Actor::StaticClass(),FTransform(),FActorSpawnParameters());但是这种只适用于默认构造函数的情形,当我们需要使用带参构造函数传参数进去时这种方法就不适用了。此时需要UGameplayStatics::BeginDeferredActorSpawnFro...

2018-06-07 16:00:17 3653 5

转载 [UE4]C++实现动态加载的问题:LoadClass<T>()和LoadObject<T>() (备忘)

C++静态加载问题:ConstructorHelpers::FClassFinder()和FObjectFinder() http://aigo.iteye.com/blog/2281373C++实现动态加载UObject:StaticLoadObject();以Texture和Material为例http://aigo.iteye.com/blog/2268056 动态加载UObject和动态加...

2018-05-31 14:09:18 2566

原创 DirectX计算着色器(Compute Shader)线程组相关参数详解(SV_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID)

        在DirectX 11之前,着色器是与具体的渲染步骤绑定的,例如像素着色器,顶点着色器等等。而从DirectX11开始,DirectX增加了一种计算着色器(Compute Shader),它是专门为与图形无关的通用计算设计的。因此DirectX就变成了一个通用GPU计算的平台。鉴于GPU拥有极其强大的并行运算能力,学习使用DirectCompute是很有意义的。          ...

2018-05-10 23:55:42 2675

转载 泛化之美--C++11可变模版参数的妙用

原博地址:http://www.cnblogs.com/qicosmos/p/4325949.html1概述C++11的新特性--可变模版参数(variadic templates)是C++11新增的最强大的特性之一,它对参数进行了高度泛化,它能表示0到任意个数、任意类型的参数。相比C++98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数...

2018-02-28 16:47:09 195

转载 UE4的UE_LOG

原博地址:https://www.cnblogs.com/blueroses/p/6037981.html说明:本文为Wiki上的RAMA大神文章的大致翻译游戏模式:在游戏模式下,你需要在游戏的快捷方式后面加 -Log,才会在游戏中显示。 编辑器模式(Play In Editor):你可以在Output窗口中看到log信息。如果想在游戏中看到

2018-02-02 11:57:50 1701

转载 UE4时间相关函数

原博地址:https://blog.ch-wind.com/ue4-time-mange/在进行游戏构建时,我们通常会用到和时间相关的逻辑,在此稍微做下小结。当前UE4版本为4.15。基本上游戏引擎都是以Tick为中心运转的,表现在玩家面前就是帧率了,UE4也是如此。Ticktick是引擎的心跳,引擎中很多逻辑就是借助的tick机制自动注册的,例如UMG的动

2018-02-02 11:55:17 8142

转载 D3D10 技术Mipmap

Mipmap 是我们在使用纹理的时候一种常用的技术. 在上次写 D3D10 Demo 的时候我已经发现 D3D10 在创建纹理的时候不能自动生成 Mipmap , 通过这两天的仔细了解总结一下在 D3D10 中与纹理 Mipmap 有关的东西.      与 Mipmap 有关的参数(结构)有下列几个:D3D10_TEXTURE2D_DESC::MipLevels : Nu

2018-01-10 15:36:02 283

转载 常用的 <crtdbg.h>

可以加深理解的有关_PRTn宏的MSND地址:_RPT、_RPTF、_RPTW、_RPTFW 宏:https://msdn.microsoft.com/zh-cn/library/42773424.aspx用于报告的宏:https://msdn.microsoft.com/zh-cn/library/yt0c3wdh.aspx_CrtDbgReport、_CrtDb

2017-12-28 19:11:57 293

转载 Ripple游戏水波模拟算法实现

在介绍编程之前,先让我们来回顾一下在高中的物理课上我们所学的关于水波的知识。水波有如下几个特性: 扩散:当你投一块石头到水中,你会看到一个以石头入水点为圆心所形成的一圈圈的水波,这里,你可能会被这个现象所误导,以为水波上的每一点都是以石头入水点为中心向外扩散的,这是错误的。实际上,水波上的任何一点在任何时候都是以自己为圆心向四周扩散的,之所以会形成一个环状的水波,是因为水波的内部因

2017-12-05 09:21:39 760

转载 使用ifstream和getline读取文件内容

假设有一个叫 data.txt 的文件, 它包含以下内容: Fry: One Jillion dollars.[Everyone gasps.]Auctioneer: Sir, that's not a number.数据读取, 测试 。以下就是基于 data.txt 的数据读取操作:#include iostream>#include fs

2017-11-15 18:54:09 479

转载 【D3D11游戏编程】学习笔记二十四:切线空间(Tangent Space)

(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~)           切换空间,同局部空间、世界空间等一样,是3D图形学中众多的坐标系之一。切换空间最重要的用途之一,即法线映射(Normal Mapping)。关于法线映射的细节,将在下一篇文章中详细介绍。但在学习法线映射

2017-11-14 19:48:56 269

转载 【D3D11游戏编程】学习笔记二十:第一人称摄像机的实现

(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~)      在这篇文章中,我们来实现一个简单的第一个称摄像机。在之前所有的程序中,为了方便从各个角度观察场景,我们可以通过鼠标来旋转视角和镜头远近。尽管相对单一地从固定的角度观察方便多了,但观察点依然仅仅限制在一个球面上,观

2017-11-08 15:15:45 688

转载 DirectX11环境配置

从今天开始,开启一个新的系列:Direct3D11的学习教程。因为一直对3D方面比较感兴趣,最近决定开始学习D3D知识。我之前也没有接触过Direct3D9,在网络上咨询过一些大神,大家都推荐直接从D3D11开始学起。我想了好久终于下决心买了一本D3D11的龙书《Introduction to 3D Game Programming: With Directx 11》,可惜这本书目前只有英文版

2017-11-06 18:38:14 2721

转载 WNDCLASS结构体

WNDCLASS是一个由系统支持的结构,用来储存某一类窗口的信息,如ClassStyle,消息处理函数,Icon,Cursor,背景Brush等。也就是说,CreateWindow只是将某个WNDCLASS定义的窗体变成实例。要得到某一窗口的WNDCLASS数据,可以用GetClassLong();  RegisterClass()就是在系统注册某一类型的窗体。也就是将你提供的WNDCLA

2017-11-06 11:19:58 445

转载 通过优化在UE4中实现良好性能和高质量视觉效果

对于任何追求UE4性能最佳、同时又想保持极高质量视觉效果的人来说,本文有一些可遵循的一般性建议和原则。 局限性为了性能,你通常受CPU时间(通常和游戏设置相关)和GPU时间限制(渲染场景花费的时间)。CPU创建由GPU渲染的场景会耗费一些时间。通常情况下,当你发现游戏的运行速度不像你想要的那么快时,第一步是找出你现在受以上哪个环节的约束,然后确定需要修改的资源或设置

2017-11-01 15:44:08 7772

转载 Directx11教程二十五之ZBuffer(深度缓存,DepthBuffer)

好文,感谢博主,原文链接:http://blog.csdn.net/qq_29523119/article/details/52894710这节教程的结构如下:一,DepthBuffer(深度缓存)深度缓存(Z缓存值)是用来记录视截体的每个像素的深度,其值范围是[0,1],在D3D11中 默认近裁剪面(Near_Z)上面的像素深度为0,而

2017-10-24 11:57:01 840

转载 d3d11的IASetVertexBuffers和IASetIndexBuffer学习

之前一直搞不懂为何IASetVertexBuffers可以设置多个vertex buffer,而IASetIndexBuffer只能设置一个index buffer,这怎么能够对应得上呢?      这两天要做一个东西,要从一个3ds文件中读出多个对象渲染出来,我以为这就可以将每个对象的顶点存到一个buffer数组中,再将这个buffer数组用IASetVertexBuffers设置为顶点

2017-10-23 14:46:27 1314

转载 D3D11笔记——Resource基本概念

D3D11中的Resource主要可以分为Buffers和Textures两类。Resource可以被绑定到渲染管线的特定阶段,有些绑定是直接的(比如ID3D11DeviceContext::IASetVertexBuffers就直接把一定数量的Vertex Buffers绑定到管线的Input Assembler阶段),也有的绑定(比如想让Pixel Shader读一个Texture中的内容

2017-10-21 17:24:31 1695

转载 C++“准”标准库Boost学习指南-variant的使用

Variant库包含一个不同于union的泛型类,用于在存储和操作来自于不同类型的对象。这个库的一个特点是支持类型安全的访问,减少了不同数据类型的类型转换代码的共同问题。Variant 库如何改进你的程序?对用户指定的多种类型的进行类型安全的存储和取回在标准库容器中存储不同类型的方法变量访问的编译期检查高效的、基于栈的变量存储Variant 库关注的是对一组限定类型

2017-10-11 14:56:51 494

转载 D3D透视投影详解(备忘)

作者:zdd出处:http://www.cnblogs.com/graphics/概述投影变换完成的是如何将三维模型显示到二维视口上,这是一个三维到二维的过程。你可以将投影变换看作是调整照相机的焦距,它模拟了为照相机选择镜头的过程。投影变换是所有变换中最复杂的一个。视锥体视锥体是一个三维体,他的位置和摄像机相关,视锥体的形状决定了模型如何从camera spac

2017-09-29 16:58:45 303

转载 三维图形矩阵变换

转自:http://blog.sina.com.cn/s/blog_620bf89501011fl8.html1.23.4.5.6.7.8.9.10.11.

2017-09-28 11:05:26 1758

转载 【D3D11游戏编程】学习笔记二:XNAMath之XMVECTOR

(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~)        历代的D3D教程中,介绍基本绘图时都会拿立方体作为例子,这次也不例外~ 立方体虽然简单,但正所谓麻雀虽小,五脏俱全。绘制立方体的过程其实已经包含了所有D3D渲染程序中最基本的、必不可少的步骤。因此,从绘制立方

2017-09-22 11:47:11 353

原创 (C++11)Lambda表达式(匿名函数)和为什么使用Lanbda表达式

名称Lanbda来自landba caculus(λ演算)--一种定义和应用函数的数学系统。这个系统能让您使用匿名函数--即无需给函数命名。在C++11中,对于接受函数指针或函数符的的函数,可使用匿名函数定义(lambda)作为其参数。与前述函数f3对应的lambda如下:bool f3(int x){return x%3==0;}(计算是否被3整除)对应lambda表达式:[](in

2017-06-01 18:53:49 1423

原创 为什么c++ 中类内初始值不能使用圆括号初始化?

偶然在记得在知乎上看到过回答,后来忘了,翻了好久浏览记录翻出来了,希望对别人加深理解有所帮助源自知乎:https://www.zhihu.com/question/37019538为什么c++ 中类内初始值不能使用圆括号初始化?为什么class A{public:int a(100);};这样不行呢 用花括号或者=就可以呢 这样设计的目的是什么

2017-05-26 19:36:10 3507

原创 c++11模板别名using=

对于冗长或复杂的标识符,如果能够创建其别名将很方便。以前c++为此提供了typedef:typedef std::vector::itrrator itType;C++11提供了另一种创建别名的语法 using=using itType=std::vector::iterator itType;差别在于新语法也可以用于模板部分具体化,但是typedef不能:template

2017-05-23 20:35:31 507

Unreal+Engine_EGC_Resources_资源优化执行列表2.xlsx

UE4资源性能优化

2019-09-18

Windows程序设计源代码

本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0下程序写作的方法。这些程序用C语言编写并使用原始的Windows Application Programming Interface(API)。如在本章稍后所讨论的,这不是写作Windows程序的唯一方法。然而,无论最终您使用什么方式写作程序,了解Windows API都是非常重要的。

2017-09-13

VS2012中文语言包

vs2012中文语言包免费下载

2017-06-10

Physically Based Rendering

Physically Based Rendering , 光线跟踪:基于物理的渲染 , 从理论到实践。免费分享。

2016-11-09

Introduction to 3D Game Programming with DirectX12

龙书DirectX12.网上找的时候都要积分,特地花了积分下载下来,然后上传给免费下载。

2016-10-19

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