4 ms·
No discussion of ray marching is complete wihtout mentioning Shadertoy (http://www.shadertoy.com http://www.shadertoy.com) and the work of great shader artists
by c3d 11y ago
No discussion of ray marching is complete wihtout mentioning Shadertoy (http://www.shadertoy.com http://www.shadertoy.com) and the work of great shader artists such as Iñigo Quílez, Paul Malin, Dave Hoskins, Reinder Nijhoff and many others. If you are interested in these techniques, check it out.
One of my favorites is Elevated: https://www.shadertoy.com/view/MdX3Rr https://www.shadertoy.com/view/MdX3Rr.
I've converted many of the most beautiful ones to auto-stereoscopic 3D for Tao3D (http://tao3d.sourceforge.net http://tao3d.sourceforge.net). An infinite landscape in glasses free 3D is a thing of beauty :-)
- gavanwoolery 11y agoI agree! I learned a lot from both Shadertoy and IQ's website. Also, while we are mentioning people, I should mention that Jon Olick is running a Kickstarter right now: https://www.kickstarter.com/projects/1760210928/voxelnauts-vr-mmo https://www.kickstarter.com/projects/1760210928/voxelnauts-v... Jon has been a major pioneer in voxel research and ray-based techniques.
- jere 11y agoI've seen this website mentioned many, many times. What kind of background would one need to begin to start understanding/making these things? Every time I see this site, I think I should figure this out. I don't see any sort of introduction area, so I click on a shader and am presented with some totally indecipherable code.
- david-given 11y agoThe maths isn't hard, but you do need a decent grasp of vectors and (optionally) 3D transformation matrices, and it's pretty opaque until you figure out the terminology. I haven't done GPU raymarching myself but I've used the same techniques on the CPU side in order to develop a whole-planet procedural renderer (in Ada, of course); the raymarching was relatively straightforward but I got horribly bogged down trying to make a volumetric atmosphere work. One resource I found really useful was Iñigo Quilez' website; in particular, his article on basic terrain raymarching explains most of the concepts: http://www.iquilezles.org/www/articles/terrainmarching/terrainmarching.htm http://www.iquilezles.org/www/articles/terrainmarching/terra... (Also known as iq, he's responsible for a number of amazing demos, including the 4kB demo _Elevated_: https://www.youtube.com/watch?v=jB0vBmiTr6o https://www.youtube.com/watch?v=jB0vBmiTr6o He also appears to have written ShaderToy. Search for iq to see his stuff omfg ShaderToy lets you write shaders to produce _music_ now? https://www.shadertoy.com/view/ldXXDj https://www.shadertoy.com/view/ldXXDj)
- gavanwoolery 11y agoWhen I first looked at many shader examples, such as those with SDF, it looked like gibberish. The first thing you need is a firm understanding of geometry and basic vector/matrix operations (add, sub, mult, dot, cross, etc). You might think you remember stuff from your highschool math classes but if you are not actively using this stuff frequently you will not truly understand it. For the record I was really bad at basic math, and barely skimmed by in highschool. It wasn't until I started programming heavily that I really learned how everything worked. Start as simple as possible - rendering a triangle on the screen with polygons (there are a million tutorials for this). Then move up to cubes or something. I recommend starting with Three.js as it very easy to get up and running. Eventually you will get into shaders, which are fairly easy to understand but do have quirks you will gradually learn.