Helix ツールキットでシンプルな 3D ビューアを作成します。
色付きの 3D ポイントをプロットしたい。
Example
フォルダ( )に入っているサンプルプロジェクト「SimpleDemo」を参考にしましたHelixToolkit.Wpf.SharpDX
。
これは私の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点を描画できます。
正常に動作しないのはなぜですか?
コメント:
- 良い作品のイメージ (色付き):
- 良くない作品の画像(着色されていない):