“YDir”属性影响3D表面的渲染?

3次浏览(过去30天)
贾斯汀所罗门
贾斯汀所罗门 2015年6月4日
我正在制作一个有点复杂的GUI,其中我有一个3D形状的渲染(准确地说,是一个通过3D图像体积的等值面)。无论如何,由于我正在显示对象的图像切片,以及3D表面渲染,我希望表面渲染使用类似于图像的左手坐标系。因此我想我可以把y轴的方向颠倒。然而,当我这样做时,由于某种原因,对象的渲染似乎完全变坏了。物体上的照明看起来真的很“平坦”,与我正常使用“YDir”时相比,没有那么好。知道为什么会这样吗?
我附上了一些截图供比较。供参考,我在Mac上使用MATLAB R2014b。
'YDir' = 'normal'
'YDir' = 'reverse'
4评论
贾斯汀所罗门
贾斯汀所罗门 2015年6月4日
刚刚更新评论。上面的图片是Ydir设置为normal,下面是Ydir设置为reverse。

登录评论。

答案(1)

1月
1月 2015年6月4日
到底是什么问题?如果你改变YDir,你从相反的方向观察对象。这取决于光源在哪里,那么表面就在阴影中。
创建一个额外的光源(使用命令 )或移走现有的。参见: //www.tatmou.com/help/matlab/visualize/reflectance-characteristics-of-graphics-objects.html 为表面的BackFaceLighting属性。
1评论
贾斯汀所罗门
贾斯汀所罗门 2015年6月4日
谢谢你的回答。即使在改变了光的位置之后,物体看起来仍然有很大的不同(参见我上面发布的沃尔特·罗伯逊的答案的图片)。同样,改变表面的BackFaceLighting属性也没有帮助。翻转y轴后就没有镜面反射了。我摆弄了表面的不同反射率属性,但我似乎不能让我的对象看起来和我翻转坐标轴之前一样。

登录评论。

标签

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!