From 9d7635b4b7cb15192be6663094f60783f09c6efd Mon Sep 17 00:00:00 2001 From: bvs3 Date: Mon, 2 Nov 2020 09:28:21 -0500 Subject: [PATCH 1/2] Simple demo scene showing water reflection effect issue. Works on Monogame, broken for FNA (specifically FNA3D) --- .../Content/WaterPane/waterNormalMap.png | Bin 0 -> 711 bytes .../Scenes/WaterPlane/WaterPlaneScene.cs | 52 ++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 Nez.Samples/Content/WaterPane/waterNormalMap.png create mode 100644 Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs diff --git a/Nez.Samples/Content/WaterPane/waterNormalMap.png b/Nez.Samples/Content/WaterPane/waterNormalMap.png new file mode 100644 index 0000000000000000000000000000000000000000..da4ce84cb4f046d58c513f14507d95f0ff75abee GIT binary patch literal 711 zcmV;&0yzDNP)wCAp71V=xH`!8=q$1BxIb2#S@Jf?$zW1hq|L6S0t#Vqs&eU}0fp zqgV)n8Z{(D$z2pBLFDc>my6lm``R73Tyhv~^i?zS=KbFLzc(Xpzk98P7pDveRiWFg z@joVRoL$ka05f8cN+?!SF`QKwd(Hcc)AEaKj71>&@h7P@7cn)ZwQbjNQVr}?6UT{? z!zD}XFF*#DM6$v|+obF?I9A?+n7m)r`-_@_jN$;wmn>T~hE)X1YT{eX4ycu2EMMYj znC45S#F112as5F>?_P}&cfhfMR27E+8w1Oaw1bmw8(!_|R9Uj?#8Y*|@l-waJkhFW?c_GTvSW4h4$@adK24xAdP6G#X)Ay%| zsp(Lc2uNdK6Ho{vIE^L)L{Ra7LfR)83S`luR+EHsb7&pg1b8YySpk-Bu4kBrPYwoXhNY{XABeDZ1CNP zB5t1eqzCs6vNGJ;$@DevV9dVZIM6+Ql%>qBO>k9$-`8M3X}Z@878W)Tmk&JEC%t7p zH=~3?A`#3*H_(JkY?U@wYd@-%A7L<>=*K)f&Yj32Vq&7GFOG&h%7s|-?-^V#vK;TH zI)0QZnKIw4ffKawP~)ra3lIONq3_i~T5 t{&0#{hEMmww+!_b|LHeN5zrMz`31dn7p0C~o~{4@002ovPDHLkV1jz$NJIbt literal 0 HcmV?d00001 diff --git a/Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs b/Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs new file mode 100644 index 0000000..c4322ef --- /dev/null +++ b/Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs @@ -0,0 +1,52 @@ +using Nez.Sprites; +using Microsoft.Xna.Framework.Graphics; +using Microsoft.Xna.Framework; + +namespace Nez.Samples +{ + /// + /// Tiled map import that includes animated tiles from multiple different tileset images + /// + [SampleScene("Water Reflection Effect", 70, "Water Reflection Effect")] + public class WaterPlaneScene : SampleScene + { + const int _waterPaneRenderLayer = -50; + + public WaterPlaneScene() : base(false, true) + { + AddRenderer(new RenderLayerExcludeRenderer(0, new[] { _waterPaneRenderLayer, ScreenSpaceRenderLayer })); + + var waterrenderer = new RenderLayerRenderer(-1, _waterPaneRenderLayer); + waterrenderer.WantsToRenderAfterPostProcessors = true; + AddRenderer(waterrenderer); + + } + + + public override void Initialize() + { + AddRenderer(new RenderLayerExcludeRenderer(0, new[] { _waterPaneRenderLayer, ScreenSpaceRenderLayer })); + + var waterrenderer = new RenderLayerRenderer(-1, _waterPaneRenderLayer); + waterrenderer.WantsToRenderAfterPostProcessors = true; + AddRenderer(waterrenderer); + } + + public override void OnStart() + { + + var moonTex = Content.Load(Nez.Content.Shared.Moon); + var playerEntity = CreateEntity("player", new Vector2(Screen.Width / 2, Screen.Height * .7f)); + playerEntity.AddComponent(new SpriteRenderer(moonTex)); + + var reflectiveEntity = Core.Scene.CreateEntity("Reflection"); + var reflectionPlane = new WaterReflectionPlane(Screen.Width, Screen.Height / 5) { RenderLayer = 3 }; + var material = reflectionPlane.GetMaterial(); + material.Effect.NormalMap = Core.Scene.Content.LoadTexture("Content/WaterPane/waterNormalMap.png"); + material.Effect.PerspectiveCorrectionIntensity = .01f; + material.Effect.NormalMagnitude = 0.01f; + reflectiveEntity.AddComponent(reflectionPlane); + reflectiveEntity.Position = new Vector2(0, Screen.Height - Screen.Height / 5); + } + } +} \ No newline at end of file From 6def23a78c1af618f794741232c7acfc78b6c9d4 Mon Sep 17 00:00:00 2001 From: bvs3 Date: Mon, 2 Nov 2020 09:41:51 -0500 Subject: [PATCH 2/2] Simple demo scene showing water reflection effect issue. Works on Monogame, broken for FNA (specifically FNA3D) --- Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs b/Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs index c4322ef..4ece511 100644 --- a/Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs +++ b/Nez.Samples/Scenes/WaterPlane/WaterPlaneScene.cs @@ -5,7 +5,7 @@ namespace Nez.Samples { /// - /// Tiled map import that includes animated tiles from multiple different tileset images + /// Set up and demonstrate water reflection effect /// [SampleScene("Water Reflection Effect", 70, "Water Reflection Effect")] public class WaterPlaneScene : SampleScene @@ -19,10 +19,8 @@ public WaterPlaneScene() : base(false, true) var waterrenderer = new RenderLayerRenderer(-1, _waterPaneRenderLayer); waterrenderer.WantsToRenderAfterPostProcessors = true; AddRenderer(waterrenderer); - } - public override void Initialize() { AddRenderer(new RenderLayerExcludeRenderer(0, new[] { _waterPaneRenderLayer, ScreenSpaceRenderLayer })); @@ -34,7 +32,6 @@ public override void Initialize() public override void OnStart() { - var moonTex = Content.Load(Nez.Content.Shared.Moon); var playerEntity = CreateEntity("player", new Vector2(Screen.Width / 2, Screen.Height * .7f)); playerEntity.AddComponent(new SpriteRenderer(moonTex));