GraphicsDevice.Textures
are your "traditional" textures; the one's you sample from during the fragment shader.
GraphicsDevice.VertexTextures
are textures that you want to sample from in the vertex shader, which required specialized HLSL instructions (texldl
, as noted in the documentation) on the D3D9-class hardware that XNA is based on. Vertex textures were a half-measure towards the more unified shader resource input pipe that is available on modern cards, but not via XNA. You probably do not need to concern yourself with the VertexTextures
property for the time being.
Using the Effect
API to send textures to the shader will, under the hood, do exactly the same set of steps that you would need to do if you manually assigned textures to specific samplers. I would recommend you continue to just use the Effect
methods as they are likely going to be easier for you, since you already understand them.