//-------------------------------------------------------------------------------------------------- protected override void WriteBlockData(U3dWriter writer) { writer.Write(Name); // CLOD Modifier Name == Modifier Chain Name writer.Write(ChainIndex); writer.Write(0u); // CLOD Modifier Attributes: Default attributes (automatic LOD control is disabled) writer.Write(1.0f); // CLOD Automatic Level of Detail Bias writer.Write(1.0f); // CLOD Modifier Level }
//-------------------------------------------------------------------------------------------------- protected override void WriteBlockData(U3dWriter writer) { writer.Write(Name); writer.Write(ChainIndex); writer.Write(1u); // Shading Attributes: 1 = Mesh writer.Write(1u); // Shader list count writer.Write(1u); // Shader count writer.Write(_Shader?.Name ?? ""); }
//-------------------------------------------------------------------------------------------------- protected override void WriteBlockData(U3dWriter writer) { writer.Write(Name); // Lit Texture Shader Name writer.Write(1u); // Lit Texture Shader Attributes: 1 = Lighting Enabled writer.Write(0.0f); // Alpha Test Reference writer.Write(0x617u); // Alpha Test Function: 0x617 = ALWAYS writer.Write(0x606u); // Color Blend Function: 0x606 = FB_ALPHA_BLEND writer.Write(1u); // Render Pass Flags writer.Write(0u); // Shader Channels writer.Write(0u); // Alpha Texture Channels writer.Write(Material?.Name ?? ""); // Material Name // Texture Information - not supported yet }
//-------------------------------------------------------------------------------------------------- protected override void WriteBlockData(U3dWriter writer) { writer.Write(Name); writer.Write(1u); // Pass count writer.Write(""); // Root Node Name writer.Write(0u); // Render attributes: 0 = No fog writer.Write(1u); // Fog Mode: 1 = Exponential writer.Write(0.5f); // Fog Color Red writer.Write(0.5f); // Fog Color Green writer.Write(0.5f); // Fog Color Blue writer.Write(0.5f); // Fog Color Alpha writer.Write(0.0f); // Fog Near Value writer.Write(1000.0f); // Fog Far Value }
//-------------------------------------------------------------------------------------------------- protected override void WriteBlockData(U3dWriter writer) { writer.Write(Name); // CLOD Modifier Name == Modifier Chain Name writer.Write(ChainIndex); // Chain Index // Max Mesh Description writer.Write(NormalCount > 0 ? 0u : 1u); // Mesh Attributes: 1 = Exclude Normals writer.Write(FaceCount); writer.Write(PositionCount); writer.Write(NormalCount); writer.Write(DiffuseColorCount); writer.Write(SpecularColorCount); writer.Write(TextureCoordCount); writer.Write(1u); // Shading Count, currently only default supported uint attributes = 0; // 0 = The shader list uses neither diffuse colors nor specular colors. if (DiffuseColorCount > 0) { attributes |= 1; // 1 = The shader list uses per vertex diffuse colors. } writer.Write(attributes); // Shading Attributes writer.Write(0u); // Texture Layer Count writer.Write(0u); // Original Shading ID // CLOD Description writer.Write(PositionCount); // Minimum Resolution writer.Write(PositionCount); // Final Maximum Resolution // Resource Description writer.Write(0u); // Position Quality Factor writer.Write(0u); // Normal Quality Factor writer.Write(0u); // Texture Coord Quality Factor writer.Write(1.0f); // Position Inverse Quant writer.Write(1.0f); // Normal Inverse Quant writer.Write(1.0f); // Texture Coord Inverse Quant writer.Write(1.0f); // Diffuse Color Inverse Quant writer.Write(1.0f); // Specular Color Inverse Quant writer.Write(0.0f); // Normal Crease Parameter writer.Write(0.0f); // Normal Update Parameter writer.Write(0.0f); // Normal Tolerance Parameter // Skeleton Description writer.Write(0u); // Bone Count }
//-------------------------------------------------------------------------------------------------- public void WriteBlock(U3dWriter writer) { writer.Write(_BlockType); var posDataSize = writer.Position; writer.Write(0); // Data Size, will be overwritten later writer.Write(0); // Meta Data Size, currently unsupported var posStartData = writer.Position; WriteBlockData(writer); // Update Data Size uint dataSize = writer.Position - posStartData; writer.WriteAt(posDataSize, dataSize); writer.WritePadding(); }
//-------------------------------------------------------------------------------------------------- protected abstract void WriteBlockData(U3dWriter writer);
//-------------------------------------------------------------------------------------------------- protected override void WriteBlockData(U3dWriter writer) { writer.Write(Priority); }