lenixlobo's Blog

Weekly Check-In: Week 8

lenixlobo
Published: 07/20/2020


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

Hey Everyone! 
This week, improvements in SDF primitives.

What did I do this week

Over the past few weeks i have been working on adding SDF based actors in FURY. The task for this week was to complete the remaining features such as support for scaling and rotation based on user direction for the actors. The main objective is to complete the SDF actor and make it ready to merge into the FURY codebase.

Scaling:


Rotation based on direction:



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

https://github.com/lenixlobo/fury/tree/SDF-Experiments 

What's coming up next

Since the features are almost done the task for next week is clean the code and test for bugs. And then to eventually merge the  sdf_actor into the fury codebase.

Did I get stuck anywhere

No major issues this week. 

View Blog Post

Weekly Check-In: Week 7

lenixlobo
Published: 07/13/2020


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

Hey Everyone! 
This week, multiple SDF primitives.

What did I do this week

The objective of this week was to understand the capabilities of the multiple SDF primitives within the same cube project. To get a clearer understanding of what we can achieve with this approach, i added support for real time rotating primitives. The output of 2 cubes with rotating SDFs is shown below.

 



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 task for next week is to implement features in the SDF actor and also to fix minor bugs within the shaders. Once everything is done as planned, the PR will be merged for users to access the features.

Did I get stuck anywhere

No issues this week

View Blog Post

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