Hello @Necips !
I thought the silence was because everyone was tired of me rambling on and on about path tracing! Ha
No but seriously, thank you for the compliment. And thank you for sharing your beautiful Sandbox shader! I love the Mandelbrot addition - so cool!
It’s fitting you linked to a shader with the original code coming from P_Malin. Now there is a true ‘giant’ in shader programming. Have a look at his profile (P_Malin) and his listed shaders on Shadertoy. Some of his demos are pure magic!
Back before I got into rendering, I had also stumbled upon his incredible work on glslSandbox, and in fact I had bookmarked the very shader you had worked from. What struck me besides his beautiful results, was that if you look at his source code, it is so legible and organized. Even the naming of each variable was taken into careful consideration. Someone stumbling upon his shaders who wanted to browse the source, actually has a chance of understanding what he is doing on every line and in each function. That legibility and clearness of intention is a great source of inspiration as well as his brilliant techniques!
P_Malin along with the legendary iq, PauloFalcao, TDM, and koiava have greatly influenced my development as a webgl pathtracing shader programmer. Also the path tracing port by scott ( just ‘scott’ on Shadertoy) from Kevin Beason’s C++ smallpt to Shadertoy was a great help for me getting started with my three.js renderer project.
About your question on whether I do this professionally, actually programming is a passion hobby of mine. With all my lengthy posts on the background of path tracing, I failed to mention my own background! Ha. So here is my story:
I am now 47 years old (although my line of work and hobbies allow me to ‘feel’ much younger! ), I am a professional musician and music teacher in Texas (yee-haw!), fairly close to NASA (Houston, we have a problem), but computer games and graphics programming have always been a passion hobby of mine. I have played the piano since I was 5, as well as drumset/percussion since high school, and currently make a living playing and teaching private lessons on both instruments. But always in the background there was the love for anything computer related! To show my age even further, my first gaming console as a kid was the Atari 2600, my school had a couple of Apple IIe’s, and my first pc in junior high was the Commodore 64! But having said that, the Commodore 64 in my opinion is one of the greatest systems ever to be produced. It solidified my love for computers and helped me start my journey into tinkering with Basic code and eventually coding my own stuff.
Although my focus and path in life was primarily centered around Music, there were moments along the way that really had an effect on me in regards to computers and rendering. I remember seeing the 1982 movie TRON in theaters, and although I didn’t understand what I was seeing as a 9 year old kid at that time during the movie’s famous LightCycle sequence, I knew I wanted to do that someday, somehow, with a computer. Also our local public TV station would occasionally play classic computer animation clips from the late 1980’s and early 1990’s and I would be fascinated with how smoothly they ran and looked. Check out the channel VintageCG on YouTube for an idea on what those were like. Turns out it was just pure ray tracing for both the TRON visuals and these 80’s/90’s clips visuals that took several minutes if not hours to painstakingly render each animation frame - but now with RTX cards and such, one can do it real time on a home pc!
You are right when you say it takes a long time to accumulate knowledge in the area of rendering. And the sad part (or fun part, depending on how you look at it) is that I don’t know everything there is to know, nor will I ever! Ha. The subject of rendering on its own is vast and can take a lifetime (i.e., ray tracing legends Eric Haines and Peter Shirley, both now working as senior engineers for NVIDIA RTX). After my years playing around with the Commodore 64, I eventually got an IBM clone pc and when these new fangled things came out called ‘graphics cards’ (ha) like the VodooFX cards, I bought books on OpenGL 1, introductory C programming, and basic Windows programming, and tried my hand at rudimentary 3d graphics and very simple games like 3d pong in OpenGL under Windows 98. If you would like to see old screenshots, inside my Github bio you’ll find a link to my old website where I shared my basic 3d games from the early 2000’s - it’s a now defunct website but it is archived thankfully by the internet ‘way-back machine’. This 3d OpenGL undertaking helped solidify some of the basic math concepts for me like vectors, 3d geometry, cameras, and matrices and such, that ultimately helped me recently ease into 3d path tracing, which uses matrices, geometry, and 3d vectors (rays) all over the place. So it has been a long and winding road of learning bit by bit for me!
Well once again I have rambled on, but I just wanted to share some of my background with you all. Thankfully, I am in a unique position with my line of work in which, although the hours are weird (my work day starts at 5 p.m.) and I work every weekend and most holidays, I have enough spare time during the mornings and early afternoons to spend on my passion hobby, computer graphics. Also, I have greatly benefited from the publicly available code of others, which is why I love sharing my code and ideas freely with all who are interested.
Take care!
-Erich