当前位置:编程学习 > C#/ASP.NET >>

关于 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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,