我需要绘制一组大的立方体,每个立方体上都有(可能)唯一的纹理。其中一些纹理还具有透明部分。应该通过透明纹理看到后面的立方体。然而,貌似我绘制立方体的顺序决定了透明度是否有效,这是我想避免的。看这里:
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);
}
以下是Draw方法中的代码,它会产生如下结果: 正如您所看到的,叶子立方体背后的纹理在另一侧不可见。当我在数组中反向索引3和0时,我得到了这个结果: 很明显,绘制顺序影响到了立方体。我怀疑这可能与混合模式有关,但我不知道从哪里开始。