diff --git a/Source/Core/GZBuilder/md3/ModelReader.cs b/Source/Core/GZBuilder/md3/ModelReader.cs index e1889794ed1b3944e0be65cc58bae724dacdfc0f..23c03004acb7cf8dce0085fc356bbfb15c05f315 100644 --- a/Source/Core/GZBuilder/md3/ModelReader.cs +++ b/Source/Core/GZBuilder/md3/ModelReader.cs @@ -138,7 +138,8 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3 } private static string ReadSurface(ref BoundingBoxSizes bbs, BinaryReader br, List<short> polyIndecesList, List<WorldVertex> vertList, ModeldefEntry mde) { - var start = br.BaseStream.Position; + int vertexOffset = vertList.Count; + long start = br.BaseStream.Position; string magic = ReadString(br, 4); if (magic != "IDP3") return "error while reading surface: Magic should be 'IDP3', not '" + magic + "'"; @@ -157,7 +158,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3 br.BaseStream.Position = start + ofsTriangles; for (int i = 0; i < numTriangles * 3; i++) - polyIndecesList.Add( (short)br.ReadInt32() ); + polyIndecesList.Add( (short)(vertexOffset + br.ReadInt32()) ); //Vertices @@ -166,7 +167,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3 for (int i = 0; i < numVerts; i++) { WorldVertex v = new WorldVertex(); - v.c = 0xffffff; + v.c = -1; //white v.u = br.ReadSingle(); v.v = br.ReadSingle(); @@ -177,7 +178,7 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3 if (start + ofsNormal != br.BaseStream.Position) br.BaseStream.Position = start + ofsNormal; - for (int i = 0; i < numVerts; i++) { + for (int i = vertexOffset; i < vertexOffset + numVerts; i++) { WorldVertex v = vertList[i]; v.y = -(float)br.ReadInt16() / 64 * mde.Scale.X; @@ -291,6 +292,8 @@ namespace CodeImp.DoomBuilder.GZBuilder.MD3 //uv v.u = uvCoordsList[uvIndecesList[i]].X; v.v = uvCoordsList[uvIndecesList[i]].Y; + //color + v.c = -1; //white vertList[polyIndecesList[i]] = v; } diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs index 166d3412aaa957cee62cad475c093411f5dcb5e9..41c80a5acf556d0216ad748f4bd2723b1298c53c 100644 --- a/Source/Core/Rendering/Renderer3D.cs +++ b/Source/Core/Rendering/Renderer3D.cs @@ -1067,6 +1067,9 @@ namespace CodeImp.DoomBuilder.Rendering graphics.Shaders.World3D.CameraPosition = new Vector4(cameraposition.x, cameraposition.y, cameraposition.z, getFogEnd(sector, sectorHasFogColor)); } + //dbg + //GZBuilder.GZGeneral.TraceInHeader("Using shader #"+wantedshaderpass); + for (int i = 0; i < group.Key.Model.NUM_MESHES; i++) { if (!graphics.Shaders.Enabled) graphics.Device.SetTexture(0, group.Key.Model.Textures[i]); graphics.Shaders.World3D.Texture1 = group.Key.Model.Textures[i];