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);
224 void GatherDrawData(
World* world);
225 void GatherLightData(
World* world);
226 bool PassesTargetScreenFilter(
Node* node,
World* world)
const;
227 void RenderDraws(
const std::vector<DrawData>& drawData);
228 void RenderDraws(
const std::vector<DrawData>& drawData,
PipelineConfig pipelineConfig);
231 int32_t FrustumCullDraws(
const CameraFrustum& frustum, std::vector<DrawData>& drawData);
232 int32_t FrustumCullDraws(
const CameraFrustum& frustum, std::vector<DebugDraw>& drawData);
233 int32_t FrustumCullLights(
const CameraFrustum& frustum, std::vector<LightData>& lightData);
235 void RenderShadowCasters(
World* world);
236 void RenderSelectedGeometry(
World* world);
238 void UpdateDebugDraws();
245 bool mInitialized =
false;
247 std::vector<DrawData> mShadowDraws;
248 std::vector<DrawData> mOpaqueDraws;
249 std::vector<DrawData> mSimpleShadowDraws;
250 std::vector<DrawData> mPostShadowOpaqueDraws;
251 std::vector<DrawData> mTranslucentDraws;
252 std::vector<DrawData> mWireframeDraws;
253 std::vector<DrawData> mWidgetDraws;
255 std::vector<LightData> mLightData;
257 std::vector<DebugDraw> mDebugDraws;
258 std::vector<DebugDraw> mCollisionDraws;
261 struct CustomRenderPassEntry
267 std::vector<CustomRenderPassEntry> mCustomRenderPasses;
268 uint64_t mNextCustomRenderPassId = 1;
270 World* mCurrentWorld =
nullptr;
271 uint32_t mFrameIndex = 0;
272 uint32_t mScreenIndex = 0;
273 int32_t mTargetScreenFilter = -1;
274 uint32_t mFrameNumber = 0;
275 float mGlobalUiScale = 1.0f;
278 bool mFrustumCulling =
true;
279 bool mEnableProxyRendering =
false;
280 bool mEnable3dRendering =
true;
281 bool mEnable2dRendering =
true;
282 bool mEnablePathTracing =
false;
283 bool mEnableLightFade =
false;
284 uint32_t mLightFadeLimit = 4;
285 float mLightFadeSpeed = 1.0f;
286 glm::vec4 mClearColor = {};
287 float mColorScale = 1.0f;
288 glm::vec4 mSelectedColor = { 0.2f, 0.1f, 1.0f, 0.6f };
289 float mSelectedCheckerSize = 8.0f;
292 uint32_t mRaysPerPixel = 4;
293 uint32_t mMaxBounces = 4;
294 bool mPathTraceAccumulate =
true;
295 glm::vec4 mSkyZenithColor = { 0.0f, 0.0f, 0.0f, 1.0f };
296 glm::vec4 mSkyHorizonColor = { 0.0f, 0.0f, 0.0f, 1.0f };
297 glm::vec4 mGroundColor = { 0.0f, 0.0f, 0.0f, 1.0f };
300 uint32_t mBakeRaysPerVertex = 4;
301 uint32_t mBakeMaxBounces = 4;
302 float mBakeShadowBias = 0.001f;
303 uint32_t mBakeIndirectIterations = 20;
304 uint32_t mBakeDiffuseDirectPasses = 2;
305 uint32_t mBakeDiffuseIndirectPasses = 2;
PostProcessPassId
Definition EngineTypes.h:182
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:51
FontRef mRoboto16
Definition Renderer.h:212
void RunCustomRenderPasses()
Definition Renderer.cpp:540
FontRef mRobotoMono16
Definition Renderer.h:213
MaterialRef mDefaultMaterial
Definition Renderer.h:199
void EnablePathTracing(bool enable)
Definition Renderer.cpp:241
bool IsRenderingLastScreen() const
Definition Renderer.cpp:286
void LoadDefaultMeshes()
Definition Renderer.cpp:449
static void Destroy()
Definition Renderer.cpp:74
void BeginLightBake()
Definition Renderer.cpp:2010
void SetSelectedColor(const glm::vec4 &color)
Definition Renderer.cpp:1990
bool IsRenderingFirstScreen() const
Definition Renderer.cpp:281
void SetLightFadeSpeed(float speed)
Definition Renderer.cpp:2050
void Initialize()
Definition Renderer.cpp:103
void EnableStatsOverlay(bool enable)
Definition Renderer.cpp:357
void LoadDefaultTextures()
Definition Renderer.cpp:434
void SetDebugMode(DebugMode mode)
Definition Renderer.cpp:178
uint32_t GetRaysPerPixel() const
Definition Renderer.cpp:2135
glm::uvec4 GetSceneViewport(int32_t screenIdx=-1)
Definition Renderer.cpp:2287
glm::vec4 GetSkyZenithColor() const
Definition Renderer.cpp:2180
static POLYPHASE_API Renderer * Get()
Definition Renderer.cpp:83
uint32_t GetBakeIndirectIterations() const
Definition Renderer.cpp:2165
uint32_t GetViewportWidth(int32_t screenIdx=-1)
Definition Renderer.cpp:2236
glm::vec4 GetGroundColor() const
Definition Renderer.cpp:2190
uint32_t GetScreenIndex() const
Definition Renderer.cpp:276
bool IsConsoleEnabled()
Definition Renderer.cpp:395
FontRef mRobotoMono8
Definition Renderer.h:214
void EnableConsole(bool enable)
Definition Renderer.cpp:387
bool Is2dRenderingEnabled() const
Definition Renderer.cpp:236
bool IsProxyRenderingEnabled() const
Definition Renderer.cpp:196
glm::vec4 GetSelectedColor() const
Definition Renderer.cpp:1995
void Render(World *world, int32_t screenIndex)
Definition Renderer.cpp:1338
void EnableLightFade(bool enable)
Definition Renderer.cpp:2035
void RemoveDebugDrawsForNode(Node *node)
Definition Renderer.cpp:498
glm::vec4 GetClearColor() const
Definition Renderer.cpp:1985
bool IsPathTraceAccumulationEnabled() const
Definition Renderer.cpp:2145
POLYPHASE_API uint64_t RegisterCustomRenderPass(CustomRenderPassFn fn, void *userData)
Definition Renderer.cpp:516
bool IsStatsOverlayEnabled() const
Definition Renderer.cpp:378
uint32_t GetViewportX(int32_t screenIdx=-1)
Definition Renderer.cpp:2196
glm::vec4 GetSkyHorizonColor() const
Definition Renderer.cpp:2185
TextureRef mDefaultORMTexture
Definition Renderer.h:193
Texture * GetBlackTexture()
Definition Renderer.cpp:251
void Enable2dRendering(bool enable)
Definition Renderer.cpp:231
void SetLightFadeLimit(uint32_t limit)
Definition Renderer.cpp:2040
static void Create()
Definition Renderer.cpp:67
float GetLightFadeSpeed() const
Definition Renderer.cpp:2055
bool IsLightFadeEnabled() const
Definition Renderer.cpp:2030
void AddDebugDraw(const DebugDraw &draw)
Definition Renderer.cpp:491
Node3D * ProcessHitCheck(World *world, int32_t x, int32_t y, uint32_t *outInstance=nullptr)
Definition Renderer.cpp:173
bool IsPostProcessPassEnabled(PostProcessPassId passId) const
Definition Renderer.cpp:2095
void LoadDefaultFonts()
Definition Renderer.cpp:481
uint32_t GetBakeDiffuseDirectPasses() const
Definition Renderer.cpp:2170
float GetResolutionScale() const
Definition Renderer.cpp:2130
float GetBakeShadowBias() const
Definition Renderer.cpp:2160
float GetLightBakeProgress() const
Definition Renderer.cpp:2025
StaticMeshRef mCylinderMesh
Definition Renderer.h:204
uint32_t GetViewportY(int32_t screenIdx=-1)
Definition Renderer.cpp:2216
void Enable3dRendering(bool enable)
Definition Renderer.cpp:221
void SetSelectedCheckerSize(float size)
Definition Renderer.cpp:2000
const std::vector< DebugDraw > & GetDebugDraws() const
Definition Renderer.cpp:511
void SetEngineState(EngineState *engineState)
Definition Renderer.cpp:261
uint32_t GetBakeMaxBounces() const
Definition Renderer.cpp:2155
const std::vector< LightData > & GetLightData() const
Definition Renderer.cpp:1975
void EnableProxyRendering(bool enable)
Definition Renderer.cpp:191
void SetBoundsDebugMode(BoundsDebugMode mode)
Definition Renderer.cpp:201
void GatherProperties(std::vector< Property > &props)
Definition Renderer.cpp:137
StaticMeshRef mSphere112Mesh
Definition Renderer.h:207
void SetColorScale(float colorScale)
Definition Renderer.cpp:2060
void(* CustomRenderPassFn)(void *userData)
Definition Renderer.h:127
TextureRef mDefaultColorTexture
Definition Renderer.h:190
bool IsPathTracingEnabled() const
Definition Renderer.cpp:246
Console * GetConsoleWidget()
Definition Renderer.cpp:415
StatsOverlay * GetStatsWidget()
Definition Renderer.cpp:420
float GetColorScale() const
Definition Renderer.cpp:2079
glm::vec2 GetActiveScreenResolution()
Definition Renderer.cpp:324
void SetClearColor(const glm::vec4 &color)
Definition Renderer.cpp:1980
DebugMode GetDebugMode() const
Definition Renderer.cpp:186
TextureRef mDefaultColorAlphaTexture
Definition Renderer.h:191
StaticMeshRef mSphereMesh
Definition Renderer.h:206
uint32_t GetBakeDiffuseIndirectPasses() const
Definition Renderer.cpp:2175
void SetGlobalUiScale(float scale)
Definition Renderer.cpp:334
uint32_t GetLightFadeLimit() const
Definition Renderer.cpp:2045
uint32_t GetFrameIndex() const
Definition Renderer.cpp:271
void DirtyAllWidgets()
Definition Renderer.cpp:400
StaticMeshRef mCubeMesh
Definition Renderer.h:203
BoundsDebugMode GetBoundsDebugMode() const
Definition Renderer.cpp:206
glm::vec2 GetScreenResolution(int32_t screen=-1)
Definition Renderer.cpp:300
uint32_t GetFrameNumber() const
Definition Renderer.cpp:266
TextureRef mDefaultNormalTexture
Definition Renderer.h:192
void SetResolutionScale(float scale)
Definition Renderer.cpp:2124
bool Is3dRenderingEnabled() const
Definition Renderer.cpp:226
void LoadDefaultMaterials()
Definition Renderer.cpp:444
void EnablePostProcessPass(PostProcessPassId passId, bool enable)
Definition Renderer.cpp:2113
void EndLightBake()
Definition Renderer.cpp:2015
StaticMeshRef mConeMesh
Definition Renderer.h:202
StaticMeshRef mPlaneMesh
Definition Renderer.h:205
TextureRef mBlackTexture
Definition Renderer.h:189
MaterialLite * GetDefaultMaterial()
Definition Renderer.cpp:256
TextureRef mWhiteTexture
Definition Renderer.h:188
float GetSelectedCheckerSize() const
Definition Renderer.cpp:2005
TextureRef mEnvironmentMap
Definition Renderer.h:196
World * GetCurrentWorld()
Definition Renderer.cpp:295
uint32_t GetMaxBounces() const
Definition Renderer.cpp:2140
uint32_t GetViewportHeight(int32_t screenIdx=-1)
Definition Renderer.cpp:2259
void EnableFrustumCulling(bool enable)
Definition Renderer.cpp:211
bool IsFrustumCullingEnabled() const
Definition Renderer.cpp:216
bool IsLightBakeInProgress() const
Definition Renderer.cpp:2020
POLYPHASE_API void UnregisterCustomRenderPass(uint64_t id)
Definition Renderer.cpp:527
float GetGlobalUiScale() const
Definition Renderer.cpp:329
float GetColorScaleInverse() const
Definition Renderer.cpp:2085
FontRef mRoboto32
Definition Renderer.h:211
StaticMeshRef mTorusMesh
Definition Renderer.h:208
glm::uvec4 GetViewport(int32_t screenIdx=-1)
Definition Renderer.cpp:2282
~Renderer()
Definition Renderer.cpp:88
uint32_t GetBakeRaysPerVertex() const
Definition Renderer.cpp:2150
Definition SmartPointer.h:33
Definition StatsOverlay.h:26
Definition EngineTypes.h:355
Definition EngineTypes.h:483
float mDistance2
Definition Renderer.h:27
LightDistance2(Light3D *comp, float dist2)
Definition Renderer.h:29
Light3D * mComponent
Definition Renderer.h:26