From 1824de6842cffffd7ebe1d83d56f4f746efd8e67 Mon Sep 17 00:00:00 2001 From: David Allemang Date: Mon, 27 Feb 2017 23:11:14 -0500 Subject: [PATCH] Updates to Level. More functionality, but also very unstable. --- Diamond/GLObject.cs | 2 +- Diamond/Level/Level.cs | 57 ++- Diamond/Level/TileGroup.cs | 7 +- Diamond/Mesh.cs | 5 +- hexworld/HexRender.cs | 39 +- hexworld/hexworld.csproj | 6 + hexworld/res/cube.obj | 52 ++ hexworld/res/door.obj | 960 ++++++++++++++++++++++--------------- hexworld/res/door.png | Bin 0 -> 162 bytes hexworld/res/level.json | 57 ++- 10 files changed, 756 insertions(+), 429 deletions(-) create mode 100644 hexworld/res/cube.obj create mode 100644 hexworld/res/door.png 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 0000000000000000000000000000000000000000..fd51c0f716f8226e5a66a35e582738628c351e7c GIT binary patch literal 162 zcmeAS@N?(olHy`uVBq!ia0vp^%s|Y@!2~3yG&Mg4af*Z7ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`0h7I;J!Gca%qfiUBxyLEqnf|4b!5hcO-X(i=}MX3x0iJ5sNdU>fO3MP66 zdWOa(%+XaqMM9n~jv*4^$tMc--??yMgZf@^2C;oCo6ouFeFDldc)I$ztaD0e0s!KG BE3W_m literal 0 HcmV?d00001 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 } }, ] }