Starting our 2D Renderer | Game Engine series

Starting our 2D Renderer | Game Engine series

The Cherno

4 года назад

28,858 Просмотров

Ссылки и html тэги не поддерживаются


Комментарии:

@vamidicreations
@vamidicreations - 18.10.2019 15:39

yea!!!

Ответить
@josuebarros-desenvolvedorw2490
@josuebarros-desenvolvedorw2490 - 18.10.2019 15:44

C++ or Java for Mobile/Desktop Game Development?

I know that C++ and C# is the best for consoles...

Ответить
@abdullahamrsobh
@abdullahamrsobh - 18.10.2019 16:40

in visual studio 2019, u don't need visual assist to implement the methods just hover over the method name a little icon will appear to click on it and it will ask you what you want to do.

Ответить
@XMickleXx
@XMickleXx - 18.10.2019 20:43

ur the best <3 plz make more video plzzzzzzzzzz

Ответить
@cankarkadev9281
@cankarkadev9281 - 19.10.2019 00:30

How would I achieve for example a rectangle without any fill? So I wanted to write multiple functions that can draw rectangles, filled and not filled, as well as circles, also in a filled and not filled version.

Ответить
@AgentM124
@AgentM124 - 19.10.2019 02:24

Cherno just opened my eyes on what classes actually are. OOP is a lie. The world is just a simulation. Were all doomed. MORTY GET INTO THE TIME MACHINE.

Ответить
@oreostastegoods
@oreostastegoods - 19.10.2019 05:44

Any plans to make a layered/bucketed/stateless renderer? Me no like all this state :[

Ответить
@cheako91155
@cheako91155 - 19.10.2019 07:31

When I implement this for Hazel-rs I plan on using 0 for the vertex stride and no index buffer. Using gl_VertexID and hard coded vertex data instead.

Ответить
@hokhyt
@hokhyt - 19.10.2019 17:46

Haven't caught up with the series yet, but come here to drop a like and a very big THANK to the Cherno.

Ответить
@JosefdeJoanelli
@JosefdeJoanelli - 21.10.2019 03:53

I still don't quite understand why you split the class into a "super static" class with the methods and then that struct with all the state data. Why wouldn't you just put state data into the class as member variables like usual? I'm a C++ beginner so maybe I'm just missing something obvious...

Ответить
@aliasif8398
@aliasif8398 - 21.10.2019 22:00

Why do you not prefer dual monitors?

Ответить
@KennyTutorials
@KennyTutorials - 29.11.2019 17:43

Why need always write in method parameter 'const' ... const glm::vec3 pos, const glm::vec2 scale ... ?

Ответить
@DamageSoftware
@DamageSoftware - 26.01.2020 17:03

Awesome! I love how simple the API is starting to look.
Keep up the good work Cherno!

Ответить
@MuscIeBomber2021
@MuscIeBomber2021 - 19.09.2020 13:48

Is there a reason why s_Data isn't defined as a Scope<Renderer2DStorage> instead of a raw pointer?

Ответить
@mms0537
@mms0537 - 23.11.2020 21:00

Matplotlib cpp for Graphing Memory in Hazel. That's easy I guess

Ответить
@averysumner1369
@averysumner1369 - 18.08.2021 03:53

A year late, but I really don’t understand the point of using a static struct in the main namespace for storage rather than making the 2D renderer a Singleton class with storage.

Ответить
@sam_is_people1170
@sam_is_people1170 - 19.12.2021 14:03

thanks!

Ответить
@milo20060
@milo20060 - 20.08.2022 16:11

It's good that you explain things like why using static etc..

Ответить
@6px
@6px - 22.01.2023 10:55

How can you be sure if c++ does not use any allignment or padding on the QuadVertex struct., if it is padded, then the vertexbuffer will not get the expected array right?

Ответить
@graph2001
@graph2001 - 12.05.2023 12:56

ChatGPT3.5:
The transcript is a video or text discussing the development of a 2D renderer for a game engine. The speaker explains the importance of creating a separate sandbox 2D layer as a preparation for implementing 3D rendering. They emphasize the need for a clean and simple environment to test new features, especially in C++ where memory leaks and other issues need to be monitored. The speaker mentions tools like Visual Studio's diagnostic tools for memory tracking and profiling but suggests creating a dedicated Windows application for better control. They also encourage viewers to contribute and learn by implementing the concepts in their own engines.

The speaker discusses the need for profiling and memory tracking in the context of the engine they are building. They explain that metrics like rendering speed and memory usage are important to evaluate the performance of the 2D renderer. They mention the possibility of implementing font rendering and other features in the future. They briefly mention Patreon as a way to support their series and mention exclusive videos for subscribers.

The transcript then dives into the technical details of the 2D renderer development. The speaker shows the code for the sandbox 2D class and explains their intention to keep it simple. They mention improvements they plan to make, such as optimizing the upload uniform float function and reducing dependencies on external libraries like OpenGL. They discuss the concept of static functions and object-oriented programming, highlighting that what matters are the actual OpenGL calls and data management.

The speaker introduces the idea of a "render 2D" class or namespace and explains the flow of the renderer, including functions like "begin scene," "submit primitives," and "end scene." They emphasize that the renderer's flow can be anywhere in the codebase and that classes and member functions are just organizational tools.

They demonstrate how to draw a quad using the 2D renderer, discussing the parameters needed for the draw function (position, size, and color). They mention the importance of using vector classes for position and color. The speaker continues with the implementation details, discussing shaders, binding, and drawing with the vertex array. They mention the need for a shutdown function to manage memory explicitly.

The transcript concludes by stating that the next step in the development of the 2D renderer will involve controlling position, size, and rendering multiple objects. The speaker invites viewers to stay tuned for future videos where they will explore these topics in more detail.

Ответить