public override void Run(RenderControl render) { if (!ReadData()) { return; } var material = PointsMaterial.Create("point-material"); material.GetTemplate().SetVertexColors(true); var geometry = GeometryBuilder.CreatePoints(new Float32Array(mPositions), new Float32Array(mColors)); var node = new PrimitiveSceneNode(geometry, material); //node.SetPickable(false); render.ShowSceneNode(node); }
public override void Run(RenderControl render) { // prepare points data const int COUNT = 300; var buffer = new Float32Buffer(0); buffer.Reserve(COUNT * 3); var colors = new Float32Buffer(0); Random random = new Random(); for (int i = 0; i < COUNT; i++) { float x = 2000 * (float)random.NextDouble() - 1000; float y = 2000 * (float)random.NextDouble() - 1000; float z = 2000 * (float)random.NextDouble() - 1000; buffer.Append(x, y, z); colors.Append((float)random.NextDouble(), (float)random.NextDouble(), (float)random.NextDouble()); } var primitive = GeometryBuilder.CreatePoints(new Float32Array(buffer), new Float32Array(colors)); // prepare point material var material = PointsMaterial.Create("points-material"); material.SetSizeAttenuation(false); material.SetPointSize(15.0f); material.SetColorMap(ImageTexture2D.Create(GetResourcePath("textures/snowflake7_alpha.png"))); material.SetTransparent(true); // enable vertex color material.GetTemplate().SetVertexColors(true); // add to scene var node = new PrimitiveSceneNode(primitive, material); node.SetPickable(false); render.ShowSceneNode(node); }