使用 HelixToolkit 为 PointCloud 中的每个点应用颜色
Apply color for each and every point in PointCloud Using HelixToolkit
我在 HelixToolKit 中创建了一个点云。我需要为每个点应用颜色。当我使用 PointVisual3D 时,没有为每个点设置颜色的选项。它为整个点云设置颜色。
当我在 Helix 工具包中使用 PointGeometryModel3D(使用 SharpDX)时,我也无法设置每个点的颜色。可以为点云中的每个点设置颜色。
谢谢...
通常,这是通过在 PointGeometryModel3D 的 PointGeometry3D 对象中设置颜色 属性 来完成的。您必须自己构建 Geometry。
- 创建渲染位置
- 创建颜色
告诉渲染器您的位置和颜色的顺序(在 Positions/Colors 中列出索引)
//create PointGeometryModel3D object
PointGeometryModel3D pgm = new PointGeometryModel3D();
//create positions
pgm.Geometry.Positions = new HelixToolkit.Wpf.SharpDX.Core.Vector3Collection();
pgm.Geometry.Positions.AddRange(
new SharpDX.Vector3[]
{ new SharpDX.Vector3(0,1,2),
new SharpDX.Vector3(1,2,3),
new SharpDX.Vector3(3,2,3),
});
//create colors
pgm.Geometry.Colors = new HelixToolkit.Wpf.SharpDX.Core.Color4Collection();
pgm.Geometry.Colors.AddRange(
new SharpDX.Color4[]
{
new SharpDX.Color4(1f,0,0,1),
new SharpDX.Color4(0,1f,0,1),
new SharpDX.Color4(0,0,1f,1)
});
//create indices
pgm.Geometry.Indices = new HelixToolkit.Wpf.SharpDX.Core.IntCollection();
pgm.Geometry.Indices.AddRange(
new int[]
{
0,
1,
2,
});
请告诉我它是否适合您。我无法让它与 LineGeometry3D 和不同的线条颜色一起使用。一定有一个选项可以让渲染器使用颜色顶点而不是(单一)颜色 属性.
我在 HelixToolKit 中创建了一个点云。我需要为每个点应用颜色。当我使用 PointVisual3D 时,没有为每个点设置颜色的选项。它为整个点云设置颜色。 当我在 Helix 工具包中使用 PointGeometryModel3D(使用 SharpDX)时,我也无法设置每个点的颜色。可以为点云中的每个点设置颜色。
谢谢...
通常,这是通过在 PointGeometryModel3D 的 PointGeometry3D 对象中设置颜色 属性 来完成的。您必须自己构建 Geometry。
- 创建渲染位置
- 创建颜色
告诉渲染器您的位置和颜色的顺序(在 Positions/Colors 中列出索引)
//create PointGeometryModel3D object PointGeometryModel3D pgm = new PointGeometryModel3D(); //create positions pgm.Geometry.Positions = new HelixToolkit.Wpf.SharpDX.Core.Vector3Collection(); pgm.Geometry.Positions.AddRange( new SharpDX.Vector3[] { new SharpDX.Vector3(0,1,2), new SharpDX.Vector3(1,2,3), new SharpDX.Vector3(3,2,3), }); //create colors pgm.Geometry.Colors = new HelixToolkit.Wpf.SharpDX.Core.Color4Collection(); pgm.Geometry.Colors.AddRange( new SharpDX.Color4[] { new SharpDX.Color4(1f,0,0,1), new SharpDX.Color4(0,1f,0,1), new SharpDX.Color4(0,0,1f,1) }); //create indices pgm.Geometry.Indices = new HelixToolkit.Wpf.SharpDX.Core.IntCollection(); pgm.Geometry.Indices.AddRange( new int[] { 0, 1, 2, });
请告诉我它是否适合您。我无法让它与 LineGeometry3D 和不同的线条颜色一起使用。一定有一个选项可以让渲染器使用颜色顶点而不是(单一)颜色 属性.