【发布时间】:2011-01-13 17:18:03
【问题描述】:
我需要绘制一大组立方体,每边都有(可能)独特的纹理。一些纹理还具有部分透明度。透明纹理后面的立方体应该通过透明纹理显示。但是,似乎我绘制立方体的顺序决定了透明度是否有效,这是我想要避免的。看这里:
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);
}
如您所见,叶子立方体后面的纹理在另一侧不可见。当我在数组中反转索引 3 和 0 时,我得到这个:
很明显,绘制顺序正在影响立方体。我怀疑这可能与混合模式有关,但我不知道从哪里开始。
【问题讨论】: