GRASS RENDERING in OpenGL // Code Review

GRASS RENDERING in OpenGL // Code Review

The Cherno

1 год назад

116,261 Просмотров

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


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

@TristanWalter
@TristanWalter - 12.10.2023 14:57

i think the pointer star belongs next to *window like this, since if you have multiple pointers you‘d have to repeat the * too

Ответить
@ultimatesoup
@ultimatesoup - 09.09.2023 12:09

I took a look at hazel. It's pretty neat but has a long ways to go. I would suggest having an components class with all static elements though as opposed to singletons because that way you can control their initialization and destruction

Ответить
@ultimatesoup
@ultimatesoup - 09.09.2023 12:07

You have a pretty decent knowledge of graphics. Check out the book real time rendering to get even better as well. I like it cause there is literally no code...it just describes the methods used. You're getting pretty good though. I'll send you my engine one of these days...it's over 100k lines though cause I've been working on it for years

Ответить
@chromosundrift
@chromosundrift - 02.07.2023 04:58

Great way you handled the idea of program structure for such a small program. As code grows, the benefits of structure grows. I think if you make this point clearly, viewers can see how excess abstraction is problematic and yet tackle the perhaps intended question of how to restructure as the code base grows.

Ответить
@rbaleksandar
@rbaleksandar - 15.06.2023 18:46

Great video. And through it I discovered the existence of RenderDoc. Thanks a bunch! :D

Ответить
@TigranK115
@TigranK115 - 08.05.2023 05:27

I appreciate how you peek into various files to show implementation or data formats

Ответить
@jeevan1874
@jeevan1874 - 02.05.2023 11:33

Where to learn these advanced topics?

Ответить
@shanewalsch
@shanewalsch - 12.03.2023 15:56

What font is that?

Ответить
@re4727
@re4727 - 09.02.2023 16:21

Im sitting here, trying to learn C++ as a senior developer, and your viewers be like:

"Hi I am xy, Im 4 years old, and I just wrote something without any study that &re will never be able to. I hope you like it :3 "

Ответить
@36lan79
@36lan79 - 21.12.2022 14:06

Shader and mesh actually should be heap allocated because they are assets. In this project it is not important because almost all code is located in main function, but i think it would be cool to implement at least simple asset managing system. Also, yes, they should be smart pointers.

Ответить
@__hannibaal__
@__hannibaal__ - 09.12.2022 02:24

This code and view i had seen 20 years ago; when i start with OpenGL and my theses on Topology of Fractal geometry.

Ответить
@sflashy6850
@sflashy6850 - 30.11.2022 18:19

wish you review projects that has written in c#

Ответить
@masterlaplace
@masterlaplace - 06.11.2022 13:39

Ok

Ответить
@oystercatcher943
@oystercatcher943 - 22.10.2022 23:26

Just seen first few mins. This is super impressive for a 15 year old. Especially in C++ and after a years(!) of Java

Ответить
@mahkhi7154
@mahkhi7154 - 05.10.2022 21:48

The Reason your Father wants you to Write a game using OpenGL is because he doesn't have a Game Engine.
Who is Unity now? The Devil.
Who's PlayStation 6 / VR 6DoF?

Ответить
@laenprogrammation
@laenprogrammation - 05.10.2022 18:35

i'm not quite sure passing 64 bits of data by reference create increased performance at all. I mean it will likely be evaluated using a pointer (except if your function gets inlined), so you are still passing a 64 bit value anyway

Ответить
@vegetableball
@vegetableball - 05.10.2022 15:44

When I was 15, the best thing I know was calculus.

Ответить
@neordinator
@neordinator - 05.10.2022 14:57

"Card Review" :)

Ответить
@thehambone1454
@thehambone1454 - 03.10.2022 18:45

Do you in general try to avoid heap allocation?

Ответить
@thehambone1454
@thehambone1454 - 03.10.2022 18:40

I learned a lot from this! I might submit something at some point!

Ответить
@mudlee1058
@mudlee1058 - 03.10.2022 08:24

15 years old, my gosh. I dont even remember what kind of toy I was playing with at that age...

Ответить
@MK-bx8xv
@MK-bx8xv - 02.10.2022 11:46

I always ditch hungarian notation, even for members. I just append a '_' at the end of the member (e.g. u32 fragement_shader_id_).

Ответить
@kirillarionov123456
@kirillarionov123456 - 01.10.2022 20:50

Please credit the Acerola! He did actually make a video about grass rendering. And from what we can see apart from the implementation the ideas are the same!

