//--------------------------------------------------------------------------------------------------

        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 ?? "");
        }
Exemple #3
0
        //--------------------------------------------------------------------------------------------------

        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
        }
Exemple #4
0
        //--------------------------------------------------------------------------------------------------

        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
        }
Exemple #6
0
        //--------------------------------------------------------------------------------------------------

        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();
        }
Exemple #7
0
        //--------------------------------------------------------------------------------------------------

        protected abstract void WriteBlockData(U3dWriter writer);
Exemple #8
0
        //--------------------------------------------------------------------------------------------------

        protected override void WriteBlockData(U3dWriter writer)
        {
            writer.Write(Priority);
        }