How do games render their scenes? | Bitwise

Sdílet
Vložit
  • čas přidán 18. 05. 2024
  • I'm a professional programmer who works on games, web and VR/AR applications. With my videos I like to share the wonderful world of programming with everyone!
    How do games render their scenes? We'll discuss how oldschool 8-bit games rendered their scenes and gradually move our way towards modern 3D rasterized games. You'll learn about rasterization, anti-aliasing, shadow mapping and more!
    A lot has happened the last year in my life regarding moving, a new job and health issues, which is why I have not been able to make a lot of videos, but all is fine again now and I chose to work part-time so that I can spend more time on making videos more regularly! :)
    I also created a Patreon page on which I release e.g. source code and have a tier option that includes having a personal chat with me!
    My patreon: / digidigger
    References
    OpenGL Game Rendering Tutoria; How Shadow Maps work • OpenGL Game Rendering ...
    8-bit guy • How "oldschool" graphi...
    Doom WASN'T 3D! • Doom WASN'T 3D! - Digr...
    3D Graphics: Crash Course Computer Science • 3D Graphics: Crash Cou...
    How real time computer graphics and rasterization work • How Real Time Computer...
    Doom engine wikipedia en.wikipedia.org/wiki/Doom_en...
    Doom engine techniques qzx.com/pc-gpe/doom.txt
    Doom engine source code review fabiensanglard.net/doomIphone...
    Doom wiki doomwiki.org/wiki/Doom_render...
    Rasterization in one weekend tayfunkayhan.wordpress.com/20...
    Rasterization a practial implementation www.scratchapixel.com/lessons...
    Ray casting tutorial permadi.com/1996/05/ray-casti...
    Music in in outro:
    Besus y Abrazor - Rolemusic: freemusicarchive.org/music/Ro... available under a Creative Commons Attribution license creativecommons.org/licenses/...
  • Hry

