Beispiel #1
0
        private static Block GetNodeModifierChain(Node node, U3DDocument doc)
        {
            var w = new BlockWriter();

            w.WriteString(node.Name); // modifier chain name
            w.WriteU32(0);            // modifier chain type: 0 = node modifier chain
            w.WriteU32(0);            // modifier chain attributes: 0 = neither bounding sphere nor
            // Bounding box info present.
            w.WritePadding();
            w.WriteU32(2); // modifier count in this chain
            w.WriteBlock(GetModelNodeBlock(node));
            w.WriteBlock(GetShadingModifierBlock(node.Name, doc.Meshes[node.Mesh].Shader));
            return(w.GetBlock(BlockType.ModifierChain));
        }
Beispiel #2
0
        private static Block GetTextureResourceModifierChain(Texture texture)
        {
            var w = new BlockWriter();

            w.WriteString(texture.Name); // modifier chain name
            w.WriteU32(2);               // modifier chain type: 2 = texture resource modifier chain
            w.WriteU32(0);               // modifier chain attributes: 0 = neither bounding sphere nor
            w.WritePadding();            // modifier chain padding
            w.WriteU32(1);               // modifier count in this chain
            w.WriteBlock(GetTextureDeclarationBlock(texture));
            return(w.GetBlock(BlockType.ModifierChain));
        }
Beispiel #3
0
        private static Block GetModelResourceModifierChain(Mesh mesh)
        {
            var w = new BlockWriter();

            w.WriteString(mesh.Name); // modifier chain name, bonded to ModelNodeBlock.ModelResourceName
            w.WriteU32(1);            // modifier chain type: 1 = model resource modifier chain
            w.WriteU32(0);            // modifier chain attributes: 0 = neither bounding sphere nor
            // Bounding box info present. Padding.
            w.WritePadding();
            w.WriteU32(1); // modifier count in this chain
            w.WriteBlock(GetMeshDeclarationBlock(mesh));
            return(w.GetBlock(BlockType.ModifierChain));
        }
Beispiel #4
0
        private static Block GetGroupNodeModifierChain(Node node)
        {
            var w = new BlockWriter();

            w.WriteString(node.Name); // modifier chain name
            w.WriteU32(0);            // modifier chain type: 0 = node modifier chain
            w.WriteU32(0);            // modifier chain attributes: 0 = neither bounding sphere nor
            // Bounding box info present.
            w.WritePadding();
            w.WriteU32(1); // modifier count in this chain
            w.WriteBlock(GetGroupNodeBlock(node));
            return(w.GetBlock(BlockType.ModifierChain));
        }