Skip to content

Commit

Permalink
chore:replace SubmersibleCamera with Camera (#71)
Browse files Browse the repository at this point in the history
Co-authored-by: Josephine Rueckert <[email protected]>
  • Loading branch information
pollend and jdrueckert authored Oct 30, 2021
1 parent a2f1a0d commit 32df295
Show file tree
Hide file tree
Showing 15 changed files with 162 additions and 67 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.engine.rendering.assets.material.Material;
import org.terasology.engine.rendering.assets.shader.ShaderProgramFeature;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.StateChange;
import org.terasology.engine.rendering.dag.WireframeCapable;
Expand Down Expand Up @@ -58,7 +58,7 @@ public class AlphaRejectBlocksNode extends AbstractNode implements WireframeCapa
private Material chunkMaterial;
private SetWireframe wireframeStateChange;

private SubmersibleCamera activeCamera;
private Camera activeCamera;

private boolean normalMappingIsEnabled;
private boolean parallaxMappingIsEnabled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,15 @@

import org.joml.Vector3f;
import org.joml.Vector4f;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.rendering.assets.mesh.SphereBuilder;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.config.Config;
import org.terasology.engine.config.RenderingDebugConfig;
import org.terasology.engine.context.Context;
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.engine.utilities.Assets;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;
import org.terasology.engine.rendering.assets.material.Material;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.rendering.assets.mesh.SphereBuilder;
import org.terasology.engine.rendering.backdrop.BackdropProvider;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.WireframeCapable;
import org.terasology.engine.rendering.dag.WireframeTrigger;
Expand All @@ -32,6 +27,10 @@
import org.terasology.engine.rendering.dag.stateChanges.SetWireframe;
import org.terasology.engine.rendering.opengl.FBO;
import org.terasology.engine.rendering.world.WorldRenderer;
import org.terasology.engine.utilities.Assets;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;

import static org.lwjgl.opengl.GL11.GL_FRONT;

Expand Down Expand Up @@ -98,7 +97,7 @@ public BackdropNode(String nodeUri, Name providingModule, Context context) {
@Override
public void setDependencies(Context context) {
worldRenderer = context.get(WorldRenderer.class);
SubmersibleCamera activeCamera = worldRenderer.getActiveCamera();
Camera activeCamera = worldRenderer.getActiveCamera();

sphereMesh.reload(builder.setRadius(activeCamera.getzFar() < RADIUS ? activeCamera.getzFar() : RADIUS).build());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import org.terasology.engine.rendering.assets.mesh.SphereBuilder;
import org.terasology.engine.rendering.backdrop.BackdropProvider;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.stateChanges.BindFbo;
import org.terasology.engine.rendering.dag.stateChanges.DisableDepthWriting;
Expand Down Expand Up @@ -97,7 +96,7 @@ public BackdropReflectionNode(String nodeUri, Name providingModule, Context cont
public void setDependencies(Context context) {
backdropProvider = context.get(BackdropProvider.class);

SubmersibleCamera activeCamera = renderer.getActiveCamera();
Camera activeCamera = renderer.getActiveCamera();
addDesiredStateChange(new ReflectedCamera(activeCamera));

FBO reflectedFbo = getInputFboData(1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import org.terasology.engine.rendering.assets.shader.ShaderProgramFeature;
import org.terasology.engine.rendering.backdrop.BackdropProvider;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPairConnection;
import org.terasology.engine.rendering.dag.stateChanges.BindFbo;
Expand Down Expand Up @@ -68,7 +67,7 @@ public class DeferredMainLightNode extends AbstractNode {
private Mesh renderQuad;


private SubmersibleCamera activeCamera;
private Camera activeCamera;
private Camera lightCamera;
@SuppressWarnings("FieldCanBeLocal")
private Vector3f cameraPosition;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import org.terasology.engine.rendering.assets.mesh.SphereBuilder;
import org.terasology.engine.rendering.assets.shader.ShaderProgramFeature;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPairConnection;
import org.terasology.engine.rendering.dag.stateChanges.BindFbo;
Expand Down Expand Up @@ -61,7 +60,7 @@ public class DeferredPointLightsNode extends AbstractNode {

private Material lightGeometryMaterial;

private SubmersibleCamera activeCamera;
private Camera activeCamera;
private Camera lightCamera;

@SuppressWarnings("FieldCanBeLocal")
Expand Down Expand Up @@ -162,10 +161,10 @@ public void process() {
if (renderingConfig.isDynamicShadows()) {

lightGeometryMaterial.setMatrix4("lightMatrix", new Matrix4f(
0.5f,0.0f,0.0f,0.0f,
0.0f,0.5f,0.0f,0.0f,
0.0f,0.0f,0.5f,0.0f,
0.5f,0.5f,0.5f,1.0f)
0.5f, 0.0f, 0.0f, 0.0f,
0.0f, 0.5f, 0.0f, 0.0f,
0.0f, 0.0f, 0.5f, 0.0f,
0.5f, 0.5f, 0.5f, 1.0f)
.mul(lightCamera.getProjectionMatrix())
.mul(lightCamera.getViewMatrix())
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,15 @@
// SPDX-License-Identifier: Apache-2.0
package org.terasology.corerendering.rendering.dag.nodes;

import org.terasology.corerendering.rendering.utils.UnderwaterHelper;
import org.terasology.engine.config.Config;
import org.terasology.engine.config.RenderingConfig;
import org.terasology.engine.context.Context;
import org.terasology.engine.core.SimpleUri;
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.utilities.Assets;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;
import org.terasology.engine.rendering.assets.material.Material;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.StateChange;
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPairConnection;
Expand All @@ -26,7 +23,11 @@
import org.terasology.engine.rendering.opengl.FboConfig;
import org.terasology.engine.rendering.opengl.fbms.DisplayResolutionDependentFbo;
import org.terasology.engine.rendering.world.WorldRenderer;
import org.terasology.engine.utilities.Assets;
import org.terasology.engine.world.WorldProvider;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
Expand All @@ -46,7 +47,7 @@ public class InitialPostProcessingNode extends AbstractNode implements PropertyC
private RenderingConfig renderingConfig;
private WorldProvider worldProvider;
private WorldRenderer worldRenderer;
private SubmersibleCamera activeCamera;
private Camera activeCamera;
private DisplayResolutionDependentFbo displayResolutionDependentFbo;

private Material initialPostMaterial;
Expand All @@ -56,7 +57,6 @@ public class InitialPostProcessingNode extends AbstractNode implements PropertyC
private boolean bloomIsEnabled;
private int texBloomSlot = -1;
private boolean lightShaftsAreEnabled;
private int texlightShaftsSlot = -1;

private StateChange setLightShaftsInputTexture;
private StateChange setBloomInputTexture;
Expand Down Expand Up @@ -109,21 +109,25 @@ public void setDependencies(Context context) {

// FBO lightShaftsFbo = getInputFboData(1);

addDesiredStateChange(new SetInputTextureFromFbo(textureSlot++, lastUpdatedFbo, ColorTexture, displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texScene"));
addDesiredStateChange(new SetInputTexture2D(textureSlot++, "engine:vignette", INITIAL_POST_MATERIAL_URN, "texVignette"));
addDesiredStateChange(new SetInputTextureFromFbo(textureSlot++, lastUpdatedFbo, ColorTexture, displayResolutionDependentFbo,
INITIAL_POST_MATERIAL_URN, "texScene"));
addDesiredStateChange(new SetInputTexture2D(textureSlot++, "engine:vignette",
INITIAL_POST_MATERIAL_URN, "texVignette"));

if (bloomIsEnabled) {
if (texBloomSlot < 0) {
texBloomSlot = textureSlot++;
}
setBloomInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(2), ColorTexture, displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texBloom");
setBloomInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(2), ColorTexture,
displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texBloom");
addDesiredStateChange(setBloomInputTexture);
}
if (lightShaftsAreEnabled) {
if (texBloomSlot < 0) {
texBloomSlot = textureSlot++;
}
setLightShaftsInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(1), ColorTexture, displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texLightShafts");
setLightShaftsInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(1), ColorTexture,
displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texLightShafts");
addDesiredStateChange(setLightShaftsInputTexture);
}
}
Expand All @@ -137,7 +141,8 @@ public void process() {

// Common Shader Parameters

initialPostMaterial.setFloat("swimming", activeCamera.isUnderWater() ? 1.0f : 0.0f, true);
initialPostMaterial.setFloat("swimming", UnderwaterHelper.isUnderwater(
activeCamera.getPosition(), worldProvider, renderingConfig) ? 1.0f : 0.0f, true);

// Shader Parameters

Expand All @@ -164,7 +169,8 @@ public void propertyChange(PropertyChangeEvent event) {
if (texBloomSlot < 0) {
texBloomSlot = textureSlot++;
}
setBloomInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(2), ColorTexture, displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texBloom");
setBloomInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(2), ColorTexture,
displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texBloom");
addDesiredStateChange(setBloomInputTexture);
} else {
removeDesiredStateChange(setBloomInputTexture);
Expand All @@ -177,7 +183,8 @@ public void propertyChange(PropertyChangeEvent event) {
if (texBloomSlot < 0) {
texBloomSlot = textureSlot++;
}
setLightShaftsInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(1), ColorTexture, displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texLightShafts");
setLightShaftsInputTexture = new SetInputTextureFromFbo(texBloomSlot, getInputFboData(1), ColorTexture,
displayResolutionDependentFbo, INITIAL_POST_MATERIAL_URN, "texLightShafts");
addDesiredStateChange(setLightShaftsInputTexture);
} else {
removeDesiredStateChange(setLightShaftsInputTexture);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,15 @@

import org.joml.Vector3f;
import org.joml.Vector4f;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.utilities.Assets;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.engine.config.Config;
import org.terasology.engine.config.RenderingConfig;
import org.terasology.engine.context.Context;
import org.terasology.engine.core.SimpleUri;
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;
import org.terasology.engine.rendering.assets.material.Material;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.rendering.backdrop.BackdropProvider;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.dag.ConditionDependentNode;
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPairConnection;
import org.terasology.engine.rendering.dag.stateChanges.BindFbo;
Expand All @@ -27,7 +23,11 @@
import org.terasology.engine.rendering.opengl.FboConfig;
import org.terasology.engine.rendering.opengl.fbms.DisplayResolutionDependentFbo;
import org.terasology.engine.rendering.world.WorldRenderer;
import org.terasology.engine.utilities.Assets;
import org.terasology.engine.world.WorldProvider;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;

import static org.terasology.engine.rendering.dag.stateChanges.SetInputTextureFromFbo.FboTexturesTypes.ColorTexture;
import static org.terasology.engine.rendering.opengl.ScalingFactors.HALF_SCALE;
Expand All @@ -48,7 +48,7 @@ public class LightShaftsNode extends ConditionDependentNode {
private static final ResourceUrn LIGHT_SHAFTS_MATERIAL_URN = new ResourceUrn("CoreRendering:lightShafts");

private BackdropProvider backdropProvider;
private SubmersibleCamera activeCamera;
private Camera activeCamera;
private WorldProvider worldProvider;
private Material lightShaftsMaterial;
private float exposure;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.engine.rendering.AABBRenderer;
import org.terasology.engine.rendering.assets.material.Material;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.StateChange;
import org.terasology.engine.rendering.dag.WireframeCapable;
Expand Down Expand Up @@ -56,7 +56,7 @@ public class OpaqueBlocksNode extends AbstractNode implements WireframeCapable,
private EnableFaceCulling faceCullingStateChange;
private RenderingDebugConfig renderingDebugConfig;

private SubmersibleCamera activeCamera;
private Camera activeCamera;

private boolean normalMappingIsEnabled;
private boolean parallaxMappingIsEnabled;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.engine.rendering.assets.material.Material;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.dag.ConditionDependentNode;
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPairConnection;
import org.terasology.engine.rendering.dag.stateChanges.BindFbo;
Expand Down Expand Up @@ -40,7 +40,7 @@ public class OutlineNode extends ConditionDependentNode {
private static final ResourceUrn OUTLINE_MATERIAL_URN = new ResourceUrn("CoreRendering:sobel");

private RenderingConfig renderingConfig;
private SubmersibleCamera activeCamera;
private Camera activeCamera;

private Material outlineMaterial;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
import org.terasology.engine.core.ComponentSystemManager;
import org.terasology.engine.entitySystem.systems.RenderSystem;
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.WireframeCapable;
import org.terasology.engine.rendering.dag.WireframeTrigger;
Expand Down Expand Up @@ -40,7 +39,6 @@ public OverlaysNode(String nodeUri, Name providingModule, Context context) {

@Override
public void setDependencies(Context context) {
SubmersibleCamera playerCamera = worldRenderer.getActiveCamera();

wireframeStateChange = new SetWireframe(true);
RenderingDebugConfig renderingDebugConfig = context.get(Config.class).getRendering().getDebug();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,13 @@
// SPDX-License-Identifier: Apache-2.0
package org.terasology.corerendering.rendering.dag.nodes;

import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.utilities.Assets;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.engine.config.Config;
import org.terasology.engine.config.RenderingConfig;
import org.terasology.engine.context.Context;
import org.terasology.engine.monitoring.PerformanceMonitor;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;
import org.terasology.engine.rendering.assets.material.Material;
import org.terasology.engine.rendering.cameras.SubmersibleCamera;
import org.terasology.engine.rendering.assets.mesh.Mesh;
import org.terasology.engine.rendering.cameras.Camera;
import org.terasology.engine.rendering.dag.AbstractNode;
import org.terasology.engine.rendering.dag.StateChange;
import org.terasology.engine.rendering.dag.dependencyConnections.BufferPairConnection;
Expand All @@ -23,6 +19,10 @@
import org.terasology.engine.rendering.opengl.FBO;
import org.terasology.engine.rendering.opengl.fbms.DisplayResolutionDependentFbo;
import org.terasology.engine.rendering.world.WorldRenderer;
import org.terasology.engine.utilities.Assets;
import org.terasology.gestalt.assets.ResourceUrn;
import org.terasology.gestalt.naming.Name;
import org.terasology.nui.properties.Range;

import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
Expand All @@ -49,7 +49,7 @@ public class PrePostCompositeNode extends AbstractNode implements PropertyChange

private RenderingConfig renderingConfig;
private WorldRenderer worldRenderer;
private SubmersibleCamera activeCamera;
private Camera activeCamera;
private DisplayResolutionDependentFbo displayResolutionDependentFbo;

private Material prePostMaterial;
Expand Down
Loading

0 comments on commit 32df295

Please sign in to comment.