Renderer Flow and Submission | Game Engine series

  Рет қаралды 36,712

The Cherno

The Cherno

Күн бұрын

Пікірлер: 59
@DRAGON_FullPower
@DRAGON_FullPower 5 жыл бұрын
I want that extra video. The documentation and understanding is really important
@__jan
@__jan 5 жыл бұрын
Extra video? Yes please!
@factorio5745
@factorio5745 5 жыл бұрын
Yes please
@ultimateskibum6813
@ultimateskibum6813 5 жыл бұрын
Agreed. To understand these concepts fully and to be able to apply them in our own innovative ways an explanation/diagram video would be very useful!
@MrKriegus
@MrKriegus 4 жыл бұрын
Has he ever made that video?
@APlethora
@APlethora 5 жыл бұрын
An extra video on the renderer architecture would be great!
@Puddlestomps
@Puddlestomps 5 жыл бұрын
Would love to see that extra video. Understanding the concept and design is just as important as seeing the code itself.
@Tehnikification
@Tehnikification 5 жыл бұрын
Nice video! Of course, we are interested in extra one
@brendanoconnell6007
@brendanoconnell6007 2 жыл бұрын
Hey Cherno. I'm a bit late to the party, but I just wanted to express my undying gratitude for the tremendous amount of love and effort you put into your work. I've always been fascinated by the idea of creating a game engine, but it never seemed like a realistic goal for me. You alone have turned dreams into realities, for me and many others. Cheers, Cherno! And thank you for all that you do. Looking forward to progressing further in this series and plan to become a Patreon partner soon.
@1Infinitive1
@1Infinitive1 5 жыл бұрын
Hey Cherno, I believe any function defined inside the class body is inlined by default so there's no need to mark it as such.
@vamidicreations
@vamidicreations 5 жыл бұрын
That might be a code idea. I think most of the people saw the code and can now see the reason behind your architecture. This will clear a lot =D
@kacperozieblowski3809
@kacperozieblowski3809 5 жыл бұрын
did you say heavy optimizations? oooh that excites me
@frankxu9483
@frankxu9483 5 жыл бұрын
I would love to see the extra video about the renderer architecture!
@mario7501
@mario7501 4 жыл бұрын
For some reason the ImGui rendering is messed up now if you drag around the window. Not sure what I did wrong
@mario7501
@mario7501 4 жыл бұрын
This seems to be caused by clearing the depth buffer. If you only clear the color buffer it work works fine
@xxdeadmonkxx
@xxdeadmonkxx 4 жыл бұрын
From my experience when you need multiple/crossplatform implementation for some classes like renderer it is better to use pImpl idiom instead of virtual classes to nullify all overheads on function calls every frame. Also if you need virtualization always set final keyword on implementation class to allow compiler to optimize some things.
@giancedrick507
@giancedrick507 4 жыл бұрын
how do you implement virtualization with the pimpl idiom?
@xxdeadmonkxx
@xxdeadmonkxx 4 жыл бұрын
@@giancedrick507 in case of different platform versions you don't need virtualization at all, just different cpp files for each platform with same methods, we just need one level of "virtualization" and don't need to re-override those methods
@giancedrick507
@giancedrick507 4 жыл бұрын
​@@xxdeadmonkxx Thanks! thought of the exact same thing, I just haven't come around in verifying yet.
@kariakistephen508
@kariakistephen508 3 жыл бұрын
Your a good teacher
@sam_is_people1170
@sam_is_people1170 3 жыл бұрын
thanks
@giancedrick507
@giancedrick507 4 жыл бұрын
"heavily optimize it" mhmm yesssss
@alekseymishin7134
@alekseymishin7134 4 жыл бұрын
Why do we define RendererAPI::s_API inside RendererAPI class instead of OpenGLRendererAPI? Or we can add Create method like in other renderer classes to set it to different api?
@kebluetugirafee7558
@kebluetugirafee7558 5 жыл бұрын
At first, I thought that RenderCommand is a redundant wrapper of RendererAPI. It took me a long time to understand why RenderCommand exists. It's another way to judge which underlying graphics API(OpenGL or D3D) should be used, a little different from the abstraction of classes like VertexBuffer. It avoids the switch statement in every specific rendering function, like DrawIndexed.
@JamesCubes-ne2iq
@JamesCubes-ne2iq 4 жыл бұрын
Literally no one in the world could count how many times Yan said right in the first 10 minutes
@DRAGON_FullPower
@DRAGON_FullPower 5 жыл бұрын
When you will reach at animation and texture, i hope that you will show us how to make an animation and how to put a texture to a 3D model
@BrianHarbauer
@BrianHarbauer 5 жыл бұрын
First time commenter, long time follower here! Thanks for this awesome series. When it comes time for textures, would you be able to have a tutorial of video playback on poly surface? I can barely find any information on this topic. If not in this series, then at some point? Thanks!
@DRAGON_FullPower
@DRAGON_FullPower 5 жыл бұрын
you forgot to put last video in playlist
@deadyanothaikiropool1chait713
@deadyanothaikiropool1chait713 5 жыл бұрын
That link to another class so crazy that my gcc couldn't compiled it ._. Look like api that worked for me gonna be looked so different ...so that I mix all into Renderer only and it's look very clean
@OmarChida
@OmarChida 5 жыл бұрын
Please the video about the rendering architecture. THANKS ♥️
@karanh
@karanh 5 жыл бұрын
After this series is done can you please do a series on Data Structures and Algorithms using C++?? There is no good series for that as of now. Would be appreciated!
@ultimateskibum6813
@ultimateskibum6813 5 жыл бұрын
Hey Cherno, for some reason my mouse button input code for Imgui in our current build is not working properly. It keeps giving me an unhandled exception every time I try and click the ImGui UI. I was wondering if this was due to an update in your ImGui repo or something I did wrong?
@Sf37li0
@Sf37li0 5 жыл бұрын
I have a very similar issue which happens mostly when I use the mouse scroll. Have you found the problem?
@valizeth4073
@valizeth4073 5 жыл бұрын
I get why you use the m_ prefix for member vars, but why s_
@1Infinitive1
@1Infinitive1 5 жыл бұрын
s is for static
@valizeth4073
@valizeth4073 5 жыл бұрын
@@1Infinitive1 ooh
@xxXSashaBardXxx
@xxXSashaBardXxx 4 жыл бұрын
Hello, Yan! I watched almost all your videos and you helped me to became a C++ developer at the first place. But in 29:53 you keep saying "Its a pointer to a class with no members, so its a 1 byte memory leak". I'm pretty sure you aware, then you create a vtable ( declaring at least one virtual function ), it need to be stored somewhere. Inside a class. So, sizeof an interface with bunch of virtual functions equals size of a pointer to that vtable, 8 bytes.
@Scotty-vs4lf
@Scotty-vs4lf 2 жыл бұрын
yeah the pointer is 8 bytes, but the memory leak isnt the size of the pointer. the memory leak is how much memory is allocated but not freed on the heap, which for a class with no members is 1 byte. The variable itself (the 8 byte pointer) isn't a memory leak
@barspozlu6220
@barspozlu6220 27 күн бұрын
@@Scotty-vs4lf I am just writing this in case someone reads it and gets confused, the memory allocated on the heap is the size of the OpenGLRendererAPI, that class has virtual functions which means a vtable, thus Its instances have a vpointer which is 8 bytes. So the memory leak is indeed 8 bytes not 1.
@totallynuts7595
@totallynuts7595 5 жыл бұрын
Midweek supplement pleeaase =)))
@roxferesr
@roxferesr 4 жыл бұрын
Is it just me or the RendererCommand class is redundant here? I might need to watch a couple of episodes more for it to make sense.
@sc5shout
@sc5shout 5 жыл бұрын
Is multithreading done in the paid version of the engine? I hugely consider buying it.
@pooria_garrett3020
@pooria_garrett3020 5 жыл бұрын
there's no paid version
@sc5shout
@sc5shout 5 жыл бұрын
@@pooria_garrett3020 Being a patreon is not for free :V
@jonathanmatai6235
@jonathanmatai6235 5 жыл бұрын
@@sc5shout As far as I know It's the same series, it's just that the videos are released one week earlier for the patreons
@pooria_garrett3020
@pooria_garrett3020 5 жыл бұрын
@@sc5shout It's not like there'll be some code remaining behind a paywall forever!
@sc5shout
@sc5shout 5 жыл бұрын
@@pooria_garrett3020 I know, but I have a multithreading hype now and there is no point to me to buy a repo that has not got it. That is why I am asking.
@konstantinseurer2653
@konstantinseurer2653 5 жыл бұрын
vulkan
@JackyTeerapat
@JackyTeerapat 5 жыл бұрын
pls. Make a new vdo about linked list c++
@amerthebest88
@amerthebest88 5 жыл бұрын
Problem is that none of this applies to nextgen rendering when using API like vulkan, directx 12 or metal
@0xhex
@0xhex 5 жыл бұрын
We need assembly language tutorial please 😭💔
@chris_burrows
@chris_burrows 5 жыл бұрын
whut
@graph2001
@graph2001 Жыл бұрын
ChatGPT3.5 Generated content: - The transcript is part of a game engine series tutorial by China. - The video focuses on the critical part of the rendering architecture, the draw call, which is the command to actually draw something on the screen. - To render a 3D world, there are a few components needed, including a vertex array, a shader, information about the environment, and the material of the object to be rendered. - The tutorial covers how to submit geometry, meshes, and materials to render a scene and how to optimize it. - The video also covers API and clear color concepts in game development.
@rosalineden3654
@rosalineden3654 3 жыл бұрын
An extra video on the renderer architecture would be great!
TIMESTEPS and DELTA TIME | Game Engine series
28:06
The Cherno
Рет қаралды 48 М.
CAMERAS and How They Work | Game Engine series
38:54
The Cherno
Рет қаралды 41 М.
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 22 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
Don’t Choose The Wrong Box 😱
00:41
Topper Guild
Рет қаралды 62 МЛН
Renderer API Abstraction | Game Engine series
47:17
The Cherno
Рет қаралды 55 М.
The Only Database Abstraction You Need | Prime Reacts
21:42
ThePrimeTime
Рет қаралды 232 М.
The Genius Way Computers Multiply Big Numbers
22:04
PurpleMind
Рет қаралды 194 М.
Introduction to Rendering | Game Engine series
28:42
The Cherno
Рет қаралды 63 М.
Refs, Scopes and Smart Pointers | Game Engine series
24:55
The Cherno
Рет қаралды 36 М.
Weak Pointers in C++ (std::weak_ptr)
17:25
The Cherno
Рет қаралды 61 М.
How We Made a Game in 72 HOURS using OUR OWN GAME ENGINE
13:31
The Cherno
Рет қаралды 55 М.
How do Video Game Graphics Work?
21:00
Branch Education
Рет қаралды 4,1 МЛН
Faster than Rust and C++: the PERFECT hash table
33:52
strager
Рет қаралды 613 М.
Gitlab DELETING Production Databases | Prime Reacts
17:27
ThePrimeTime
Рет қаралды 362 М.
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 22 МЛН