47 void RenderSecondScreen(
World* world,
class Image* colorTarget,
class Image* depthTarget,
48 uint32_t width, uint32_t height,
class Camera3D* cameraOverride =
nullptr,
49 int32_t targetScreen = -1,
50 bool drawAccumulatedDebugDraws =
true);
203 void GatherDrawData(
World* world);
204 void GatherLightData(
World* world);
205 void RenderDraws(
const std::vector<DrawData>& drawData);
206 void RenderDraws(
const std::vector<DrawData>& drawData,
PipelineConfig pipelineConfig);
209 int32_t FrustumCullDraws(
const CameraFrustum& frustum, std::vector<DrawData>& drawData);
210 int32_t FrustumCullDraws(
const CameraFrustum& frustum, std::vector<DebugDraw>& drawData);
211 int32_t FrustumCullLights(
const CameraFrustum& frustum, std::vector<LightData>& lightData);
213 void RenderShadowCasters(
World* world);
214 void RenderSelectedGeometry(
World* world);
216 void UpdateDebugDraws();
223 bool mInitialized =
false;
225 std::vector<DrawData> mShadowDraws;
226 std::vector<DrawData> mOpaqueDraws;
227 std::vector<DrawData> mSimpleShadowDraws;
228 std::vector<DrawData> mPostShadowOpaqueDraws;
229 std::vector<DrawData> mTranslucentDraws;
230 std::vector<DrawData> mWireframeDraws;
231 std::vector<DrawData> mWidgetDraws;
233 std::vector<LightData> mLightData;
235 std::vector<DebugDraw> mDebugDraws;
236 std::vector<DebugDraw> mCollisionDraws;
238 World* mCurrentWorld =
nullptr;
239 uint32_t mFrameIndex = 0;
240 uint32_t mScreenIndex = 0;
241 int32_t mTargetScreenFilter = -1;
242 uint32_t mFrameNumber = 0;
243 float mGlobalUiScale = 1.0f;
246 bool mFrustumCulling =
true;
247 bool mEnableProxyRendering =
false;
248 bool mEnable3dRendering =
true;
249 bool mEnable2dRendering =
true;
250 bool mEnablePathTracing =
false;
251 bool mEnableLightFade =
false;
252 uint32_t mLightFadeLimit = 4;
253 float mLightFadeSpeed = 1.0f;
254 glm::vec4 mClearColor = {};
255 float mColorScale = 1.0f;
256 glm::vec4 mSelectedColor = { 0.2f, 0.1f, 1.0f, 0.6f };
257 float mSelectedCheckerSize = 8.0f;
260 uint32_t mRaysPerPixel = 4;
261 uint32_t mMaxBounces = 4;
262 bool mPathTraceAccumulate =
true;
263 glm::vec4 mSkyZenithColor = { 0.0f, 0.0f, 0.0f, 1.0f };
264 glm::vec4 mSkyHorizonColor = { 0.0f, 0.0f, 0.0f, 1.0f };
265 glm::vec4 mGroundColor = { 0.0f, 0.0f, 0.0f, 1.0f };
268 uint32_t mBakeRaysPerVertex = 4;
269 uint32_t mBakeMaxBounces = 4;
270 float mBakeShadowBias = 0.001f;
271 uint32_t mBakeIndirectIterations = 20;
272 uint32_t mBakeDiffuseDirectPasses = 2;
273 uint32_t mBakeDiffuseIndirectPasses = 2;
PostProcessPassId
Definition EngineTypes.h:174
DebugMode
Definition Enums.h:33
@ DEBUG_NONE
Definition Enums.h:34
BoundsDebugMode
Definition Enums.h:41
PipelineConfig
Definition GraphicsTypes.h:66
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition CameraFrustum.h:8
Definition MaterialLite.h:38
FontRef mRoboto16
Definition Renderer.h:191
FontRef mRobotoMono16
Definition Renderer.h:192
MaterialRef mDefaultMaterial
Definition Renderer.h:178
void EnablePathTracing(bool enable)
Definition Renderer.cpp:240
bool IsRenderingLastScreen() const
Definition Renderer.cpp:285
void LoadDefaultMeshes()
Definition Renderer.cpp:448
static void Destroy()
Definition Renderer.cpp:73
void BeginLightBake()
Definition Renderer.cpp:1869
void SetSelectedColor(const glm::vec4 &color)
Definition Renderer.cpp:1849
bool IsRenderingFirstScreen() const
Definition Renderer.cpp:280
void SetLightFadeSpeed(float speed)
Definition Renderer.cpp:1909
void Initialize()
Definition Renderer.cpp:102
void EnableStatsOverlay(bool enable)
Definition Renderer.cpp:356
void LoadDefaultTextures()
Definition Renderer.cpp:433
void SetDebugMode(DebugMode mode)
Definition Renderer.cpp:177
uint32_t GetRaysPerPixel() const
Definition Renderer.cpp:1994
glm::uvec4 GetSceneViewport(int32_t screenIdx=-1)
Definition Renderer.cpp:2146
glm::vec4 GetSkyZenithColor() const
Definition Renderer.cpp:2039
static POLYPHASE_API Renderer * Get()
Definition Renderer.cpp:82
uint32_t GetBakeIndirectIterations() const
Definition Renderer.cpp:2024
uint32_t GetViewportWidth(int32_t screenIdx=-1)
Definition Renderer.cpp:2095
glm::vec4 GetGroundColor() const
Definition Renderer.cpp:2049
uint32_t GetScreenIndex() const
Definition Renderer.cpp:275
bool IsConsoleEnabled()
Definition Renderer.cpp:394
FontRef mRobotoMono8
Definition Renderer.h:193
void EnableConsole(bool enable)
Definition Renderer.cpp:386
bool Is2dRenderingEnabled() const
Definition Renderer.cpp:235
bool IsProxyRenderingEnabled() const
Definition Renderer.cpp:195
glm::vec4 GetSelectedColor() const
Definition Renderer.cpp:1854
void Render(World *world, int32_t screenIndex)
Definition Renderer.cpp:1262
void EnableLightFade(bool enable)
Definition Renderer.cpp:1894
void RemoveDebugDrawsForNode(Node *node)
Definition Renderer.cpp:481
glm::vec4 GetClearColor() const
Definition Renderer.cpp:1844
bool IsPathTraceAccumulationEnabled() const
Definition Renderer.cpp:2004
bool IsStatsOverlayEnabled() const
Definition Renderer.cpp:377
uint32_t GetViewportX(int32_t screenIdx=-1)
Definition Renderer.cpp:2055
glm::vec4 GetSkyHorizonColor() const
Definition Renderer.cpp:2044
TextureRef mDefaultORMTexture
Definition Renderer.h:172
Texture * GetBlackTexture()
Definition Renderer.cpp:250
void Enable2dRendering(bool enable)
Definition Renderer.cpp:230
void SetLightFadeLimit(uint32_t limit)
Definition Renderer.cpp:1899
static void Create()
Definition Renderer.cpp:66
float GetLightFadeSpeed() const
Definition Renderer.cpp:1914
bool IsLightFadeEnabled() const
Definition Renderer.cpp:1889
void AddDebugDraw(const DebugDraw &draw)
Definition Renderer.cpp:474
Node3D * ProcessHitCheck(World *world, int32_t x, int32_t y, uint32_t *outInstance=nullptr)
Definition Renderer.cpp:172
bool IsPostProcessPassEnabled(PostProcessPassId passId) const
Definition Renderer.cpp:1954
void LoadDefaultFonts()
Definition Renderer.cpp:464
uint32_t GetBakeDiffuseDirectPasses() const
Definition Renderer.cpp:2029
float GetResolutionScale() const
Definition Renderer.cpp:1989
float GetBakeShadowBias() const
Definition Renderer.cpp:2019
float GetLightBakeProgress() const
Definition Renderer.cpp:1884
StaticMeshRef mCylinderMesh
Definition Renderer.h:183
uint32_t GetViewportY(int32_t screenIdx=-1)
Definition Renderer.cpp:2075
void Enable3dRendering(bool enable)
Definition Renderer.cpp:220
void SetSelectedCheckerSize(float size)
Definition Renderer.cpp:1859
const std::vector< DebugDraw > & GetDebugDraws() const
Definition Renderer.cpp:494
void SetEngineState(EngineState *engineState)
Definition Renderer.cpp:260
uint32_t GetBakeMaxBounces() const
Definition Renderer.cpp:2014
const std::vector< LightData > & GetLightData() const
Definition Renderer.cpp:1834
void EnableProxyRendering(bool enable)
Definition Renderer.cpp:190
void SetBoundsDebugMode(BoundsDebugMode mode)
Definition Renderer.cpp:200
void GatherProperties(std::vector< Property > &props)
Definition Renderer.cpp:136
StaticMeshRef mSphere112Mesh
Definition Renderer.h:186
void SetColorScale(float colorScale)
Definition Renderer.cpp:1919
TextureRef mDefaultColorTexture
Definition Renderer.h:169
bool IsPathTracingEnabled() const
Definition Renderer.cpp:245
Console * GetConsoleWidget()
Definition Renderer.cpp:414
StatsOverlay * GetStatsWidget()
Definition Renderer.cpp:419
float GetColorScale() const
Definition Renderer.cpp:1938
glm::vec2 GetActiveScreenResolution()
Definition Renderer.cpp:323
void SetClearColor(const glm::vec4 &color)
Definition Renderer.cpp:1839
DebugMode GetDebugMode() const
Definition Renderer.cpp:185
TextureRef mDefaultColorAlphaTexture
Definition Renderer.h:170
StaticMeshRef mSphereMesh
Definition Renderer.h:185
uint32_t GetBakeDiffuseIndirectPasses() const
Definition Renderer.cpp:2034
void SetGlobalUiScale(float scale)
Definition Renderer.cpp:333
uint32_t GetLightFadeLimit() const
Definition Renderer.cpp:1904
uint32_t GetFrameIndex() const
Definition Renderer.cpp:270
void DirtyAllWidgets()
Definition Renderer.cpp:399
StaticMeshRef mCubeMesh
Definition Renderer.h:182
BoundsDebugMode GetBoundsDebugMode() const
Definition Renderer.cpp:205
glm::vec2 GetScreenResolution(int32_t screen=-1)
Definition Renderer.cpp:299
uint32_t GetFrameNumber() const
Definition Renderer.cpp:265
TextureRef mDefaultNormalTexture
Definition Renderer.h:171
void SetResolutionScale(float scale)
Definition Renderer.cpp:1983
bool Is3dRenderingEnabled() const
Definition Renderer.cpp:225
void LoadDefaultMaterials()
Definition Renderer.cpp:443
void EnablePostProcessPass(PostProcessPassId passId, bool enable)
Definition Renderer.cpp:1972
void EndLightBake()
Definition Renderer.cpp:1874
StaticMeshRef mConeMesh
Definition Renderer.h:181
StaticMeshRef mPlaneMesh
Definition Renderer.h:184
TextureRef mBlackTexture
Definition Renderer.h:168
MaterialLite * GetDefaultMaterial()
Definition Renderer.cpp:255
TextureRef mWhiteTexture
Definition Renderer.h:167
float GetSelectedCheckerSize() const
Definition Renderer.cpp:1864
TextureRef mEnvironmentMap
Definition Renderer.h:175
World * GetCurrentWorld()
Definition Renderer.cpp:294
uint32_t GetMaxBounces() const
Definition Renderer.cpp:1999
uint32_t GetViewportHeight(int32_t screenIdx=-1)
Definition Renderer.cpp:2118
void EnableFrustumCulling(bool enable)
Definition Renderer.cpp:210
bool IsFrustumCullingEnabled() const
Definition Renderer.cpp:215
bool IsLightBakeInProgress() const
Definition Renderer.cpp:1879
float GetGlobalUiScale() const
Definition Renderer.cpp:328
float GetColorScaleInverse() const
Definition Renderer.cpp:1944
FontRef mRoboto32
Definition Renderer.h:190
StaticMeshRef mTorusMesh
Definition Renderer.h:187
glm::uvec4 GetViewport(int32_t screenIdx=-1)
Definition Renderer.cpp:2141
~Renderer()
Definition Renderer.cpp:87
uint32_t GetBakeRaysPerVertex() const
Definition Renderer.cpp:2009
Definition SmartPointer.h:33
Definition StatsOverlay.h:26
Definition EngineTypes.h:224
Definition EngineTypes.h:343
float mDistance2
Definition Renderer.h:27
LightDistance2(Light3D *comp, float dist2)
Definition Renderer.h:29
Light3D * mComponent
Definition Renderer.h:26