首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SharpDX彩色PointCloud

SharpDX彩色PointCloud
EN

Stack Overflow用户
提问于 2020-11-20 17:30:19
回答 1查看 118关注 0票数 0

我正在使用SharpDX渲染一个点云,使用以下代码:

代码语言:javascript
运行
复制
PointsModel = new PointGeometryModel3D();
PointsModel.Geometry = new PointGeometry3D();

//create positions
PointsModel.Geometry.Positions = new Vector3Collection();
PointsModel.Geometry.Positions.AddRange(
            new SharpDX.Vector3[]
            { 
              new SharpDX.Vector3(0,0,0),
              new SharpDX.Vector3(10,0,0),
              new SharpDX.Vector3(0,10,0),
              new SharpDX.Vector3(0,0,10),
            });

//create colors
PointsModel.Geometry.Colors = new Color4Collection();
PointsModel.Geometry.Colors.AddRange(
            new SharpDX.Color4[]
            {
              new SharpDX.Color4(1f,0,0,1),
              new SharpDX.Color4(1f,0,0,1),
              new SharpDX.Color4(1f,0,0,1),
              new SharpDX.Color4(1f,0,0,1)
            });

//create indices
PointsModel.Geometry.Indices = new IntCollection();
PointsModel.Geometry.Indices.AddRange(
            new int[]
            {
              0,
              1,
              2,
              3
            });

 PointsModel.Figure = PointFigure.Rect;
 PointsModel.Size=new Size(10, 10);

在视图中:

代码语言:javascript
运行
复制
<hx:Viewport3DX EffectsManager="{Binding EffectsManager1}" 
                Camera="{Binding Camera1}" BackgroundColor="#FF88AACD" 
                ZoomExtentsWhenLoaded="True">
    <hx:AmbientLight3D Color="#030303" />
    <hx:DirectionalLight3D Direction="{Binding Camera.LookDirection}" Color="White" />
    <hx:PointGeometryModel3D  Geometry="{Binding PointsModel.Geometry}" Size="{Binding PointsModel.Size}" Figure="{Binding PointsModel.Figure}">          
    </hx:PointGeometryModel3D>
  </hx:Viewport3DX>

我希望这些点具有独立的颜色,但我甚至没有将它们设置为红色。无论我如何设置颜色列表中的颜色值,这些点始终呈现为黑色。我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-30 18:10:58

我通过将PointGeometryModel3D中的颜色设置为静态值来解决这个问题:

代码语言:javascript
运行
复制
<hx:Viewport3DX EffectsManager="{Binding EffectsManager1}" 
            Camera="{Binding Camera1}" BackgroundColor="#FF88AACD" 
            ZoomExtentsWhenLoaded="True">
  <hx:AmbientLight3D Color="#030303" />
  <hx:DirectionalLight3D Direction="{Binding Camera.LookDirection}" Color="White" />
  <hx:PointGeometryModel3D  Geometry="{Binding PointsModel.Geometry}" 
      Size="{Binding PointsModel.Size}" 
      Figure="{Binding PointsModel.Figure}" 
      Color="{x:Static Colors.White}">          
  </hx:PointGeometryModel3D>
</hx:Viewport3DX>

但我不明白为什么这是必要的。

点云现在已正确渲染,包括每个点的各个颜色。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64926932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档