在matlab网格图中没有点亮某些面

时间:2012-09-21 23:35:05

标签: matlab lighting

我使用此命令绘制网格

trimesh(F, X, Y, Z,...
'EdgeColor','k','FaceColor','flat','FaceVertexCData',c, ...
'CDataMapping','scaled','FaceLighting','flat','BackFaceLighting','lit');
camlight;

当我这样做时,大多数面孔都按照预期点亮,但有些面孔似乎没有点亮;即,当我将视图旋转到其他角度并改变光线位置(因为它取决于相机)时,我仍然看不到它们被照亮。

在我看来,这似乎是法线的经典问题(即我的法线是相反的方向),尽管我认为在trimesh的调用中,参数'BackFaceLighting','lit'会照顾到它。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

尝试使用以下命令将渲染器设置为opengl

set(gcf,'Renderer','opengl');

它通常比标准渲染器更好地处理3D。