Creating an Interior Mapping Shader using Unity's Shader Graph - Game Dev Sandbox

แชร์
ฝัง
  • เผยแพร่เมื่อ 24 ธ.ค. 2024
  • I've been fascinated by technique used on the windows in Marvel's Spider-Man and Forza Horizon 4 so I set out to learn how these games achieved the effect and to see if I could build an Interior Mapping Shader myself using Shader Graph in Unity. Here's how it went...
    Flexible Grids: • How To Get A Better Gr...
    Making UI Look Good: • Making UI That Looks G...
    Dynamic Depth of Field: • Dynamic Depth of Field...
    --------------------------------------------------------------------------------
    Interior Mapping in Forza Horizon 4: www.gamasutra....
    Rendering Real rooms without Geomety: www.gamasutra....
    Interior Mapping Shader Showcase: www.alanzuccon...
    Windows in Games Case Study: simonschreibt....
    --------------------------------------------------------------------------------
    Want to support the channel?
    ▶️ Help fund new episodes by joining the Patreon - / gamedevguide
    Get the GameDevGuide mug and other merch! ☕ - www.gamedevguid...
    Use these links to grab some cool assets from the asset store:
    Get the Must Have Assets! - assetstore.uni...
    Free Unity Assets! - assetstore.uni...
    New on the Asset Store! - assetstore.uni...
    Top Paid Asset Store Packages - assetstore.uni...
    Asset Store Partners - assetstore.uni...
    --------------------------------------------------------------------------------
    Socials and Other Stuff:
    • Subscribe - www.youtube.co...
    • Join the Discord - / discord
    • Twitter - / gamedevguideyt
    • Facebook - / gamedevguideyt
    • Instagram - / gamedevguideyt

