我需要画一大堆立方体,每一面都有(可能)独特的纹理.一些纹理也具有透明度的一部分.具有透明纹理的立方体后面的立方体应该透过透明纹理显示.但是,我绘制立方体的顺序似乎决定了透明度是否有效,这是我想要避免的.看这里:
cubeEffect.CurrentTechnique = cubeEffect.Techniques["Textured"];
Block[] cubes = new Block[4];
cubes[0] = new Block(BlockType.leaves, new Vector3(0, 0, 3));
cubes[1] = new Block(BlockType.dirt, new Vector3(0, 1, 3));
cubes[2] = new Block(BlockType.log, new Vector3(0, 0, 4));
cubes[3] = new Block(BlockType.gold, new Vector3(0, 1, 4));
foreach(Block b in cubes) {
b.shape.RenderShape(GraphicsDevice, cubeEffect);
}
Run Code Online (Sandbox Code Playgroud)
这是Draw方法中的代码.它产生了这个结果: 第一张图片http://oi53.tinypic.com/av4tv7.jpg
如您所见,叶子立方体后面的纹理在另一侧是不可见的.当我在数组中反转索引3和0时,我得到这个:

很明显,绘图的顺序正在影响立方体.我怀疑它可能与混合模式有关,但我不知道从哪里开始.