【发布时间】:2018-02-16 09:37:45
【问题描述】:
我的 MATLAB GUIDE 应用程序似乎存在关于 3D 补丁渲染的问题。遗憾的是,我无法在另一个 GUIDE 实例中或仅在 Matlab 图中重现该问题。
当绘制包含面的 3D-Patch 时(从给定的角度来看,这会相互遮挡)。通过面看不到轴的网格线,但通过另一个面可以看到被遮挡面的边缘。 下图显示了我的两个矩形的问题:第二个矩形的边缘不应该通过第一个矩形可见!我尝试更改 FaceColor 和我能找到的所有“Alpha”属性,但没有任何帮助。
Example of the obscured face beeing seen through the other one
Edge Visibility Bug - 您看不到对象后面的网格线,但每个 Edge 都是可见的,就好像您可以看到它的内部一样。
此外,当绘制多个面片时,最后定义的面片会显示在其他面片的前面,无论采用何种视角。下图显示了这一点。
Visual Stacking Bug - 左边的柱子通常应该可以看到,因为它在架子前面。
通常,在 3D 情况下,如果在另一个对象前面看到一个对象,则它更接近观察者的点。然后,当您将对象的视角改变 180 度时,另一个应该在前面,因为它现在更近了。这不会发生在我在 Matlab 应用程序中的图中。
谷歌搜索让我相信,这个问题可能与渲染器有关,或者是隐藏表面移除/Z-Buffer/....
在执行补丁命令之前,我尝试将渲染器切换到 z-buffer、painters 并返回到 opengl,但老实说,我没有看到任何区别,也不知道我是否做得正确。
请帮我解决这个问题,很遗憾我无法将我的代码追溯到它第一次出现的那一刻。也许它只是像渲染器这样的设置?还是图中的补丁的视觉堆叠?
【问题讨论】:
-
嗯,不错。您是在问什么,还是只是在展示它?
-
抱歉,我说得不够清楚:我不想要这种出现顺序,你能帮我解决这个意外行为吗?
-
我们没有代码,所以我们不知道如何重现它,很明显。熟悉How to Ask 并始终提供minimal reproducible example。 edit你的问题很好,添加问题和相关信息
-
好的,我来了!谢谢你给我指点礼仪!与此同时,我将把这个问题留在这里,因为它以某种方式遇到了完全相同的问题。
-
等等,你有什么问题?这些盒子是透明的,但根本没有视觉伪影,即使你的眼睛似乎看到了它们。例如,在第二张图片中,立方体的每个面都由对角线隔开,但所有线条都位于应有的位置。只需使用属性
facecolor填充您的补丁
标签: matlab matlab-figure patch matlab-guide perspective