向场景增加MESH和更新MESH的位置等函数都在
\Engine\Source\Runtime\Renderer\Private\RendererScene.cpp
文件中。
渲染一个BOX首先在主线程通过调用这个函数向渲染线程发送命令,告诉渲染线程增加一个Primitive。
void FScene::AddPrimitive(UPrimitiveComponent* Primitive)
{
SCOPE_CYCLE_COUNTER(STAT_AddScenePrimitiveGT);
checkf(!Primitive->IsUnreachable(), TEXT("%s"), *Primitive->GetFullName());
// Save the world transform for next time the primitive is added to the scene
float DeltaTime = GetWorld()->GetTimeSeconds() - Primitive->LastSubmitTime;
if ( DeltaTime < -0.0001f || Primitive->LastSubmitTime < 0.0001f )
{
渲染线程会调用这个函数,添加信息到渲染线程可以读取的结构中。
void FScene::AddPrimitiveSceneInfo_RenderThread(FRHICommandListImmediate& RHICmdList, FPrimitiveSceneInfo* PrimitiveScen