SciChart® the market leader in Fast WPF Charts, WPF 3D Charts, iOS Chart, Android Chart and JavaScript Chart Components
Hey everyone!
Even though the release of SciChart WPF v4.2 is barely a day old(!) we are already hard at work on v4.3, where we intend to add some new features for SciChart WPF 3D Charts as well as several 2D Chart features. We want to get some information from you, our userbase, as to what requirements are most important to you. We also need to ask you a few questions about how you would expect correct usage of the 3D Chart.
We are planning the following features for v4.3 of SciChart WPF and we need your feedback on them. Some questions and explanation are found below.
We can add contours on surface plots quite easily. Something like this:
This is quite easy to do, but we would like to know from you if (a) it is important, (b) you need to be able to configure the contour colours dynamically (per contour, as opposed to one colour for all), (c) whether you have any special requirements for placing contours, or if you would like SciChart to choose and (d) any other comments or suggestions for the API as we build it.
Can you contact us if this feature is important to you? Your input into the requirements would be greatly appreciated.
A number of users have asked for nulls (transparent cells) in surface meshes. This sounds easy on the surface, but it isn’t … Nevertheless we want to deliver it. We do have some questions though.
Given a surface mesh with 8×8 data values, we end up with something like this (below). The data-points are shown by orange dots. The cells are the squares next to the dots.
As you can see, cell colour is specified by interpolating the four points surrounding a cell. For example, the cell in the top right has a data-value of Y=1 so it should be red, but it isn’t, it’s yellow, because it has two other edges which are only at Y=0.5.
Now if a user wants to specify a cell as transparent, for example the cell at X=1, Z=6, them you end up with this:
Now this obviously isn’t ideal. We thought about how to solve this.
We could allow you to specify a separate texture for the mask to ‘null’ certain cells, however you will notice that there are 8×8 data-points in the mesh, but only 7×7 cells, so the texture size doesn’t actually match the data size. This would allow you to mask out certain cells but it would also give you a clunky API and raise questions of accuracy because of the mismatch of sizes.
Another way is we could change how we are drawing the cell textures. We could offset the texture so that each square in the texture surrounds the data-point, for example:
This would be a nice solution except it raises two problems.
We invite your comment/feedback on this proposed solution and whether it seems correct. It is very important to us that our scientific WPF Charts are both intuitive and accurate.
Several users have requested that we allow uneven spacing of surface mesh data-points. However, we have a question. Which sort of spacing are you expecting, (A) or (B)?
In SciChart WPF v4.3 we intend to add Waterfall Charts 3D. For clarification, we intend to create a hardware-accelerated version of our WPF Waterfall Chart Example using SciChart3D:
If we do this, we will likely bind it to our UniformGridDataSeries3D type. This means the data-source will be a 2-dimensional Double[][] array of Y-values only. But what sort of requirements do you need for this chart type? Do you need for example:
We’re assuming you need realtime performance & being able to scroll in the Z-direction (time) …
The current limit for the size of the 3D Surface Mesh chart is limited by the maximum texture size on your GPU, which in most cases is 4096*4096 and on some GPUs is larger, up to 16k * 16k.
Some customers have contacted us and asked for larger surface sizes, but we would just like to know how many so that we can prioritise this complex piece of work.
Those are all the questions we have about SciChart 3D Surface Mesh for now. If you are a current customer of SciChart WPF 3D, or you are considering to purchase this software, please get in contact with your feedback. It is extremely valuable that we build software that you actually want to use and meets your requirements!
Best regards,
[SciChart Team]
4 Comments
SC3D-336 Support for Nulls in Surface Meshes
ok let’s do some vocabulary first:
– data point = The dots in your example picture
– visual cell = the colorized squares in your example picture
– data cell = the cell from data point to data point
the approach with the center of the “visual cell” over the data point perfectly fits our requirement. Indeed we have a lots of visualization code in our company where we exactly do that.
We suggest as follows:
1. User defines data matrix as before -> No Null values are allowed, the user must provide valid floating values in order to correctly draw the contour(height profile)
– To do for us: we must provide a “healthy” data matrix. Here we will interpolate “Invalid/Null” data points with their “healthy” neighbors
2. SciChart will colorize the visual cells according to the provided color palette and data point values
–> Currently we are using HeightMapInterpolated. So actually nothing changes in our image with your new approach?!
3. Now we will call an additional API such as mesh[x, z] = Red or whatever. This will colorize the visual cell over the data point WITHOUT affecting the neighboring visual cells. So basically this is a simple overwrite.
The circumstance that “half cells” occur is fine. The feedback of the other user do not met our requirements.
The question is where to place the wireframe. Along the data points or visual cells?
SC3D-337 Uneven Spacing of Surface Mesh Data-Points
A is enough
Thanks for the valuable feedback! This is almost precisely the approach we are going for. We have actually implemented a prototype, but have not centred the Visual Cell on the Data-Point yet. Instead, we blank out the Data-Cell. However, it’s an easy thing to change (or to make configurable).
SC3D-218 Contours on Meshes
We are looking into your product mainly because of the Point-Line 3D capabilities, but Contour Maps would be very useful as well.
I imagine them not only to be drawn on the Surface Mesh, but to a be a standalone chart type (2D view of 3D data).
Please take a look at how Infragistics did it: http://www.infragistics.com/products/wpf/charts/3d-surface-chart
This looks cool, but I do not think it is possible to see only the contour without the surface.
Best,
Gavrilo
Hi Gavrilo,
Thank you for your comment! Contours on the floor / ceiling of the mesh are on our roadmap for 3D Charts, as well as 3D.
Have a look at our public issue tracker here:
These will be coming as part of SciChart v4.3 or v5.0 some point in the first quarter of 2017.
Kind regards,
Andrew