У меня есть 3D-модель дома, где крыша невидима, чтобы можно было увидеть комнаты
(как здесь )
Но (на данный момент) у меня нет текстур, и каждая поверхность имеет одинаковый цвет, например,
var myMaterial = new DiffuseMaterial (new SolidColorBrush(myColor))
Если я просматриваю его в WPF Viewport3D, я хочу иметь возможность различать поверхности.
например, я хочу увидеть, когда закончится пол и начнется стена.
Это должно быть возможно при освещении объекта. Я уже попробовал:
Окружающий свет не работает, потому что все поверхности будут выглядеть одинаково окрашенными:
myViewport3D.Children.Add(new ModelVisual3D(){Content = new AmbientLight(Colors.White)})
И если я использую направленный свет и прикрепляю его положение к движущейся камере, некоторые нормали поверхности иногда почти перпендикулярны камере / свету и поэтому почти черные, что выглядит еще более неестественно.
Итак, как же можно отличить поверхности одноцветного 3D-объекта в WPF Viewport3D?
Редактируется после того, как пользователь "jdv" написал свой комментарий