Browse Source
First test converting models from Quake into Unity meshes, including normals and UVs. It's still far from perfect (back side UVs are not handled at all yet) but it's a good demonstration of what will be possible.
console
First test converting models from Quake into Unity meshes, including normals and UVs. It's still far from perfect (back side UVs are not handled at all yet) but it's a good demonstration of what will be possible.
console
7 changed files with 271 additions and 8 deletions
-
6Assets/Scripts/Data/QExtensions.cs
-
179Assets/Scripts/Data/QLightNormals.cs
-
3Assets/Scripts/Data/QLightNormals.cs.meta
-
10Assets/Scripts/Modules/RenderModule.Interop.cs
-
73Assets/Scripts/Modules/RenderModule.cs
-
2engine/Quake/gl_model.h
-
6engine/UniQuake/gl_uniquake.c
@ -0,0 +1,179 @@ |
|||
using UnityEngine; |
|||
|
|||
public static class QLightNormals |
|||
{ |
|||
public static Vector3 Get(byte index) |
|||
{ |
|||
if (index >= Normals.Length) |
|||
return Vector3.zero; |
|||
|
|||
return Normals[index]; |
|||
} |
|||
|
|||
// Converted from anorms.h
|
|||
private static readonly Vector3[] Normals = |
|||
{ |
|||
new Vector3(-0.525731f, 0.000000f, 0.850651f), |
|||
new Vector3(-0.442863f, 0.238856f, 0.864188f), |
|||
new Vector3(-0.295242f, 0.000000f, 0.955423f), |
|||
new Vector3(-0.309017f, 0.500000f, 0.809017f), |
|||
new Vector3(-0.162460f, 0.262866f, 0.951056f), |
|||
new Vector3(0.000000f, 0.000000f, 1.000000f), |
|||
new Vector3(0.000000f, 0.850651f, 0.525731f), |
|||
new Vector3(-0.147621f, 0.716567f, 0.681718f), |
|||
new Vector3(0.147621f, 0.716567f, 0.681718f), |
|||
new Vector3(0.000000f, 0.525731f, 0.850651f), |
|||
new Vector3(0.309017f, 0.500000f, 0.809017f), |
|||
new Vector3(0.525731f, 0.000000f, 0.850651f), |
|||
new Vector3(0.295242f, 0.000000f, 0.955423f), |
|||
new Vector3(0.442863f, 0.238856f, 0.864188f), |
|||
new Vector3(0.162460f, 0.262866f, 0.951056f), |
|||
new Vector3(-0.681718f, 0.147621f, 0.716567f), |
|||
new Vector3(-0.809017f, 0.309017f, 0.500000f), |
|||
new Vector3(-0.587785f, 0.425325f, 0.688191f), |
|||
new Vector3(-0.850651f, 0.525731f, 0.000000f), |
|||
new Vector3(-0.864188f, 0.442863f, 0.238856f), |
|||
new Vector3(-0.716567f, 0.681718f, 0.147621f), |
|||
new Vector3(-0.688191f, 0.587785f, 0.425325f), |
|||
new Vector3(-0.500000f, 0.809017f, 0.309017f), |
|||
new Vector3(-0.238856f, 0.864188f, 0.442863f), |
|||
new Vector3(-0.425325f, 0.688191f, 0.587785f), |
|||
new Vector3(-0.716567f, 0.681718f, -0.147621f), |
|||
new Vector3(-0.500000f, 0.809017f, -0.309017f), |
|||
new Vector3(-0.525731f, 0.850651f, 0.000000f), |
|||
new Vector3(0.000000f, 0.850651f, -0.525731f), |
|||
new Vector3(-0.238856f, 0.864188f, -0.442863f), |
|||
new Vector3(0.000000f, 0.955423f, -0.295242f), |
|||
new Vector3(-0.262866f, 0.951056f, -0.162460f), |
|||
new Vector3(0.000000f, 1.000000f, 0.000000f), |
|||
new Vector3(0.000000f, 0.955423f, 0.295242f), |
|||
new Vector3(-0.262866f, 0.951056f, 0.162460f), |
|||
new Vector3(0.238856f, 0.864188f, 0.442863f), |
|||
new Vector3(0.262866f, 0.951056f, 0.162460f), |
|||
new Vector3(0.500000f, 0.809017f, 0.309017f), |
|||
new Vector3(0.238856f, 0.864188f, -0.442863f), |
|||
new Vector3(0.262866f, 0.951056f, -0.162460f), |
|||
new Vector3(0.500000f, 0.809017f, -0.309017f), |
|||
new Vector3(0.850651f, 0.525731f, 0.000000f), |
|||
new Vector3(0.716567f, 0.681718f, 0.147621f), |
|||
new Vector3(0.716567f, 0.681718f, -0.147621f), |
|||
new Vector3(0.525731f, 0.850651f, 0.000000f), |
|||
new Vector3(0.425325f, 0.688191f, 0.587785f), |
|||
new Vector3(0.864188f, 0.442863f, 0.238856f), |
|||
new Vector3(0.688191f, 0.587785f, 0.425325f), |
|||
new Vector3(0.809017f, 0.309017f, 0.500000f), |
|||
new Vector3(0.681718f, 0.147621f, 0.716567f), |
|||
new Vector3(0.587785f, 0.425325f, 0.688191f), |
|||
new Vector3(0.955423f, 0.295242f, 0.000000f), |
|||
new Vector3(1.000000f, 0.000000f, 0.000000f), |
|||
new Vector3(0.951056f, 0.162460f, 0.262866f), |
|||
new Vector3(0.850651f, -0.525731f, 0.000000f), |
|||
new Vector3(0.955423f, -0.295242f, 0.000000f), |
|||
new Vector3(0.864188f, -0.442863f, 0.238856f), |
|||
new Vector3(0.951056f, -0.162460f, 0.262866f), |
|||
new Vector3(0.809017f, -0.309017f, 0.500000f), |
|||
new Vector3(0.681718f, -0.147621f, 0.716567f), |
|||
new Vector3(0.850651f, 0.000000f, 0.525731f), |
|||
new Vector3(0.864188f, 0.442863f, -0.238856f), |
|||
new Vector3(0.809017f, 0.309017f, -0.500000f), |
|||
new Vector3(0.951056f, 0.162460f, -0.262866f), |
|||
new Vector3(0.525731f, 0.000000f, -0.850651f), |
|||
new Vector3(0.681718f, 0.147621f, -0.716567f), |
|||
new Vector3(0.681718f, -0.147621f, -0.716567f), |
|||
new Vector3(0.850651f, 0.000000f, -0.525731f), |
|||
new Vector3(0.809017f, -0.309017f, -0.500000f), |
|||
new Vector3(0.864188f, -0.442863f, -0.238856f), |
|||
new Vector3(0.951056f, -0.162460f, -0.262866f), |
|||
new Vector3(0.147621f, 0.716567f, -0.681718f), |
|||
new Vector3(0.309017f, 0.500000f, -0.809017f), |
|||
new Vector3(0.425325f, 0.688191f, -0.587785f), |
|||
new Vector3(0.442863f, 0.238856f, -0.864188f), |
|||
new Vector3(0.587785f, 0.425325f, -0.688191f), |
|||
new Vector3(0.688191f, 0.587785f, -0.425325f), |
|||
new Vector3(-0.147621f, 0.716567f, -0.681718f), |
|||
new Vector3(-0.309017f, 0.500000f, -0.809017f), |
|||
new Vector3(0.000000f, 0.525731f, -0.850651f), |
|||
new Vector3(-0.525731f, 0.000000f, -0.850651f), |
|||
new Vector3(-0.442863f, 0.238856f, -0.864188f), |
|||
new Vector3(-0.295242f, 0.000000f, -0.955423f), |
|||
new Vector3(-0.162460f, 0.262866f, -0.951056f), |
|||
new Vector3(0.000000f, 0.000000f, -1.000000f), |
|||
new Vector3(0.295242f, 0.000000f, -0.955423f), |
|||
new Vector3(0.162460f, 0.262866f, -0.951056f), |
|||
new Vector3(-0.442863f, -0.238856f, -0.864188f), |
|||
new Vector3(-0.309017f, -0.500000f, -0.809017f), |
|||
new Vector3(-0.162460f, -0.262866f, -0.951056f), |
|||
new Vector3(0.000000f, -0.850651f, -0.525731f), |
|||
new Vector3(-0.147621f, -0.716567f, -0.681718f), |
|||
new Vector3(0.147621f, -0.716567f, -0.681718f), |
|||
new Vector3(0.000000f, -0.525731f, -0.850651f), |
|||
new Vector3(0.309017f, -0.500000f, -0.809017f), |
|||
new Vector3(0.442863f, -0.238856f, -0.864188f), |
|||
new Vector3(0.162460f, -0.262866f, -0.951056f), |
|||
new Vector3(0.238856f, -0.864188f, -0.442863f), |
|||
new Vector3(0.500000f, -0.809017f, -0.309017f), |
|||
new Vector3(0.425325f, -0.688191f, -0.587785f), |
|||
new Vector3(0.716567f, -0.681718f, -0.147621f), |
|||
new Vector3(0.688191f, -0.587785f, -0.425325f), |
|||
new Vector3(0.587785f, -0.425325f, -0.688191f), |
|||
new Vector3(0.000000f, -0.955423f, -0.295242f), |
|||
new Vector3(0.000000f, -1.000000f, 0.000000f), |
|||
new Vector3(0.262866f, -0.951056f, -0.162460f), |
|||
new Vector3(0.000000f, -0.850651f, 0.525731f), |
|||
new Vector3(0.000000f, -0.955423f, 0.295242f), |
|||
new Vector3(0.238856f, -0.864188f, 0.442863f), |
|||
new Vector3(0.262866f, -0.951056f, 0.162460f), |
|||
new Vector3(0.500000f, -0.809017f, 0.309017f), |
|||
new Vector3(0.716567f, -0.681718f, 0.147621f), |
|||
new Vector3(0.525731f, -0.850651f, 0.000000f), |
|||
new Vector3(-0.238856f, -0.864188f, -0.442863f), |
|||
new Vector3(-0.500000f, -0.809017f, -0.309017f), |
|||
new Vector3(-0.262866f, -0.951056f, -0.162460f), |
|||
new Vector3(-0.850651f, -0.525731f, 0.000000f), |
|||
new Vector3(-0.716567f, -0.681718f, -0.147621f), |
|||
new Vector3(-0.716567f, -0.681718f, 0.147621f), |
|||
new Vector3(-0.525731f, -0.850651f, 0.000000f), |
|||
new Vector3(-0.500000f, -0.809017f, 0.309017f), |
|||
new Vector3(-0.238856f, -0.864188f, 0.442863f), |
|||
new Vector3(-0.262866f, -0.951056f, 0.162460f), |
|||
new Vector3(-0.864188f, -0.442863f, 0.238856f), |
|||
new Vector3(-0.809017f, -0.309017f, 0.500000f), |
|||
new Vector3(-0.688191f, -0.587785f, 0.425325f), |
|||
new Vector3(-0.681718f, -0.147621f, 0.716567f), |
|||
new Vector3(-0.442863f, -0.238856f, 0.864188f), |
|||
new Vector3(-0.587785f, -0.425325f, 0.688191f), |
|||
new Vector3(-0.309017f, -0.500000f, 0.809017f), |
|||
new Vector3(-0.147621f, -0.716567f, 0.681718f), |
|||
new Vector3(-0.425325f, -0.688191f, 0.587785f), |
|||
new Vector3(-0.162460f, -0.262866f, 0.951056f), |
|||
new Vector3(0.442863f, -0.238856f, 0.864188f), |
|||
new Vector3(0.162460f, -0.262866f, 0.951056f), |
|||
new Vector3(0.309017f, -0.500000f, 0.809017f), |
|||
new Vector3(0.147621f, -0.716567f, 0.681718f), |
|||
new Vector3(0.000000f, -0.525731f, 0.850651f), |
|||
new Vector3(0.425325f, -0.688191f, 0.587785f), |
|||
new Vector3(0.587785f, -0.425325f, 0.688191f), |
|||
new Vector3(0.688191f, -0.587785f, 0.425325f), |
|||
new Vector3(-0.955423f, 0.295242f, 0.000000f), |
|||
new Vector3(-0.951056f, 0.162460f, 0.262866f), |
|||
new Vector3(-1.000000f, 0.000000f, 0.000000f), |
|||
new Vector3(-0.850651f, 0.000000f, 0.525731f), |
|||
new Vector3(-0.955423f, -0.295242f, 0.000000f), |
|||
new Vector3(-0.951056f, -0.162460f, 0.262866f), |
|||
new Vector3(-0.864188f, 0.442863f, -0.238856f), |
|||
new Vector3(-0.951056f, 0.162460f, -0.262866f), |
|||
new Vector3(-0.809017f, 0.309017f, -0.500000f), |
|||
new Vector3(-0.864188f, -0.442863f, -0.238856f), |
|||
new Vector3(-0.951056f, -0.162460f, -0.262866f), |
|||
new Vector3(-0.809017f, -0.309017f, -0.500000f), |
|||
new Vector3(-0.681718f, 0.147621f, -0.716567f), |
|||
new Vector3(-0.681718f, -0.147621f, -0.716567f), |
|||
new Vector3(-0.850651f, 0.000000f, -0.525731f), |
|||
new Vector3(-0.688191f, 0.587785f, -0.425325f), |
|||
new Vector3(-0.587785f, 0.425325f, -0.688191f), |
|||
new Vector3(-0.425325f, 0.688191f, -0.587785f), |
|||
new Vector3(-0.425325f, -0.688191f, -0.587785f), |
|||
new Vector3(-0.587785f, -0.425325f, -0.688191f), |
|||
new Vector3(-0.688191f, -0.587785f, -0.425325f), |
|||
}; |
|||
} |
|||
@ -0,0 +1,3 @@ |
|||
fileFormatVersion: 2 |
|||
guid: db4ebdce7b464932b60da167ed311249 |
|||
timeCreated: 1618581844 |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue