12 sukhoi27smk

尚未进行身份认证

学习是为了探索这个世界的本质

等级
博文 1k+
排名 669

UE4异步编程专题 - TFunction

0.关于这个专题游戏要给用户良好的体验,都会尽可能的保证60帧或者更高的fps。一帧留给引擎的时间也不过16ms的时长,再除去渲染时间,留给引擎时间连10ms都不到,能做的事情是极其有限的。同步模式执行耗时的任务,时长不可控,在很多场景下是不能够接受的。因此UE4提供了一套较为完备的异步机制,来应对这个挑战。这个专题将深入浅出分析UE4中的解决方案,并分析其中的关键代码。1.同步和异步...

2019-07-09 17:16:23

UE4异步编程专题 - 多线程

专题的第二篇,我们聊聊UE4中的多线程的基础设施。UE4中最基础的模型就是FRunnable和FRunnableThread,FRunnable抽象出一个可以执行在线程上的对象,而FRunnableThread是平台无关的线程对象的抽象。后面的篇幅会详细讨论这些基础设施。1.FRunnableUE4为我们抽象FRunnable的概念,让我们指定在线程上运行的一段逻辑过程。该过程通常是一个...

2019-07-09 17:15:38

UE4异步编程专题 - 线程池FQueuedThreadPool

1.FQueuedThreadPool&IQueuedWorkFQueuedThreadPool是UE4中抽象出的线程池。线程池由若干个Worker线程,和一个同步队列构成。UE4把同步队列执行的任务抽象为IQueuedWork.线程池的同步队列,就是一个IQueuedWork的队列了。借用wiki上线程池的图,UE4的FQueuedThreadPool也是如图中所示的结构:...

2019-07-09 17:11:11

UE4多线程任务系统详解

首先,了解一下该系统重要的数据类型.1.FQueuedThreadPool:虚基类,队列线程池,FQueuedThreadPoolBase继承自FQueuedThreadPool,FQueuedThreadPoolBase维护了一个TArray<IQueuedWork*>QueuedWork(需要被执行的工作),TArray<FQueuedThread...

2019-07-09 17:06:18

如何在UE4中创建线程

FRunnable和FRunnableThread方法对于大多数问题来说无疑是一个可行的解决方案。但是,在创建许多任务时,您可能会达到CPU可以处理的并发上限,此时并发线程实际上会在争用CPU时间时相互阻碍。然后可能值得查看FQueuedThreadPool以限制任务可用的线程数。虚幻引擎4还提供了全局GThreadPool,但是此线程池仅设置为单个线程(UE4.14.3)。它似乎只是...

2019-07-09 13:30:03

UE4异步操作总结

虚幻本身有提供一些对异步操作的封装,这里是对这段时间接触到的“非同步”的操作进行的总结。当前使用的UE4版本为4.18.2。在虚幻的游戏制作中,如果不是特殊情况一般不会有用到线程的时候。但是由于实际上虚幻内部是有着许多线程机制的。例如通常的游戏引擎中游戏线程和渲染线程都是独立的,相互之间会存在一个同步的机制。而物理线程与游戏线程之间的同步有时候也会导致游戏的表现与预期不一致。通...

2019-07-09 11:48:42

UE4 多线程使用tip

在GameThread线程之外的其他线程中,不允许做一下事情1.不要spawning/modifying/deletingUObjects/AActors2.不要使用定时器TimerManager3.不要使用任何绘制接口,例如DrawDebugLine4.如果想在主线程中异步处理(也就是分帧处理),可以使用一下接口(在Async.h中)As...

2019-07-09 11:17:24

ue4-控制台执行方法

1.引擎单例派生类可直接调用方法以下类的派生类中可以通过在方法上标记UFUNCTION(Exec)直接调用方法Pawns,PlayerControllers,PlayerInput,CheatManagers,GameModes,GameInstances,overridenGameEngineclasses,andHudsshouldallwor...

2019-07-09 10:53:45

UE4 多线程和同步

