Wpf中用HelixToolkit輕松加載SolidWorks導出3D模型


時隔多年,HelixToolkit.SharpDX真的加強不少,得益於assimp-net這個項目,HelixToolkit可以加載各種模型並播放動畫,下面就來看看HelixToolkit如何與SolidWorks碰撞出火花

 

一、加載SolidWorks導出的XAML來顯示模型

 

我們在SolidWorks工程內,另存為XAML格式,我就不貼全了

 

<Viewport3D>
    <Viewport3D.Camera>
        <OrthographicCamera Position="1.186027,1.102421,1.711027" LookDirection="-0.577382,-0.577288,-0.577382" UpDirection="-0.408204,0.816541,-0.408204" NearPlaneDistance="1.027074" FarPlaneDistance="3.081221" Width="2.054147"/>
    </Viewport3D.Camera>
    <Viewport3D.Children>
        <ModelVisual3D>
            <ModelVisual3D.Transform>
                <RotateTransform3D>
                    <RotateTransform3D.Rotation>
                        <AxisAngleRotation3D Angle="0" Axis="0,1,0"/>
                    </RotateTransform3D.Rotation>
                </RotateTransform3D>
            </ModelVisual3D.Transform>
            <ModelVisual3D.Children>
                <ModelVisual3D>
                    <ModelVisual3D.Content>
                        <Model3DGroup>
                            <Model3DGroup.Children>
                                <AmbientLight Color="#262626"/>
                                <DirectionalLight Color="#6F6F6F" Direction="3.150000,-8.090000,-4.960000"/>
                                <DirectionalLight Color="#454545" Direction="8.610000,4.820000,-1.640000"/>
                                <DirectionalLight Color="#332835" Direction="-9.490000,3.090000,0.600000"/>
                                <DirectionalLight Color="#151515" Direction="-5.500000,-8.300000,-1.100000"/>
                            </Model3DGroup.Children>
                        </Model3DGroup>
                    </ModelVisual3D.Content>
                </ModelVisual3D>
                <ModelVisual3D>
                    <ModelVisual3D.Transform>
                        <MatrixTransform3D Matrix="1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 "/>
                    </ModelVisual3D.Transform>
                    <ModelVisual3D.Content>
                        <Model3DGroup>
                            <Model3DGroup.Children>
                                <GeometryModel3D>
                                    <GeometryModel3D.Material>
                                        <MaterialGroup>
                                            <DiffuseMaterial>
                                                <DiffuseMaterial.Brush>
                                                    <SolidColorBrush Color="#C6C1BC" Opacity="1.000000"/>
                                                </DiffuseMaterial.Brush>
                                            </DiffuseMaterial>
                                            <SpecularMaterial SpecularPower="0.700000">
                                                <SpecularMaterial.Brush>
                                                    <SolidColorBrush Color="#8A8783" Opacity="1.000000"/>
                                                </SpecularMaterial.Brush>
                                            </SpecularMaterial>
                                        </MaterialGroup>
                                    </GeometryModel3D.Material>
                                    <GeometryModel3D.Geometry>
                                        <MeshGeometry3D Positions="-0.182068,0.380704,0.052289 -0.223695,0.357833,0.000000 -0.178693,0.382299,0.051022 -0.171721,0.385481,0.000000 -0.171721,0.385481"/>
                                    </GeometryModel3D.Geometry>

 

把它放到自己的wpf里面去,這個時候可以用代碼隨意的控制里面的元素了,但是操作不是很方便,能不能搞個旋轉縮放的默認操作呢? 這時候就用到HelixToolkit.Wpf了,

我們把ModelVisual3D節點,放到HelixToolkit的<HelixToolkit:HelixViewport3D ZoomExtentsWhenLoaded="True">控件節點中,便可以進行鼠標操作

 

 

 

 導出xaml不能導出太復雜的東西,因為所有格式里,xaml是最大的,貼到VS里去搞不好要崩潰

 

二、使用HelixToolkit.SharpDX加載SolidWorks導出的3mf

solidworks導出的格式里都比較奇葩,沒有常見的.x .obj .fbx,剩下的格式里最通用的就是這個3mf格式了,這個格式就比xaml強多了

我們可以使用HelixToolkit.SharpDX工程里的FileLoadDemo去加載他看看

 

 

 

HelixToolkit.SharpDX會擁有更好的光照,更多的特性,潛力更大,性能更好。

大家自己也可以用普通的3dsmax,maya導出點常規格式玩玩,還支持fbx動畫哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM