deferred skybox
							parent
							
								
									1486ba6625
								
							
						
					
					
						commit
						896dc6676b
					
				
							
								
								
									
										2
									
								
								Kav
								
								
								
								
							
							
								
								
								
								
								
								
							
						
						
									
										2
									
								
								Kav
								
								
								
								
							|  | @ -1 +1 @@ | ||||||
| Subproject commit 19a61985ca25a7562a7f62e03186f0ccfdc1c8ef | Subproject commit 06e552399600be4b706249bab54740eae4fd8e6b | ||||||
|  | @ -0,0 +1,15 @@ | ||||||
|  | using Encompass; | ||||||
|  | using Microsoft.Xna.Framework.Graphics; | ||||||
|  | 
 | ||||||
|  | namespace KavTest.Components | ||||||
|  | { | ||||||
|  |     public struct SkyboxComponent : IComponent | ||||||
|  |     { | ||||||
|  |         public TextureCube Skybox { get; } | ||||||
|  | 
 | ||||||
|  |         public SkyboxComponent(TextureCube skybox) | ||||||
|  |         { | ||||||
|  |             Skybox = skybox; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 723 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 274 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 462 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 588 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 525 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 338 KiB | 
|  | @ -119,6 +119,56 @@ namespace KavTest | ||||||
|                 ) |                 ) | ||||||
|             ); |             ); | ||||||
| 
 | 
 | ||||||