RNGThread.HclassURPRJNAME_APIRNGThread:publicFRunnable{public://Constructor RNGThread(intCount=50000,intminNumber=0,intmaxNumber=1000,intchunkCount=20); //Destructo...

2019-07-09 10:35:18

UE4多线程

UE4中最基础的模型就是FRunnable和FRunnableThread,FRunnable抽象出一个可以执行在线程上的对象,而FRunnableThread是平台无关的线程对象的抽象。后面的篇幅会详细讨论这些基础设施。1.FRunnableUE4为我们抽象FRunnable的概念,让我们指定在线程上运行的一段逻辑过程。该过程通常是一个较为耗时的操作,例如文件IO;或者是常态为空闲等待...

2019-07-08 17:44:58

【Direct3D游戏开发】——DirectInput 让世界动起来

其实我们是可以通过Windows消息和API取得键盘或者鼠标或者其他设备的输入信息,但这有个等待windows消息传送的延时,笔者试过直接在消息回调函数中相应键盘的上下左右消息去使场景中的模型进行旋转,感觉有明显的延时。这对于游戏玩家来说简直是噩梦,就好像我在玩lol,舍友都在用迅雷下AV一样的信息。而DirectX是直接与硬件进行交流,不需要去等待windows传送消息。DirectInput...

2019-06-06 14:39:04

仿真程序驱动视景问题

1.坐标对应,东北天还是东南天2.跑道角度3.单位,厘米,米

2019-05-31 11:09:51

vaps 接收应用程序数据

sqxCommsManagerManager;sqxCommsSenderSender;int_tmain(intargc,_TCHAR*argv[]){ sqxCommsLog*pCommsLog=sqxCommsLog::s_pGetInstance(); pCommsLog->vSetTraceLvl(sqxCommsLog::TRACE_WA...

2019-05-27 13:14:10

vaps 发动数据给应用程序

classMyReceiver:publicsqxCommsReceiver{public: virtualvoidHandleMessage(constsqxCommsMessage&a_rMessage) { constfloat*pIncomingData=static_cast<constfloat*>(a_rMessage.pG...

2019-05-27 11:53:56

vaps 程序直接通信

2019-05-24 16:57:00

命令行启动打包程序

Ifyouneedjusttolaunchbothclientsvia*.exefilesyoucanpasssomearguments(hereissimplerun.bat):Code:@echooffstartGame.exeWinX=40WinY=40ResX=800ResY=600timeout1remNeedt...

2019-05-20 10:41:52

创建mip纹理链

(1)我们要做的是,根据原始纹理T0创建一系列的纹理(通常使用平均滤波):T1、T2…Tn,其中每个纹理的大小都是前一个纹理的1/4,即长度和宽度减半,如图12.40所示。要根据前一个mip纹理计算当前纹理中纹素的值,可以使用平均滤波器,即在RGB空间中,计算纹素(x,y)、(x+1,y)、(x+1,y+1)和(x,y+1)的平均值,然后将结果写入到当前纹理中,如图12.41所示。 ...

2019-05-13 17:21:08

ue4-texturefromdisk-plugin

#include"TextureFromDiskPrivatePCH.h"////////////////////////////////////////////////////////////////////////////UOggBPFunctionLibraryUTextureFromDiskFunctionLibrary::UTextureFromDiskFunctionL...

2019-05-10 18:31:09

export LD_LIBRARY_PATH 的使用

对linux不是很熟,之前只是听说过可以设置程序共享库位置也就是使用“exportLD_LIBRARY_PATH”今天用了用,感觉还挺不错,也很常用。比如你编译了一个so而这个so同时又依赖其他第三方库。如果你想把你编译的so提供给别人用的话,你不光提供你的so同时也要提供你的so所依赖的其他第三方库。比如在别人上电脑上要使用你的so的话,该so存放在其电脑/hom...

2019-05-07 10:11:10

Ubuntu 14.04 文件服务器--samba的安装和配置

samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu14.04上安装和配置samba一、一、更新源列表打开"终端窗口",输入"sudoapt-getupdate"-->回车-->"输入当前登录用户的管理员密码"-->回车,就可以了。二、安装samba打开"终端窗口",输入...

2019-05-06 15:04:02
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周上午根据用户上周的博文发布情况由系统自动颁发。