An introduction to Raymarching

Sdílet
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

Komentáře • 255

  • @kishimisu
    @kishimisu  Před 5 měsíci +129

    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!

    • @SpiritBladeFox
      @SpiritBladeFox Před 5 měsíci +2

      Your tutorials are so useful and inspiring thank you for teaching me so much!!

    • @codeunited5905
      @codeunited5905 Před 5 měsíci +3

      You are one hell of a talented person. Hope you find a good employment soon!

    • @onetwothree2617
      @onetwothree2617 Před 5 měsíci +3

      Your tutorials are fantastic, thank you. I like the AI voice over.

    • @Carlosdreaming
      @Carlosdreaming Před 5 měsíci +2

      These tutorials are amazing! Very well explained and with lots of visuals that help a lot! All the best!

    • @likrecelineation
      @likrecelineation Před 5 měsíci +2

      Can you do a video on how to add lights, shadows, and specular reflections to the scene when you do?

  • @VerdASMR
    @VerdASMR Před 5 měsíci +58

    10/10, kishimisu you are a brilliant shader artist and an equally brilliant communicator of information. Please keep sharing that gift with us ❤🙏

  • @krzysztofwolski9156
    @krzysztofwolski9156 Před 3 měsíci +15

    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;

    • @benxtan
      @benxtan Před měsícem

      I as just about to post this correction. Thanks!

    • @jacobosaldarriaga4820
      @jacobosaldarriaga4820 Před 26 dny

      Thank you! I was going really confused for a while, thougth of changing a bunch of stuff except that, makes sense.

  • @psenej
    @psenej Před 5 měsíci +36

    OMG THE RETURN !!

    • @Kabodanki
      @Kabodanki Před 5 měsíci

      The algorithm choosed him

  • @Lavamar
    @Lavamar Před 5 měsíci +5

    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.

  • @danycorona6788
    @danycorona6788 Před 5 měsíci +3

    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!

  • @2_Elliot
    @2_Elliot Před 5 měsíci +6

    Man, talk about underrated! Here from your previous video, can’t wait for your next. Keep up the good work!

  • @seanloughran6714
    @seanloughran6714 Před 5 měsíci +3

    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!

  • @MashJDW
    @MashJDW Před 5 měsíci +2

    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!

  • @CathodeRayKobold
    @CathodeRayKobold Před 5 měsíci +5

    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.

  • @Darkensses
    @Darkensses Před 5 měsíci +10

    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 :)

  • @NeverduskX
    @NeverduskX Před 4 měsíci +1

    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.

  • @grey8_
    @grey8_ Před 5 měsíci +4

    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! 🎉

  • @gdthatbigderp2375
    @gdthatbigderp2375 Před 5 měsíci +2

    The legends said that some day, kishimisu will return!

  • @sIippo
    @sIippo Před 2 měsíci

    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.

  • @MysteryPancake
    @MysteryPancake Před 5 měsíci +11

    Fantastic!! I especially like the diagram at 25:18, it's a very interesting way to visualise it

  • @hekuli
    @hekuli Před 5 měsíci

    You really have the best tutorials on the topic. Very well done explaining complex topics in easy to understand terms.

  • @nathanlebon5813
    @nathanlebon5813 Před 4 měsíci

    GOAT Tier learning material. Thank you a lot!
    I'm seriously thinking about subscribing to your Patreon after 2 tutorials.

  • @BarneyCodes
    @BarneyCodes Před 5 měsíci +1

    Another great video! I've been meaning to explore raymarching for ages, so this might be the push I need to get started!

  • @thepurplbanana
    @thepurplbanana Před 5 měsíci +32

    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.

    • @kimmyera174
      @kimmyera174 Před 4 měsíci

      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 ^^

  • @Elmo-uu3cb
    @Elmo-uu3cb Před 5 měsíci +5

    Wow amazing! Thank you for sharing all those great lessons 😎🔥

  • @loriennasarre
    @loriennasarre Před 5 měsíci

    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!

  • @duhdiggitydan
    @duhdiggitydan Před 5 měsíci

    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.

  • @arnetriesyoutube
    @arnetriesyoutube Před 5 měsíci

    I really like how much info even the description has!

  • @randomystic218
    @randomystic218 Před 3 měsíci

    This is an absolute gem. Please keep making more of such videos

  • @PledgeBass
    @PledgeBass Před 4 měsíci

    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.

  • @pekka8605
    @pekka8605 Před 4 měsíci

    10/10 Nothing to add. Very clear yet concise explanation and visualizations.

  • @Nosikas
    @Nosikas Před 5 měsíci

    Oh my gosh, you're back! These videos are phenomenal.

  • @januskane1978
    @januskane1978 Před 5 měsíci +12

    I enjoy the AI voiceover, it's calm and to-the point! Very nice!

  • @Veptis
    @Veptis Před 5 měsíci +1

    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.

  • @SuboptimalEng
    @SuboptimalEng Před 5 měsíci +1

    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!

  • @juanloutech2864
    @juanloutech2864 Před 5 měsíci

    Very, very interesting and very well explained! Thanks for this introduction to the huge world of shaders!

  • @puntig.1187
    @puntig.1187 Před 5 měsíci

    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.

  • @NoBody-pf2nv
    @NoBody-pf2nv Před 13 dny

    Absolutely incredible! I hope to see more videos on shaders from you! 🎉

  • @motbus3
    @motbus3 Před 5 měsíci

    This is absolutely amazing.
    Please keep doing it!

  • @marvinkruger4559
    @marvinkruger4559 Před 5 měsíci +2

    Thank you so much for another wonderful video!!

  • @neokortexproductions3311
    @neokortexproductions3311 Před měsícem

    Thank you!
    You inspired me to get back into coding and creating generative art, looking forward to future tutorials🤝

  • @JakeDownsWuzHere
    @JakeDownsWuzHere Před 5 měsíci

    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

  • @4.0.4
    @4.0.4 Před 5 měsíci +2

    Absolutely amazing content. I can vouch for The Art of Code too, his videos are long but very easy to follow.

  • @Not_Even_Wrong
    @Not_Even_Wrong Před 5 měsíci

    Amazing, awaiting the next videos eagerly!

  • @MrBerserkPoo
    @MrBerserkPoo Před 5 měsíci

    im so glad you're making more content

  • @rimonsade-jd3id
    @rimonsade-jd3id Před 5 měsíci

    That is beyond great content. Truly mesmerizing.

  • @Cigam_HFden
    @Cigam_HFden Před 5 měsíci +7

    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!

  • @shinomitsu7798
    @shinomitsu7798 Před 5 měsíci

    Thank you. Can't wait for the next video

  • @viezegast1305
    @viezegast1305 Před 5 měsíci

    Absolute unit of a channel

  • @miyu1424
    @miyu1424 Před 5 měsíci +2

    Finally! I'm so excited!

  • @dumbo8260
    @dumbo8260 Před 5 měsíci

    nicely done dude. can't wait for the volumetric tutorial

  • @futurebypatrick
    @futurebypatrick Před 5 měsíci +1

    Great video with great presenting format. Really appreciate. I am not coder at all, but really interested in this type of experimenting now. 😁😁

  • @erevanayen
    @erevanayen Před 5 měsíci

    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.

  • @augnix888
    @augnix888 Před 5 měsíci

    Loved the tutorial!

  • @razu1976
    @razu1976 Před 23 dny

    This is such a good video. Well done.

  • @bloom945
    @bloom945 Před 5 měsíci

    Absolutely legendary video. Subbed.

  • @foxxify1
    @foxxify1 Před 5 měsíci +6

    This is so cool. I love the exploration into noncartesian space. You can really do so much with just a few lines of code.

  • @10bokaj
    @10bokaj Před 4 měsíci

    nice explination, one of the better I have seen

  • @michaelcheverie7579
    @michaelcheverie7579 Před 5 měsíci

    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!

  • @LuigiElettrico
    @LuigiElettrico Před 5 měsíci

    Simple yet amazing.

  • @migueldc6845
    @migueldc6845 Před 2 měsíci

    Really enjoying your videos! And have recommended them in my developers circle (:

  • @mlecz
    @mlecz Před 5 měsíci

    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 !

  • @vovos00
    @vovos00 Před 5 měsíci

    It helped me a lot!! thank you so much.

  • @aref2268
    @aref2268 Před 4 měsíci

    Aah shade, here we go again
    Now I have an awesome toy to procrastinate with.
    This tutorial is amazing🔥

  • @NedCollyer
    @NedCollyer Před 22 dny

    Incredible! Thank you :)

  • @mercantilistic
    @mercantilistic Před 3 měsíci

    This is completely bananas thank you!

  • @hordorsok
    @hordorsok Před 5 měsíci

    Oh man, you are finaly here thax for video!

  • @ahsan2649
    @ahsan2649 Před 5 měsíci

    The only raymarching tutorial I ever understood.

  • @morqanic
    @morqanic Před 4 měsíci

    YESSSS ANOTHER VIDEO THANK YOU!!!!

  • @bengt-goranpersson5125
    @bengt-goranpersson5125 Před 5 měsíci

    Thank you kishimisu!

  • @redsprites5216
    @redsprites5216 Před 5 měsíci

    'Now' I subscribe. Love this!

  • @JimmyBrandZ
    @JimmyBrandZ Před 4 měsíci

    Wooooow!... Just the thing i've been looking for. 😲

  • @erikjohnson9112
    @erikjohnson9112 Před 5 měsíci +1

    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).

    • @kishimisu
      @kishimisu  Před 5 měsíci +1

      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!

  • @leonardvanduuren8708
    @leonardvanduuren8708 Před 5 měsíci

    Grandmaster ! The best out here !

  • @dacool_boe4071
    @dacool_boe4071 Před 5 měsíci

    Your videos are amazing bro

  • @jazzhar
    @jazzhar Před 5 měsíci +1

    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.

  • @raulcasquinha
    @raulcasquinha Před 5 měsíci

    This is so cool thank you

  • @somewhere-else
    @somewhere-else Před 5 měsíci

    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.

  • @simonviit4982
    @simonviit4982 Před 5 měsíci +1

    Thank you, I hope you might consider produce "An introduction to RayTracing" in future.

  • @RemoteAnimations
    @RemoteAnimations Před měsícem

    This is amazing

  • @thailonlucasart
    @thailonlucasart Před 10 dny

    We miss youuu!!! Hope you produce some new shader content 🎉

  • @someguy1428
    @someguy1428 Před 5 měsíci

    Ray marching is such a beautiful technique. Infinite objects with mathematical operations with low computational power.

  • @bitblit
    @bitblit Před 5 měsíci

    Never thought I'd learn how to become a lightbender, but this video made it so easy! Universes beware.

  • @eli123ry
    @eli123ry Před 2 měsíci

    Amazing Video

  • @JunicoNRC
    @JunicoNRC Před 5 měsíci

    goh damn my new shaders course

  • @ivanmoltini926
    @ivanmoltini926 Před 5 měsíci

    Babe wake up, Kishimisu dropped a new video!

  • @aimkata
    @aimkata Před měsícem

    🔥 Next amazing video please!

  • @lkhprime
    @lkhprime Před 3 měsíci

    Very Clear

  • @prathampatel6357
    @prathampatel6357 Před 5 měsíci

    Nice work

  • @ethanwimsett
    @ethanwimsett Před 4 měsíci

    Brilliant!

  • @Jellyjam14blas
    @Jellyjam14blas Před 5 měsíci +1

    That is awesome! :D

  • @absence9443
    @absence9443 Před 2 měsíci

    THANK you!

  • @Fikretov
    @Fikretov Před 29 dny

    Pure gold.

  • @andreicn0
    @andreicn0 Před 5 měsíci

    wow you're back

  • @user-nq5un4zn8e
    @user-nq5un4zn8e Před 5 měsíci

    Great content

  • @a1000joys
    @a1000joys Před 5 měsíci

    This is magic.

  • @gaeel330
    @gaeel330 Před 4 měsíci

    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!

  • @sleepymushroom9403
    @sleepymushroom9403 Před 5 měsíci

    Funnily enough I was looking for a video to explain raymarching to me, been thinking of implementing in a project lately.

  • @camellia1264
    @camellia1264 Před 10 dny

    sooooooooooooooooo goood! i love it!!!!!!!!!!!!!!!

  • @BlueDog15391
    @BlueDog15391 Před 5 měsíci

    Thanks to you I may finally be able to find a hobby I can commit to

  • @cyberbemon
    @cyberbemon Před 5 měsíci

    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!

  • @Psychx_
    @Psychx_ Před 5 měsíci

    TYVM. I subbed!

  • @IgneousGorilla
    @IgneousGorilla Před 3 měsíci

    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).

  • @hldfgjsjbd
    @hldfgjsjbd Před 3 měsíci +1

    I would much appreciate video about volumetric clouds and implementation in Unity