<div dir="ltr"><div><div>Hello,</div><div><br></div><div>Sorry for that little break in between but I was really stuck in my mid-semester exams.</div><div><br></div><div>About the project,now I am concentrating more on the implementation of the IGA solver and post-processing techniques rather than understanding the IGA solver.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.And then composed into datasets using the classes {vtkDataObject, vtkDataSet, vtkUnstructuredGrid, vtkMultiBlockDataSet}.Then the main work starts.These datsets will be processed by further filters present in the new mesh rendering class.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.</div><div><br></div><div>Interpolation-</div><div>-The algorithm here I am thinking of implementing here is DeBoor's algorithm which is , of course ,a generalization of de casteljau's algorithm for bezier curves.</div><div>-The main thing to do here is to write the knot insertion as a matrix product operation done by DeBoor algorithm.We can then create these local matrices that allow us to go from a B-spline representation to a Bernstein definition (only a change of the polynomial basis).</div><div>-We can also use Oslo algorithm-a more general and complex insertion algorithm permitting insertion of multiple knots into a B-spline knot vector.</div><div><br></div><div>Point inversion-</div><div>For point inversion, we extract candidate Bézier subcurves based on the strong convex hull property, and then find the approximate candidate points and their corresponding parameter values already present in our stored arrays. Finally, by comparing the distances between the test point and candidate points, we can find the closest point. We improve its accuracy by using the Newton-Raphson method.</div><div><br></div><div>Tesselation and Rendering-</div><div>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-</div><div>-Tesselation Control Shader-Determines how much to tesselate,per-vertex attributes,new patch vertices in xyz.</div><div>-Tesselation primitive generator-Tessellates the curve or surface into uvw coordinates.</div><div>-Tesselation evaluation shader-Evaluate the curve or surface. Possibly apply a displacement map.</div><div>After tesselation,finally rendering takes place which involves writing interpolated values out at the nodes of the simplices(lines,triangles,tetrahedra).</div><div><br></div><div>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.</div><div><br></div><div>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?</div><div><br></div><div>Bests,</div><div>Deevankshu Garg.</div></div><div><br></div></div>