An introduction to Raymarching
Vložit
- čas přidán 8. 06. 2024
- This tutorial guides you through the fundamentals of raymarching and space transformation, providing insight into the endless creative possibilities that this technique opens up.
Raymarching base: www.shadertoy.com/view/MfX3WH
Final shader: www.shadertoy.com/view/lcs3DH
You can now support me on Patreon!
• Patreon: / kishimisu
If you want to see more content related to computer graphics & shader coding:
• Instagram: / kishimisu (Digital Art)
• Twitter: / kishimisu (Computer Graphics, ML, Shaders..)
Resources presented in the video:
• Shadertoy: www.shadertoy.com/
• Raymarching in Raymarching: www.shadertoy.com/view/wlSGWy
• 3D signed distance functions: iquilezles.org/articles/distf...
• Color palette: iquilezles.org/articles/palet...
• How to rotate a vector - Freya Holmér: • How to rotate a vector
• Quaternions and 3d rotation - 3Blue1Brown - • Quaternions and 3d rot...
• Inigo Quilez's channel: @InigoQuilez
• The Art of Code's channel: @TheArtofCodeIsCool
Video editing: Premiere & After Effects
Animations: Manim Community and GLSL Shaders
Note that the voice-over has been generated using AI ! (platform: ElevensLab)
The primary reason for this choice is to ensure a cleaner audio quality. As English is not my first language, it can be difficult to keep this kind of content clear and concise. I believe that the generated voice enhances the educational quality of these tutorials. With that said, this is not a definitive choice.
Timestamps:
00:00 Introduction
00:40 What’s Rasterization?
02:02 What’s Raymarching?
05:45 Shader start
08:37 Raymarching
12:35 Optimizations
15:50 Translation
17:50 Operators
19:10 Scaling
20:12 Rotation
22:10 Order of operations
22:53 Camera rotation
24:45 Space repetition
27:07 Getting Creative!
32:37 Final shader
Musics:
• massobeats - jasmine tea
• corbyn kites - dusk drive
• Music by | e s c p | escp-music.bandcamp.com - Věda a technologie
I hope you'll find this tutorial to be a useful starting point for learning more about raymarching!
On a personal note, I recently completed my masters degree in machine learning and plan to start working on my next video as soon as I find employment.
If you or your company are seeking a creative mind in the fields of computer graphics, machine learning or computer vision, don't hesitate to send me an email! (available on my profile)
You can also support these tutorials on Patreon: www.patreon.com/kishimisu
See you in the next one!
Your tutorials are so useful and inspiring thank you for teaching me so much!!
You are one hell of a talented person. Hope you find a good employment soon!
Your tutorials are fantastic, thank you. I like the AI voice over.
These tutorials are amazing! Very well explained and with lots of visuals that help a lot! All the best!
Can you do a video on how to add lights, shadows, and specular reflections to the scene when you do?
10/10, kishimisu you are a brilliant shader artist and an equally brilliant communicator of information. Please keep sharing that gift with us ❤🙏
Thanks a lot for this video. IT's great and easy to comprehend. I just spotted one mistake, so I'll share with people if they get stuck:
26:55 - When doing the time-dependent offset of the cubes the line q=fract(p) - 0.5; should be changed to q=fract(q) - 0.5;
I as just about to post this correction. Thanks!
Thank you! I was going really confused for a while, thougth of changing a bunch of stuff except that, makes sense.
OMG THE RETURN !!
The algorithm choosed him
Amazing tutorial once again!
Your first video inspired me and many others to start experimenting with shader code.
This video made basic 3d graphics easily understandable, previosuly to me a daunting task. I also love how you briefly explain several sub-concepts in their simplest forms, prompting a lot of creative exploration.
Really appreciate your style, pacing and looking forward to your future videos.
A just became a supporter at patreon because of this video. I think you nailed the perfect balance giving just enough information to understand what’s going on without getting bogged with details while providing external resources to drill down. The visual explanations are great too. Looking forward to dig in with your next tutorials!
Man, talk about underrated! Here from your previous video, can’t wait for your next. Keep up the good work!
Had to pause in the middle of the video and say, that Milky Way comparison was amazing, funny and instructional. This is an awesome video, well done!
This is a fantastic introduction into Ray Marching. Wonderful video. I've started this journey myself a few months ago, and your visualizations will really help others conceptualize these seemingly complicated operations!
The biggest flaw with ray marching, in my opinion, is that it can be difficult or tedious to design certain arbitrary structures purely with math. It's not a very artist-friendly technique.
Thank you kishimisu! you're a true inspiration for me! Shaders are a very complex topic but with your help, this kind of programming is begin become easier :)
This video was so dense with information yet so well-explained. I'm going to rewatch this a few times just so I can absorb everything.
Awesome video! I was occasionally checking your channel to see if you had a new video since you said you're working on a new video on Instagram.
You did a really great job! Especially because it was a topic I wanted to checkout anyway. I'm looking forward to more raymarching and seeing your channel evolve, I think you'll succeed easily! Good luck! 🎉
The legends said that some day, kishimisu will return!
Great video! You started small and worked up to some really cool demonstrations. Thank you for doing this all in shadertoy too, so I could quickly try it out for myself.
Fantastic!! I especially like the diagram at 25:18, it's a very interesting way to visualise it
You really have the best tutorials on the topic. Very well done explaining complex topics in easy to understand terms.
GOAT Tier learning material. Thank you a lot!
I'm seriously thinking about subscribing to your Patreon after 2 tutorials.
Another great video! I've been meaning to explore raymarching for ages, so this might be the push I need to get started!
Great video! I toyed with fragment shaders before, but this video made want to go back and properly learn some GLSL and create a couple shader programs!
As a point of criticism, I think the code you provide would be easier to follow along and more readable if you were to use proper variable names for values you hardcoded -- using something like `scalingFactor` instead of 4., for example.
Yes. This is a general coding practice called magic numbers. Eventually, constants that never change or one off values, may need to be understood by anyone revisiting the code in the future... that also means yourself :p
This was a good tip from professors when I went to college for programming. Also keep up the vids, I'm subscribed for the incredibly easy to follow, guided visual examples that help explain what's fundamentally going on, step-by-step. Keep it up ^^
Wow amazing! Thank you for sharing all those great lessons 😎🔥
Dude I was really waiting for you to drop another video. I am getting into the world of 3D graphics and shaders and your insight is very appreciated!
Fantastic video! Looking forward to more in this series. I'm a big fan of the 64K demoscene and the creative and technical uses of raymarching, but never could give myself a starting off point to try my hand at my own. You just unlocked a whole universe of exploration for me.
I really like how much info even the description has!
This is an absolute gem. Please keep making more of such videos
Thank you so much for all of the effort put into this. I don't have time to dive into shaders right now but it's something I've been wanting to do for a while.
10/10 Nothing to add. Very clear yet concise explanation and visualizations.
Oh my gosh, you're back! These videos are phenomenal.
I enjoy the AI voiceover, it's calm and to-the point! Very nice!
same, had no idea it was AI
to be frank it is one of the better AI voices
I am still working on my shader generation evaluation for language models, but your videos have been a great aid to help people explain what shadercode is and how you might interpret code as art.
I wish this video existed when I started learning Ray Marching (earlier this year) because it would've saved me weeks of self-studying. Really amazing work!
Very, very interesting and very well explained! Thanks for this introduction to the huge world of shaders!
I just decided to get into shaders, as a self-taught "creative coder". Your videos are absolutely stunning, highlighting an incredible production value. Be sure that I am going to follow your every move ;) I think you just convinced me to become a Patreon.
Absolutely incredible! I hope to see more videos on shaders from you! 🎉
This is absolutely amazing.
Please keep doing it!
Thank you so much for another wonderful video!!
Thank you!
You inspired me to get back into coding and creating generative art, looking forward to future tutorials🤝
double thumbs up for the Quaternion videos you linked, they're invaluable in understanding what at first can be a very opaque and confusing construct
Absolutely amazing content. I can vouch for The Art of Code too, his videos are long but very easy to follow.
Amazing, awaiting the next videos eagerly!
im so glad you're making more content
That is beyond great content. Truly mesmerizing.
Excellent run down of a lot of concepts and aspects of ray-marching. I have been experimenting with raymarching and SDF shapes in the godot engine. I am not sure how performant that will be, because I am still working at making the code for it. However, I will definitely be looking forward to your future videos. Cheers!
Thank you. Can't wait for the next video
Absolute unit of a channel
Finally! I'm so excited!
nicely done dude. can't wait for the volumetric tutorial
Great video with great presenting format. Really appreciate. I am not coder at all, but really interested in this type of experimenting now. 😁😁
My guy is literally teaching magic and asks nothing for it. The production and information value of this video is insane. I'm making a patreon account just to support you.
Loved the tutorial!
This is such a good video. Well done.
Absolutely legendary video. Subbed.
This is so cool. I love the exploration into noncartesian space. You can really do so much with just a few lines of code.
nice explination, one of the better I have seen
Just this afternoon I was messing around with applying rotation matrices to conic sections in the Desmos graphing calculator. Cool to see that technique used in shaders!
Simple yet amazing.
Really enjoying your videos! And have recommended them in my developers circle (:
Fantastic Video !, The content of this material is so valuable that the participation of AI as an speaker completely does not bother me. Thank you for your work !
It helped me a lot!! thank you so much.
Aah shade, here we go again
Now I have an awesome toy to procrastinate with.
This tutorial is amazing🔥
Incredible! Thank you :)
This is completely bananas thank you!
Oh man, you are finaly here thax for video!
The only raymarching tutorial I ever understood.
YESSSS ANOTHER VIDEO THANK YOU!!!!
Thank you kishimisu!
'Now' I subscribe. Love this!
Wooooow!... Just the thing i've been looking for. 😲
Great to have you back! Personally I would like to see WebGPU perhaps using wgpu (and engine that supports both desktop and web). Compute shaders & fragment shaders are my top topics (or more precisely areas).
I might create a video about webgpu in the future to introduce compute shaders.
However it may be difficult to fit on the screen nicely as wgsl is more verbose than glsl!
Grandmaster ! The best out here !
Your videos are amazing bro
I found it incredibly easy to understand, you expertly explained not only the goal but also what individual components did without making it confusing.
Although it's not shader, but could you tackle cube marching? (Procedural generation) Havent found someone that could explain it well yet.
This is so cool thank you
ai voice or not the effort that went into this video is obvious and it’s top notch. honestly reminds me of robert penner’s work back in the flash days.
Thank you, I hope you might consider produce "An introduction to RayTracing" in future.
This is amazing
We miss youuu!!! Hope you produce some new shader content 🎉
Ray marching is such a beautiful technique. Infinite objects with mathematical operations with low computational power.
Never thought I'd learn how to become a lightbender, but this video made it so easy! Universes beware.
Amazing Video
goh damn my new shaders course
Babe wake up, Kishimisu dropped a new video!
🔥 Next amazing video please!
Very Clear
Nice work
Brilliant!
That is awesome! :D
THANK you!
Pure gold.
wow you're back
Great content
This is magic.
You shouted out Leon Denise! He's the one who introduced me to raymarching. Really cool dude! He organises amazing demoparties and live-coding events with Cookie Collective, check them out if you're into all this stuff!
Funnily enough I was looking for a video to explain raymarching to me, been thinking of implementing in a project lately.
sooooooooooooooooo goood! i love it!!!!!!!!!!!!!!!
Thanks to you I may finally be able to find a hobby I can commit to
Lol this video would have helped me a lot about 2 years ago when I did my computer graphics module. I was struggling to find a good video that broke down Raymarching. Still better late than never, I can use this to revise that shit properly now!
TYVM. I subbed!
Id like to run shaders locally, since I expect it could give me better performance (I have integrated graphics and most shaders on Shadertoy lag my PC when in fullscreen) and more control over inputs. I'd love to make interactive shaders, but on Shadertoy rotating the camera requires clicking - I havent seen a single shader that lets you rotate the camera by just moving the mouse around without clicking.. I'd also like to keep Shadertoy's editor simplicity.
Does anyone know what my best options are? I'm not asking for a 100% premade tool btw, just some options (like libraries and languages well suited for this).
I would much appreciate video about volumetric clouds and implementation in Unity