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 void RenderDraws(
const std::vector<DrawData>& drawData);
227 void RenderDraws(
const std::vector<DrawData>& drawData,
PipelineConfig pipelineConfig);
230 int32_t FrustumCullDraws(
const CameraFrustum& frustum, std::vector<DrawData>& drawData);
231 int32_t FrustumCullDraws(
const CameraFrustum& frustum, std::vector<DebugDraw>& drawData);
232 int32_t FrustumCullLights(
const CameraFrustum& frustum, std::vector<LightData>& lightData);
234 void RenderShadowCasters(
World* world);
235 void RenderSelectedGeometry(
World* world);
237 void UpdateDebugDraws();
244 bool mInitialized =
false;
246 std::vector<DrawData> mShadowDraws;
247 std::vector<DrawData> mOpaqueDraws;
248 std::vector<DrawData> mSimpleShadowDraws;
249 std::vector<DrawData> mPostShadowOpaqueDraws;
250 std::vector<DrawData> mTranslucentDraws;
251 std::vector<DrawData> mWireframeDraws;
252 std::vector<DrawData> mWidgetDraws;
254 std::vector<LightData> mLightData;
256 std::vector<DebugDraw> mDebugDraws;
257 std::vector<DebugDraw> mCollisionDraws;
260 struct CustomRenderPassEntry
266 std::vector<CustomRenderPassEntry> mCustomRenderPasses;
267 uint64_t mNextCustomRenderPassId = 1;
269 World* mCurrentWorld =
nullptr;
270 uint32_t mFrameIndex = 0;
271 uint32_t mScreenIndex = 0;
272 int32_t mTargetScreenFilter = -1;
273 uint32_t mFrameNumber = 0;
274 float mGlobalUiScale = 1.0f;
277 bool mFrustumCulling =
true;
278 bool mEnableProxyRendering =
false;
279 bool mEnable3dRendering =
true;
280 bool mEnable2dRendering =
true;
281 bool mEnablePathTracing =
false;
282 bool mEnableLightFade =
false;
283 uint32_t mLightFadeLimit = 4;
284 float mLightFadeSpeed = 1.0f;
285 glm::vec4 mClearColor = {};
286 float mColorScale = 1.0f;
287 glm::vec4 mSelectedColor = { 0.2f, 0.1f, 1.0f, 0.6f };
288 float mSelectedCheckerSize = 8.0f;
291 uint32_t mRaysPerPixel = 4;
292 uint32_t mMaxBounces = 4;
293 bool mPathTraceAccumulate =
true;
294 glm::vec4 mSkyZenithColor = { 0.0f, 0.0f, 0.0f, 1.0f };
295 glm::vec4 mSkyHorizonColor = { 0.0f, 0.0f, 0.0f, 1.0f };
296 glm::vec4 mGroundColor = { 0.0f, 0.0f, 0.0f, 1.0f };
299 uint32_t mBakeRaysPerVertex = 4;
300 uint32_t mBakeMaxBounces = 4;
301 float mBakeShadowBias = 0.001f;
302 uint32_t mBakeIndirectIterations = 20;
303 uint32_t mBakeDiffuseDirectPasses = 2;
304 uint32_t mBakeDiffuseIndirectPasses = 2;
PostProcessPassId
Definition EngineTypes.h:181
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:1943
void SetSelectedColor(const glm::vec4 &color)
Definition Renderer.cpp:1923
bool IsRenderingFirstScreen() const
Definition Renderer.cpp:281
void SetLightFadeSpeed(float speed)
Definition Renderer.cpp:1983
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:2068
glm::uvec4 GetSceneViewport(int32_t screenIdx=-1)
Definition Renderer.cpp:2220
glm::vec4 GetSkyZenithColor() const
Definition Renderer.cpp:2113
static POLYPHASE_API Renderer * Get()
Definition Renderer.cpp:83
uint32_t GetBakeIndirectIterations() const
Definition Renderer.cpp:2098
uint32_t GetViewportWidth(int32_t screenIdx=-1)
Definition Renderer.cpp:2169
glm::vec4 GetGroundColor() const
Definition Renderer.cpp:2123
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:1928
void Render(World *world, int32_t screenIndex)
Definition Renderer.cpp:1316
void EnableLightFade(bool enable)
Definition Renderer.cpp:1968
void RemoveDebugDrawsForNode(Node *node)
Definition Renderer.cpp:498
glm::vec4 GetClearColor() const
Definition Renderer.cpp:1918
bool IsPathTraceAccumulationEnabled() const
Definition Renderer.cpp:2078
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:2129
glm::vec4 GetSkyHorizonColor() const
Definition Renderer.cpp:2118
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:1973
static void Create()
Definition Renderer.cpp:67
float GetLightFadeSpeed() const
Definition Renderer.cpp:1988
bool IsLightFadeEnabled() const
Definition Renderer.cpp:1963
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:2028
void LoadDefaultFonts()
Definition Renderer.cpp:481
uint32_t GetBakeDiffuseDirectPasses() const
Definition Renderer.cpp:2103
float GetResolutionScale() const
Definition Renderer.cpp:2063
float GetBakeShadowBias() const
Definition Renderer.cpp:2093
float GetLightBakeProgress() const
Definition Renderer.cpp:1958
StaticMeshRef mCylinderMesh
Definition Renderer.h:204
uint32_t GetViewportY(int32_t screenIdx=-1)
Definition Renderer.cpp:2149
void Enable3dRendering(bool enable)
Definition Renderer.cpp:221
void SetSelectedCheckerSize(float size)
Definition Renderer.cpp:1933
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:2088
const std::vector< LightData > & GetLightData() const
Definition Renderer.cpp:1908
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:1993
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:2012
glm::vec2 GetActiveScreenResolution()
Definition Renderer.cpp:324
void SetClearColor(const glm::vec4 &color)
Definition Renderer.cpp:1913
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:2108
void SetGlobalUiScale(float scale)
Definition Renderer.cpp:334
uint32_t GetLightFadeLimit() const
Definition Renderer.cpp:1978
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:2057
bool Is3dRenderingEnabled() const
Definition Renderer.cpp:226
void LoadDefaultMaterials()
Definition Renderer.cpp:444
void EnablePostProcessPass(PostProcessPassId passId, bool enable)
Definition Renderer.cpp:2046
void EndLightBake()
Definition Renderer.cpp:1948
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:1938
TextureRef mEnvironmentMap
Definition Renderer.h:196
World * GetCurrentWorld()
Definition Renderer.cpp:295
uint32_t GetMaxBounces() const
Definition Renderer.cpp:2073
uint32_t GetViewportHeight(int32_t screenIdx=-1)
Definition Renderer.cpp:2192
void EnableFrustumCulling(bool enable)
Definition Renderer.cpp:211
bool IsFrustumCullingEnabled() const
Definition Renderer.cpp:216
bool IsLightBakeInProgress() const
Definition Renderer.cpp:1953
POLYPHASE_API void UnregisterCustomRenderPass(uint64_t id)
Definition Renderer.cpp:527
float GetGlobalUiScale() const
Definition Renderer.cpp:329
float GetColorScaleInverse() const
Definition Renderer.cpp:2018
FontRef mRoboto32
Definition Renderer.h:211
StaticMeshRef mTorusMesh
Definition Renderer.h:208
glm::uvec4 GetViewport(int32_t screenIdx=-1)
Definition Renderer.cpp:2215
~Renderer()
Definition Renderer.cpp:88
uint32_t GetBakeRaysPerVertex() const
Definition Renderer.cpp:2083
Definition SmartPointer.h:33
Definition StatsOverlay.h:26
Definition EngineTypes.h:231
Definition EngineTypes.h:359
float mDistance2
Definition Renderer.h:27
LightDistance2(Light3D *comp, float dist2)
Definition Renderer.h:29
Light3D * mComponent
Definition Renderer.h:26