如何使用Helix工具包绘制3D彩色点

时间:2015-02-05 00:40:46

标签: c# wpf 3d sharpdx helix-3d-toolkit

我使用Helix工具包创建了一个简单的3D查看器。

我想绘制彩色的3D点。

我引用了Example文件夹(HelixToolkit.Wpf.SharpDX)中包含的示例项目“SimpleDemo”。

这是我的XAML:

<hx:PointGeometryModel3D x:Name="points" 
         Geometry="{Binding Points}" 
         Transform="{Binding Model1Transform}" 
         Color="{x:Static sdx:Color.White}" />

绘图核心在下面。

        var points = new PointGeometry3D();
        var col = new Color4Collection();
        var ptPos = new Vector3Collection();
        var ptIdx = new IntCollection();

        for(int y = 0; y < height; y++) {
            for(int x = 0; x < width; x++) {
                if(depth[y * width + x] < 1000 && depth[y * width + x] > 0) {
                    ptIdx.Add(ptPos.Count);
                    ptPos.Add(new Vector3(x, height - y, (-depth[y * width + x] / 3.0f) + 800));
                    col.Add(rnd.NextColor().ToColor4());
                }
            }
        }

        points.Positions = ptPos;
        points.Indices = ptIdx;
        points.Colors = col;
        Points = points;

这个程序,有些情况下工作很好。(例如处理200 x 200点)。 但其他情况并不好(例如处理500 x 300点)

它可以绘制未着色的3D点(黑色)。

为什么它无法正常工作?

评论:

  • 良好的工作形象(有色):

Good

  • 不好的工作形象(没有着色):

Bad

0 个答案:

没有答案