我使用 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 点。
为什么它不能正常工作?
注释:
- 一个好的工作图像(彩色):
- 一个不好的工作图像(未着色):