28#include "CPostProcessorRP.h"
91 class SKYLICHT_API CDeferredRP :
113 bool m_isIndirectPass;
114 int m_vertexColorShader;
115 int m_textureColorShader;
116 int m_textureLinearRGBShader;
118 int m_lightmapArrayShader;
119 int m_lightmapVertexShader;
120 int m_lightmapSHShader;
121 int m_lightmapSkinSHShader;
122 int m_lightmapColorShader;
123 int m_lightmapIndirectTestShader;
125 int m_colorInstancing;
126 int m_lmInstancingStandardSG;
127 int m_lmInstancingTangentSG;
129 int m_lightDirection;
130 int m_lightDirectionSSR;
131 int m_lightDirectionBake;
137 int m_pointLightShader;
138 int m_pointLightShadowShader;
140 int m_spotLightShader;
141 int m_spotLightShadowShader;
143 int m_areaLightShader;
144 int m_areaLightShadowShader;
146 float m_indirectMultipler;
147 float m_directMultipler;
148 float m_lightMultipler;
154 void initDefferredMaterial();
155 void initLightMaterial();
160 virtual ~CDeferredRP();
164 virtual bool canRenderMaterial(
CMaterial* material);
166 virtual bool canRenderShader(
CShader* shader);
168 virtual void initRender(
int w,
int h);
170 virtual void resize(
int w,
int h);
174 virtual void drawMeshBuffer(
CMesh* mesh,
int bufferID,
CEntityManager* entity,
int entityID,
bool skinnedMesh);
176 virtual void drawInstancingMeshBuffer(
CMesh* mesh,
int bufferID,
CShader* instancingShader,
CEntityManager* entityMgr,
int entityID,
bool skinnedMesh);
178 void getRenderLightRect(
CCamera* camera,
const core::aabbox3df& box,
float& x,
float& y,
float& w,
float& h,
float maxW,
float maxH);
182 m_postProcessor = pp;
185 inline void setIndirectMultipler(
float f)
187 m_indirectMultipler = f;
190 inline void setDirectMultipler(
float f)
192 m_directMultipler = f;
195 inline void setLightMultipler(
float f)
197 m_lightMultipler = f;
200 static void enableRenderIndirect(
bool b);
202 static bool isEnableRenderIndirect();
204 static void enableTestIndirect(
bool b);
206 static void enableTestBuffer(
int bufferId);
210 void initRTT(
int w,
int h);
This is an object class used to set up the camera, including its position, viewing angle,...
Definition CCamera.h:70
virtual bool OnEvent(const SEvent &event)
Called if an event happened.
This object class manages all entities within a scene.
Definition CEntityManager.h:89
The object class describes material information such as which shader it's associated with,...
Definition CMaterial.h:84
Represents a programmable shader, including uniforms, UI, resources, instancing and platform-specific...
Definition CShader.h:198
Definition IPostProcessor.h:32
Definition IRenderPipeline.h:37
Interface of an object which can receive events.
Definition IEventReceiver.h:474
Self reallocating template array (like stl vector) with additional features.
Definition irrArray.h:23
Interface of a Video Driver dependent Texture.
Definition ITexture.h:119
Struct for holding parameters for a material renderer.
Definition SMaterial.h:255
Everything in the Skylicht Engine. You can start by looking at the topics.
Definition AudioDebugLog.h:29
rect< s32 > recti
Rectangle with int values.
Definition rect.h:273
CMatrix4< f32 > matrix4
Typedef for f32 matrix.
Definition matrix4.h:2241
dimension2d< u32 > dimension2du
Typedef for an unsigned integer dimension.
Definition dimension2d.h:212
aabbox3d< f32 > aabbox3df
Typedef for a f32 3d bounding box.
Definition aabbox3d.h:351
SEvents hold information about an event. See irr::IEventReceiver for details on event handling.
Definition IEventReceiver.h:273