http://www.youtube.com/watch?v=gZNdfVwkttM - вы можете увидеть все проблемы, описанные в этом видео, если вы не видите картинки.
Все стены на всех изображениях ниже имеют полупрозрачную текстуру PNG. Каждая квадратная стена, пол и потолок - это отдельная GeometryModel3D (я знаю, что это плохо для производительности, но ...). Пол и потолок центрального куба не имеют никакой геометрии и текстур - поэтому они имеют такой же цвет, как и Window.Background (черный). Но рассматриваемый эффект проявляется любым способом получения прозрачности: текстура для ImageBrush с прозрачностью, Material.Color (например, DiffuseMAterial.Color), где у Color есть альфа-канал, ImageBrush как материал, где у ImageBrush есть Opacity - у меня все та же проблема .
Вся стена состоит из двух треугольников. Там, где нет явных нормалей, потому что я определяю индексы треугольников, чтобы нормали автоматически вычислялись WPF.
http://imagepost.ru/images/i/ma/image00001.png
У него также нет никакого материала для спины или лишних треугольников с обратной стороны.
Как видите, нет проблем, если вы смотрите только от + Z до -Z (стоя на синем квадрате и глядя на красный квадрат - это вторая картинка).
Но если вы посмотрите назад (с красного на синий - первое изображение), прозрачности не будет!
Ну, я решил посмотреть с желтого квадрата (третье изображение).
И тогда я подошел ближе - вы можете видеть, что происходит (снимки с 4 по 6).
Нет ошибок построения геометрии, ошибок отображения текстуры или освещения! Это какая-то вырезка, как я догадался! Кроме того, есть несколько интересных фотографий 7 и 8, которые подтверждают мою догадку.
На последнем рисунке показан белый фон окна, в котором размещался Viewport3D (предыдущий был черным), и мое предположение об отсечении подтвердилось - WPF просто не закрасил эту часть сцены, и мы можем видеть фон окна!
НО! Если это происходит с разных взглядов, то почему вид от + Z до -Z (вторая картинка) выглядит хорошо?!