Skip to content

Commit

Permalink
Fix solid2 export of vertex streams
Browse files Browse the repository at this point in the history
  • Loading branch information
BigBang1112 committed Aug 15, 2024
1 parent 88a7e64 commit 7b334fc
Showing 1 changed file with 24 additions and 12 deletions.
36 changes: 24 additions & 12 deletions Src/GBX.NET/Extensions/Exporters/ObjExporter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -389,12 +389,25 @@ public static void Export(CPlugSolid2Model solid, TextWriter objWriter, TextWrit
continue;
}

if (visual.TexCoords.Length == 0)
if (visual.TexCoords.Length > 0)
{
continue;
foreach (var uv in visual.TexCoords[0].TexCoords.Select(x => x.UV))
{
if (uvs.ContainsKey(uv))
{
continue;
}

objWriter.WriteLine("vt {0} {1}",
uv.X.ToString(Invariant),
uv.Y.ToString(Invariant));

uvs.Add(uv, uvs.Count);
}
}

foreach (var uv in visual.TexCoords[0].TexCoords.Select(x => x.UV))
foreach (var uv in visual.VertexStreams
.SelectMany(x => x.UVs.Values.FirstOrDefault() ?? []))
{
if (uvs.ContainsKey(uv))
{
Expand All @@ -415,18 +428,12 @@ public static void Export(CPlugSolid2Model solid, TextWriter objWriter, TextWrit
{
continue;
}


if (visual.IndexBuffer is null)
{
continue;
}

if (visual.TexCoords.Length == 0)
{
continue;
}

var materialName = GetMaterialName(solid, geom.MaterialIndex);

objWriter.WriteLine("g {0}", materialName);
Expand All @@ -438,10 +445,15 @@ public static void Export(CPlugSolid2Model solid, TextWriter objWriter, TextWrit
{
objWriter.Write('f');

var v = visual.Vertices[index];
var uvIndex = uvs[visual.TexCoords[0].TexCoords[index].UV];
var v = visual.VertexStreams.FirstOrDefault()?.Positions?[index] ?? visual.Vertices[index].Position;

var uv = visual.TexCoords.Length == 0
? visual.VertexStreams[0].UVs.Values.First()[index]
: visual.TexCoords[0].TexCoords[index].UV;

var uvIndex = uvs[uv];

var faceIndex = $" {positionsDict[v.Position] + 1}/{uvIndex + 1}";
var faceIndex = $" {positionsDict[v] + 1}/{uvIndex + 1}";

objWriter.Write(faceIndex);

Expand Down

0 comments on commit 7b334fc

Please sign in to comment.