add dependency on smuggler

shadows
cosmonaut 2020-08-06 00:10:23 -07:00
parent 4c41506204
commit da52273dd0
3 changed files with 61 additions and 2 deletions

View File

@ -9,11 +9,12 @@
<ItemGroup>
<ProjectReference Include="../FNA/FNA.Core.csproj" />
<ProjectReference Include="../Smuggler/Smuggler.csproj" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Effects\FXB\PBREffect.fxb">
<LogicalName>Smuggler.Resources.PBREffect.fxb</LogicalName>
<LogicalName>Kav.Resources.PBREffect.fxb</LogicalName>
</EmbeddedResource>
</ItemGroup>

58
ModelLoader.cs Normal file
View File

@ -0,0 +1,58 @@
using System.Collections.Generic;
using Microsoft.Xna.Framework.Graphics;
namespace Kav
{
public static class ModelLoader
{
public static Kav.Model Load(GraphicsDevice graphicsDevice, Smuggler.ModelData modelData)
{
var meshes = new List<Kav.Mesh>();
foreach (var meshData in modelData.Meshes)
{
var meshParts = new List<Kav.MeshPart>();
foreach (var meshPartData in meshData.MeshParts)
{
var effect = new Kav.PBREffect(
graphicsDevice
)
{
Albedo = meshPartData.Albedo,
Metallic = meshPartData.Metallic,
Roughness = meshPartData.Roughness,
AlbedoTexture = meshPartData.AlbedoTexture,
NormalTexture = meshPartData.NormalTexture,
MetallicRoughnessTexture = meshPartData.MetallicRoughnessTexture
};
var triangles = new Kav.Triangle[meshPartData.Triangles.Length];
for (int i = 0; i < meshPartData.Triangles.Length; i++)
{
var smugglerTriangle = meshPartData.Triangles[i];
triangles[i] = new Kav.Triangle(
smugglerTriangle.A,
smugglerTriangle.B,
smugglerTriangle.C
);
}
meshParts.Add(new Kav.MeshPart(
meshPartData.VertexBuffer,
meshPartData.IndexBuffer,
meshPartData.Positions,
triangles,
effect
));
}
meshes.Add(new Kav.Mesh(meshParts.ToArray()));
}
return new Kav.Model(meshes.ToArray());
}
}
}

View File

@ -21,7 +21,7 @@ namespace Kav
private static byte[] GetResource(string name)
{
Stream stream = typeof(Resources).Assembly.GetManifestResourceStream(
"Smuggler.Resources." + name + ".fxb"
"Kav.Resources." + name + ".fxb"
);
using (MemoryStream ms = new MemoryStream())
{