关于 wpf 3D 显示透明问题, 达人指教!(前面一个帖子有问题,Sorry!)
首先,在这里对回答问题的人表示由衷的谢意,Thank you very much!!!简化问题如下:
<age x:Class="wpf_vislink.TestPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowTitle="Six Squares in Search of a Cube"
Title="Six Squares in Search of a Cube">
<Viewport3D>
<ModelVisual3D>
<ModelVisual3D.Content>
<Model3DGroup>
<!-- Rectangle One. -->
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D
Positions="-0.5 -0.5 0, -0.5 0.5 0, 0.5 -0.5 0, 0.5 0.5 0"
TriangleIndices="0 2 1, 1 2 3" />
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="Blue" Opacity="0.5"/>
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
</GeometryModel3D>
<!-- Rectangle Two. -->
<GeometryModel3D>
<GeometryModel3D.Geometry>
<MeshGeometry3D
Positions="0 0 -1, 0 1 -1, 1 0 -1, 1 1 -1"
TriangleIndices="0 2 1, 1 2 3" />
</GeometryModel3D.Geometry>
<GeometryModel3D.Material>
<DiffuseMaterial>
<DiffuseMaterial.Brush>
<SolidColorBrush Color="Green" Opacity="0.5" />
</DiffuseMaterial.Brush>
</DiffuseMaterial>
</GeometryModel3D.Material>
</GeometryModel3D>
<!-- Light source. -->
<AmbientLight Color="White" />
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
<!-- Camera. -->
<Viewport3D.Camera>
<OrthographicCamera Position="0 0 3"
LookDirection="0 0 -1"
UpDirection="0 1 0"
/>
</Viewport3D.Camera>
</Viewport3D>
</Page>
效果如下:
可是我期望的是能够透过蓝矩形看到绿矩形,但结果是看不到。如果将蓝矩形放的比绿矩形远(z值设为-2),则可以通过绿矩形看到蓝矩形,
效果如下:
这是为什么?除了Opacity之外有没有其它属性可以设置的?
I appreciate your answer. Thanks very much!
--------------------编程问答-------------------- up --------------------编程问答-------------------- 绘制有先后顺序,必须从上向下叠加,因此,你放在绘制3D最后一个GeometryModel3D对象是透明可用的。放上面则未然。这有点类似于zorder的原理。
补充:.NET技术 , C#