- 博客(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 1096
原创 虚幻4 shader编译4
首先,我找到了运送给Workder来编译的中间文件,叫WorkerInputOnly.in但是有四个文件夹,目前不知道为什么有四个。查看这个文件,里面有一个结构体Frame是今天同事刚给我讲完,是每一帧都变化的参数:cbuffer View{ float4x4 View_TranslatedWorldToClip; float4x4 View_WorldToClip;
2016-04-29 23:23:03 2620
原创 虚幻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 1911
原创 虚幻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 1826
原创 虚幻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 2834
原创 虚幻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 1618
原创 虚幻4 渲染staticmesh过程。
void FDeferredShadingSceneRenderer::Render(FRHICommandListImmediate& RHICmdList){.....RenderBasePass(RHICmdList);}这个函数是渲染staticmesh的。 然后调用到Engine\Source\Runtime\Renderer\Private\Sta
2016-04-24 23:46:54 3822
原创 虚幻4 各个平台的入口函数----------Launch模块
每个平台的Main函数都在这里。Engine_Updating\Engine\Source\Runtime\Launch\
2016-04-16 15:27:05 3369
原创 虚幻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 2014 1
原创 虚幻4 渲染线程主循环
/** The rendering thread main loop */void RenderingThreadMain( FEvent* TaskGraphBoundSyncEvent ){ ENamedThreads::RenderThread = ENamedThreads::Type(ENamedThreads::ActualRenderingThread); ENamedThr
2016-04-13 20:51:27 1692
原创 虚幻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 3321
原创 虚幻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 3068
原创 虚幻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 2315
原创 虚幻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 1653
原创 虚幻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 2309
原创 虚幻4 Task小记
TGraphTask类里面有一个FConstructor类,用来延迟创建TGraphTask。 FConstructor(TGraphTask* InOwner, const FGraphEventArray* InPrerequisites, ENamedThreads::Type InCurrentThreadIfKnown) : Owner(InOwner) , P
2016-04-09 16:08:43 1653
原创 虚幻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 2005
转载 虚幻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 1940
转载 虚幻4 材质基础
原文链接UE4的材质表面上看起来很简单,可是到了用的时候却总是没有办法实现好的效果。所以特意对文档进行阅读,初步了解了一下主要知识点。当前使用的UE4版本:4.8.0。UE4中的材质有很多用途,可以用于光照、延迟渲染、粒子系统等等。由于暂时不会用到,目前只做了最基础的材质使用的研究,也就是说是Materia Type为Surface的情况。材质的最终输出节点上的可用项会随着
2016-04-07 17:21:29 13685
原创 虚幻4 UHT查找各种宏的地方
D:\Projects\Program\Engine\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp虚幻对于头文件在编译器编译前的操作。
2016-04-07 10:24:34 1427
原创 虚幻4 反射
今天讲了虚幻4的反射机制。例子:UCLASS()class TESTCPP_API ATestCPPGameMode : public AGameMode{ GENERATED_BODY()public: UPROPERTY(BlueprintReadWrite) int32 aaaaaaaaaaa;}
2016-04-07 00:55:18 1943 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人