在WPF中禁用面部剔除

时间:2010-12-11 15:41:43

标签: wpf viewport3d culling

我正在尝试使用WPF 3D渲染,我面临的首要问题之一是如何禁用面部剔除。 我知道如何在DirectX和OpenGL中做到这一点,但我找不到在WPF中这样做的方法。 这是我的ViewPort标记。模型是在运行时生成的,它是GeometryModel3D中的MeshGeometry3D

  <Viewport3D x:Name="viewport"  DockPanel.Dock="Right" Margin="0" >
                <Viewport3D.Camera>
                    <PerspectiveCamera x:Name="camera" FarPlaneDistance="50" LookDirection="0,0,-10"
     UpDirection="0,1,0" NearPlaneDistance="0" Position="0,0,5"
     FieldOfView="45" />
                </Viewport3D.Camera>

                <ModelVisual3D x:Name="model">
                    <ModelVisual3D.Content>
                        <Model3DGroup x:Name="group">
                            <AmbientLight Color="DarkGray" />
                            <DirectionalLight Color="White" Direction="-5,-5,-7" />
                        </Model3DGroup>
                    </ModelVisual3D.Content>
                </ModelVisual3D>
            </Viewport3D>

非常感谢您给我的任何建议。

1 个答案:

答案 0 :(得分:5)

据我所知它不能,但你也可以给背面提供一种材料。

            DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(Colors.Blue));
            GeometryModel3D geometryModel = new GeometryModel3D(geometry, material);
            geometryModel.BackMaterial = material;

问候,Jeroen