This might be a feature request, I don’t know. Basically, I’m trying to plot a 3D scatter-plot and programmatically insert an arbitrary number of partially transparent free surface meshes in the same area as the scatter-plot. I started small and made some spheres. Some of my points are inside the spheres. These points are important, and I have my own functions that detect collisions between points and the spheres. The scatter-plot is also dynamic, where I update the color and transparency of the points and this means something. When all of the points are completely opaque, I get the desired behavior where I can see the points inside and behind the partially transparent meshes. However, when I make even one point transparent, all of the points inside and behind the mesh stop rendering. This is really annoying. Deletion is too slow. Is there anyway to force these fully opaque points to continue to render inside the partially transparent mesh while their brothers in the scatter-plot data series are transparent?
Second question, while I’m here. I’ve bolted a UI to the side of the Sci-Chart environment. What is the best way to make sure that the UI stays responsive even if the Sci-Chart environment starts to slow down? I want to crank up the point count past any reason.
https://www.youtube.com/watch?v=0IBBG6WEQw8 I’ve also uploaded a video of my problem. Before I check the box “Draw Geo-fence Violations Only”, all points in the data series 100% not transparent. When I check the box, all the white points start to become 100% transparent. When I click “Draw Geo-fences”, the meshes become 100% transparent (it’s backwards I know). The points are obviously still within the bounds of the mesh, as when the I turn off the mesh they start rendering. You can also see some red dots outside the mesh, as my program flagged a few points right next to the mesh as being inside it. These red dots outside the mesh render even when the red dots inside the mesh don’t.
Hi Will, I’ll discuss with the team tomorrow.
Looks to me like what you need is some kind of order-independent transparency. SciChart WPF automatically orders transparent objects back to front but this won’t be sufficient where you have a lot of intersections between objects.
Will discuss & revert back
Apologies for the delay. We discussed with the team, rather than order independent transparency there may be a simple solution here to trick SciChart into drawing objects in a different order.
The way SciChart WPF 3D works, if any part of an object is transparent, the entire object is drawn back to front from the camera. However this can sometimes lead to artefacts as you’ve found.
Will get back to you when we have a solution
Is there any news on OIT? In the meantime, I have found a workaround (kind of). At least for QuadPoints, points whose rgb channels sum to less than 77 will not render, even while fully opaque. This means that instead of setting points I don’t want to draw to transparent, I can set them to pure opaque black and they disappear. I am having a persistent and stubborn problem where the rendering engine switches something on and off as I call OnTick(). All of this is demonstrated here https://youtu.be/eSEzjqsxZpc. OIT would still be great though, it would allow me to use partially transparent points. Also, you can see meshes behind some meshes but not behind others, no doubt due to the render order. I would imagine OIT would also solve this.
Please login first to submit.