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(
|
|
||||||
// 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(
|
WorldBuilder.SendMessage(new StaticModelSpawnMessage(
|
||||||
Transform3D.Identity,
|
new Transform3D(new Vector3(0, -3, 0), Quaternion.Identity, new Vector3(10f, 1f, 10f)),
|
||||||
toonShadeRuinsModel
|
floorModel
|
||||||
));
|
));
|
||||||
|
|
||||||
|
WorldBuilder.SendMessage(new StaticModelSpawnMessage(
|
||||||
|
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++)
|
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