Комментарии:
yea!!!
ОтветитьC++ or Java for Mobile/Desktop Game Development?
I know that C++ and C# is the best for consoles...
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.
Ответитьur the best <3 plz make more video plzzzzzzzzzz
Ответить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.
Ответить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.
ОтветитьAny plans to make a layered/bucketed/stateless renderer? Me no like all this state :[
Ответить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.
ОтветитьHaven't caught up with the series yet, but come here to drop a like and a very big THANK to the Cherno.
Ответить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...
ОтветитьWhy do you not prefer dual monitors?
ОтветитьWhy need always write in method parameter 'const' ... const glm::vec3 pos, const glm::vec2 scale ... ?
ОтветитьAwesome! I love how simple the API is starting to look.
Keep up the good work Cherno!
Is there a reason why s_Data isn't defined as a Scope<Renderer2DStorage> instead of a raw pointer?
ОтветитьMatplotlib cpp for Graphing Memory in Hazel. That's easy I guess
Ответить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.
Ответитьthanks!
ОтветитьIt's good that you explain things like why using static etc..
Ответить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?
Ответить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.