创建线框三维立方体

8

我有一段代码,可以在WPF Viewport3D中绘制一个立方体:

        <Viewport3D Name="viewport3D1">
            <Viewport3D.Camera>
                <PerspectiveCamera x:Name="camMain" Position="6 5 4" LookDirection="-6 -5 -4">
                </PerspectiveCamera>
            </Viewport3D.Camera>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <DirectionalLight x:Name="dirLightMain" Direction="-1,-1,-1">
                    </DirectionalLight>
                </ModelVisual3D.Content>
            </ModelVisual3D>
            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <GeometryModel3D>
                        <GeometryModel3D.Geometry>
                            <MeshGeometry3D x:Name="meshMain"
                                Positions="0 0 0  1 0 0  0 1 0  1 1 0  0 0 1  1 0 1  0 1 1  1 1 1"
                                TriangleIndices="2 3 1  2 1 0  7 1 3  7 5 1  6 5 7  6 4 5  6 2 0  2 0 4  2 7 3  2 6 7  0 1 5  0 5 4">
                            </MeshGeometry3D>
                        </GeometryModel3D.Geometry>
                        <GeometryModel3D.Material>
                            <DiffuseMaterial x:Name="matDiffuseMain">
                                <DiffuseMaterial.Brush>
                                    <SolidColorBrush Color="Red"/>
                                </DiffuseMaterial.Brush>
                            </DiffuseMaterial>
                        </GeometryModel3D.Material>
                    </GeometryModel3D>
                </ModelVisual3D.Content>
            </ModelVisual3D>
        </Viewport3D>

这将得到以下结果: 如何将其渲染为线框?
2个回答

9
请查看(免费)Helix 3D Toolkit中的LinesVisual3D类(https://github.com/helix-toolkit),它是一种“屏幕空间线条”的版本,可以让您像示例一样绘制线框。
如果您正在进行任何WPF 3D工作,我强烈推荐使用Helix 3D Toolkit

0

或许这可以帮助:

                <GeometryModel3D.Material>
                    <DiffuseMaterial x:Name="matDiffuseMain">
                        <DiffuseMaterial.Brush>
                            <SolidColorBrush Color="Red" Opacity="0.5" />
                        </DiffuseMaterial.Brush>
                    </DiffuseMaterial>
                </GeometryModel3D.Material>
                <GeometryModel3D.BackMaterial>
                    <DiffuseMaterial x:Name="matDiffuseMain2">
                        <DiffuseMaterial.Brush>
                            <SolidColorBrush Color="Red" Opacity="0.5" />
                        </DiffuseMaterial.Brush>
                    </DiffuseMaterial>
                </GeometryModel3D.BackMaterial>

谢谢,但这并不是我正在寻找的。有没有办法获得与图片中相同的效果? - finder_sl
我认为只有当你将线条构建为连接的窄管或盒子时,它才能在3D世界中呈现出来。你必须记住,在3D世界中,2D线条没有外观。除非可以在3D视口中绘制简单的线条-这是可能的吗?也可以查看以下链接: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b0c79d04-37af-489f-8601-ee9c76dd12cf/ - G.Y

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接