![]() |
Skylicht Engine
|
This is the object class that performs the draw call onto a texture. It's used in cases where you need to display planar reflections. More...
#include <RenderPipeline/CRenderToTextureRP.h>
Public Member Functions | |
| CRenderToTextureRP (u32 id, video::ECOLOR_FORMAT format, const core::dimension2du &customSize=core::dimension2du(), float scale=1.0f) | |
| virtual void | initRender (int w, int h) |
| virtual void | resize (int w, int h) |
| virtual void | render (ITexture *target, CCamera *camera, CEntityManager *entityManager, const core::recti &viewport, int cubeFaceId=-1, IRenderPipeline *lastRP=NULL) |
| void | setCustomCamera (CCamera *camera) |
| CCamera * | getCustomCamera () |
| int | getId () |
| bool | isEnable () |
| void | setEnable (bool b) |
| ITexture * | getTarget () |
| void | setCustomPipleline (IRenderPipeline *pipeline) |
| void | enableAutoGenerateMipmap (bool b) |
| bool | isAutoGenerateMipmap () |
| Public Member Functions inherited from Skylicht::CBaseRP | |
| virtual bool | canRenderMaterial (CMaterial *m) |
| virtual bool | canRenderShader (CShader *s) |
| virtual void | setCamera (CCamera *camera) |
| virtual void | setNextPipeLine (IRenderPipeline *next) |
| virtual void | onNext (ITexture *target, CCamera *camera, CEntityManager *entity, const core::recti &vp, int cubeFaceId) |
| virtual void | drawMeshBuffer (CMesh *mesh, int bufferID, CEntityManager *entity, int entityID, bool skinnedMesh) |
| virtual void | drawInstancingMeshBuffer (CMesh *mesh, int bufferID, CShader *instancingShader, CEntityManager *entityMgr, int entityID, bool skinnedMesh) |
| virtual void | updateTextureResource (CMesh *mesh, int bufferID, CEntityManager *entity, int entityID, bool skinnedMesh) |
| virtual void | updateShaderResource (CShader *shader, CEntityManager *entity, int entityID, video::SMaterial &irrMaterial) |
| void | beginRender2D (float w, float h) |
| void | renderBufferToTarget (float sx, float sy, float sw, float sh, SMaterial &material, bool flipY=true, bool flipX=false) |
| void | renderBufferToTarget (float dx, float dy, float dw, float dh, float sx, float sy, float sw, float sh, SMaterial &material, bool flipY=true, bool flipX=false) |
| void | renderEnvironment (CCamera *camera, CEntityManager *entityMgr, const core::vector3df &position, ITexture *texture[], int *face, int numFace, bool allPipeline) |
| void | renderCubeEnvironment (CCamera *camera, CEntityManager *entityMgr, const core::vector3df &position, ITexture *texture, int *face, int numFace, bool allPipeline) |
| void | unbindRTT () |
| Public Member Functions inherited from Skylicht::IRenderPipeline | |
| virtual ERenderPipelineType | getType () |
| virtual void | render (ITexture *target, CCamera *camera, CEntityManager *entity, const core::recti &viewport, int cubeFaceId=-1, IRenderPipeline *lastRP=NULL)=0 |
| virtual void | onNext (ITexture *target, CCamera *camera, CEntityManager *entity, const core::recti &viewport, int cubeFaceId)=0 |
Static Public Member Functions | |
| static const float * | getMatrix (int id) |
| Static Public Member Functions inherited from Skylicht::CBaseRP | |
| static void | saveFBOToFile (ITexture *texture, const char *output) |
| static void | setBakeMode (bool b) |
| static void | setBakeLightmapMode (bool b) |
| static void | setBakeLightingMapBounce (u32 i) |
| static void | setClearColor (const SColor &c) |
| static void | setMaxLight (u32 maxLights) |
Protected Member Functions | |
| void | initRTT (int w, int h) |
| void | releaseRTT () |
| Protected Member Functions inherited from Skylicht::CBaseRP | |
| void | disableTextureBilinear (SMaterial &m, int slot) |
| void | enableTextureBilinear (SMaterial &m, int slot) |
| void | setTarget (ITexture *target, int faceId) |
| void | drawSceneToTexture (ITexture *target, CCamera *camera, CEntityManager *entityMgr, bool allPipeline) |
| void | drawSceneToCubeTexture (ITexture *target, CCamera *camera, video::E_CUBEMAP_FACE faceID, CEntityManager *entityMgr, bool allPipeline) |
Protected Attributes | |
| int | m_id |
| bool | m_enable |
| core::matrix4 | m_bias |
| float | m_scale |
| core::dimension2du | m_size |
| core::dimension2du | m_customSize |
| CCamera * | m_customCamera |
| ITexture * | m_renderTarget |
| IRenderPipeline * | m_customPipleline |
| video::ECOLOR_FORMAT | m_format |
| bool | m_autoGenerateMipmap |
| Protected Attributes inherited from Skylicht::CBaseRP | |
| IRenderPipeline * | m_next |
| CMeshBuffer< video::S3DVertex2TCoords > * | m_drawBuffer |
| IVertexBuffer * | m_verticesImage |
| IIndexBuffer * | m_indicesImage |
| float | m_viewport2DW |
| float | m_viewport2DH |
| SMaterial | m_unbindMaterial |
| int | m_textureColorShaderID |
| Protected Attributes inherited from Skylicht::IRenderPipeline | |
| ERenderPipelineType | m_type |
Additional Inherited Members | |
| Public Types inherited from Skylicht::IRenderPipeline | |
| enum | ERenderPipelineType { Forwarder , Deferred , ShadowMap , Mix } |
| Public Attributes inherited from Skylicht::IRenderPipeline | |
| std::function< void(IRenderPipeline *)> | OnFinish |
| Static Protected Attributes inherited from Skylicht::CBaseRP | |
| static bool | s_bakeMode |
| static bool | s_bakeLMMode |
| static u32 | s_bakeBounce |
| static u32 | s_maxLight |
| static SColor | s_clearColor |
This is the object class that performs the draw call onto a texture. It's used in cases where you need to display planar reflections.
The setCustomCamera method is used to set up the camera for rendering, for example, a reflection camera with a viewing direction symmetrical to the current rendering camera.
Here's an example of a shader that needs to get parameters from RenderToTexture.
You can view the shader details in the file BuiltIn\Shader\PBR\Forward\PBRLightmapPlanarReflection.xml.
When you initialize a CRenderToTextureRP with id=1, the resource type will be RTT1, and RENDER_TEXTURE_MATRIX valueIndex=1.
You can attach it to the main render pipeline and setEnable it whenever you need to use RTT.
|
virtual |
Implements Skylicht::IRenderPipeline.
|
virtual |
Implements Skylicht::CBaseRP.
|
virtual |
Implements Skylicht::IRenderPipeline.