Я пытаюсь заставить работать анимацию, в которой я плавно меняю материал различных форм, чтобы они были прозрачными / разных цветов.
Проблема:
Если я смотрю на фигуру сверху, я могу видеть ее внутренние углы (скажем, если это куб, я могу видеть его внутреннюю поверхность), но все, что находится за пределами / за периметром фигуры, закрыто strong >.
Пока я делаю следующее, что отлично работает, помимо этой проблемы:
Color c = new Color()
{
A = 16,
R = Colors.Transparent.R,
G = Colors.Transparent.G,
B = Colors.Transparent.B
};
(model as GeometryModel3D).Material = new DiffuseMaterial(new SolidColorBrush(c));
(model as GeometryModel3D).BackMaterial = new DiffuseMaterial(new SolidColorBrush(c));
Если я уменьшу альфа-канал до 0, форма станет непрозрачной, по-видимому, потому, что форма невидима, но все еще закрывает все, что находится за ней.
Информация, которую я нашел до сих пор, предполагает, что использование излучающих или отражающих материалов будет работать, потому что они не были записаны в Z-буфер, но либо диффузные материалы не работают так же, либо я реализовал это неправильно.
Редактировать:
Столкнувшись с этим вопросом: StackOverflow и увидев комментарий под первым ответом, я Я предполагаю, что возможность сделать объекты действительно прозрачными должна быть более сложной, чем я думал вначале. Похоже, у этого человека были такие же проблемы, как и у меня.