cache: add rev202 model formats

This commit is contained in:
Max Weber
2021-12-08 21:55:02 -07:00
committed by Adam
parent 24d0127e3d
commit 02235d1584
4 changed files with 1289 additions and 632 deletions

View File

@@ -12,45 +12,40 @@ public class ModelDefinition
public int id; public int id;
public int vertexCount = 0; public int vertexCount = 0;
public int[] vertexPositionsX; public int[] vertexX;
public int[] vertexPositionsY; public int[] vertexY;
public int[] vertexPositionsZ; public int[] vertexZ;
public transient VertexNormal[] vertexNormals; public transient VertexNormal[] vertexNormals;
public int faceCount; public int faceCount;
public int[] faceVertexIndices1; public int[] faceIndices1;
public int[] faceVertexIndices2; public int[] faceIndices2;
public int[] faceVertexIndices3; public int[] faceIndices3;
public byte[] faceAlphas; public byte[] faceTransparencies;
public short[] faceColors; public short[] faceColors;
public byte[] faceRenderPriorities; public byte[] faceRenderPriorities;
public byte[] faceRenderTypes; public byte[] faceRenderTypes;
public transient FaceNormal[] faceNormals; public transient FaceNormal[] faceNormals;
public int textureTriangleCount; public int numTextureFaces;
public short[] textureTriangleVertexIndices1; public short[] texIndices1;
public short[] textureTriangleVertexIndices2; public short[] texIndices2;
public short[] textureTriangleVertexIndices3; public short[] texIndices3;
public transient float[][] faceTextureUCoordinates; public transient float[][] faceTextureUCoordinates;
public transient float[][] faceTextureVCoordinates; public transient float[][] faceTextureVCoordinates;
public short[] texturePrimaryColors; public short[] texturePrimaryColors;
public short[] faceTextures; public short[] faceTextures;
public byte[] textureCoordinates; public byte[] textureCoords;
public byte[] textureRenderTypes; public byte[] textureRenderTypes;
public int[] vertexSkins; public int[] packedVertexGroups;
public int[] faceSkins; public int[] packedTransparencyVertexGroups;
public byte priority; public byte priority;
public short[] aShortArray2574;
public short[] aShortArray2575;
public short[] aShortArray2577;
public short[] aShortArray2578;
public byte[] aByteArray2580;
public short[] aShortArray2586;
private transient int[][] vertexGroups; private transient int[][] vertexGroups;
public int[][] animayaGroups;
public int[][] animayaScales;
private transient int[] origVX; private transient int[] origVX;
private transient int[] origVY; private transient int[] origVY;
@@ -77,17 +72,17 @@ public class ModelDefinition
for (var1 = 0; var1 < this.faceCount; ++var1) for (var1 = 0; var1 < this.faceCount; ++var1)
{ {
int vertexA = this.faceVertexIndices1[var1]; int vertexA = this.faceIndices1[var1];
int vertexB = this.faceVertexIndices2[var1]; int vertexB = this.faceIndices2[var1];
int vertexC = this.faceVertexIndices3[var1]; int vertexC = this.faceIndices3[var1];
int xA = this.vertexPositionsX[vertexB] - this.vertexPositionsX[vertexA]; int xA = this.vertexX[vertexB] - this.vertexX[vertexA];
int yA = this.vertexPositionsY[vertexB] - this.vertexPositionsY[vertexA]; int yA = this.vertexY[vertexB] - this.vertexY[vertexA];
int zA = this.vertexPositionsZ[vertexB] - this.vertexPositionsZ[vertexA]; int zA = this.vertexZ[vertexB] - this.vertexZ[vertexA];
int xB = this.vertexPositionsX[vertexC] - this.vertexPositionsX[vertexA]; int xB = this.vertexX[vertexC] - this.vertexX[vertexA];
int yB = this.vertexPositionsY[vertexC] - this.vertexPositionsY[vertexA]; int yB = this.vertexY[vertexC] - this.vertexY[vertexA];
int zB = this.vertexPositionsZ[vertexC] - this.vertexPositionsZ[vertexA]; int zB = this.vertexZ[vertexC] - this.vertexZ[vertexA];
// Compute cross product // Compute cross product
int var11 = yA * zB - yB * zA; int var11 = yA * zB - yB * zA;
@@ -168,13 +163,13 @@ public class ModelDefinition
for (int i = 0; i < faceCount; i++) for (int i = 0; i < faceCount; i++)
{ {
int textureCoordinate; int textureCoordinate;
if (textureCoordinates == null) if (textureCoords == null)
{ {
textureCoordinate = -1; textureCoordinate = -1;
} }
else else
{ {
textureCoordinate = textureCoordinates[i]; textureCoordinate = textureCoords[i];
} }
int textureIdx; int textureIdx;
@@ -215,33 +210,33 @@ public class ModelDefinition
if (textureRenderType == 0) if (textureRenderType == 0)
{ {
int faceVertexIdx1 = faceVertexIndices1[i]; int faceVertexIdx1 = faceIndices1[i];
int faceVertexIdx2 = faceVertexIndices2[i]; int faceVertexIdx2 = faceIndices2[i];
int faceVertexIdx3 = faceVertexIndices3[i]; int faceVertexIdx3 = faceIndices3[i];
short triangleVertexIdx1 = textureTriangleVertexIndices1[textureCoordinate]; short triangleVertexIdx1 = texIndices1[textureCoordinate];
short triangleVertexIdx2 = textureTriangleVertexIndices2[textureCoordinate]; short triangleVertexIdx2 = texIndices2[textureCoordinate];
short triangleVertexIdx3 = textureTriangleVertexIndices3[textureCoordinate]; short triangleVertexIdx3 = texIndices3[textureCoordinate];
float triangleX = (float) vertexPositionsX[triangleVertexIdx1]; float triangleX = (float) vertexX[triangleVertexIdx1];
float triangleY = (float) vertexPositionsY[triangleVertexIdx1]; float triangleY = (float) vertexY[triangleVertexIdx1];
float triangleZ = (float) vertexPositionsZ[triangleVertexIdx1]; float triangleZ = (float) vertexZ[triangleVertexIdx1];
float f_882_ = (float) vertexPositionsX[triangleVertexIdx2] - triangleX; float f_882_ = (float) vertexX[triangleVertexIdx2] - triangleX;
float f_883_ = (float) vertexPositionsY[triangleVertexIdx2] - triangleY; float f_883_ = (float) vertexY[triangleVertexIdx2] - triangleY;
float f_884_ = (float) vertexPositionsZ[triangleVertexIdx2] - triangleZ; float f_884_ = (float) vertexZ[triangleVertexIdx2] - triangleZ;
float f_885_ = (float) vertexPositionsX[triangleVertexIdx3] - triangleX; float f_885_ = (float) vertexX[triangleVertexIdx3] - triangleX;
float f_886_ = (float) vertexPositionsY[triangleVertexIdx3] - triangleY; float f_886_ = (float) vertexY[triangleVertexIdx3] - triangleY;
float f_887_ = (float) vertexPositionsZ[triangleVertexIdx3] - triangleZ; float f_887_ = (float) vertexZ[triangleVertexIdx3] - triangleZ;
float f_888_ = (float) vertexPositionsX[faceVertexIdx1] - triangleX; float f_888_ = (float) vertexX[faceVertexIdx1] - triangleX;
float f_889_ = (float) vertexPositionsY[faceVertexIdx1] - triangleY; float f_889_ = (float) vertexY[faceVertexIdx1] - triangleY;
float f_890_ = (float) vertexPositionsZ[faceVertexIdx1] - triangleZ; float f_890_ = (float) vertexZ[faceVertexIdx1] - triangleZ;
float f_891_ = (float) vertexPositionsX[faceVertexIdx2] - triangleX; float f_891_ = (float) vertexX[faceVertexIdx2] - triangleX;
float f_892_ = (float) vertexPositionsY[faceVertexIdx2] - triangleY; float f_892_ = (float) vertexY[faceVertexIdx2] - triangleY;
float f_893_ = (float) vertexPositionsZ[faceVertexIdx2] - triangleZ; float f_893_ = (float) vertexZ[faceVertexIdx2] - triangleZ;
float f_894_ = (float) vertexPositionsX[faceVertexIdx3] - triangleX; float f_894_ = (float) vertexX[faceVertexIdx3] - triangleX;
float f_895_ = (float) vertexPositionsY[faceVertexIdx3] - triangleY; float f_895_ = (float) vertexY[faceVertexIdx3] - triangleY;
float f_896_ = (float) vertexPositionsZ[faceVertexIdx3] - triangleZ; float f_896_ = (float) vertexZ[faceVertexIdx3] - triangleZ;
float f_897_ = f_883_ * f_887_ - f_884_ * f_886_; float f_897_ = f_883_ * f_887_ - f_884_ * f_886_;
float f_898_ = f_884_ * f_885_ - f_882_ * f_887_; float f_898_ = f_884_ * f_885_ - f_882_ * f_887_;
@@ -274,7 +269,7 @@ public class ModelDefinition
public void computeAnimationTables() public void computeAnimationTables()
{ {
if (this.vertexSkins != null) if (this.packedVertexGroups != null)
{ {
int[] groupCounts = new int[256]; int[] groupCounts = new int[256];
int numGroups = 0; int numGroups = 0;
@@ -282,7 +277,7 @@ public class ModelDefinition
for (var3 = 0; var3 < this.vertexCount; ++var3) for (var3 = 0; var3 < this.vertexCount; ++var3)
{ {
var4 = this.vertexSkins[var3]; var4 = this.packedVertexGroups[var3];
++groupCounts[var4]; ++groupCounts[var4];
if (var4 > numGroups) if (var4 > numGroups)
{ {
@@ -300,10 +295,10 @@ public class ModelDefinition
for (var3 = 0; var3 < this.vertexCount; this.vertexGroups[var4][groupCounts[var4]++] = var3++) for (var3 = 0; var3 < this.vertexCount; this.vertexGroups[var4][groupCounts[var4]++] = var3++)
{ {
var4 = this.vertexSkins[var3]; var4 = this.packedVertexGroups[var3];
} }
this.vertexSkins = null; this.packedVertexGroups = null;
} }
// triangleSkinValues is here // triangleSkinValues is here
@@ -314,13 +309,13 @@ public class ModelDefinition
int sin = CircularAngle.SINE[orientation]; int sin = CircularAngle.SINE[orientation];
int cos = CircularAngle.COSINE[orientation]; int cos = CircularAngle.COSINE[orientation];
assert vertexPositionsX.length == vertexPositionsY.length; assert vertexX.length == vertexY.length;
assert vertexPositionsY.length == vertexPositionsZ.length; assert vertexY.length == vertexZ.length;
for (int i = 0; i < vertexPositionsX.length; ++i) for (int i = 0; i < vertexX.length; ++i)
{ {
vertexPositionsX[i] = vertexPositionsX[i] * cos + vertexPositionsZ[i] * sin >> 16; vertexX[i] = vertexX[i] * cos + vertexZ[i] * sin >> 16;
vertexPositionsZ[i] = vertexPositionsZ[i] * cos - vertexPositionsX[i] * sin >> 16; vertexZ[i] = vertexZ[i] * cos - vertexX[i] * sin >> 16;
} }
reset(); reset();
@@ -333,23 +328,23 @@ public class ModelDefinition
return; return;
} }
System.arraycopy(origVX, 0, vertexPositionsX, 0, origVX.length); System.arraycopy(origVX, 0, vertexX, 0, origVX.length);
System.arraycopy(origVY, 0, vertexPositionsY, 0, origVY.length); System.arraycopy(origVY, 0, vertexY, 0, origVY.length);
System.arraycopy(origVZ, 0, vertexPositionsZ, 0, origVZ.length); System.arraycopy(origVZ, 0, vertexZ, 0, origVZ.length);
} }
public void animate(int type, int[] frameMap, int dx, int dy, int dz) public void animate(int type, int[] frameMap, int dx, int dy, int dz)
{ {
if (origVX == null) if (origVX == null)
{ {
origVX = Arrays.copyOf(vertexPositionsX, vertexPositionsX.length); origVX = Arrays.copyOf(vertexX, vertexX.length);
origVY = Arrays.copyOf(vertexPositionsY, vertexPositionsY.length); origVY = Arrays.copyOf(vertexY, vertexY.length);
origVZ = Arrays.copyOf(vertexPositionsZ, vertexPositionsZ.length); origVZ = Arrays.copyOf(vertexZ, vertexZ.length);
} }
final int[] verticesX = vertexPositionsX; final int[] verticesX = vertexX;
final int[] verticesY = vertexPositionsY; final int[] verticesY = vertexY;
final int[] verticesZ = vertexPositionsZ; final int[] verticesZ = vertexZ;
int var6 = frameMap.length; int var6 = frameMap.length;
int var7; int var7;
int var8; int var8;
@@ -512,14 +507,14 @@ public class ModelDefinition
int var1; int var1;
for (var1 = 0; var1 < this.vertexCount; ++var1) for (var1 = 0; var1 < this.vertexCount; ++var1)
{ {
this.vertexPositionsZ[var1] = -this.vertexPositionsZ[var1]; this.vertexZ[var1] = -this.vertexZ[var1];
} }
for (var1 = 0; var1 < this.faceCount; ++var1) for (var1 = 0; var1 < this.faceCount; ++var1)
{ {
int var2 = this.faceVertexIndices1[var1]; int var2 = this.faceIndices1[var1];
this.faceVertexIndices1[var1] = this.faceVertexIndices3[var1]; this.faceIndices1[var1] = this.faceIndices3[var1];
this.faceVertexIndices3[var1] = var2; this.faceIndices3[var1] = var2;
} }
reset(); reset();
@@ -529,9 +524,9 @@ public class ModelDefinition
{ {
for (int var1 = 0; var1 < this.vertexCount; ++var1) for (int var1 = 0; var1 < this.vertexCount; ++var1)
{ {
int var2 = this.vertexPositionsX[var1]; int var2 = this.vertexX[var1];
this.vertexPositionsX[var1] = this.vertexPositionsZ[var1]; this.vertexX[var1] = this.vertexZ[var1];
this.vertexPositionsZ[var1] = -var2; this.vertexZ[var1] = -var2;
} }
reset(); reset();
@@ -541,8 +536,8 @@ public class ModelDefinition
{ {
for (int var1 = 0; var1 < this.vertexCount; ++var1) for (int var1 = 0; var1 < this.vertexCount; ++var1)
{ {
this.vertexPositionsX[var1] = -this.vertexPositionsX[var1]; this.vertexX[var1] = -this.vertexX[var1];
this.vertexPositionsZ[var1] = -this.vertexPositionsZ[var1]; this.vertexZ[var1] = -this.vertexZ[var1];
} }
reset(); reset();
@@ -552,9 +547,9 @@ public class ModelDefinition
{ {
for (int var1 = 0; var1 < this.vertexCount; ++var1) for (int var1 = 0; var1 < this.vertexCount; ++var1)
{ {
int var2 = this.vertexPositionsZ[var1]; int var2 = this.vertexZ[var1];
this.vertexPositionsZ[var1] = this.vertexPositionsX[var1]; this.vertexZ[var1] = this.vertexX[var1];
this.vertexPositionsX[var1] = -var2; this.vertexX[var1] = -var2;
} }
reset(); reset();
@@ -571,9 +566,9 @@ public class ModelDefinition
{ {
for (int var4 = 0; var4 < this.vertexCount; ++var4) for (int var4 = 0; var4 < this.vertexCount; ++var4)
{ {
this.vertexPositionsX[var4] = this.vertexPositionsX[var4] * var1 / 128; this.vertexX[var4] = this.vertexX[var4] * var1 / 128;
this.vertexPositionsY[var4] = var2 * this.vertexPositionsY[var4] / 128; this.vertexY[var4] = var2 * this.vertexY[var4] / 128;
this.vertexPositionsZ[var4] = var3 * this.vertexPositionsZ[var4] / 128; this.vertexZ[var4] = var3 * this.vertexZ[var4] / 128;
} }
reset(); reset();
@@ -610,9 +605,9 @@ public class ModelDefinition
{ {
for (int i = 0; i < this.vertexCount; i++) for (int i = 0; i < this.vertexCount; i++)
{ {
this.vertexPositionsX[i] += xOffset; this.vertexX[i] += xOffset;
this.vertexPositionsY[i] += yOffset; this.vertexY[i] += yOffset;
this.vertexPositionsZ[i] += zOffset; this.vertexZ[i] += zOffset;
} }
this.reset(); this.reset();
} }

File diff suppressed because it is too large Load Diff

View File

@@ -227,22 +227,22 @@ public class ItemSpriteFactory
litModel.field1856 = new int[def.faceCount]; litModel.field1856 = new int[def.faceCount];
litModel.field1854 = new int[def.faceCount]; litModel.field1854 = new int[def.faceCount];
litModel.field1823 = new int[def.faceCount]; litModel.field1823 = new int[def.faceCount];
if (def.textureTriangleCount > 0 && def.textureCoordinates != null) if (def.numTextureFaces > 0 && def.textureCoords != null)
{ {
int[] var9 = new int[def.textureTriangleCount]; int[] var9 = new int[def.numTextureFaces];
int var10; int var10;
for (var10 = 0; var10 < def.faceCount; ++var10) for (var10 = 0; var10 < def.faceCount; ++var10)
{ {
if (def.textureCoordinates[var10] != -1) if (def.textureCoords[var10] != -1)
{ {
++var9[def.textureCoordinates[var10] & 255]; ++var9[def.textureCoords[var10] & 255];
} }
} }
litModel.field1852 = 0; litModel.field1852 = 0;
for (var10 = 0; var10 < def.textureTriangleCount; ++var10) for (var10 = 0; var10 < def.numTextureFaces; ++var10)
{ {
if (var9[var10] > 0 && def.textureRenderTypes[var10] == 0) if (var9[var10] > 0 && def.textureRenderTypes[var10] == 0)
{ {
@@ -256,13 +256,13 @@ public class ItemSpriteFactory
var10 = 0; var10 = 0;
for (int i = 0; i < def.textureTriangleCount; ++i) for (int i = 0; i < def.numTextureFaces; ++i)
{ {
if (var9[i] > 0 && def.textureRenderTypes[i] == 0) if (var9[i] > 0 && def.textureRenderTypes[i] == 0)
{ {
litModel.field1844[var10] = def.textureTriangleVertexIndices1[i] & '\uffff'; litModel.field1844[var10] = def.texIndices1[i] & '\uffff';
litModel.field1865[var10] = def.textureTriangleVertexIndices2[i] & '\uffff'; litModel.field1865[var10] = def.texIndices2[i] & '\uffff';
litModel.field1846[var10] = def.textureTriangleVertexIndices3[i] & '\uffff'; litModel.field1846[var10] = def.texIndices3[i] & '\uffff';
var9[i] = var10++; var9[i] = var10++;
} }
else else
@@ -275,9 +275,9 @@ public class ItemSpriteFactory
for (int i = 0; i < def.faceCount; ++i) for (int i = 0; i < def.faceCount; ++i)
{ {
if (def.textureCoordinates[i] != -1) if (def.textureCoords[i] != -1)
{ {
litModel.field1840[i] = (byte) var9[def.textureCoordinates[i] & 255]; litModel.field1840[i] = (byte) var9[def.textureCoords[i] & 255];
} }
else else
{ {
@@ -299,13 +299,13 @@ public class ItemSpriteFactory
} }
byte faceAlpha; byte faceAlpha;
if (def.faceAlphas == null) if (def.faceTransparencies == null)
{ {
faceAlpha = 0; faceAlpha = 0;
} }
else else
{ {
faceAlpha = def.faceAlphas[faceIdx]; faceAlpha = def.faceTransparencies[faceIdx];
} }
short faceTexture; short faceTexture;
@@ -355,15 +355,15 @@ public class ItemSpriteFactory
else else
{ {
int var15 = def.faceColors[faceIdx] & '\uffff'; int var15 = def.faceColors[faceIdx] & '\uffff';
vertexNormal = def.vertexNormals[def.faceVertexIndices1[faceIdx]]; vertexNormal = def.vertexNormals[def.faceIndices1[faceIdx]];
tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient; tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient;
litModel.field1856[faceIdx] = method2608(var15, tmp); litModel.field1856[faceIdx] = method2608(var15, tmp);
vertexNormal = def.vertexNormals[def.faceVertexIndices2[faceIdx]]; vertexNormal = def.vertexNormals[def.faceIndices2[faceIdx]];
tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient; tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient;
litModel.field1854[faceIdx] = method2608(var15, tmp); litModel.field1854[faceIdx] = method2608(var15, tmp);
vertexNormal = def.vertexNormals[def.faceVertexIndices3[faceIdx]]; vertexNormal = def.vertexNormals[def.faceIndices3[faceIdx]];
tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient; tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient;
litModel.field1823[faceIdx] = method2608(var15, tmp); litModel.field1823[faceIdx] = method2608(var15, tmp);
@@ -385,15 +385,15 @@ public class ItemSpriteFactory
} }
else else
{ {
vertexNormal = def.vertexNormals[def.faceVertexIndices1[faceIdx]]; vertexNormal = def.vertexNormals[def.faceIndices1[faceIdx]];
tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient; tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient;
litModel.field1856[faceIdx] = bound2to126(tmp); litModel.field1856[faceIdx] = bound2to126(tmp);
vertexNormal = def.vertexNormals[def.faceVertexIndices2[faceIdx]]; vertexNormal = def.vertexNormals[def.faceIndices2[faceIdx]];
tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient; tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient;
litModel.field1854[faceIdx] = bound2to126(tmp); litModel.field1854[faceIdx] = bound2to126(tmp);
vertexNormal = def.vertexNormals[def.faceVertexIndices3[faceIdx]]; vertexNormal = def.vertexNormals[def.faceIndices3[faceIdx]];
tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient; tmp = (y * vertexNormal.y + z * vertexNormal.z + x * vertexNormal.x) / (var7 * vertexNormal.magnitude) + ambient;
litModel.field1823[faceIdx] = bound2to126(tmp); litModel.field1823[faceIdx] = bound2to126(tmp);
@@ -401,15 +401,15 @@ public class ItemSpriteFactory
} }
litModel.verticesCount = def.vertexCount; litModel.verticesCount = def.vertexCount;
litModel.verticesX = def.vertexPositionsX; litModel.verticesX = def.vertexX;
litModel.verticesY = def.vertexPositionsY; litModel.verticesY = def.vertexY;
litModel.verticesZ = def.vertexPositionsZ; litModel.verticesZ = def.vertexZ;
litModel.indicesCount = def.faceCount; litModel.indicesCount = def.faceCount;
litModel.indices1 = def.faceVertexIndices1; litModel.indices1 = def.faceIndices1;
litModel.indices2 = def.faceVertexIndices2; litModel.indices2 = def.faceIndices2;
litModel.indices3 = def.faceVertexIndices3; litModel.indices3 = def.faceIndices3;
litModel.field1838 = def.faceRenderPriorities; litModel.field1838 = def.faceRenderPriorities;
litModel.field1882 = def.faceAlphas; litModel.field1882 = def.faceTransparencies;
litModel.field1842 = def.priority; litModel.field1842 = def.priority;
litModel.field1841 = def.faceTextures; litModel.field1841 = def.faceTextures;
return litModel; return litModel;

View File

@@ -53,9 +53,9 @@ public class ObjExporter
for (int i = 0; i < model.vertexCount; ++i) for (int i = 0; i < model.vertexCount; ++i)
{ {
objWriter.println("v " + model.vertexPositionsX[i] + " " objWriter.println("v " + model.vertexX[i] + " "
+ model.vertexPositionsY[i] * -1 + " " + model.vertexY[i] * -1 + " "
+ model.vertexPositionsZ[i] * -1); + model.vertexZ[i] * -1);
} }
if (model.faceTextures != null) if (model.faceTextures != null)
@@ -78,9 +78,9 @@ public class ObjExporter
for (int i = 0; i < model.faceCount; ++i) for (int i = 0; i < model.faceCount; ++i)
{ {
int x = model.faceVertexIndices1[i] + 1; int x = model.faceIndices1[i] + 1;
int y = model.faceVertexIndices2[i] + 1; int y = model.faceIndices2[i] + 1;
int z = model.faceVertexIndices3[i] + 1; int z = model.faceIndices3[i] + 1;
objWriter.println("usemtl m" + i); objWriter.println("usemtl m" + i);
if (model.faceTextures != null) if (model.faceTextures != null)
@@ -129,9 +129,9 @@ public class ObjExporter
int alpha = 0; int alpha = 0;
if (model.faceAlphas != null) if (model.faceTransparencies != null)
{ {
alpha = model.faceAlphas[i] & 0xFF; alpha = model.faceTransparencies[i] & 0xFF;
} }
if (alpha != 0) if (alpha != 0)