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 AngularVelocityEngine());
|
||||
WorldBuilder.AddEngine(new MoveAlongCurve3DEngine());
|
||||
|
@ -150,40 +200,52 @@ namespace KavTest
|
|||
// rustyBallModel
|
||||
// ));
|
||||
|
||||
// WorldBuilder.SendMessage(new StaticModelSpawnMessage(
|
||||
// new Transform3D(new Vector3(0, -3, 0), Quaternion.Identity, new Vector3(10f, 1f, 10f)),
|
||||
// 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(
|
||||
new Transform3D(new Vector3(0, -3, 0), Quaternion.Identity, new Vector3(10f, 1f, 10f)),
|
||||
floorModel
|
||||
));
|
||||
|
||||
WorldBuilder.SendMessage(new StaticModelSpawnMessage(
|
||||
Transform3D.Identity,
|
||||
toonShadeRuinsModel
|
||||
new Transform3D(
|
||||
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++)
|
||||
{
|
||||
var start = RandomHelper.RandomVector3(-5, 5);
|
||||
|
@ -236,6 +298,11 @@ namespace KavTest
|
|||
100f
|
||||
));
|
||||
|
||||
var skyboxEntity = WorldBuilder.CreateEntity();
|
||||
WorldBuilder.SetComponent(skyboxEntity, new SkyboxComponent(
|
||||
skybox
|
||||
));
|
||||
|
||||
World = WorldBuilder.Build();
|
||||
}
|
||||
|
||||
|
|
|
@ -143,7 +143,8 @@ namespace KavTest.Renderers
|
|||
camera,
|
||||
ModelTransforms,
|
||||
AmbientLight,
|
||||
DirectionalLight()
|
||||
DirectionalLight(),
|
||||
ReadComponent<SkyboxComponent>().Skybox
|
||||
);
|
||||
|
||||
// foreach (var directionalLight in DirectionalLights)
|
||||
|
|
Loading…
Reference in New Issue