lenixlobo's Blog

Weekly Check-In: Week 6

lenixlobo
Published: 07/05/2020


Make sure to check out Project FURY : https://github.com/fury-gl/fury

Hey ! 
Spherical harmonics, Continued!

What did I do this week

Last week I added a basic implementation of Spherical harmonics based actors. However, the implementation was quite restricted and we needed to add support for more accurate generation of spherical harmonics. So the task assigned this week was to implement the spherical harmonics function within the shader rather than passing variables as uniforms. This was quite an challenging task as it involved understanding of mathematical formulae and implementing them using existing GLSL functions.
The output of the implementation is shown below

 

 

While , i was able to complete the task the frame rate for the generated output was quite lower than expected. 



The code for the above render is available at the branch :

https://github.com/lenixlobo/fury/tree/Spherical-Harmonics  

What's coming up next

The next task is to discuss possible performance improvements with the mentors and also look into alternative ideas to add spherical harmonics as actors in FURY.

Did I get stuck anywhere

Spherical harmonics involve a lot of complicated math behind the hood as a result the generated output has a very poor frame rate. Currently, we are looking into improving this.

View Blog Post

Weekly Check-In: Week 5

lenixlobo
Published: 06/28/2020


Make sure to check out Project FURY : https://github.com/fury-gl/fury

Hey ! 
This week, Spherical harmonics!

What did I do this week

The main task for the week was to include an implementation of spherical harmonics (upto the order of 4) as a FURY actor. This was the initial milestone to be achieved to work towards the support of using spherical harmonics as an visualization technique. I have added the GIFs for both the renders below. I also worked on a occlusion based lighting model .

Spherical harmonics for different values of order and degree:

 

 



The code for the above render is available at the branch : https://github.com/lenixlobo/fury/tree/SDF-Experiments  

What's coming up next

The next task to add support for the user to be able to render different spherical harmonics by passing argumentst

Did I get stuck anywhere

Spherical harmonics involve a lot of complicated math behind the hood. So the initial days were spent understanding the math .I was confused while working on the implementation but eventually got it working. .

View Blog Post

Weekly Check-In: Week 4

lenixlobo
Published: 06/21/2020


Make sure to check out Project FURY : https://github.com/fury-gl/fury

Hey ! 
Raymarching continued!

What did I do this week

As you read in my last blog post, while the SDF primitives were working , there was slight deformation in the render. So the main focus for this week was working on solving the deformation bug. Initially the suspect was possibly the coordinate space in which the ray marching algorithm was being computed, however after testing multiple combination of transformations the issue wasn't solved. To avoid getting stuck too long on a single bug, I decided to simultaneously work on any alternatives to the current approach. So i started working on the 2nd approach. The idea was to render multiple primitives in a single cube rather than one SDF per cube. This turned out to be highly beneficial as while implementing this , i realized what was causing the deformation . I have added the GIFs for both the renders below. I also worked on a lambertian lighting model to create a more realistic render.

Multiple Primitives within a single cube:


Solved deformation with added lambertian Lighting: 



The code for the above render is available at the branch : https://github.com/lenixlobo/fury/tree/SDF-Experiments  

What's coming up next

The next task assigned is to add support for spherical harmonics as primitives.

Did I get stuck anywhere

I was stuck on the deformation issue for most of the week, but was eventually able to solve that.

View Blog Post

Weekly Check-In: Week 3

lenixlobo
Published: 06/14/2020


Make sure to check out Project FURY : https://github.com/fury-gl/fury

Hey ! 
This week, Raymarching!

What did I do this week

This was an exciting week as i got to learn and implement the ray marching algorithm in the FURY repo. In the weekly meeting, the mentors suggested adding support for SDF modelled actors as an alternative to the existing FURY actors. After going through a few implementations of ray marching in GLSL, i proceeded with the implementation in VTK. After being able to render a torus , the next logical step was to add support for multiple actors in the same window. The below render shows support for multiple SDF actors :




The code for the above render is available at the branch : https://github.com/lenixlobo/fury/tree/SDF-Experiments  

What's coming up next

In the above output, there is some deformation in some of the cubes, The next step is to get rid of this deformation .
Also i will be working on adding lighting within the shaders for a slightly more realistic experience.

Did I get stuck anywhere

Going through and understanding theVTK documentation was quite a challenging task, however whenever i was confused the doubts were immediately cleared by the mentors

View Blog Post

Weekly Check-In: Week 2

lenixlobo
Published: 06/07/2020

<meta charset="utf-8">Project FURY https://github.com/fury-gl/fury

Hey everyone!

This week : Geometry Shaders!

What did I do this week

To get a better understanding of the working of the shader pipeline, the mentors assigned me a challenging task of implementing a Dynamic Texture. The basic idea is to create a 'volumetric' texture by stacking layer of textures. Such an example is an ideal use case for a geometry shader. Since i had not much prior experience with Geometry shaders before, i spent the initial days going through existing implementations of similar ideas in OpenGL/DirectX.  
After working on the code, the final image rendered is given below. 


I created a PR for the fur texture which is available at https://github.com/lenixlobo/fury/blob/Dynamic-Texture/docs/experimental/viz_dynamictex.py.

 

What's coming up next

The current PR has some minor bugs which need to be fixed. The next step would be to review the code and find the solutions for the bugs. Also we are looking into ideas on optimization for faster rendering time.

The next week will be spent looking into ray marching algorithms and adding them to the current code base as possible alternatives for FURY Actor primitives.

Did I get stuck anywhere

Nothing major.

 

View Blog Post