UE4中的RHI指的是Render hardware interface,作用像Ogre里的RenderSystem,針對(duì)Dx11,Dx12,Opengl等等平臺(tái)抽象出相同的接口,我們能方便能使用相同接口對(duì)應(yīng)不同渲染平臺(tái).

  和以前一樣,先簡(jiǎn)單介紹一些類(lèi)與文件的作用,我們有個(gè)抽象的了解.

  RHI.h :主要定義一些硬件平臺(tái)的公共變量.

  一是 硬件支持項(xiàng),如是否支持PF_FloatRGBA格式渲染目標(biāo),手機(jī)平臺(tái)是否支持FrameBuffer拾取,支持體紋理,支持硬件合并渲染等等.

  二是 硬件變量,如最大Cube紋理數(shù),陰影貼圖長(zhǎng)寬最大值等等.

  三是 常見(jiàn)渲染定義,如FSamplerStateInitializerRHI紋理采樣,FRasterizerStateInitializerRHI柵欄化(填充格式,正方向定義,MSAA),FDepthStencilStateInitializerRHI逐片斷處理中的模板與深度,FBlendStateInitializerRHI逐片斷處理中的混合.FRHIDrawIndirectParameters/FRHIDrawIndexedIndirectParameters DrawCall中相關(guān)參數(shù).

  DynamicRHI.h :包含F(xiàn)DynamicRHI接口定義,渲染所需求所有接口,創(chuàng)建buffer,創(chuàng)建紋理,設(shè)置著色器參數(shù),UAV等,簡(jiǎn)單來(lái)說(shuō),對(duì)應(yīng)opengl,dx提供的渲染API,其DynamicRHI.cpp文件會(huì)根據(jù)平臺(tái)(Windows,apple,android等等)來(lái)選擇加載合適的渲染平臺(tái)(如Opengl,Dx,Vulkan等),在RHI模塊的private文件夾下,可能看到各個(gè)系統(tǒng)會(huì)如何選擇相應(yīng)的渲染平臺(tái).  

  FRenderResource:定義接口如InitDynamicRHI /ReleaseDynamicRHI /InitRHI /ReleaseRHI /InitResource /ReleaseResource /UpdateRHI等渲染資源選