Ошибка непрозрачности в VS 2015 с использованием Helix Toolkit - PullRequest
0 голосов
/ 26 октября 2018

Я пытался создать метод для изменения непрозрачности объекта, когда я выбираю его в поле со списком, чтобы я мог видеть другой объект за ним.Это делается до изменения положения / направления камеры, чтобы она следовала за 2-м объектом из позиции 1-го объекта.Это делается путем клонирования материала объекта по умолчанию с

this.DefaultMaterial = this.DefaultMaterial.Clone ();

и последующим вызовом

MaterialHelper.ChangeOpacity (DefaultMaterial,0.1);

метод, как я его там написал.

В большинстве случаев непрозрачность работает нормально, но для некоторых объектов в порту просмотра я их не вижучерез мой начальный непрозрачный объект.Например, когда я поворачиваю камеру к конкретному рассматриваемому объекту (ошибочному объекту), вместо того, чтобы видеть его за моим исходным объектом, я вижу сквозь исходный объект и за вторым (неисправным), как будтоглючного даже не было.Я просто вижу, что за этим стоит.

Понятия не имею, почему это происходит.

Кто-нибудь знает, что может быть причиной этого?Или, может быть, есть другой способ сделать что-то прозрачным, а не установить его непрозрачность?

Я видел, как некоторые люди ссылались на свойство TRANSPARENCY, но не был уверен, применимо ли это к объекту FileModelVisual3D, что и являетсяисходный объект:

Неисправный объект - UIElement3D, непрозрачный - FileModelVisual3D, существуют другие объекты класса Point3DCollection, которые также содержат ошибку, как и UIElement3D.

1 Ответ

0 голосов
/ 01 ноября 2018

Из-за RenderOrder и буфера глубины.Вы должны переместить прозрачный объект в конец рендеринга.Это не ошибка, это то, как работает рендеринг.

Или перейдите на использование Helix-toolkit sharpdx и используйте прозрачный проход рендеринга.

...