I need to plot multiple surfaces with textures. Each texture is a matrix plot with transparent background. In this way, we can see the multiple surfaces from the top.
L= 10;
m1 = RandomInteger[{-1, 1}, {L, L}];
m2 = RandomInteger[{-1, 1}, {L, L}];
mp1 = MatrixPlot[m1, Frame -> None, Background -> None, ColorRules -> {0 -> None, -1 -> Red, 1 -> Blue}];
mp2 = MatrixPlot[m2, Frame -> None, Background -> None, ColorRules -> {0 -> None, -1 -> Red, 1 -> Blue}];
mplt1 = Plot3D[1, {x, 0, L}, {y, 0, L}, Lighting -> "Neutral", PlotStyle -> Directive[Texture[mp1]], TextureCoordinateFunction -> Automatic, BoundaryStyle -> None, Mesh -> None, PlotRange -> All, TextureCoordinateScaling -> True, Background -> None];
mplt2 = Plot3D[5, {x, 0, L}, {y, 0, L}, Lighting -> "Neutral", PlotStyle -> Directive[Texture[mp2]], TextureCoordinateFunction -> Automatic, BoundaryStyle -> None, Mesh -> None, PlotRange -> All, TextureCoordinateScaling -> True, Background -> None];
Show[{mplt1,mplt2}]
The image has slight red color on the surface, which I want to make completely transparent. After I overlay 50 sheets of this kind, the red color really mess up the whole picture.
Could anyone help me to manage the reddish color?
Thank you,

PlotStyle -> Directive[Texture[Rasterize[mp1, Background -> None]]].Texturedoesn't understandMatrixPlotdirectly. Alternatively, you can useRasterdirectly from matrix with correct parameters insideTexture. – kirma Sep 23 '14 at 18:09