Komentáře • 507

  • @unvergebeneid
    @unvergebeneid Před 3 lety +409

    0:09 to be fair, Asteroids looked a lot better back then than what's shown here. It used vector graphics instead of pixels, so this low-res capture doesn't do it justice!

    • @aXYZGaming
      @aXYZGaming Před 3 lety +15

      Truth++

    • @energeticyellow1637
      @energeticyellow1637 Před 2 lety +20

      True. That game actually looks really really good on a vector monitor.

    • @hpt08
      @hpt08 Před 2 lety

      It looked especially good on the horizontal twin table top set up that you could find in some cafes. CRT monitor probably smoothed out a lot and enriched the look.

    • @unvergebeneid
      @unvergebeneid Před 2 lety +6

      @@hpt08 again, the CRT didn't have to smooth out anything. It didn't have pixels but instead, the electron beam drew the shapes directly on the phosphor layer. It was basically infinite resolution!

    • @gabrielwildman
      @gabrielwildman Před 2 lety

      @@Noel-yh4xp I grew up playing an old hand-me-down vectrex. They use an oscilloscope as a display and doesn't use polygons or pixels. Instead it uses vector based graphics.

  • @Frostyflytrap
    @Frostyflytrap Před 3 lety +154

    Hey, props for taking such a broad topic with a long history and condensing it in into a concise overview easy for anyone to understand.

  • @Ashona
    @Ashona Před 3 lety +767

    HE’S ALIVE. THE MAN IS ALIVE. It’s 4am when I got the notification, but this video is more important than sleep

    • @DigiDigger
      @DigiDigger  Před 3 lety +181

      Please go back to sleep :')

    • @Ashona
      @Ashona Před 3 lety +86

      @@DigiDigger hold up, halfway done watching the video. Learning how to Ray Cast
      Edit: well I’m done the video, see you in another 9 months!

    • @blueninja012
      @blueninja012 Před 3 lety +7

      4am for me too, I got very excited when I saw the notification

    • @blueninja012
      @blueninja012 Před 3 lety +4

      will wait until morning to watch though

    • @DigiDigger
      @DigiDigger  Před 3 lety +28

      @@Ashona I have started to work part-time in order to make more videos so I will upload more regularly now! :) (in my description I have explained now why I have been unable to post a lot of videos)

  • @HerrFlachpfeife
    @HerrFlachpfeife Před 2 lety +37

    Cels are the transparent sheets used in traditional 2D animation. The individual pieces of 2D art are painted on cels and then multiple cels are layered on top of each other to form a single image. Cel shaders are named this way, because they emulate the look of hand drawn toons.

  • @lndozois
    @lndozois Před 2 lety +90

    Also. The “cel” from “cel shading” is not named because the quantized shades form “cells”, but is named after the cartoon shading it was meant to emulate. The shading painted, by hand, onto cellophane sheets or “cels” used in cartoon production.

  • @PetersKotstube
    @PetersKotstube Před 2 lety +238

    Nice to see you're back!

  • @electromaniacal
    @electromaniacal Před 2 lety +64

    8:35 Cel shading comes from traditional animation. From Wikipedia: "The name comes from cels (short for celluloid), clear sheets of acetate which were painted on for use in traditional 2D animation."

    • @elecblush
      @elecblush Před 2 lety +12

      Yes, this is one of many strange assumptions and false statements in this video.
      It's a "ok" video, and a good general summary but the research is flaky, especially in terminology and several technical details, that are mentioned in various comments here.

    • @electromaniacal
      @electromaniacal Před 2 lety +2

      @@elecblush Agreed.

    • @jmalmsten
      @jmalmsten Před 2 lety +1

      As a fan of Cel animation I too was a bit bewildered by his strange use of the term.

    • @HerbaMachina
      @HerbaMachina Před 2 lety +2

      @@elecblush Cel shading is just a slightly different term in 3D graphics... It's not a false statement or anything. You're making way to big a deal about this.
      Besides you could use the same logic to justify the name for the original style of animation techniques on hand drawn 2D animation.

    • @foodank_atr817
      @foodank_atr817 Před 2 lety +1

      @@HerbaMachina no. Its named so because of the shading technique's resemblance to animation cels. It's not an industry specific use of the term to refer to units in a color gradient.
      The original pixel art of 2d sprites isn't "cel shading" because while colored and animated like original 2d animation, it doesn't _resemble_ it, which is what cel shading is named for. Resembling old school animation cels.

  • @Chadderbox
    @Chadderbox Před 3 lety +43

    I love when you upload. I always learn something from these videos!

    • @DigiDigger
      @DigiDigger  Před 3 lety +17

      I hope you'll at least get a bit wiser!

  • @cho4d
    @cho4d Před 2 lety +4

    One significant change that was omitted was when fixed function pipelines went away and we started witing our own shader code. A lot of cool graphical effects came about because of this change. I think it was around 2005 but that's just from memory.

  • @evgenius123_
    @evgenius123_ Před 2 lety +80

    "It's just a bunch of triangles"
    *showing game footage, where rendering based on quads, not traiangles*

    • @izzieb
      @izzieb Před 2 lety +8

      This is the comment I was looking for.

    • @elecblush
      @elecblush Před 2 lety +11

      @Coder Husk The early sega VR games (as shown in the footage) used quads instead of triangles.

    • @KillahMate
      @KillahMate Před 2 lety +5

      @Coder Husk The game shown as illustration (Virtua Fighter) is one of the earliest 'fully' 3D games, and both in its original arcade version and its PC ports it used an unusual custom 3D accelerator chip design that was based on quads. One of those quirky things that happen when a market is new and everyone is trying everything. It's just funny that of all the 3D accelerated games, DigiDigger picked one of the few that _don't_ use triangles 🙂

  • @aweik4937
    @aweik4937 Před 3 lety +6

    It’s always a party when you upload. Awesome
    stuff, keep it up!

  • @proud22beme
    @proud22beme Před 2 lety +1

    its amazing to see you posting again! your videos always get me so excited!
    the fact that doom uses a tree structure for level data/rendering is really cool!
    thanks for going into so much detail in your videos, they are always such a joy to watch~

  • @MDK2k
    @MDK2k Před 2 lety +47

    It's a great video, but there is some misinformation. 3D graphics cards wasn't the thing that enabled true 3D graphics. Quake was released before those and it was a true 3D game with texture maps. A lot of other games used polygons before that as well. some were fully 3D, but were flat shaded. Others were a mix of 2D backgrounds and 3D characters. The game Outcast was released a few years after the first 3D graphics cards and it didn't utilize them at all. However it was one of the most beautiful games of that time. It used Voxels for the terrain and textured polygons for the characters, buildings etc. It also had things like anti-aliasing, depth of field, bump maps, character shadows. It was game ahead of it's time. So no 3D graphics cards (or 3D accelerators if we want to be accurate) didn't enable true 3D. It just made it a lot faster.
    It's also a bit ironic that the game shown on screen is Virtua Fighter. That game had a PC release in 1995 and it didn't use 3D cards.

    • @Brickolas94700
      @Brickolas94700 Před rokem +1

      Soryy but in fact it's not "true" 3D, it's always a 2D screen in fact ^^

  • @searchformeaning6089
    @searchformeaning6089 Před 2 lety

    Your videos are a fantastic introduction to understand how game mechanics are implemented! I've been trying to understand these mechanics for years, but your videos are the first that really allowed me to understand what's going on. Thank you!

  • @aiarch
    @aiarch Před 2 lety +1

    you make all these difficult details look so easy to understand 👍

  • @Sorry-bw6qw
    @Sorry-bw6qw Před 3 lety +30

    This channel is pure gold! Glad to see that you still upload!

  • @abhinav3478
    @abhinav3478 Před 2 lety

    This video is gold. This will remain in our heart forever

  • @Yunidude
    @Yunidude Před 2 lety

    You explained this very well. I knew nothing about this and now I feel like I understand the basics!

  • @Robbe1912
    @Robbe1912 Před 2 lety

    Very good video! You provided a great overview of the different aspects of realtime rendering in a digestible format.

  • @roxferesr
    @roxferesr Před 2 lety +1

    Even though I already know this stuff, I still love watching this kind of videos!

  • @Codes97
    @Codes97 Před 2 lety

    Thank you so so much for sharing your knowledge and research in a way that everyone can understand! It would be great to have another video of Game Plunge.

  • @coolbrotherf127
    @coolbrotherf127 Před rokem +1

    As a computer science student studying 3D graphics, if only it were this simple as what is in this video. There's so much to learn, so so much more.

  • @3DSage
    @3DSage Před 2 lety

    So beautifully explained! :)

  • @elecblush
    @elecblush Před 2 lety +48

    09:20 - Missed opportunity talk about baked vs real time rendered shadows. Two really important phases in the history of game rendering.
    Baked shadows where shadow maps applied to the textures beforehand, to avoid having to do this in real time.
    Would have loved to see more info on shaders, and some of the more advanced renderpasses we see in modern games as well (some of the techniques that have progressed graphics from the N64 age of graphics to the graphics we see today)
    The video is an ok sweep through a few rendering methods and concepts, but you are missing some important milestones and you deep dive into things a bit randomly. It would have been better if you made a firm commitment to either go deep on the technical structure in each of the parts, or made it more of a history sweep with links to other deep dives. Also as you see from the comments have quite a few details and terminology wrong.
    Please don't take my criticism the wrong way. I liked the video, but felt there was room for improvement, especially since the idea of doing such a video (a history of rendering techniques) is great.

  • @wafi5576
    @wafi5576 Před 2 lety

    Hope this series continues.. It is really insightful

  • @djessy5001
    @djessy5001 Před 3 lety +2

    I don't understand how you can have so little subscribers with the quality of your explanations, I'm sharing 🙏

  • @aetheldan
    @aetheldan Před 3 lety +1

    Love the video! Thanks for uploading again

  • @duckcluck123
    @duckcluck123 Před 2 lety

    This video is mind-blowingly good. I'm a very visual learner so I heavily appreciate all the visual examples and diagrams

  • @raghurajnair
    @raghurajnair Před 2 lety

    The explanation is so technically elegant and concise. I had to sub immediately. Well done!

  • @seccentral
    @seccentral Před 3 lety +1

    i absolutely loved it ! thanks for making this video 😁😁

  • @cineblazer
    @cineblazer Před 3 lety

    Yay! So glad this series is still going!

  • @DhampireGirl12
    @DhampireGirl12 Před 2 lety

    Love this video. So good and easy explanation of such complex topic.

  • @godnyx117
    @godnyx117 Před 2 lety

    A really amazing and informative video! Thanks a lot man!

  • @ChozoSR388
    @ChozoSR388 Před 2 lety +22

    The Sega Saturn game you showed while explaining triangles actually used quads, not triangles.

  • @mrburns366
    @mrburns366 Před 2 lety

    i knew most of this but still enjoyed watching this. subbed!

  • @gregs6403
    @gregs6403 Před 2 lety

    This is a fantastic video. Thanks so much for uploading and sharing your knowledge.

  • @Voidload
    @Voidload Před 2 lety

    Thank you very much for the detailed vid. I suck at graphics programming, but understanding the system and theory has really helped me

  • @martinzeng4168
    @martinzeng4168 Před 11 měsíci

    excellent video, gave me a lot of insights into how the game industry have developed over the years. props to you.

  • @EvanOfTheDarkness
    @EvanOfTheDarkness Před 2 lety +31

    No. Confusingly enough "8-bit art style" refers to the "8-bit systems" art style, mainly the NES, that had 16 colors, and could only use 4 of them in each 16x16 tile. Meanwhile the "16-bit art style" is *actually* 8-bit because the "16-bit systems" like the SNES could usually display 256 different colors (or close to) on the screen.

  • @n00b67
    @n00b67 Před 2 lety

    Just new to your channel but really loving the informational videos. Took me only a few seconds to subscribe and like because I could already tell it was quality content. Keep up the good work!

  • @LEGnewTube
    @LEGnewTube Před 3 lety

    Love the content! Excited for more vids!

  • @edrius154
    @edrius154 Před 2 lety

    Thank you for this concise yet helpful video regarding rendering in general. I feel like a render expert now 😂

  • @bunggo9914
    @bunggo9914 Před 2 lety

    thanks man, these videos are very educational and insightful

  • @theblubus
    @theblubus Před 2 lety

    Fantastic overview! Definitely subscribing :)

  • @thisrandomdude2846
    @thisrandomdude2846 Před 3 lety +1

    Yooooooooo, you're alive! So glad you uploaded :D
    The video is amazing, as expected :)

  • @vibecheck663
    @vibecheck663 Před 2 lety

    This taught me a lot, thank you! :)

  • @javisartdesign
    @javisartdesign Před 2 lety

    cool to se the evolution. Thanks to share it!

  • @guts-7210
    @guts-7210 Před 2 lety

    Hey this is a really good and well put together video

  • @eyalbaum1254
    @eyalbaum1254 Před 2 lety

    love your explanations!

  • @Blueberry-rg1ll
    @Blueberry-rg1ll Před 3 lety +13

    YES! He is back!

  • @mackansven3656
    @mackansven3656 Před 2 lety

    Damn such a good informative video, totally love it

  • @nee3320
    @nee3320 Před 2 lety

    Very good and informative video!

  • @user-sd4qd3lp9h
    @user-sd4qd3lp9h Před 3 lety +1

    Great video, very inspiring, thanks!

  • @BlindBison
    @BlindBison Před rokem

    Incredibly good video, thanks!

  • @philipcox5859
    @philipcox5859 Před 3 lety +1

    Great vid man keep it up!

  • @al-han3804
    @al-han3804 Před 2 lety

    Never noticed that data structure and tree data sorting would be this useful! Glad i learned them in college

  • @not_j.
    @not_j. Před 2 lety

    Quality Content! Just SUBSCRIBED!

  • @captainchumly960
    @captainchumly960 Před 2 lety

    Very well put!

  • @meshackmaina4247
    @meshackmaina4247 Před 2 lety

    very informative, didn't know alot of terms and meani ngs

  • @DarkGT
    @DarkGT Před 3 lety

    That's was cool story, very informative and easy to understand.

  • @EpicDst
    @EpicDst Před 3 lety

    Thanks for still trying to explore new topics and making deep and informative content ! I guess it requires a lot of work, and it seems motivation isnt always here (well maybe its is again). Don't give up on this, there is a lot of ppl who would enjoy your content ! Don't focus on the numbers or how it spreads, but the quality of what you create ! It will always bring you positive feedback, from the community but also from yourself ! Great video btw, always simple enough for ppl to understand it, but with enough deep for us to crave for more !

  • @coins_png
    @coins_png Před 3 lety

    Thanks for the epic content.
    I will enjoy this.

  • @antwimichael8709
    @antwimichael8709 Před 2 lety

    This is the type of channel we live to subscribe to

  • @danielroos5993
    @danielroos5993 Před 2 lety

    Learned a lot and entertaining 💯

  • @afrosamuri05
    @afrosamuri05 Před 2 lety

    I'll have to watch this more than once.

  • @MaoSeraphine
    @MaoSeraphine Před 2 lety

    looking forward for your next video

  • @originalnick473
    @originalnick473 Před 3 lety

    OMG!!! Finally! Love your vids.

  • @green-retina
    @green-retina Před 3 lety +1

    Really love your channel!

  • @rahmaari332
    @rahmaari332 Před 2 lety

    this is awesome, am enjoying this video

  • @nothingnothing3211
    @nothingnothing3211 Před 2 lety

    I like these explained in basics educational materials.

  • @TigreDemon
    @TigreDemon Před 2 lety

    You made me understand shading and cel shading in less than 2 minutes lmao, thanks

  • @dersps5905
    @dersps5905 Před 3 lety +1

    That introduction really made me laugh!

  • @AirsickDolphin
    @AirsickDolphin Před 3 lety

    Very nice summary!

  • @etdiabolus5806
    @etdiabolus5806 Před 2 lety

    Better than my whole semester on computer graphics. Cheers

  • @vima9046
    @vima9046 Před rokem

    Beautiful video!

  • @gahowell1
    @gahowell1 Před 2 lety

    This video got me subscribed. Love your style. I learned a lot with this video. Been gaming since 1986 :)

  • @bouncycow3010
    @bouncycow3010 Před 3 lety +13

    LADS! HES BACK! The legend has returned to reunite us for a few precious minutes, but will soon return to the void again for an indefinite amount of time.

  • @baraahalabi
    @baraahalabi Před 2 lety

    Amazing vid... loved it

  • @magopoligonal7349
    @magopoligonal7349 Před 2 lety

    Really cool, as a 3D artist those knowledge are essential

  • @matsv201
    @matsv201 Před 2 lety +4

    There is a few errors i the video. Most notable... 8 bit era didnt have 8 bit grapics. It had only 2 bit grapics partitioned into sprites out of a pallet of usualy 16, some Times 32 colors.
    Even the 16 bit era mostly didnt have 8 bit grapics, but mostly 4 bit grapics put of a pallet of typically 16.
    Its also worth saying that most older consoles and also some computers in that era did have a 2d grapics chip that was driving the grapics. There was in most cases no cpu involvment in showing the grapics..
    It was really mostly PC that lacked that ability... sort of. Pc the cpu renderad pixel by pixel. This pushed pc cpu to have more preformance partly to offset this disadvantage. This was why 3d exploded on pc.

  • @Ben-gh1qf
    @Ben-gh1qf Před 3 lety +1

    Thank you for that great video

  • @user-xe2mn5jl3p
    @user-xe2mn5jl3p Před 2 lety

    Perfect job!Wait video about v/g history!

  • @musikalniyfanboichik
    @musikalniyfanboichik Před 2 lety

    love your videos, kepp it up mate

  • @GraySlicerAnimations
    @GraySlicerAnimations Před 2 lety

    This was quite a pleasant surprise

  • @Niv54niv
    @Niv54niv Před 2 lety +1

    Awesome video! Waiting for the next one on Ray Tracing!

  • @joey199412
    @joey199412 Před 2 lety +1

    Your videos are amazing.

  • @raghavendraj3758
    @raghavendraj3758 Před 2 lety

    Thanks for valuable information Sir...

  • @srikanthemani9528
    @srikanthemani9528 Před 2 lety

    i learned something new and that is fascinating as i want to be a game programmer. It's really need hard work and patience to create different parts of a game.

  • @nd3324
    @nd3324 Před 2 lety

    Glad I found this channel 😃

  • @ScorgeRudess
    @ScorgeRudess Před 3 lety +7

    OMG, long time no see, this channel is pure gold, I wish to patreon you in order for you to create more content... it is extremely good

  • @suplays
    @suplays Před 2 lety

    Amazing vid! YT recommendations are Goldmines most times 🎉 Subbed and will be waiting for ray tracing video

  • @lester2dev
    @lester2dev Před 2 lety +27

    Binary Space Partitioning is not even close to what you've shown in the video. It's about compressing surfaces into a binary tree depending on their intersections, thus saving only equation parameters of the surface equation instead of actual vertex positions. What you show is more similar to an octree partitioning, but in 2d.

    • @MrDavibu
      @MrDavibu Před 2 lety +1

      I was so confused by that part. I really thought I remembered BSPs wrongly.
      But I think it's called quadtree in 2D.

    • @lester2dev
      @lester2dev Před 2 lety +2

      @@MrDavibu it's fine, since I remember it not that correct as well. To be more precise it's the way planes are sorted depending on what side they are in relation to the normal of the chosen plane. That's why it's called "space partitioning".

  • @ashpjangde
    @ashpjangde Před 2 lety

    One of the best video in the world of gaming history

  • @jithinmbr7636
    @jithinmbr7636 Před 2 lety

    Awesome information ❤❤❤

  • @ifstatementifstatement2704

    Raycasting was such a great hack!

  • @stevenyeh4975
    @stevenyeh4975 Před 2 lety

    I noticed that you are not a frequent video uploader. I just want to tell you that what you sharing is pure gold. Looking for more of your quality videos.

    • @ryonagana
      @ryonagana Před rokem

      yup, his example is based on quake/half-life/source engine BSP

  • @adriftinsleepwakefulness7039

    Such a great video

  • @nabajyotibhattacharjee8871

    I recently enrolled in a cs course, able to understand your video well.. Nice content..

  • @seubmarine5347
    @seubmarine5347 Před 3 lety

    Glad to see you back :D

  • @ramsharma6425
    @ramsharma6425 Před 2 lety

    Love the content man 🔥🔥🔥