自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

虚幻4引擎工作室

致力于国内虚幻4引擎的普及与发展

  • 博客(22)
  • 收藏
  • 关注

原创 虚幻4 编译Shader 5

解决上一个文档的问题,哪里相应了Shader编译完成的消息。Engine 的LOOP里面调用了这个: if (GShaderCompilingManager) { // Process any asynchronous shader compile results that are ready, limit execution time QUICK_SCOPE_CYCLE

2016-04-30 01:03:28 1065

原创 虚幻4 shader编译4

首先,我找到了运送给Workder来编译的中间文件,叫WorkerInputOnly.in但是有四个文件夹,目前不知道为什么有四个。查看这个文件,里面有一个结构体Frame是今天同事刚给我讲完,是每一帧都变化的参数:cbuffer View{ float4x4 View_TranslatedWorldToClip; float4x4 View_WorldToClip;

2016-04-29 23:23:03 2575

原创 虚幻4 Shader的编译3

Compiler manager里面有一个thread变量,使用FShaderCompileThreadRunnable启动thread。manager创建时候,会吧thread启动,编译时候会一直调用int32 FShaderCompileThreadRunnable::CompilingLoop(){ // Grab more shader compile jobs fro

2016-04-28 23:05:37 1877

原创 虚幻4 材质的编译2 真正的编译过程

编译Shader时候,后新起一个线程,在这个文件中\Engine\Source\Runtime\Engine\Public\ShaderCompiler.h/** * Shader compiling thread * This runs in the background while UE4 is running, launches shader compile worker

2016-04-28 22:51:47 1806

原创 虚幻4 字符串char utf8转换

\Engine\Source\Runtime\Core\Public\Containers\StringConv.h// Usage of these should be replaced with StringCasts.#define TCHAR_TO_ANSI(str) (ANSICHAR*)StringCast(static_cast(str)).Get()#define

2016-04-28 12:13:09 2772

原创 虚幻4 材质的编译。

\Engine\Source\Runtime\Engine\Private\Materials\MaterialShader.cpp这个文件中的/*** Compiles the shaders for a material and caches them in this shader map.* @param Material - The material to compil

2016-04-28 00:57:32 1585

原创 虚幻4 渲染staticmesh过程。

void FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate& RHICmdList){.....RenderBasePass(RHICmdList);}这个函数是渲染staticmesh的。 然后调用到Engine\Source\Runtime\Renderer\Private\Sta

2016-04-24 23:46:54 3781

原创 虚幻4 各个平台的入口函数----------Launch模块

每个平台的Main函数都在这里。Engine_Updating\Engine\Source\Runtime\Launch\

2016-04-16 15:27:05 3342

原创 虚幻4 笔记

namespace ENamedThreads{ CORE_API Type RenderThread = ENamedThreads::GameThread; // defaults to game and is set and reset by the render thread itself CORE_API Type RenderThread_Local = ENamedThread

2016-04-14 11:21:49 1987 1

原创 虚幻4 渲染线程主循环

/** The rendering thread main loop */void RenderingThreadMain( FEvent* TaskGraphBoundSyncEvent ){ ENamedThreads::RenderThread = ENamedThreads::Type(ENamedThreads::ActualRenderingThread); ENamedThr

2016-04-13 20:51:27 1670

原创 虚幻4 引擎主循环

void FEngineLoop::Tick(){#if !UE_BUILD_SHIPPING && !UE_BUILD_TEST FScopedSampleMallocChurn ChurnTracker;#endif // Ensure we aren't starting a frame while loading or playing a loading movie ensur

2016-04-13 00:37:37 3259

原创 虚幻4 主线程与渲染线程的同步。

主线程每一Tick开始时候,会向渲染线程发送一大堆的Task,让渲染线程开始工作, // this could be perhaps moved down to get greater parallelizm // Sync game and render thread. Either total sync or allowing one frame lag. static F

2016-04-13 00:31:14 3014

原创 虚幻4 主线程一直向渲染线程发送Task

Program\Engine_Updating\Engine\Source\Runtime\Launch\Private\Launch.cpp while( !GIsRequestingExit ) { EngineTick(); } GEngine->Tick( FApp::GetDeltaTime(), bIdleMode );\Engine_Updati

2016-04-12 19:32:19 2289

原创 虚幻4 删除Actor渲染线程和主线程的过程

UWorld DestroyActor时候,就会直接调用Engine\Source\Runtime\Engine\Private\Components\PrimitiveComponent.cppvoid UPrimitiveComponent::DestroyRenderState_Concurrent(){ // Remove the primitive from the sc

2016-04-12 10:52:15 1626

原创 虚幻4 TaskGraph小记

Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp里面的TaskGraph这个是管理Task的Manager类。Engine\Source\Runtime\Core\Public\Async\TaskGraphInterfaces.h这个里面的TGraphTask,是被管理的Task....

2016-04-09 17:16:16 2224

原创 虚幻4 Task小记

TGraphTask类里面有一个FConstructor类,用来延迟创建TGraphTask。 FConstructor(TGraphTask* InOwner, const FGraphEventArray* InPrerequisites, ENamedThreads::Type InCurrentThreadIfKnown) : Owner(InOwner) , P

2016-04-09 16:08:43 1633

原创 虚幻4 Task的创建和执行

今天看到把渲染人物放到人物列表的函数。Engine\Engine\Source\Runtime\Core\Private\Async\TaskGraph.cpp // API inherited from FTaskGraphInterface /** * Function to queue a task, called from a FBaseGraphTask

2016-04-07 20:49:34 1974

转载 虚幻4 Function Library

转载地址:http://blog.ch-wind.com/%E8%93%9D%E5%9B%BE%E5%87%BD%E6%95%B0%E5%BA%93%E5%B0%8F%E7%BB%93/蓝图函数库小结2014年12月24日0蓝图函数库的功能非常强劲,如果在项目中使用的话有时能达到事半功倍的效果。蓝图函数库,Blueprint Function

2016-04-07 19:27:32 1915

转载 虚幻4 材质基础

原文链接UE4的材质表面上看起来很简单,可是到了用的时候却总是没有办法实现好的效果。所以特意对文档进行阅读,初步了解了一下主要知识点。当前使用的UE4版本:4.8.0。UE4中的材质有很多用途,可以用于光照、延迟渲染、粒子系统等等。由于暂时不会用到,目前只做了最基础的材质使用的研究,也就是说是Materia Type为Surface的情况。材质的最终输出节点上的可用项会随着

2016-04-07 17:21:29 13617

原创 虚幻4 UHT查找各种宏的地方

D:\Projects\Program\Engine\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp虚幻对于头文件在编译器编译前的操作。

2016-04-07 10:24:34 1404

原创 虚幻4 反射

今天讲了虚幻4的反射机制。例子:UCLASS()class TESTCPP_API ATestCPPGameMode : public AGameMode{ GENERATED_BODY()public: UPROPERTY(BlueprintReadWrite) int32 aaaaaaaaaaa;}

2016-04-07 00:55:18 1920 2

原创 虚幻引擎CPP函数传入数组有时候编译不过的bug。

数组参数编译不过。

2016-04-05 18:26:05 701

空空如也

空空如也

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

TA关注的人

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