虚幻4 渲染一个BOX的过程

本文详细介绍了虚幻4引擎中如何渲染一个BOX,从主线程添加MESH到渲染线程,再到渲染线程处理和更新场景中的物体变换。关键步骤包括FScene::AddPrimitive、FScene::UpdatePrimitiveTransform及其对应的RenderThread函数,最终在FMeshDrawingPolicy::DrawMesh中调用D3D API完成绘制。整个过程涉及主线程与渲染线程之间的交互,确保场景的实时更新和高效渲染。
摘要由CSDN通过智能技术生成
向场景增加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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值