我尝试使用HelixToolkit.Wpf.SharpDX在WPF中呈现3d模型。
我的模型是静态的,由一个顶点缓冲区和一组三角形组成。每个三角形都有一个分配给它的材料,每个三角形点都有一个UV坐标和一个法线。
我如何建立模式来实现:
我查看了Helix存储库中的所有示例,但我对所有的MeshGeometry3D、MeshGeometryModel3D、Model3DCollection、Model3DGroup、Visual3D和UIElement3D类都感到困惑,其中一些类似乎只存在于WPF或Helix中,但有些类存在于两个命名空间中,但行为不同。
我试图为每个模型创建一个带有Model3DGroup的Model3DGroup,然后在Model3DGroup中添加一个具有PhongMaterial的GeometryModel3D和一个对每种材料都有三角形的MeshGeometry3D。
对于如何处理每个MeshGeometry3D必须定义的顶点缓冲区,我特别不确定。这是否意味着在渲染时会被复制?对于每一组三角形,我是否需要将所有顶点分割成具有相同材质的顶点缓冲器,还是只为每个三角形组分配相同的顶点缓冲区?
我熟悉OpenGL和DirectX,但我对WPF和Helix很陌生。
发布于 2021-01-18 04:05:54
螺旋工具包不直接使用顶点缓冲区。您需要将顶点和三角形索引数据转换为螺旋工具包MeshGeometry3D,并将material和MeshGeometry3D传递给MeshGeometryModel3D。
此外,您似乎对HelixToolkit.wpf和HelixToolkit.wpf.sharpdx感到困惑。这是两个独立的库。
Model3DCollection、Model3DGroup、Visual3D和UIElement3D只能在Helixtoolk.wpf中使用,而不能在Helixtoolkit.wpf.sharpdx中使用。
有关更多信息,请参考wiki页面和示例。
https://stackoverflow.com/questions/65766435
复制相似问题