diff --git a/Diamond/GLObject.cs b/Diamond/GLObject.cs
index 56e8621..04dfd7e 100644
--- a/Diamond/GLObject.cs
+++ b/Diamond/GLObject.cs
@@ -13,7 +13,7 @@ namespace Diamond
///
/// Logger for this class
///
- protected Logger Log { get; private set; }
+ protected Logger Log { get; }
///
/// The name of this object
diff --git a/Diamond/Level/Level.cs b/Diamond/Level/Level.cs
index 78e2f28..241b7e5 100644
--- a/Diamond/Level/Level.cs
+++ b/Diamond/Level/Level.cs
@@ -12,8 +12,10 @@ using OpenTK.Graphics.OpenGL4;
namespace Diamond.Level
{
- public class Level
+ public class Level : IDisposable
{
+ public Dictionary Programs { get; private set; }
+
private TileData[] _allTiles;
private ObjVertex[] _allVertices;
@@ -39,9 +41,9 @@ namespace Diamond.Level
var dir = Path.GetDirectoryName(file);
// this is horrendous, but not as bad as trying to directly deserialize it.
-
+
var meshes = levelData["models"]
- .Select(path => Mesh.FromObj(Path.Combine(dir, (string) path)))
+ .Select(path => Mesh.FromObj(Path.Combine(dir, (string) path), false))
.SelectMany(objects => objects)
.ToArray();
@@ -50,20 +52,32 @@ namespace Diamond.Level
var allVertices = Mesh.Join(meshes);
+ var programs = levelData["shaders"]
+ .Select(shader => new
+ {
+ name = (string) shader["name"],
+ program = Program.FromFiles(
+ shader["files"]
+ .Select(path => Path.Combine(dir, (string) path))
+ .ToArray())
+ })
+ .ToDictionary(s => s.name, s => s.program);
+
var tilegroups = levelData["tiles"]
.Select(tile => new
{
info = new
{
- mesh = meshDict[(string) tile["mesh"]]
+ mesh = meshDict[(string) tile["mesh"]],
+ shader = programs[(string) tile["shader"]]
},
pos = tile["pos"].ToObject()
})
.GroupBy(tile => tile.info)
- .Select(group => new TileGroup(new SubArray(
+ .Select(group => new TileGroup(group.Key.mesh, group.Key.shader,
+ new SubArray(
group.Select(data => new TileData(data.pos))
- .ToArray()),
- group.Key.mesh))
+ .ToArray())))
.ToArray();
var tileArrays = tilegroups
@@ -76,7 +90,8 @@ namespace Diamond.Level
_allTiles = allTiles,
_allVertices = allVertices,
_meshes = meshes,
- _tileGroups = tilegroups
+ _tileGroups = tilegroups,
+ Programs = programs
};
level.InitializeBuffers();
@@ -86,16 +101,30 @@ namespace Diamond.Level
public void Draw()
{
- if (Program.Current == null)
- throw new Exception("cant render without a shader.");
-
- Program.Current.SetAttribPointers(_vertexBuffer);
- Program.Current.SetAttribPointers(_tileBuffer);
-
foreach (var tileGroup in _tileGroups)
{
+ var pgm = tileGroup.Program;
+ pgm.Use();
+ pgm.SetAttribPointers(_vertexBuffer);
+ pgm.SetAttribPointers(_tileBuffer);
tileGroup.Mesh.DrawInstanced(tileGroup.Tiles);
}
}
+
+ public void Dispose()
+ {
+ _tileBuffer?.Dispose();
+ _vertexBuffer?.Dispose();
+
+ foreach (var program in Programs.Values)
+ program?.Dispose();
+
+ GC.SuppressFinalize(this);
+ }
+
+ ~Level()
+ {
+ Dispose();
+ }
}
}
\ No newline at end of file
diff --git a/Diamond/Level/TileGroup.cs b/Diamond/Level/TileGroup.cs
index 32b20a0..5687fd6 100644
--- a/Diamond/Level/TileGroup.cs
+++ b/Diamond/Level/TileGroup.cs
@@ -1,4 +1,5 @@
using Diamond.Buffers;
+using Diamond.Shaders;
namespace Diamond.Level
{
@@ -6,11 +7,13 @@ namespace Diamond.Level
{
public SubArray Tiles;
public Mesh Mesh;
+ public Program Program;
- public TileGroup(SubArray tiles, Mesh mesh)
+ public TileGroup(Mesh mesh, Program program, SubArray tiles)
{
- Tiles = tiles;
Mesh = mesh;
+ Program = program;
+ Tiles = tiles;
}
}
}
\ No newline at end of file
diff --git a/Diamond/Mesh.cs b/Diamond/Mesh.cs
index 68348c4..d7afb6a 100644
--- a/Diamond/Mesh.cs
+++ b/Diamond/Mesh.cs
@@ -61,7 +61,7 @@ namespace Diamond
public static class Mesh
{
- public static Mesh[] FromObj(string file)
+ public static Mesh[] FromObj(string file, bool join = true)
{
var lines = File.ReadAllLines(file);
@@ -125,7 +125,8 @@ namespace Diamond
if (faces.Count > 0)
meshes.Add(new Mesh(faces.ToArray()) {Name = name});
- Join(meshes);
+ if (join)
+ Join(meshes);
return meshes.ToArray();
}
diff --git a/hexworld/HexRender.cs b/hexworld/HexRender.cs
index 156b0e9..c32db1b 100644
--- a/hexworld/HexRender.cs
+++ b/hexworld/HexRender.cs
@@ -15,11 +15,10 @@ namespace hexworld
#region GLObjects
- private Program _objPgm;
-
private Texture _grass;
private Texture _stone;
private Texture _gray;
+ private Texture _door;
private Level _level;
@@ -27,13 +26,12 @@ namespace hexworld
{
base.OnClosed(e);
- _objPgm?.Dispose();
-
_grass?.Dispose();
_stone?.Dispose();
_gray?.Dispose();
+ _door?.Dispose();
- // _level?.Dispose();
+ _level?.Dispose();
}
#endregion
@@ -47,7 +45,7 @@ namespace hexworld
public HexRender(int width, int height)
- : base(width, height, new GraphicsMode(32, 24, 0, 8))
+ : base(width, height, new GraphicsMode(32, 24, 0, 0))
{
Width = width;
Height = Height;
@@ -59,13 +57,12 @@ namespace hexworld
{
base.OnLoad(e);
- _objPgm = Program.FromFiles(@"res\obj.vs.glsl", @"res\obj.fs.glsl");
-
_level = Level.LoadLevel(@"res\level.json");
_grass = Texture.FromBitmap(new Bitmap(@"res\grass.png"));
_stone = Texture.FromBitmap(new Bitmap(@"res\stone.png"));
_gray = Texture.FromBitmap(new Bitmap(@"res\gray.png"));
+ _door = Texture.FromBitmap(new Bitmap(@"res\door.png"));
}
protected override void OnUpdateFrame(FrameEventArgs e)
@@ -92,23 +89,19 @@ namespace hexworld
GL.DepthFunc(DepthFunction.Lequal);
GL.Enable(EnableCap.Blend);
GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);
- GL.Enable(EnableCap.CullFace);
- GL.CullFace(CullFaceMode.Back);
- if (_objPgm.Linked)
- {
- _objPgm.Use();
+ _grass.Bind(0);
+ _stone.Bind(1);
+ _gray.Bind(2);
+ _door.Bind(3);
- _grass.Bind(0);
- _stone.Bind(1);
- _gray.Bind(2);
-
- GL.Uniform1(_objPgm.GetUniform("tex"), 2);
- GL.UniformMatrix4(_objPgm.GetUniform("view"), false, ref _view);
- GL.UniformMatrix4(_objPgm.GetUniform("proj"), false, ref _proj);
-
- _level.Draw();
- }
+ var pgm = _level.Programs["textured"];
+ pgm.Use();
+ GL.Uniform1(pgm.GetUniform("tex"), 0);
+ GL.UniformMatrix4(pgm.GetUniform("view"), false, ref _view);
+ GL.UniformMatrix4(pgm.GetUniform("proj"), false, ref _proj);
+
+ _level.Draw();
SwapBuffers();
}
diff --git a/hexworld/hexworld.csproj b/hexworld/hexworld.csproj
index e54f5e3..b61e5a9 100644
--- a/hexworld/hexworld.csproj
+++ b/hexworld/hexworld.csproj
@@ -59,6 +59,9 @@
+
+ Always
+
Always
@@ -77,6 +80,9 @@
+
+ Always
+
Always
diff --git a/hexworld/res/cube.obj b/hexworld/res/cube.obj
new file mode 100644
index 0000000..beb529f
--- /dev/null
+++ b/hexworld/res/cube.obj
@@ -0,0 +1,52 @@
+# Blender v2.78 (sub 0) OBJ File: ''
+# www.blender.org
+o Cube
+v 0.500050 -0.500050 -0.500050
+v 0.500050 -0.500050 0.500050
+v -0.500050 -0.500050 -0.500050
+v -0.500050 -0.500050 0.500050
+v 0.500050 0.500050 -0.500050
+v 0.500050 0.500050 0.500050
+v -0.500050 0.500050 -0.500050
+v -0.500050 0.500050 0.500050
+vt 1.0000 1.0000
+vt 0.5000 0.5000
+vt 1.0000 0.5000
+vt 1.0000 1.0000
+vt 0.5000 0.5000
+vt 1.0000 0.5000
+vt 1.0000 1.0000
+vt 0.5000 0.5000
+vt 1.0000 0.5000
+vt 1.0000 1.0000
+vt 0.5000 0.5000
+vt 1.0000 0.5000
+vt 0.0000 -0.0000
+vt 0.5000 0.0000
+vt 0.5000 1.0000
+vt -0.0000 0.5000
+vt 0.5000 0.5000
+vt 0.5000 1.0000
+vt 0.5000 1.0000
+vt 0.5000 1.0000
+vt -0.0000 0.5000
+vt -0.0000 1.0000
+vn 0.0000 -1.0000 0.0000
+vn -1.0000 0.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn 1.0000 0.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+s off
+f 2/1/1 3/2/1 1/3/1
+f 4/4/2 7/5/2 3/6/2
+f 8/7/3 5/8/3 7/9/3
+f 6/10/4 1/11/4 5/12/4
+f 7/5/5 1/13/5 3/14/5
+f 4/15/6 6/16/6 8/17/6
+f 2/1/1 4/15/1 3/2/1
+f 4/4/2 8/18/2 7/5/2
+f 8/7/3 6/19/3 5/8/3
+f 6/10/4 2/20/4 1/11/4
+f 7/5/5 5/21/5 1/13/5
+f 4/15/6 2/22/6 6/16/6
diff --git a/hexworld/res/door.obj b/hexworld/res/door.obj
index f50afa8..374962c 100644
--- a/hexworld/res/door.obj
+++ b/hexworld/res/door.obj
@@ -1,119 +1,331 @@
# Blender v2.78 (sub 0) OBJ File: 'door.blend'
# www.blender.org
-o BaseRight
-v -0.500000 0.500000 -0.500000
-v -0.500000 0.500000 -0.125000
-v 0.500000 0.500000 -0.500000
-v 0.500000 0.500000 -0.125000
-v -0.500000 -0.500000 -0.500000
-v -0.500000 -0.500000 -0.125000
+o BaseLeft
v 0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.125000
-v -0.375000 0.375000 -0.125000
-v -0.375000 0.375000 0.125000
-v 0.375000 0.375000 -0.125000
-v 0.375000 0.375000 0.125000
-v -0.375000 -0.375000 -0.125000
-v -0.375000 -0.375000 0.125000
+v -0.500000 -0.500001 -0.500000
+v -0.500000 -0.500001 -0.125000
+v 0.500000 0.500000 -0.500000
+v 0.500000 0.500000 -0.125000
+v -0.500000 0.499999 -0.500000
+v -0.500000 0.499999 -0.125000
v 0.375000 -0.375000 -0.125000
v 0.375000 -0.375000 0.125000
-v -0.250000 0.250000 0.125000
-v -0.250000 0.250000 0.500000
-v 0.250000 0.250000 0.125000
-v 0.250000 0.250000 0.500000
-v -0.250000 -0.250000 0.125000
-v -0.250000 -0.250000 0.500000
+v -0.375000 -0.375001 -0.125000
+v -0.375000 -0.375001 0.125000
+v 0.375000 0.375000 -0.125000
+v 0.375000 0.375000 0.125000
+v -0.375000 0.374999 -0.125000
+v -0.375000 0.374999 0.125000
v 0.250000 -0.250000 0.125000
v 0.250000 -0.250000 0.500000
-v -0.500000 0.125000 -0.125000
-v -0.500000 0.125000 0.500000
-v -0.250000 0.125000 -0.125000
-v -0.250000 0.125000 0.500000
-v -0.500000 -0.125000 -0.125000
-v -0.500000 -0.125000 0.500000
-v -0.250000 -0.125000 -0.125000
-v -0.250000 -0.125000 0.500000
-vn -0.0000 1.0000 0.0000
-vn 1.0000 0.0000 0.0000
-vn 0.0000 -1.0000 0.0000
-vn 0.0000 0.0000 -1.0000
-vn -0.0000 0.0000 1.0000
-vn -1.0000 -0.0000 0.0000
-s off
-f 2//1 3//1 1//1
-f 4//2 7//2 3//2
-f 8//3 5//3 7//3
-f 7//4 1//4 3//4
-f 4//5 6//5 8//5
-f 10//1 11//1 9//1
-f 12//2 15//2 11//2
-f 16//3 13//3 15//3
-f 14//6 9//6 13//6
-f 12//5 14//5 16//5
-f 18//1 19//1 17//1
-f 20//2 23//2 19//2
-f 24//3 21//3 23//3
-f 22//6 17//6 21//6
-f 26//1 27//1 25//1
-f 32//3 29//3 31//3
-f 30//6 25//6 29//6
-f 28//5 30//5 32//5
-f 5//6 2//6 1//6
-f 2//1 4//1 3//1
-f 4//2 8//2 7//2
-f 8//3 6//3 5//3
-f 7//4 5//4 1//4
-f 4//5 2//5 6//5
-f 10//1 12//1 11//1
-f 12//2 16//2 15//2
-f 16//3 14//3 13//3
-f 14//6 10//6 9//6
-f 12//5 10//5 14//5
-f 18//1 20//1 19//1
-f 20//2 24//2 23//2
-f 24//3 22//3 21//3
-f 22//6 18//6 17//6
-f 26//1 28//1 27//1
-f 32//3 30//3 29//3
-f 30//6 26//6 25//6
-f 28//5 26//5 30//5
-f 5//6 6//6 2//6
-o ColRight
-v -0.250000 0.250000 -0.500000
-v -0.250000 0.250000 0.500000
-v 0.250000 0.250000 -0.500000
+v -0.250000 -0.250001 0.125000
+v -0.250000 -0.250001 0.500000
+v 0.250000 0.250000 0.125000
v 0.250000 0.250000 0.500000
-v -0.250000 -0.250000 -0.500000
-v -0.250000 -0.250000 0.500000
+v -0.250000 0.250000 0.125000
+v -0.250000 0.250000 0.500000
+v 0.500000 -0.125000 -0.125000
+v 0.500000 -0.125000 0.500000
+v 0.250000 -0.125000 -0.125000
+v 0.250000 -0.125000 0.500000
+v 0.500000 0.125000 -0.125000
+v 0.500000 0.125000 0.500000
+v 0.250000 0.125000 -0.125000
+v 0.250000 0.125000 0.500000
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vn 0.0000 -1.0000 0.0000
+vn -1.0000 -0.0000 0.0000
+vn -0.0000 1.0000 0.0000
+vn -0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+vn 1.0000 0.0000 0.0000
+s off
+f 2/1/1 3/2/1 1/3/1
+f 4/4/2 7/5/2 3/2/2
+f 8/6/3 5/7/3 7/5/3
+f 7/5/4 1/3/4 3/2/4
+f 4/4/5 6/8/5 8/6/5
+f 10/9/1 11/10/1 9/11/1
+f 12/12/2 15/13/2 11/10/2
+f 16/14/3 13/15/3 15/13/3
+f 14/16/6 9/11/6 13/15/6
+f 12/12/5 14/16/5 16/14/5
+f 18/17/1 19/18/1 17/19/1
+f 20/20/2 23/21/2 19/18/2
+f 24/22/3 21/23/3 23/21/3
+f 22/24/6 17/19/6 21/23/6
+f 26/25/1 27/26/1 25/27/1
+f 32/28/3 29/29/3 31/30/3
+f 30/31/6 25/27/6 29/29/6
+f 32/28/5 26/25/5 30/31/5
+f 5/7/6 2/1/6 1/3/6
+f 2/1/1 4/4/1 3/2/1
+f 4/4/2 8/6/2 7/5/2
+f 8/6/3 6/8/3 5/7/3
+f 7/5/4 5/7/4 1/3/4
+f 4/4/5 2/1/5 6/8/5
+f 10/9/1 12/12/1 11/10/1
+f 12/12/2 16/14/2 15/13/2
+f 16/14/3 14/16/3 13/15/3
+f 14/16/6 10/9/6 9/11/6
+f 12/12/5 10/9/5 14/16/5
+f 18/17/1 20/20/1 19/18/1
+f 20/20/2 24/22/2 23/21/2
+f 24/22/3 22/24/3 21/23/3
+f 22/24/6 18/17/6 17/19/6
+f 26/25/1 28/32/1 27/26/1
+f 32/28/3 30/31/3 29/29/3
+f 30/31/6 26/25/6 25/27/6
+f 32/28/5 28/32/5 26/25/5
+f 5/7/6 6/8/6 2/1/6
+o ColLeft
v 0.250000 -0.250000 -0.500000
v 0.250000 -0.250000 0.500000
-v -0.500000 0.125000 -0.500000
-v -0.500000 0.125000 0.500000
-v -0.250000 0.125000 -0.500000
-v -0.250000 0.125000 0.500000
-v -0.500000 -0.125000 -0.500000
-v -0.500000 -0.125000 0.500000
-v -0.250000 -0.125000 -0.500000
-v -0.250000 -0.125000 0.500000
-vn -0.0000 1.0000 0.0000
-vn 1.0000 0.0000 0.0000
+v -0.250000 -0.250001 -0.500000
+v -0.250000 -0.250001 0.500000
+v 0.250000 0.250000 -0.500000
+v 0.250000 0.250000 0.500000
+v -0.250000 0.250000 -0.500000
+v -0.250000 0.250000 0.500000
+v 0.500000 -0.125000 -0.500000
+v 0.500000 -0.125000 0.500000
+v 0.250000 -0.125000 -0.500000
+v 0.250000 -0.125000 0.500000
+v 0.500000 0.125000 -0.500000
+v 0.500000 0.125000 0.500000
+v 0.250000 0.125000 -0.500000
+v 0.250000 0.125000 0.500000
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
vn 0.0000 -1.0000 0.0000
vn -1.0000 -0.0000 0.0000
+vn -0.0000 1.0000 0.0000
+vn 1.0000 0.0000 0.0000
s off
-f 34//7 35//7 33//7
-f 36//8 39//8 35//8
-f 40//9 37//9 39//9
-f 38//10 33//10 37//10
-f 42//7 43//7 41//7
-f 48//9 45//9 47//9
-f 46//10 41//10 45//10
-f 34//7 36//7 35//7
-f 36//8 40//8 39//8
-f 40//9 38//9 37//9
-f 38//10 34//10 33//10
-f 42//7 44//7 43//7
-f 48//9 46//9 45//9
-f 46//10 42//10 41//10
+f 34/33/7 35/34/7 33/35/7
+f 36/36/8 39/37/8 35/34/8
+f 40/38/9 37/39/9 39/37/9
+f 38/40/10 33/35/10 37/39/10
+f 42/41/7 43/42/7 41/43/7
+f 48/44/9 45/45/9 47/46/9
+f 46/47/10 41/43/10 45/45/10
+f 34/33/7 36/36/7 35/34/7
+f 36/36/8 40/38/8 39/37/8
+f 40/38/9 38/40/9 37/39/9
+f 38/40/10 34/33/10 33/35/10
+f 42/41/7 44/48/7 43/42/7
+f 48/44/9 46/47/9 45/45/9
+f 46/47/10 42/41/10 41/43/10
+o CapLeft
+v 0.500000 -0.125000 -0.500000
+v 0.500000 -0.125000 -0.250000
+v 0.250000 -0.125000 -0.500000
+v 0.250000 -0.125000 -0.250000
+v 0.500000 0.125000 -0.500000
+v 0.500000 0.125000 -0.250000
+v 0.250000 0.125000 -0.500000
+v 0.250000 0.125000 -0.250000
+v 0.500000 -0.250000 -0.250000
+v 0.500000 -0.250000 0.250000
+v -0.250000 -0.250001 -0.250000
+v -0.250000 -0.250001 0.250000
+v 0.500000 0.250000 -0.250000
+v 0.500000 0.250000 0.250000
+v -0.250000 0.250000 -0.250000
+v -0.250000 0.250000 0.250000
+v 0.375000 -0.375000 -0.375000
+v 0.375000 -0.375000 -0.125000
+v -0.375000 -0.375001 -0.375000
+v -0.375000 -0.375001 -0.125000
+v 0.375000 0.375000 -0.375000
+v 0.375000 0.375000 -0.125000
+v -0.375000 0.374999 -0.375000
+v -0.375000 0.374999 -0.125000
+v 0.250000 -0.250000 -0.500000
+v 0.250000 -0.250000 -0.375000
+v -0.250000 -0.250001 -0.500000
+v -0.250000 -0.250001 -0.375000
+v 0.250000 0.250000 -0.500000
+v 0.250000 0.250000 -0.375000
+v -0.250000 0.250000 -0.500000
+v -0.250000 0.250000 -0.375000
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vn 0.0000 -1.0000 0.0000
+vn -1.0000 -0.0000 0.0000
+vn -0.0000 1.0000 0.0000
+vn -0.0000 0.0000 -1.0000
+vn -0.0000 0.0000 1.0000
+vn 1.0000 0.0000 0.0000
+s off
+f 50/49/11 51/50/11 49/51/11
+f 52/52/12 55/53/12 51/54/12
+f 56/55/13 53/56/13 55/57/13
+f 58/58/11 59/59/11 57/60/11
+f 60/61/12 63/62/12 59/59/12
+f 64/63/13 61/64/13 63/62/13
+f 59/59/14 61/64/14 57/60/14
+f 60/61/15 62/65/15 64/63/15
+f 66/66/11 67/67/11 65/68/11
+f 68/69/12 71/70/12 67/67/12
+f 72/71/13 69/72/13 71/70/13
+f 70/73/16 65/68/16 69/72/16
+f 71/70/14 65/68/14 67/67/14
+f 68/69/15 70/73/15 72/71/15
+f 74/74/11 75/75/11 73/76/11
+f 76/77/12 79/78/12 75/75/12
+f 80/79/13 77/80/13 79/78/13
+f 78/81/16 73/76/16 77/80/16
+f 50/49/11 52/82/11 51/50/11
+f 52/52/12 56/83/12 55/53/12
+f 56/55/13 54/84/13 53/56/13
+f 58/58/11 60/61/11 59/59/11
+f 60/61/12 64/63/12 63/62/12
+f 64/63/13 62/65/13 61/64/13
+f 59/59/14 63/62/14 61/64/14
+f 60/61/15 58/58/15 62/65/15
+f 66/66/11 68/69/11 67/67/11
+f 68/69/12 72/71/12 71/70/12
+f 72/71/13 70/73/13 69/72/13
+f 70/73/16 66/66/16 65/68/16
+f 71/70/14 69/72/14 65/68/14
+f 68/69/15 66/66/15 70/73/15
+f 74/74/11 76/77/11 75/75/11
+f 76/77/12 80/79/12 79/78/12
+f 80/79/13 78/81/13 77/80/13
+f 78/81/16 74/74/16 73/76/16
+o Lintel
+v 0.500000 -0.250000 -0.250000
+v 0.500000 -0.250000 0.250000
+v -0.500000 -0.250000 -0.250000
+v -0.500000 -0.250000 0.250000
+v 0.500000 0.250000 -0.250000
+v 0.500000 0.250000 0.250000
+v -0.500000 0.250000 -0.250000
+v -0.500000 0.250000 0.250000
+v 0.500000 -0.125000 -0.500000
+v 0.500000 -0.125000 -0.250000
+v -0.500000 -0.125000 -0.500000
+v -0.500000 -0.125000 -0.250000
+v 0.500000 0.125000 -0.500000
+v 0.500000 0.125000 -0.250000
+v -0.500000 0.125000 -0.500000
+v -0.500000 0.125000 -0.250000
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 1.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn 0.0000 0.0000 1.0000
+s off
+f 82/85/17 83/86/17 81/87/17
+f 88/88/18 85/89/18 87/90/18
+f 87/90/19 81/87/19 83/86/19
+f 84/91/20 86/92/20 88/88/20
+f 90/93/17 91/94/17 89/95/17
+f 96/96/18 93/97/18 95/98/18
+f 95/98/19 89/95/19 91/94/19
+f 82/85/17 84/91/17 83/86/17
+f 88/88/18 86/92/18 85/89/18
+f 87/90/19 85/89/19 81/87/19
+f 84/91/20 82/85/20 86/92/20
+f 90/93/17 92/99/17 91/94/17
+f 96/96/18 94/100/18 93/97/18
+f 95/98/19 93/97/19 89/95/19
o CapRight
v -0.500000 0.125000 -0.500000
v -0.500000 0.125000 -0.250000
@@ -147,6 +359,42 @@ v -0.250000 -0.250000 -0.500000
v -0.250000 -0.250000 -0.375000
v 0.250000 -0.250000 -0.500000
v 0.250000 -0.250000 -0.375000
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.1612 0.4256
+vt 0.8375 0.5004
vn -0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
vn 0.0000 -1.0000 0.0000
@@ -154,268 +402,204 @@ vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn -1.0000 -0.0000 0.0000
s off
-f 50//11 51//11 49//11
-f 52//12 55//12 51//12
-f 56//13 53//13 55//13
-f 58//11 59//11 57//11
-f 60//12 63//12 59//12
-f 64//13 61//13 63//13
-f 63//14 57//14 59//14
-f 60//15 62//15 64//15
-f 66//11 67//11 65//11
-f 68//12 71//12 67//12
-f 72//13 69//13 71//13
-f 70//16 65//16 69//16
-f 71//14 65//14 67//14
-f 68//15 70//15 72//15
-f 74//11 75//11 73//11
-f 76//12 79//12 75//12
-f 80//13 77//13 79//13
-f 78//16 73//16 77//16
-f 50//11 52//11 51//11
-f 52//12 56//12 55//12
-f 56//13 54//13 53//13
-f 58//11 60//11 59//11
-f 60//12 64//12 63//12
-f 64//13 62//13 61//13
-f 63//14 61//14 57//14
-f 60//15 58//15 62//15
-f 66//11 68//11 67//11
-f 68//12 72//12 71//12
-f 72//13 70//13 69//13
-f 70//16 66//16 65//16
-f 71//14 69//14 65//14
-f 68//15 66//15 70//15
-f 74//11 76//11 75//11
-f 76//12 80//12 79//12
-f 80//13 78//13 77//13
-f 78//16 74//16 73//16
-o Lintel
-v 0.500000 -0.250000 -0.250000
-v 0.500000 -0.250000 0.250000
-v -0.500000 -0.250000 -0.250000
-v -0.500000 -0.250000 0.250000
-v 0.500000 0.250000 -0.250000
-v 0.500000 0.250000 0.250000
-v -0.500000 0.250000 -0.250000
-v -0.500000 0.250000 0.250000
-v 0.500000 -0.125000 -0.500000
-v 0.500000 -0.125000 -0.250000
-v -0.500000 -0.125000 -0.500000
-v -0.500000 -0.125000 -0.250000
-v 0.500000 0.125000 -0.500000
-v 0.500000 0.125000 -0.250000
-v -0.500000 0.125000 -0.500000
-v -0.500000 0.125000 -0.250000
-vn 0.0000 -1.0000 0.0000
-vn 0.0000 1.0000 0.0000
-vn 0.0000 0.0000 -1.0000
-vn 0.0000 0.0000 1.0000
-s off
-f 82//17 83//17 81//17
-f 88//18 85//18 87//18
-f 87//19 81//19 83//19
-f 84//20 86//20 88//20
-f 90//17 91//17 89//17
-f 96//18 93//18 95//18
-f 95//19 89//19 91//19
-f 82//17 84//17 83//17
-f 88//18 86//18 85//18
-f 87//19 85//19 81//19
-f 84//20 82//20 86//20
-f 90//17 92//17 91//17
-f 96//18 94//18 93//18
-f 95//19 93//19 89//19
-o CapLeft
-v 0.500000 -0.125000 -0.500000
-v 0.500000 -0.125000 -0.250000
-v 0.250000 -0.125000 -0.500000
-v 0.250000 -0.125000 -0.250000
-v 0.500000 0.125000 -0.500000
-v 0.500000 0.125000 -0.250000
-v 0.250000 0.125000 -0.500000
-v 0.250000 0.125000 -0.250000
-v 0.500000 -0.250000 -0.250000
-v 0.500000 -0.250000 0.250000
-v -0.250000 -0.250000 -0.250000
-v -0.250000 -0.250000 0.250000
-v 0.500000 0.250000 -0.250000
-v 0.500000 0.250000 0.250000
-v -0.250000 0.250000 -0.250000
-v -0.250000 0.250000 0.250000
-v 0.375000 -0.375000 -0.375000
-v 0.375000 -0.375000 -0.125000
-v -0.375000 -0.375000 -0.375000
-v -0.375000 -0.375000 -0.125000
-v 0.375000 0.375000 -0.375000
-v 0.375000 0.375000 -0.125000
-v -0.375000 0.375000 -0.375000
-v -0.375000 0.375000 -0.125000
-v 0.250000 -0.250000 -0.500000
-v 0.250000 -0.250000 -0.375000
-v -0.250000 -0.250000 -0.500000
-v -0.250000 -0.250000 -0.375000
-v 0.250000 0.250000 -0.500000
-v 0.250000 0.250000 -0.375000
-v -0.250000 0.250000 -0.500000
-v -0.250000 0.250000 -0.375000
-vn 0.0000 -1.0000 0.0000
-vn -1.0000 0.0000 0.0000
-vn 0.0000 1.0000 0.0000
-vn 0.0000 0.0000 -1.0000
-vn 0.0000 0.0000 1.0000
-vn 1.0000 0.0000 0.0000
-s off
-f 98//21 99//21 97//21
-f 100//22 103//22 99//22
-f 104//23 101//23 103//23
-f 106//21 107//21 105//21
-f 108//22 111//22 107//22
-f 112//23 109//23 111//23
-f 111//24 105//24 107//24
-f 108//25 110//25 112//25
-f 114//21 115//21 113//21
-f 116//22 119//22 115//22
-f 120//23 117//23 119//23
-f 118//26 113//26 117//26
-f 119//24 113//24 115//24
-f 116//25 118//25 120//25
-f 122//21 123//21 121//21
-f 124//22 127//22 123//22
-f 128//23 125//23 127//23
-f 126//26 121//26 125//26
-f 98//21 100//21 99//21
-f 100//22 104//22 103//22
-f 104//23 102//23 101//23
-f 106//21 108//21 107//21
-f 108//22 112//22 111//22
-f 112//23 110//23 109//23
-f 111//24 109//24 105//24
-f 108//25 106//25 110//25
-f 114//21 116//21 115//21
-f 116//22 120//22 119//22
-f 120//23 118//23 117//23
-f 118//26 114//26 113//26
-f 119//24 117//24 113//24
-f 116//25 114//25 118//25
-f 122//21 124//21 123//21
-f 124//22 128//22 127//22
-f 128//23 126//23 125//23
-f 126//26 122//26 121//26
-o ColLeft
-v 0.250000 -0.250000 -0.500000
-v 0.250000 -0.250000 0.500000
-v -0.250000 -0.250000 -0.500000
-v -0.250000 -0.250000 0.500000
-v 0.250000 0.250000 -0.500000
-v 0.250000 0.250000 0.500000
+f 98/101/21 99/102/21 97/103/21
+f 100/104/22 103/105/22 99/106/22
+f 104/107/23 101/108/23 103/109/23
+f 106/110/21 107/111/21 105/112/21
+f 108/113/22 111/114/22 107/111/22
+f 112/115/23 109/116/23 111/114/23
+f 107/111/24 109/116/24 105/112/24
+f 108/113/25 110/117/25 112/115/25
+f 114/118/21 115/119/21 113/120/21
+f 116/121/22 119/122/22 115/119/22
+f 120/123/23 117/124/23 119/122/23
+f 118/125/26 113/120/26 117/124/26
+f 119/122/24 113/120/24 115/119/24
+f 116/121/25 118/125/25 120/123/25
+f 122/126/21 123/127/21 121/128/21
+f 124/129/22 127/130/22 123/127/22
+f 128/131/23 125/132/23 127/130/23
+f 126/133/26 121/128/26 125/132/26
+f 98/101/21 100/134/21 99/102/21
+f 100/104/22 104/135/22 103/105/22
+f 104/107/23 102/136/23 101/108/23
+f 106/110/21 108/113/21 107/111/21
+f 108/113/22 112/115/22 111/114/22
+f 112/115/23 110/117/23 109/116/23
+f 107/111/24 111/114/24 109/116/24
+f 108/113/25 106/110/25 110/117/25
+f 114/118/21 116/121/21 115/119/21
+f 116/121/22 120/123/22 119/122/22
+f 120/123/23 118/125/23 117/124/23
+f 118/125/26 114/118/26 113/120/26
+f 119/122/24 117/124/24 113/120/24
+f 116/121/25 114/118/25 118/125/25
+f 122/126/21 124/129/21 123/127/21
+f 124/129/22 128/131/22 127/130/22
+f 128/131/23 126/133/23 125/132/23
+f 126/133/26 122/126/26 121/128/26
+o ColRight
v -0.250000 0.250000 -0.500000
v -0.250000 0.250000 0.500000
-v 0.500000 -0.125000 -0.500000
-v 0.500000 -0.125000 0.500000
-v 0.250000 -0.125000 -0.500000
-v 0.250000 -0.125000 0.500000
-v 0.500000 0.125000 -0.500000
-v 0.500000 0.125000 0.500000
-v 0.250000 0.125000 -0.500000
-v 0.250000 0.125000 0.500000
-vn 0.0000 -1.0000 0.0000
-vn -1.0000 0.0000 0.0000
-vn 0.0000 1.0000 0.0000
+v 0.250000 0.250000 -0.500000
+v 0.250000 0.250000 0.500000
+v -0.250000 -0.250000 -0.500000
+v -0.250000 -0.250000 0.500000
+v 0.250000 -0.250000 -0.500000
+v 0.250000 -0.250000 0.500000
+v -0.500000 0.125000 -0.500000
+v -0.500000 0.125000 0.500000
+v -0.250000 0.125000 -0.500000
+v -0.250000 0.125000 0.500000
+v -0.500000 -0.125000 -0.500000
+v -0.500000 -0.125000 0.500000
+v -0.250000 -0.125000 -0.500000
+v -0.250000 -0.125000 0.500000
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vn -0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn -1.0000 -0.0000 0.0000
s off
-f 130//27 131//27 129//27
-f 132//28 135//28 131//28
-f 136//29 133//29 135//29
-f 134//30 129//30 133//30
-f 138//27 139//27 137//27
-f 144//29 141//29 143//29
-f 142//30 137//30 141//30
-f 130//27 132//27 131//27
-f 132//28 136//28 135//28
-f 136//29 134//29 133//29
-f 134//30 130//30 129//30
-f 138//27 140//27 139//27
-f 144//29 142//29 141//29
-f 142//30 138//30 137//30
-o BaseLeft
-v 0.500000 -0.500000 -0.500000
-v 0.500000 -0.500000 -0.125000
-v -0.500000 -0.500000 -0.500000
-v -0.500000 -0.500000 -0.125000
-v 0.500000 0.500000 -0.500000
-v 0.500000 0.500000 -0.125000
+f 130/137/27 131/138/27 129/139/27
+f 132/140/28 135/141/28 131/138/28
+f 136/142/29 133/143/29 135/141/29
+f 134/144/30 129/139/30 133/143/30
+f 138/145/27 139/146/27 137/147/27
+f 144/148/29 141/149/29 143/150/29
+f 142/151/30 137/147/30 141/149/30
+f 130/137/27 132/140/27 131/138/27
+f 132/140/28 136/142/28 135/141/28
+f 136/142/29 134/144/29 133/143/29
+f 134/144/30 130/137/30 129/139/30
+f 138/145/27 140/152/27 139/146/27
+f 144/148/29 142/151/29 141/149/29
+f 142/151/30 138/145/30 137/147/30
+o BaseRight
v -0.500000 0.500000 -0.500000
v -0.500000 0.500000 -0.125000
-v 0.375000 -0.375000 -0.125000
-v 0.375000 -0.375000 0.125000
-v -0.375000 -0.375000 -0.125000
-v -0.375000 -0.375000 0.125000
-v 0.375000 0.375000 -0.125000
-v 0.375000 0.375000 0.125000
+v 0.500000 0.500000 -0.500000
+v 0.500000 0.500000 -0.125000
+v -0.500000 -0.500000 -0.500000
+v -0.500000 -0.500000 -0.125000
+v 0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.125000
v -0.375000 0.375000 -0.125000
v -0.375000 0.375000 0.125000
-v 0.250000 -0.250000 0.125000
-v 0.250000 -0.250000 0.500000
-v -0.250000 -0.250000 0.125000
-v -0.250000 -0.250000 0.500000
-v 0.250000 0.250000 0.125000
-v 0.250000 0.250000 0.500000
+v 0.375000 0.375000 -0.125000
+v 0.375000 0.375000 0.125000
+v -0.375000 -0.375000 -0.125000
+v -0.375000 -0.375000 0.125000
+v 0.375000 -0.375000 -0.125000
+v 0.375000 -0.375000 0.125000
v -0.250000 0.250000 0.125000
v -0.250000 0.250000 0.500000
-v 0.500000 -0.125000 -0.125000
-v 0.500000 -0.125000 0.500000
-v 0.250000 -0.125000 -0.125000
-v 0.250000 -0.125000 0.500000
-v 0.500000 0.125000 -0.125000
-v 0.500000 0.125000 0.500000
-v 0.250000 0.125000 -0.125000
-v 0.250000 0.125000 0.500000
-vn 0.0000 -1.0000 0.0000
-vn -1.0000 0.0000 0.0000
-vn 0.0000 1.0000 0.0000
-vn 0.0000 0.0000 -1.0000
-vn 0.0000 0.0000 1.0000
+v 0.250000 0.250000 0.125000
+v 0.250000 0.250000 0.500000
+v -0.250000 -0.250000 0.125000
+v -0.250000 -0.250000 0.500000
+v 0.250000 -0.250000 0.125000
+v 0.250000 -0.250000 0.500000
+v -0.500000 0.125000 -0.125000
+v -0.500000 0.125000 0.500000
+v -0.250000 0.125000 -0.125000
+v -0.250000 0.125000 0.500000
+v -0.500000 -0.125000 -0.125000
+v -0.500000 -0.125000 0.500000
+v -0.250000 -0.125000 -0.125000
+v -0.250000 -0.125000 0.500000
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.4604 0.4641
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.1612 0.4256
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vn -0.0000 1.0000 0.0000
vn 1.0000 0.0000 0.0000
+vn 0.0000 -1.0000 0.0000
+vn 0.0000 0.0000 -1.0000
+vn -0.0000 0.0000 1.0000
+vn -1.0000 -0.0000 0.0000
s off
-f 146//31 147//31 145//31
-f 148//32 151//32 147//32
-f 152//33 149//33 151//33
-f 151//34 145//34 147//34
-f 148//35 150//35 152//35
-f 154//31 155//31 153//31
-f 156//32 159//32 155//32
-f 160//33 157//33 159//33
-f 158//36 153//36 157//36
-f 156//35 158//35 160//35
-f 162//31 163//31 161//31
-f 164//32 167//32 163//32
-f 168//33 165//33 167//33
-f 166//36 161//36 165//36
-f 170//31 171//31 169//31
-f 176//33 173//33 175//33
-f 174//36 169//36 173//36
-f 172//35 174//35 176//35
-f 149//36 146//36 145//36
-f 146//31 148//31 147//31
-f 148//32 152//32 151//32
-f 152//33 150//33 149//33
-f 151//34 149//34 145//34
-f 148//35 146//35 150//35
-f 154//31 156//31 155//31
-f 156//32 160//32 159//32
-f 160//33 158//33 157//33
-f 158//36 154//36 153//36
-f 156//35 154//35 158//35
-f 162//31 164//31 163//31
-f 164//32 168//32 167//32
-f 168//33 166//33 165//33
-f 166//36 162//36 161//36
-f 170//31 172//31 171//31
-f 176//33 174//33 173//33
-f 174//36 170//36 169//36
-f 172//35 170//35 174//35
-f 149//36 150//36 146//36
+f 146/153/31 147/154/31 145/155/31
+f 148/156/32 151/157/32 147/154/32
+f 152/158/33 149/159/33 151/157/33
+f 151/157/34 145/155/34 147/154/34
+f 148/156/35 150/160/35 152/158/35
+f 154/161/31 155/162/31 153/163/31
+f 156/164/32 159/165/32 155/162/32
+f 160/166/33 157/167/33 159/165/33
+f 158/168/36 153/163/36 157/167/36
+f 156/164/35 158/168/35 160/166/35
+f 162/169/31 163/170/31 161/171/31
+f 164/172/32 167/173/32 163/170/32
+f 168/174/33 165/175/33 167/173/33
+f 166/176/36 161/171/36 165/175/36
+f 170/177/31 171/178/31 169/179/31
+f 176/180/33 173/181/33 175/182/33
+f 174/183/36 169/179/36 173/181/36
+f 176/180/35 170/177/35 174/183/35
+f 149/159/36 146/153/36 145/155/36
+f 146/153/31 148/156/31 147/154/31
+f 148/156/32 152/158/32 151/157/32
+f 152/158/33 150/160/33 149/159/33
+f 151/157/34 149/159/34 145/155/34
+f 148/156/35 146/153/35 150/160/35
+f 154/161/31 156/164/31 155/162/31
+f 156/164/32 160/166/32 159/165/32
+f 160/166/33 158/168/33 157/167/33
+f 158/168/36 154/161/36 153/163/36
+f 156/164/35 154/161/35 158/168/35
+f 162/169/31 164/172/31 163/170/31
+f 164/172/32 168/174/32 167/173/32
+f 168/174/33 166/176/33 165/175/33
+f 166/176/36 162/169/36 161/171/36
+f 170/177/31 172/184/31 171/178/31
+f 176/180/33 174/183/33 173/181/33
+f 174/183/36 170/177/36 169/179/36
+f 176/180/35 172/184/35 170/177/35
+f 149/159/36 150/160/36 146/153/36
o Stairs
v -0.500000 -0.500000 -0.500000
v 0.500000 -0.500000 -0.500000
@@ -441,32 +625,56 @@ v 0.500000 0.250000 -0.125000
v 0.500000 -0.250000 -0.125000
v -0.500000 -0.250000 -0.125000
v -0.500000 0.250000 -0.125000
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
+vt 0.8375 0.5004
vn 0.0000 0.0000 -1.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
s off
-f 177//37 180//37 178//37
-f 183//38 192//38 185//38
-f 178//39 182//39 177//39
-f 179//40 183//40 180//40
-f 188//38 182//38 181//38
-f 187//39 189//39 188//39
-f 186//38 196//38 193//38
-f 185//40 191//40 186//40
-f 194//38 190//38 187//38
-f 196//40 197//40 193//40
-f 197//38 199//38 198//38
-f 194//39 199//39 195//39
-f 177//37 179//37 180//37
-f 183//38 184//38 192//38
-f 178//39 181//39 182//39
-f 179//40 184//40 183//40
-f 188//38 189//38 182//38
-f 187//39 190//39 189//39
-f 186//38 191//38 196//38
-f 185//40 192//40 191//40
-f 194//38 195//38 190//38
-f 196//40 200//40 197//40
-f 197//38 200//38 199//38
-f 194//39 198//39 199//39
+f 177/185/37 180/186/37 178/187/37
+f 183/188/38 192/189/38 185/190/38
+f 178/187/39 182/191/39 177/185/39
+f 179/192/40 183/188/40 180/186/40
+f 188/193/38 182/191/38 181/194/38
+f 187/195/39 189/196/39 188/193/39
+f 186/197/38 196/198/38 193/199/38
+f 185/190/40 191/200/40 186/197/40
+f 194/201/38 190/202/38 187/195/38
+f 196/198/40 197/203/40 193/199/40
+f 197/203/38 199/204/38 198/205/38
+f 194/201/39 199/204/39 195/206/39
+f 177/185/37 179/192/37 180/186/37
+f 183/188/38 184/207/38 192/189/38
+f 178/187/39 181/194/39 182/191/39
+f 179/192/40 184/207/40 183/188/40
+f 188/193/38 189/196/38 182/191/38
+f 187/195/39 190/202/39 189/196/39
+f 186/197/38 191/200/38 196/198/38
+f 185/190/40 192/189/40 191/200/40
+f 194/201/38 195/206/38 190/202/38
+f 196/198/40 200/208/40 197/203/40
+f 197/203/38 200/208/38 199/204/38
+f 194/201/39 198/205/39 199/204/39
diff --git a/hexworld/res/door.png b/hexworld/res/door.png
new file mode 100644
index 0000000..fd51c0f
Binary files /dev/null and b/hexworld/res/door.png differ
diff --git a/hexworld/res/level.json b/hexworld/res/level.json
index 3d01ccb..f7ed942 100644
--- a/hexworld/res/level.json
+++ b/hexworld/res/level.json
@@ -1,17 +1,52 @@
{
"models": [
- "door.obj"
+ "door.obj",
+ "cube.obj"
+ ],
+ "shaders": [
+ {
+ "name": "textured",
+ "files": [
+ "obj.fs.glsl",
+ "obj.vs.glsl",
+ ]
+ }
],
"tiles": [
- { "mesh": "BaseLeft", "pos": { "x": -1, "y": 0, "z": 0 } },
- { "mesh": "BaseRight", "pos": { "x": 1, "y": 0, "z": 0 } },
- { "mesh": "Stairs", "pos": { "x": 0, "y": 0, "z": 0 } },
- { "mesh": "ColLeft", "pos": { "x": -1, "y": 0, "z": 1 } },
- { "mesh": "ColRight", "pos": { "x": 1, "y": 0, "z": 1 } },
- { "mesh": "ColLeft", "pos": { "x": -1, "y": 0, "z": 2 } },
- { "mesh": "ColRight", "pos": { "x": 1, "y": 0, "z": 2 } },
- { "mesh": "CapLeft", "pos": { "x": -1, "y": 0, "z": 3 } },
- { "mesh": "Lintel", "pos": { "x": 0, "y": 0, "z": 3 } },
- { "mesh": "CapRight", "pos": { "x": 1, "y": 0, "z": 3 } }
+ { "mesh": "BaseLeft", "shader": "textured", "pos": { "x": -1, "y": 0, "z": 0 } },
+ { "mesh": "BaseRight", "shader": "textured", "pos": { "x": 1, "y": 0, "z": 0 } },
+ { "mesh": "Stairs", "shader": "textured", "pos": { "x": 0, "y": 0, "z": 0 } },
+ { "mesh": "ColLeft", "shader": "textured", "pos": { "x": -1, "y": 0, "z": 1 } },
+ { "mesh": "ColRight", "shader": "textured", "pos": { "x": 1, "y": 0, "z": 1 } },
+ { "mesh": "ColLeft", "shader": "textured", "pos": { "x": -1, "y": 0, "z": 2 } },
+ { "mesh": "ColRight", "shader": "textured", "pos": { "x": 1, "y": 0, "z": 2 } },
+ { "mesh": "CapLeft", "shader": "textured", "pos": { "x": -1, "y": 0, "z": 3 } },
+ { "mesh": "Lintel", "shader": "textured", "pos": { "x": 0, "y": 0, "z": 3 } },
+ { "mesh": "CapRight", "shader": "textured", "pos": { "x": 1, "y": 0, "z": 3 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -2, "y": -2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -2, "y": -1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -2, "y": 0, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -2, "y": 1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -2, "y": 2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -1, "y": -2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -1, "y": -1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -1, "y": 0, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -1, "y": 1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": -1, "y": 2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 0, "y": -2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 0, "y": -1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 0, "y": 0, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 0, "y": 1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 0, "y": 2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 1, "y": -2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 1, "y": -1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 1, "y": 0, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 1, "y": 1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 1, "y": 2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 2, "y": -2, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 2, "y": -1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 2, "y": 0, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 2, "y": 1, "z": -1 } },
+ { "mesh": "Cube", "shader": "textured", "pos": { "x": 2, "y": 2, "z": -1 } },
]
}