ความคิดเห็น • 315

  • @Danidev
    @Danidev 4 ปีที่แล้ว +950

    This was really interesting, good job man!

    • @yousifragab479
      @yousifragab479 4 ปีที่แล้ว +96

      Why you don't try and add this to Karlson (or you can't do that)

    • @supriyakhanra9068
      @supriyakhanra9068 4 ปีที่แล้ว +11

      @@yousifragab479 why u bully him ?

    • @yousifragab479
      @yousifragab479 4 ปีที่แล้ว +27

      @@supriyakhanra9068 Not bullying, he made a game called Karlson because someone challenged him and said that he can't make a 3d game and since then many people comment on his videos like this lol. I'm just joking, I do love his videos.

    • @rklehm
      @rklehm 4 ปีที่แล้ว +5

      You should try it... (You know to finish it, don't you?)

    • @MicMan2710
      @MicMan2710 4 ปีที่แล้ว +5

      @@yousifragab479 It would look pretty good in Karlson. Once he developed that he can also just throw it into Milkman Karlson as well.

  • @reezuleanu1676
    @reezuleanu1676 4 ปีที่แล้ว +133

    Local hero teaches game designer wannabes how to pull off rad effects. Thank you sir.

  • @erz3030
    @erz3030 4 ปีที่แล้ว +259

    Wow, this was way more impressive than I expected. You could flesh this out a bit and sell this as an asset I bet. Keep up the excellent content, cheers :)

  • @dawdledev
    @dawdledev 4 ปีที่แล้ว +100

    Awesome tutorial! I really appreciate that you both explain the shader and include a full view of the shader graph so it can easily be recreated! The struggle to recreate a shader using nothing but gifs of the finished product and maybe some code that doesn't work anymore is the worst part of game dev.

  • @markscott6927
    @markscott6927 3 ปีที่แล้ว +17

    Back in the day when I worked for a larger game publisher, central tech did a presentation on several shader options for the XBox and PS3. What they called a ' depth shader' is what we have here. This was ~2004. After playing with all our nice new shaders we were immediately informed that they were too expensive to use.
    And such is the life of a game artist

    • @luluskuy
      @luluskuy 3 หลายเดือนก่อน +2

      Senior game artist:
      "I am limited by the technology of my time, but one day you will figure this out"

    • @IAmSoMuchBetterThanYou
      @IAmSoMuchBetterThanYou 3 หลายเดือนก่อน +1

      ​@@luluskuyExactly. Cheers

  • @KentHambrock
    @KentHambrock 4 ปีที่แล้ว +2

    There's free drop in resources on the Unity Asset Store for this, but I love that you built it from scratch and showed the process for those of us who want total control over the process.

  • @ZackLondres
    @ZackLondres 4 ปีที่แล้ว +2

    i made a new playlist just because of this video called "stuff i should put in a game" Just seeing a practicle demonstration of this helps understand ideas that are within ones grasp. Thank you for reminding me of that.

  • @avatar098
    @avatar098 4 ปีที่แล้ว +5

    I'm a software developer by trade, but video game developers have always inspired me. Y'all are literally the intersection between art, story telling, and computer science. So I've been dabbling a bit in video game development, and man, what you guys do is NOT easy. Much respect for content creators like yourself!

    • @alexpaww
      @alexpaww 4 ปีที่แล้ว

      Sadly, professional video game developers are chronically underpaid and overworked. Not a great industry to work in.

  • @Crystan
    @Crystan 4 ปีที่แล้ว +20

    I was today years old when I realised Spiderman didn't have rooms rendered behind those windows. This is an amazing technique, and one which I would love to make use of in future projects!

    • @stylie473joker5
      @stylie473joker5 2 ปีที่แล้ว

      I remember seeing someone on reddit posting about how Forza horizon 4 Devs had attention to detail when they modeled the interior of building windows he'd be disappointed if he knew the truth XD

  • @graffiti9145
    @graffiti9145 2 ปีที่แล้ว

    It adds life and a soul to the game's ambience

  • @rickloyd8208
    @rickloyd8208 3 ปีที่แล้ว

    It took me a year to find a time and watch this video saved in my downloads. I do not regret that since I am learning shaders in details and I can better understand how powerful this trick is. Thank you for another great video!

  • @Hamentsios10
    @Hamentsios10 4 ปีที่แล้ว +2

    Things like that are what makes game developing so much interesting and fun to mess with these innovations are so interesting to come up with even in smaller scales. it does make it more difficult than challenging to accomplish but it adds more magic to it and makes everything so interesting.

  • @timothysnave
    @timothysnave 3 ปีที่แล้ว

    That's really cool. Just a note - the pacing in these sandbox videos is, IMO, way better than your other videos (from what I've seen so far). Sometimes I can't keep up visually in your other videos. This weird concept exploration format is gold, though.

  • @GameOnBudget
    @GameOnBudget 2 ปีที่แล้ว +1

    Want this city you made 😍

  • @coderious4568
    @coderious4568 3 ปีที่แล้ว +2

    That is true dedication, great job!

  • @dimitribobkov-rolandez5729
    @dimitribobkov-rolandez5729 4 ปีที่แล้ว

    I'm just gonna borrow this for a second... nice video man!

  • @ml5111
    @ml5111 4 ปีที่แล้ว +2

    This is a brilliantly presented video on a really interested topic, deserves so many more views!

  • @andrewpiltenko9432
    @andrewpiltenko9432 4 ปีที่แล้ว +135

    People install Windows to play games, this guy installs games to play with windows.

    • @coffee.table6587
      @coffee.table6587 4 ปีที่แล้ว +3

      🤨

    • @lucianorubio9129
      @lucianorubio9129 4 ปีที่แล้ว

      there's a little bit of analogy in your randomness

    • @AndrewDaniele87
      @AndrewDaniele87 4 ปีที่แล้ว

      @@lucianorubio9129 Windows is like a window to windows

  • @MertKirimgeriGameDev
    @MertKirimgeriGameDev 4 ปีที่แล้ว +4

    That's a nice one! For a few months ago, when I was creating my version of this tutorial, I followed similar steps to your thought process. Happy to see it kinda converges with others like a common sense :)

  • @GameDevEFacil
    @GameDevEFacil 2 ปีที่แล้ว

    This shader looks really amazing, good job

  • @flyingjudgement
    @flyingjudgement 3 ปีที่แล้ว

    Waoo you actualy cover complicated topics and you do them realy well Thank you. Your works are realy amazzing, cant wait to watch what pics you interest.

  • @mohhammadmohsin7
    @mohhammadmohsin7 4 ปีที่แล้ว +1

    Man u make some real tutorials...... Love it 😍

  • @RiversJ
    @RiversJ 3 ปีที่แล้ว

    Thank you for this video, i won't be using this for windows but i will be using the basic techniques for something else that will be far better than my initial implementation!

  • @crapgames6795
    @crapgames6795 4 ปีที่แล้ว +3

    Holy crap, this is amazing! God bless the algorithm for recommending this.

  • @jacobmartincontreras
    @jacobmartincontreras 4 ปีที่แล้ว

    This is the type of thing that makes this game next gen

  • @AstroSamDev
    @AstroSamDev 4 ปีที่แล้ว +1

    nice work! good job!

  • @gone8792
    @gone8792 4 ปีที่แล้ว +1

    Bro, the fact that I was just looking for a video like this 3 days ago is crazy lmao

  • @thedeveloper2771
    @thedeveloper2771 4 ปีที่แล้ว +2

    Thank you for sharing it with the community! Great job!

  • @DagothDaddy
    @DagothDaddy 4 ปีที่แล้ว +23

    Forget "No loading between buildings." Or "you can climb those mountains." Give me "See that window? You can look through it."

  • @piotrw1745
    @piotrw1745 4 ปีที่แล้ว

    Awsome video! I love this type of video, which shows the whole creative process, showing problems encountered and searching for information.

  • @brandonz404
    @brandonz404 4 ปีที่แล้ว

    You spent a ton of time on this obviously and this is really interesting. Great work!(:

  • @anandsuralkar2947
    @anandsuralkar2947 3 ปีที่แล้ว

    Man u r opening my eyes to AAA level game graphics

  • @RoseIllo
    @RoseIllo 4 ปีที่แล้ว +1

    Fun fact! One of the examples you gave for blackout windows, Cities Skylines, does actually use a technique similar to this, with the exception that it only shows the floor inside the window, that fades into the distance. So you have interiors, but the interiors are all empty wooden floors and nothing else.

  • @Sevendogtags
    @Sevendogtags 4 ปีที่แล้ว +1

    Nice! It really adds a lot to a simple environment.

  • @ThousandAnt
    @ThousandAnt 4 ปีที่แล้ว +1

    This is sooooo cooooooool! Great work Matt! I always loved this technique and you've done a great breakdown here.

  • @TNTCProject
    @TNTCProject 4 ปีที่แล้ว

    Incredible analysis and final result! Love it. Goooooood job!

  • @harveyduenas8745
    @harveyduenas8745 4 ปีที่แล้ว

    Woohoo! Nice job. Now I'm off to create my own interior mapping shader, and hopefully learn from your tribulations. Keep up the awesome content!

  • @mohammadsadeghlavaie5560
    @mohammadsadeghlavaie5560 4 ปีที่แล้ว

    you know how much we love you?

  • @MicahTheManiac
    @MicahTheManiac 4 ปีที่แล้ว

    This is very cool. I wish that more games would use this technique, it seems like something like this isn't that resource intensive given that Spider-Man for the PS4 uses it.

  • @ThomasJeff4s0n
    @ThomasJeff4s0n 4 ปีที่แล้ว

    I was JUST thinking about how to do this same thing! Great video! Thanks!

  • @tehuster
    @tehuster 4 ปีที่แล้ว

    Great video dude, very informative bit also fun to watch!

  • @shivin12
    @shivin12 4 ปีที่แล้ว

    Really like your channel ,please post more often

  • @safrio802
    @safrio802 4 ปีที่แล้ว +1

    Wuaoooo sin palabras.... Excelente tutorial me sentí emocionado por el shader y el resultado logrado..

  • @connor4440
    @connor4440 4 ปีที่แล้ว +1

    Great tutorial as always, you have some of the highest quality game dev content on youtube. Another suggestion that I would think would be helpful, and go along with your strategy/city builder game theme that comes up in some of your videos, would be a tutorial on how to create a 3D based grid map system, Where buildings/units/roads are snapped to a grid when placed. This would be a great niche to hit, as the current tutorials for this on youtube are either poorly made or use an inefficient method to create this. Cheers

  • @CodingWithUnity
    @CodingWithUnity 4 ปีที่แล้ว

    Great info as always! I really enjoyed the watch!

  • @neenaw
    @neenaw 4 ปีที่แล้ว

    Your videos are so next level 🤯

  • @AaditDoshi
    @AaditDoshi 4 ปีที่แล้ว +4

    Great video! I appreciate your efforts! I just wish you went into a little bit more detail about why something went wrong, and how changing it fixed it, an example is around the 4:15 mark

  • @juanquireyes6703
    @juanquireyes6703 4 ปีที่แล้ว

    must be nice to be a genius like you

  • @Jewalify
    @Jewalify 4 ปีที่แล้ว +1

    This is so cool. It only works in 2D. In VR this wouldn't work, you would be able to tell that it's a flat surface but it would still kind of look like it had depth

  • @jojoyoustudio
    @jojoyoustudio 4 ปีที่แล้ว

    You have so professional game devs and ideas ♥

  • @YognaughtAce
    @YognaughtAce 4 ปีที่แล้ว

    wow, that is incredible

  • @freeju2001
    @freeju2001 4 ปีที่แล้ว

    This is amazing !

  • @waymanharris1284
    @waymanharris1284 4 ปีที่แล้ว

    Wow, good job! This is nice, thanks for sharing.

  • @marcocacone
    @marcocacone 4 ปีที่แล้ว +1

    You are amazing! Thank you for sharing your knowledge

  • @siavashaliyari3458
    @siavashaliyari3458 4 ปีที่แล้ว

    Awesome work man

  • @ImSkully
    @ImSkully 4 ปีที่แล้ว

    extremely interesting approach, great video!

  • @xqrdot
    @xqrdot 4 ปีที่แล้ว

    That is incredible! Thank you for that video, it was really interesting to watch

  • @Th3Shnizz
    @Th3Shnizz 4 ปีที่แล้ว

    This is incredibly cool. Thank you for sharing!

  • @AmanKumar-tu2og
    @AmanKumar-tu2og 4 ปีที่แล้ว

    This is really interesting and intriguing!! Thanks for the amazing explanation.

  • @Stxhen
    @Stxhen 2 ปีที่แล้ว

    beautiful, good job

  • @tajaloe
    @tajaloe 4 ปีที่แล้ว +34

    My brain: render out a room in one image with a depth map. Use those textures on a model and use inverse camera mapping to displace using a parallax node. idk if that works lmao I haven't tried it, but someone should. Probably not as performance Friendly though, but hey, you get per object depth information at the sub pixel level, so that's cool I guess

    • @KusalGunasekera
      @KusalGunasekera 4 ปีที่แล้ว +17

      That's exactly what I was thinking, we could improve the illusion of depth specially for the things that stick out. But then again, if you're using it for something that will whizz by at 250kmph then there's no point XD. Maybe for something like spider man, they can replace the faked room with a full 3d room once he gets close enough to the window

    • @stan_p
      @stan_p 4 ปีที่แล้ว +1

      you can get a real struggle doing this, cauz you adding things you shouldn't. Depth map cant be baked on the UV of cubemap, so this is first problem to solve if you about to mix those pipelines.

    • @lukabrasi001
      @lukabrasi001 3 ปีที่แล้ว

      @@KusalGunasekera honestly, in Forza Horizon 5, the normal cubemap approach works really well, things look 3D enough with a little trickery

  • @Nico-jc7zr
    @Nico-jc7zr 4 ปีที่แล้ว

    this is really cool

  • @SirFency
    @SirFency 4 ปีที่แล้ว

    Well done sir.

  • @magneticanimalism7419
    @magneticanimalism7419 4 ปีที่แล้ว

    This was really interesting to watch, I'm highly unlikely to ever use it but it was awesome. Thank you.

  • @piromansadran
    @piromansadran 4 ปีที่แล้ว

    bruh thats amazing

  • @AlexTuduran
    @AlexTuduran 3 ปีที่แล้ว

    Nicely done.

  • @ChupachuGames
    @ChupachuGames 4 ปีที่แล้ว

    Fantastic video, thanks so much!

  • @David-gu8hv
    @David-gu8hv 2 ปีที่แล้ว

    Pretty impressive

  • @simulacrasimulation9070
    @simulacrasimulation9070 4 ปีที่แล้ว

    Beautiful

  • @adamking816
    @adamking816 4 ปีที่แล้ว

    nice work !

  • @cudiedgar
    @cudiedgar 4 ปีที่แล้ว

    wow what a quality video, thank you

  • @Dogedevnet
    @Dogedevnet 4 ปีที่แล้ว

    Awesome, my brain is screaming out of confusion but in a good way, great job :D.

  • @javimania111
    @javimania111 4 ปีที่แล้ว

    In 2005 this technique was used in a game called Trackmania Sunrise, in buildings in the bay enviroment. The effect didn't look as good as in current games, but it's still quite surprising considering the time.

  • @sanderoneil6998
    @sanderoneil6998 4 ปีที่แล้ว

    this tripped me out bro

  • @nolanjoseph1553
    @nolanjoseph1553 4 ปีที่แล้ว

    I actually first noticed this when playing on Naboo in Battlefront 2. Interesting stuff!

  • @judgaming3041
    @judgaming3041 4 ปีที่แล้ว

    Wow, this is really interesting.

  • @damiangonzalez_esp
    @damiangonzalez_esp 4 ปีที่แล้ว

    Excelent video! Thank you for sharing this knowledge

  • @GameWorkflow
    @GameWorkflow 4 ปีที่แล้ว +1

    Really cool stuff. It would be cool to do some kind of comparison test with this way and the more traditional method. I'm curious to see the performance of this technique vs the simpler one.

  • @GrandHighGamer
    @GrandHighGamer 4 ปีที่แล้ว +4

    Nice. The front glass should be part of the shader though, no need for all that overdraw.

  • @monawoka97
    @monawoka97 4 ปีที่แล้ว +2

    I would LOVE to see a video on projection decal shaders. I know that HDRP has these built in, but I would love to have it decomposed in shader graph so I could do some more custom processing on the texture that gets projected.

  • @julienheijmans
    @julienheijmans 4 ปีที่แล้ว +1

    Really nice video !
    I was thinking that something that could be cool and give it a sense of increased fidelity would be to display some curtains that are displayed with a smaller parralaxe offset in front, on the sides of the windows. That would give the illusion that the player can see what is behind the curtains. (Said curtains should then be in a different texture, not integrated in the cubemap, of course)

  • @MostafaA1s
    @MostafaA1s 4 ปีที่แล้ว

    that was very cool

  • @michelveraliot
    @michelveraliot 4 ปีที่แล้ว

    Wooow this is awsome thank you mate

  • @crankyvi
    @crankyvi 2 ปีที่แล้ว

    bravo man.

  • @gamurarandrei2657
    @gamurarandrei2657 4 ปีที่แล้ว

    this is crazy!

  • @MarcelGrolms
    @MarcelGrolms 4 ปีที่แล้ว +1

    Amazing! Would also be interessted in how the script works to get the cubemaps for the rooms. I already learned so much from your videos, thank you!

    • @GameDevGuide
      @GameDevGuide  4 ปีที่แล้ว +1

      It's literally the editor script shown in the video. That's all there is to it. It uses the default Camera.RenderCubemap feature as I mentioned.

  • @senaesul3128
    @senaesul3128 4 ปีที่แล้ว

    Because light from the sun is much brighter than any light coming from the rooms, it would be cool to see the textures darken in certain conditions that involve competing light sources.
    Side note: I really feel like total reflection on windows (when viewed from a steep angle) is super unused. There were many cases in the video where I thought, "In real life, that would probably be impossible to see into because of the reflection".

  • @bip901
    @bip901 4 ปีที่แล้ว

    Amazing!

  • @pranshu05
    @pranshu05 3 ปีที่แล้ว +1

    Awesome video I will add it to my game (because Dani wouldn't)

  • @swagguy47
    @swagguy47 4 ปีที่แล้ว +1

    The Crew 2 does this effect really nicely.

  • @onlyindia1193
    @onlyindia1193 ปีที่แล้ว

    Nice good job❤

  • @DARK_AMBIGUOUS
    @DARK_AMBIGUOUS 2 ปีที่แล้ว +1

    1:29 how did the room change???

  • @TheKevphil
    @TheKevphil 2 ปีที่แล้ว

    There is a UE5 demo floating around which uses parallax mapping to "populate" the interior of rooms in a mostly static street scene, so I came here to try to understand it. (Too much math and scripting; my head hurts!) But your result is excellent!

  • @lukezhou6349
    @lukezhou6349 4 ปีที่แล้ว +1

    I guess how the interior mapping shader works is by intersecting camera rays with imaginary cubes behind the plane. Moreover, I think that by pulling the camera out of the window and un-squishing all the geometry may produce better results (which means that you can't simply use a cubemap anymore).

  • @NotASpyReally
    @NotASpyReally 4 ปีที่แล้ว

    So Cool.

  • @AL2009man
    @AL2009man 4 ปีที่แล้ว

    Geez, imagine a combo of procedure generated rooms and this shader. It would be amazing!

  • @chuukoart3869
    @chuukoart3869 4 ปีที่แล้ว +1

    I'm pretty sure you can just use a reflection probe to bake a cubemap from a scene as long as the objects are static. That's what I did for a game I worked on and it saves as exr which I could just open up in ptohoshop and edit

  •  2 ปีที่แล้ว

    mindblowing O_O

  • @lightningparadox
    @lightningparadox 4 ปีที่แล้ว

    Genius!

  • @xboxseriousgamer
    @xboxseriousgamer 4 ปีที่แล้ว

    Amazing