我有一个房子的 3D 模型,屋顶是看不见的,所以房间可以看到(就像这里)
但是(现在)我没有纹理,每个表面都有相同的颜色,例如,
var myMaterial = new DiffuseMaterial (new SolidColorBrush(myColor))
如果我在 WPF Viewport3D 中查看它,我希望能够区分表面。例如,我想看看地板何时结束,墙壁何时开始。
这应该可以通过照亮对象来实现。我已经尝试过:
环境光不起作用,因为所有表面看起来颜色相同:
myViewport3D.Children.Add(new ModelVisual3D(){Content = new AmbientLight(Colors.White)})
如果我使用定向光并将其位置粘贴到移动的相机上,一些表面法线有时几乎垂直于相机/光,因此几乎是黑色的,这看起来更加不自然。
那么在 WPF Viewport3D 中区分单色 3DObject 表面的好方法是什么?
在用户“jdv”发表评论后编辑