Мне нужно нарисовать большой набор кубиков, все с (возможно) уникальными текстурами на каждой стороне.Некоторые из текстур также имеют части прозрачности.Кубы, которые находятся позади прозрачных текстур, должны показываться сквозь прозрачную текстуру.Тем не менее, кажется, что порядок, в котором я рисую кубы, решает, работает ли прозрачность или нет, чего я хочу избежать.Смотрите здесь:
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.Он дает такой результат: первое изображение http://oi53.tinypic.com/av4tv7.jpg
Как видите, текстуры за кубом листа не видны с другой стороны.Когда я обращаю индекс 3 и 0 в массиве, я получаю это:
Ясно, что порядок рисования влияет на кубы.Я подозреваю, что это может быть связано с режимом наложения, но я не знаю, с чего начать.