|  |             Texture2D.TextureDataFromStreamEXT( | ||||||
|  |                 File.OpenRead("Content/Skybox/front.jpg"), | ||||||
|  |                 out var skyboxSize, | ||||||
|  |                 out _, | ||||||
|  |                 out byte[] frontPixels | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |             Texture2D.TextureDataFromStreamEXT( | ||||||
|  |                 File.OpenRead("Content/Skybox/back.jpg"), | ||||||
|  |                 out _, | ||||||
|  |                 out _, | ||||||
|  |                 out byte[] backPixels | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |             Texture2D.TextureDataFromStreamEXT( | ||||||
|  |                 File.OpenRead("Content/Skybox/right.jpg"), | ||||||
|  |                 out _, | ||||||
|  |                 out _, | ||||||
|  |                 out byte[] rightPixels | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |             Texture2D.TextureDataFromStreamEXT( | ||||||
|  |                 File.OpenRead("Content/Skybox/left.jpg"), | ||||||
|  |                 out _, | ||||||
|  |                 out _, | ||||||
|  |                 out byte[] leftPixels | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |             Texture2D.TextureDataFromStreamEXT( | ||||||
|  |                 File.OpenRead("Content/Skybox/top.jpg"), | ||||||
|  |                 out _, | ||||||
|  |                 out _, | ||||||
|  |                 out byte[] topPixels | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |             Texture2D.TextureDataFromStreamEXT( | ||||||
|  |                 File.OpenRead("Content/Skybox/bottom.jpg"), | ||||||
|  |                 out _, | ||||||
|  |                 out _, | ||||||
|  |                 out byte[] bottomPixels | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |             var skybox = new TextureCube(GraphicsDevice, skyboxSize, false, SurfaceFormat.Color); | ||||||
|  |             skybox.SetData(CubeMapFace.PositiveZ, frontPixels); | ||||||
|  |             skybox.SetData(CubeMapFace.NegativeZ, backPixels); | ||||||
|  |             skybox.SetData(CubeMapFace.PositiveX, rightPixels); | ||||||
|  |             skybox.SetData(CubeMapFace.NegativeX, leftPixels); | ||||||
|  |             skybox.SetData(CubeMapFace.PositiveY, topPixels); | ||||||
|  |             skybox.SetData(CubeMapFace.NegativeY, bottomPixels); | ||||||
|  | 
 | ||||||
|             WorldBuilder.AddEngine(new InputEngine(this)); |             WorldBuilder.AddEngine(new InputEngine(this)); | ||||||
|             WorldBuilder.AddEngine(new AngularVelocityEngine()); |             WorldBuilder.AddEngine(new AngularVelocityEngine()); | ||||||
|             WorldBuilder.AddEngine(new MoveAlongCurve3DEngine()); |             WorldBuilder.AddEngine(new MoveAlongCurve3DEngine()); | ||||||
|  | @ -150,40 +200,52 @@ namespace KavTest | ||||||
|             //     rustyBallModel |             //     rustyBallModel | ||||||
|             // )); |             // )); | ||||||
| 
 | 
 | ||||||
|             // WorldBuilder.SendMessage(new StaticModelSpawnMessage( |             WorldBuilder.SendMessage(new StaticModelSpawnMessage( | ||||||
|             //     new Transform3D(new Vector3(0, -3, 0), Quaternion.Identity, new Vector3(10f, 1f, 10f)), |                 new Transform3D(new Vector3(0, -3, 0), Quaternion.Identity, new Vector3(10f, 1f, 10f)), | ||||||
|             //     floorModel |                 floorModel | ||||||
|             // )); |             )); | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new StaticModelSpawnMessage( |  | ||||||
|             //     new Transform3D( |  | ||||||
|             //         new Vector3(-3, 1, 0),  |  | ||||||
|             //         Quaternion.CreateFromAxisAngle( |  | ||||||
|             //             Vector3.Right,  |  | ||||||
|             //             -Microsoft.Xna.Framework.MathHelper.PiOver2 |  | ||||||
|             //         ),                     |  | ||||||
|             //         new Vector3(1f, 1f, 1f) |  | ||||||
|             //     ), |  | ||||||
|             //     blueTorusModel |  | ||||||
|             // )); |  | ||||||
| 
 |  | ||||||
|             // WorldBuilder.SendMessage(new StaticModelSpawnMessage( |  | ||||||
|             //     new Transform3D( |  | ||||||
|             //         new Vector3(3, 1, 0),  |  | ||||||
|             //         Quaternion.CreateFromAxisAngle( |  | ||||||
|             //             Vector3.Right,  |  | ||||||
|             //             -Microsoft.Xna.Framework.MathHelper.PiOver2 |  | ||||||
|             //         ),                     |  | ||||||
|             //         new Vector3(1f, 1f, 1f) |  | ||||||
|             //     ), |  | ||||||
|             //     cubeModel |  | ||||||
|             // )); |  | ||||||
| 
 | 
 | ||||||
|             WorldBuilder.SendMessage(new StaticModelSpawnMessage( |             WorldBuilder.SendMessage(new StaticModelSpawnMessage( | ||||||
|                 Transform3D.Identity, |                 new Transform3D( | ||||||
|                 toonShadeRuinsModel |                     new Vector3(0, 1, 0),  | ||||||
|  |                     Quaternion.CreateFromAxisAngle( | ||||||
|  |                         Vector3.Right,  | ||||||
|  |                         -Microsoft.Xna.Framework.MathHelper.PiOver2 | ||||||
|  |                     ),                     | ||||||
|  |                     new Vector3(1f, 1f, 1f) | ||||||
|  |                 ), | ||||||
|  |                 redCylinderModel | ||||||
|             )); |             )); | ||||||
| 
 | 
 | ||||||
|  |             WorldBuilder.SendMessage(new StaticModelSpawnMessage( | ||||||
|  |                 new Transform3D( | ||||||
|  |                     new Vector3(-3, 1, 0),  | ||||||
|  |                     Quaternion.CreateFromAxisAngle( | ||||||
|  |                         Vector3.Right,  | ||||||
|  |                         -Microsoft.Xna.Framework.MathHelper.PiOver2 | ||||||
|  |                     ),                     | ||||||
|  |                     new Vector3(1f, 1f, 1f) | ||||||
|  |                 ), | ||||||
|  |                 blueTorusModel | ||||||
|  |             )); | ||||||
|  | 
 | ||||||
|  |             WorldBuilder.SendMessage(new StaticModelSpawnMessage( | ||||||
|  |                 new Transform3D( | ||||||
|  |                     new Vector3(3, 1, 0),  | ||||||
|  |                     Quaternion.CreateFromAxisAngle( | ||||||
|  |                         Vector3.Right,  | ||||||
|  |                         -Microsoft.Xna.Framework.MathHelper.PiOver2 | ||||||
|  |                     ),                     | ||||||
|  |                     new Vector3(1f, 1f, 1f) | ||||||
|  |                 ), | ||||||
|  |                 cubeModel | ||||||
|  |             )); | ||||||
|  |              | ||||||
|  |             // WorldBuilder.SendMessage(new StaticModelSpawnMessage( | ||||||
|  |             //     Transform3D.Identity, | ||||||
|  |             //     toonShadeRuinsModel | ||||||
|  |             // )); | ||||||
|  | 
 | ||||||
|             for (var i = 0; i < 1; i++) |             for (var i = 0; i < 1; i++) | ||||||
|             { |             { | ||||||
|                 var start = RandomHelper.RandomVector3(-5, 5); |                 var start = RandomHelper.RandomVector3(-5, 5); | ||||||
|  | @ -236,6 +298,11 @@ namespace KavTest | ||||||
|                 100f |                 100f | ||||||
|             )); |             )); | ||||||
| 
 | 
 | ||||||
|  |             var skyboxEntity = WorldBuilder.CreateEntity(); | ||||||
|  |             WorldBuilder.SetComponent(skyboxEntity, new SkyboxComponent( | ||||||
|  |                 skybox | ||||||
|  |             )); | ||||||
|  | 
 | ||||||
|             World = WorldBuilder.Build(); |             World = WorldBuilder.Build(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -143,7 +143,8 @@ namespace KavTest.Renderers | ||||||
|                     camera, |                     camera, | ||||||
|                     ModelTransforms, |                     ModelTransforms, | ||||||
|                     AmbientLight, |                     AmbientLight, | ||||||
|                     DirectionalLight() |                     DirectionalLight(), | ||||||
|  |                     ReadComponent<SkyboxComponent>().Skybox | ||||||
|                 ); |                 ); | ||||||
| 
 | 
 | ||||||
|                 // foreach (var directionalLight in DirectionalLights) |                 // foreach (var directionalLight in DirectionalLights) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue