将目光转移到RenderingThreadMain()函数,这是个任务系统,各种渲染任务在此执行。
1,通过ENQUEUE_RENDER_COMMAND向队列添加渲染任务
可见,有很多种渲染任务
二,查看其定义,
1,
2,查看EnqueueUniqueRenderCommand的定义,有两个,肯定第一个不是了。
从
FRHICommandListImmediate& RHICmdList = GetImmediateCommandList_ForRenderCommand();
可知,渲染县城并非直接向GPU发送命令,而是将渲染命令放入RHI命令列表。由RHI线程不断去除命令,向GPU发送,并阻塞等待结果。此时,虽然此时HI线程阻塞,但是渲染线程依然正常工作,达到异步渲染的效果。