public TextureTechnique ReadTextureTechnique( XmlNode node )
 {
     string profile = node.Attributes[ "profile" ].Value;
     if( !profile.Equals( "COMMON" ) )
         return null;
     TextureTechnique technique = new TextureTechnique();
     foreach( XmlNode childNode in node.ChildNodes )
     {
         switch( childNode.Name )
         {
         case "input":
             ReadTechniqueInput( technique, childNode );
             break;
         case "param":
         default:
             DebugMessage( childNode );
             break;
         }
     }
     return technique;
 }
 public void ReadTechniqueInput( TextureTechnique technique, XmlNode node )
 {
     string semantic = node.Attributes[ "semantic" ].Value;
     if( semantic != "IMAGE" )
         return;
     string source = node.Attributes[ "source" ].Value;
     // strip off the leading '#'
     source = source.Substring( 1 );
     technique.imageId = source;
 }