Ответить
@zami001001
@zami001001 - 29.09.2022 05:27

its worth noting that trig functions on GPU specifically, at least for sin, cos and tan, are done on the hardware layer directly and end up being only slightly more expensive than something like multiplication. This is of course vastly different that what would occur if you ran the same calculation on CPU which does not have a dedicated hardware instruction for those.

Ответить
@sureshrawal7913
@sureshrawal7913 - 26.09.2022 09:28

I have a question how I can start with opengl c++ like you is there any video how to set up openGL and c++ in pc

Ответить
@awmachanel2816
@awmachanel2816 - 25.09.2022 18:15

Thank you tNice tutorials really helped!!!!!!!!!!!!

Ответить
@zhabiboss
@zhabiboss - 25.09.2022 00:40

The thumbnail 💀

Ответить
@tilaktankasali8756
@tilaktankasali8756 - 24.09.2022 18:41

Hi, i want the c++ software to my computer please help me to find it, can you give the link to download the software

Ответить
@RAMANKUMARGCEBIT
@RAMANKUMARGCEBIT - 24.09.2022 15:40

wow

Ответить
@Coughyyee
@Coughyyee - 24.09.2022 14:30

Theme?

Ответить
@TheGameMakeGuy
@TheGameMakeGuy - 24.09.2022 00:45

Imagine a function being able to fail and the compiler Not forcing you to match that, weird

Ответить
@johanrojassoderman5590
@johanrojassoderman5590 - 23.09.2022 13:59

I generally like having the asterisk next to the type, which is nice when you want to define functions without naming the parameters:
void operation(type*, type*)

It's not as nice when trying to declare multiple pointers at once though.
int* a, * b, * c

In the last case I tend to just write the pointer next to the name.

Ответить
@vasaaviarion
@vasaaviarion - 22.09.2022 14:36

Sometimed I forget how late I started programming. Im 23 and wrote my first line of code a couple months ago. Its still quite cryptic to me, but I hope to one day make and release my own video game

Ответить
@aarorissanen930
@aarorissanen930 - 21.09.2022 15:50

Cherno touched grass?!?

Ответить
@vijendranayak3457
@vijendranayak3457 - 21.09.2022 12:41

sa here

Ответить
@NordicFrog
@NordicFrog - 20.09.2022 21:24

type* gang here.

Ответить
@treyquattro
@treyquattro - 20.09.2022 00:02

structs aren't heap allocated in C++? News to me! You can allocate anything from the heap. A struct is semantically identical to a class other than the default access control (everything is public by default in a struct, private in a class). Similarly you can allocate classes on the heap, the stack or static memory in C++. I know you know this, I just found the statement misleading, probably because you were trying to identify differences with default Java (or C#) behavior?

Ответить
@peronohaynada
@peronohaynada - 19.09.2022 21:57

looks like some "mistakes" may be cause the developer is used to java that primitive types are initialized when instantiating a class. I'm a java dev too so I don't see anything wrong in their code lol

Ответить
@Photon852
@Photon852 - 19.09.2022 15:24

is there a way to make a vulkan/opengl application outside the windows/default main window?

Ответить
@tobiasnielsen578
@tobiasnielsen578 - 19.09.2022 14:44

Walks on the screen, showing grass... Naah.... Not realistic enough for me :P

Ответить
@Goodwarrior12345
@Goodwarrior12345 - 19.09.2022 01:51

hey I'm middle gang! Seemed like the most intuitive way to type in pointers to me when I was learning about them so I stuck with it.

Ответить
@chill_edits1924
@chill_edits1924 - 18.09.2022 02:52

TNice tutorials just made it so clear to thank you so much

Ответить
@flowmanSF
@flowmanSF - 18.09.2022 00:35

What color scheme are you using?

Ответить
@user-sl6gn1ss8p
@user-sl6gn1ss8p - 17.09.2022 22:59

remarkably little roasting on this one

Ответить
@stburton00
@stburton00 - 17.09.2022 14:56

For the SSBO update you may see some speedup if you orphan the data (see: OpenGL buffer orphaning) before the grass positions upload, instead of using glBufferSubData.

As written, with glBufferSubData (or glBufferData without orphaning) it could force a sync between the CPU and GPU as the pending GPU draw commands that read from the buffer must complete before the new buffer upload to ensure that the memory is not stepped on while it's in flight, since all draw commands are sourcing from the same buffer (if I understood the code correctly).

Ответить