[vtk-developers] GSoC 2015-CAD Model and Simulation Spline Visualization

David Thompson david.thompson at kitware.com
Wed Mar 25 00:28:37 EDT 2015

Hi Deevankshu,

> Sorry for that little break in between but I was really stuck in my mid-semester exams.

That's OK; I am also in a time crunch to finish a paper.

> .... Basically, it would be up to the IGA solver to provide us with Bezier patches.The data provided from the patches about the control points and vertices of the curve will be stored in arrays using the {vtkAbstractArray ,vtkDataArray,vtkDoubleArray} classes. ...

Correct, although if you are interested in storing BSplines (and then converting to Bézier patches on demand), it would be better to store the control points in a vtkStructuredGrid.

> Then the main work starts.These datsets will be processed by further filters present in the new mesh rendering class.

Yes. Filters would likely inherit vtkMultiBlockDataSetAlgorithm.

> The main tasks in our hand are-interpolation,point inversion and finally,tesselation and rendering.Here's a rough implementation of the methods used to perform these tasks. ...
> Tesselation and Rendering-
> I have always loathed the necessity of flow charts.I am attaching one here too explaining the implementation of the tesselation method.A brief explanation about this-
> -Tesselation Control Shader-Determines how much to tesselate,per-vertex attributes,new patch vertices in xyz.
> -Tesselation primitive generator-Tessellates the curve or surface into uvw coordinates.
> -Tesselation evaluation shader-Evaluate the curve or surface. Possibly apply a displacement map.
> After tesselation,finally rendering takes place which involves writing interpolated values out at the nodes of the simplices(lines,triangles,tetrahedra).

While it would be nice to have direct OpenGL rendering of patches, I would prefer to implement tessellation on the CPU first so that the resulting tessellation can be represented as a VTK dataset and used in further operations before rendering. Also, since IGA frequently involves 3-dimensional volumetric elements, rendering using the flowchart you show would mean writing a volume renderer (which is an ambitious task and could be its own GSoC project). If we tessellate on the CPU then VTK already has volume rendering code that can be applied to the tetrahedra that approximate a volumetric patch. 

> For the cutting part,I still have to see what changes will have to be made to the already existing code.I will get to that soon.
> Please tell me what you think about it.Would it be a good idea to divide the whole timeline into these three parts or do you recommend something else?

I think 3 sections would be fine for the timeline. I would prefer to work by (1) negotiating header files and unit tests, then (2) implementing the classes for each of the 3 sections.


More information about the vtk-developers mailing list