Myndale:If I manually load a texture and assign it to the relevent model effect parameter with SetValue then it's all good and my effect displays properly.
After experimenting I've discovered that if the .X file explicitly inlines the texture name in the EffectInstance block like this...
EffectParamString {
"TextureField_Tex";
"myTexture.dds;
}
...then XNA loads the texture, otherwise it doesn't.
This is how it's supposed to work. The semantics and annotations inside the effect file are not taken into account when loading a effect. In an effect file, annotations are there to offer the application / programmer help or indications. If an application supports SAS,
it (the application) should look at them, otherwise, they are ignored. The content pipeline does not take it upon itself to process semantics and annotations.
When they are specified inside the model file, they are part of the model definition, so the content processor for the model, loads them.