Add Camera Cut on rendering view origin change (for large worlds)
This commit is contained in:
@@ -416,7 +416,8 @@ void SceneRenderTask::OnEnd(GPUContext* context)
|
||||
|
||||
RenderTask::OnEnd(context);
|
||||
|
||||
// Swap matrices
|
||||
// Swap data
|
||||
View.PrevOrigin = View.Origin;
|
||||
View.PrevView = View.View;
|
||||
View.PrevProjection = View.Projection;
|
||||
View.PrevViewProjection = View.ViewProjection();
|
||||
|
||||
@@ -182,6 +182,11 @@ public:
|
||||
/// </summary>
|
||||
API_FIELD() Float4 TemporalAAJitter;
|
||||
|
||||
/// <summary>
|
||||
/// The previous frame rendering view origin.
|
||||
/// </summary>
|
||||
API_FIELD() Vector3 PrevOrigin;
|
||||
|
||||
/// <summary>
|
||||
/// The previous frame view matrix.
|
||||
/// </summary>
|
||||
|
||||
@@ -308,6 +308,8 @@ void RenderInner(SceneRenderTask* task, RenderContext& renderContext)
|
||||
|
||||
// Prepare
|
||||
renderContext.View.Prepare(renderContext);
|
||||
if (renderContext.View.Origin != renderContext.View.PrevOrigin)
|
||||
renderContext.Task->CameraCut(); // Cut any temporal effects on rendering origin change
|
||||
renderContext.Buffers->Prepare();
|
||||
for (auto& postFx : task->CustomPostFx)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user