@ -10,38 +10,20 @@ public partial class RenderModule
{
uq = uniQuake ;
BuildCallbacks ( ) ;
zPos = globalZPos ;
globalZPos - = 2 5 6f ;
}
private float xPos = - 2 0 4 8f ;
private float zPos = 0f ;
private static float globalZPos = 0f ;
private int UploadAliasModel ( string name , QAliasHeader header , QAliasFrameType frameType ,
QTriVertex [ ] [ ] poseVertices , QTriangle [ ] triangles , QSTVert [ ] stVertices ,
QGLTexture [ ] [ ] glTextures , QGLTexture [ ] [ ] fbTextures )
{
var sb = new System . Text . StringBuilder ( ) ;
foreach ( var frame in header . frames )
{
sb . AppendLine ( $"- {frame.name} ({frame.numPoses} poses)" ) ;
}
Debug . Log ( $"Alias model '{name}' (frame type {frameType}) with {header.numVerts} vertices, {header.numTriangles} triangles, {header.numFrames} frame(s), {header.numPoses} pose(s):\n{sb}" ) ;
Debug . Log ( $"Alias model '{name}' (frame type {frameType}) with {header.numVerts} vertices, {header.numTriangles} triangles, {header.numFrames} frame(s), {header.numPoses} pose(s)" ) ;
AliasModel aliasModel = new AliasModel ( name , header , frameType ) ;
aliasModel . ImportMeshData ( poseVertices , triangles , stVertices ) ;
uq . GameAssets . AddAliasModel ( aliasModel ) ;
string modelName = System . IO . Path . GetFileNameWithoutExtension ( name ) ;
var go = new GameObject ( modelName ) ;
go . transform . SetPositionAndRotation ( new Vector3 ( xPos , 0 , zPos ) , Quaternion . identity ) ;
aliasModel . Animate ( 0 , out Mesh mesh , out float blendWeight ) ;
// DEBUG kept for reference for the moment, how to address skins & texture frames, and full-bright textures
var material = new Material ( Shader . Find ( "Universal Render Pipeline/Simple Lit" ) ) ;
uint texNum = glTextures [ 0 ] [ 0 ] . texNum ;
if ( uq . GameAssets . TryGetTexture ( texNum , out var texture ) )
@ -60,34 +42,6 @@ public partial class RenderModule
}
}
if ( header . numPoses > 1 )
{
var mr = go . AddComponent < SkinnedMeshRenderer > ( ) ;
mr . material = material ;
mr . sharedMesh = mesh ;
mr . shadowCastingMode = ShadowCastingMode . Off ;
mr . receiveShadows = false ;
mr . lightProbeUsage = LightProbeUsage . Off ;
mr . reflectionProbeUsage = ReflectionProbeUsage . Off ;
var animator = go . AddComponent < AliasModelAnimator > ( ) ;
animator . aliasModel = aliasModel ;
}
else
{
var mf = go . AddComponent < MeshFilter > ( ) ;
mf . sharedMesh = mesh ;
var mr = go . AddComponent < MeshRenderer > ( ) ;
mr . material = material ;
mr . shadowCastingMode = ShadowCastingMode . Off ;
mr . receiveShadows = false ;
mr . lightProbeUsage = LightProbeUsage . Off ;
mr . reflectionProbeUsage = ReflectionProbeUsage . Off ;
}
xPos + = 1 2 8f ;
return 1 ;
}