How Do Games Render So Much Grass?

  Рет қаралды 342,374

Acerola

Acerola

Күн бұрын

Пікірлер: 585
@spwwww8258
@spwwww8258 2 жыл бұрын
Just wanted to address one point about using GPU Instancing: Without GPU Instancing mesh data isn't copied from the CPU to the GPU every frame. That's why the GPU has its own memory. The mesh data is loaded to the GPU once, only a small amount of data which tells the GPU how to render that mesh is updated constantly. For example data about where the mesh should be rendered. (uniforms) The performance problems thus don't stem from having to load too much data to the GPU, but by bad scheduling. When rendering each instance of an object separately, the GPU and CPU are constantly in a dialogue and have to wait for each other. With GPU Instancing the CPU combines all of that data, sends it to the GPU and then lets the GPU vroom vroom through the workload without any interruptions. Whats also nice is that with GPU Instancing you can just keep that data around on the GPU for as long as you like. So you have the flexibility of updating it every frame, only sometimes or only once. Updating a complete mesh every frame is sometimes referred to as streaming and only done in very specific circumstances. Constantly shapeshifting terrain maybe. Though even then other methods are usually preferred when possible.
@ewinter9021
@ewinter9021 2 жыл бұрын
Great explanation. Wanted to ask where did you learn about this topic? (A class or book perhaps? because as a wanna-be indie dev with no technical training i would love to begin researching things like this but it definitely doesn't seem like entry/gateway material and prob has tons of prerequisites to understanding lol). TLDR: How did you go about learning this information? And do you have any tips on resources that could be useful to learn or understand this in more depth for those getting started?
@turkym7md5
@turkym7md5 2 жыл бұрын
@@ewinter9021 You can fire up a c++ project and start tinkering with OpenGL, look for an opengl c++ series or a book it would teach you alot about GPUs
@turkym7md5
@turkym7md5 2 жыл бұрын
Another use case for updating a mesh every frame is for 2D batching, because every frame you have to resort and recalculate the batched sprites and send their mesh data to the GPU.
@bash0985
@bash0985 2 жыл бұрын
@@ewinter9021 There are also some good books and video series' using Java instead of C++ which might be a bit more friendly to people who haven't dealt with it before. I personally recommend ThinMatrix's 3D engine series on KZbin and the book "Computer graphics programming in OpenGL with Java". They teach graphics programming from the ground up and are much lower level and in depth than anything you might do in Unity
@maximeumbra7235
@maximeumbra7235 2 жыл бұрын
Pretty accurate description although the performance issues aren't "exactly" due to bad scheduling over which you get no control in the first place, big part is very poor bus performance with the number of commands sent but that isn't it alone either, on the GPU side large bottleneck also arises from warp under utilization when the commands are sent in a manner that don't use the full warp width, in addition say 10k commands to process isn't exactly a walk in the park within a common 5ms frame budget usually afforded for driving the rendering. The basic notion is damn good though and while the position data isnt necessarily uniform this does a good job to illustrate that if you have more than a dozen of anything you need to batch in one manner or another (method described here isn't the only one, you can also use constant buffers for direct pointers to the vert position buffers etc)
@level7feeders
@level7feeders 2 жыл бұрын
1970: people in 2020 will have flying cars 2021: in order to render grass you need grass
@Rudxain
@Rudxain Жыл бұрын
This is why we need to touch grass
@joewilliams8286
@joewilliams8286 2 жыл бұрын
Best video I’ve seen on the topic, love how you give detail over the whole process and explain the theory behind it… gained a subscriber
@Acerola_t
@Acerola_t 2 жыл бұрын
Thanks so much!
@AlexTuduran
@AlexTuduran Жыл бұрын
You could randomize the y-axis rotation, randomly darken it with a very low frequency noise for more color variation, use material ambient occlusion to further improve the definition of the grass, use an atlas of grass textures for even more variation, implement basic specular reflection for a more pbr look and some basic sub-surface scattering. Regardless, this is a nice explanation.
@HKragh
@HKragh 2 жыл бұрын
Hi, fellow tech artist here: Overall nice look. I would add some additional effects. Grass should animate a little more in zones of related movements, and in waves. Then there is lighting. Calculate a standard fresnel effect (dot(pos-cam, viewDir) as uv in a fresnel LUT), and use the sky color as a tint where grass is seen very heads on. It will highlight the curves of the terrain. Also grass is a 3D structure in a vertical position, so calculating some light based on viewing direction (dot(pos-cam, lightDir)) would work wonders. As grass animates, it changes how it faces light, so could also do something here, to make it change lighting as it waves. Lastly: grass is shiny, so adding some soft specularity (again use the pos-camPos as a pseudo normal) is a nice final touch
@heyjakeay
@heyjakeay 2 жыл бұрын
Never would I have expected HuniePop and Kizumonogatari backing music to a technical topic like this
@adelAKAdude
@adelAKAdude 2 жыл бұрын
That was surprisingly enjoyable to watch ... and informative ... Thank you !
@Ash_18037
@Ash_18037 2 жыл бұрын
4:30 I don't think storing a huge buffer of positions on the GPU is by itself instancing. The way I understand it is if you have say a 50 vertex mesh and you need to draw this say 50,000 times, you could get the CPU to create a buffer of 50 vertices * 50,000 and submit that large buffer to the GPU. You would still only need to do that once because the grass does not move, so you incur the hit one frame only. However that still means you are using a large amount of GPU memory on repeated mesh data and also some performance as the GPU has to process that large buffer. So instead of duplicating all 50 identical (non-transformed) grass mesh vertices 50,000 times, why not simply store a single instance of the grass mesh vertices on the GPU, then get the CPU to create just a position (and possibly rotation, color vertices) for each 50,000 grass object instead of the full 50 vertex grass mesh. So instead of 50,000 * 50 * vertex_size you are submitting and storing 50,000 * vertex_size on the GPU (simplification but the general idea). The GPU still needs to process this 50,000 buffer but it is now much smaller using far less GPU memory and the GPU spends less time doing so. It then takes that single mesh instance and transforms it when rendering each instance to the correct location using the single vertex position data. Of course this means that GPU instancing is only useful for world objects such as grass where the mesh is identical for all instances. Providing a per instance rotation vector (and possibly color vector) can make this duplication much less noticeable. I've implemented exactly this for grass recently using Godot and the MultiMesh class it provides. docs.godotengine.org/en/3.5/classes/class_multimesh.html#class-multimesh
@HallyVee
@HallyVee 2 жыл бұрын
Can this be done for billboard trees at vast distances? ... er wait, billboard != mesh, is it :)
@Linaard
@Linaard 5 ай бұрын
@@HallyVee There isn't really anything stopping you from billboarding a mesh, except it's usually not very practical of course :) As for trees in the distance, they can often be billboarded planes. You just can't see much difference due to the distance.
@DreamPharaoh
@DreamPharaoh 3 жыл бұрын
That was great, thank you for all of the details too. I will be tackling this problem soon and so it was nice to have a direction on it.
@Acerola_t
@Acerola_t 3 жыл бұрын
Good luck! It's something I've been researching for quite awhile.
@TacoTechnica
@TacoTechnica 2 жыл бұрын
Underrated stuff! Was looking into grass rendering and stumbling across this was very helpful, Gonna check out the rest of the grass stuff and also the rest of the channel since your presentation on topics is great!
@AndreCastel
@AndreCastel 2 жыл бұрын
Just discovered your channel and it's exactly what I needed, so thank you for the great content. Please don't change 🙂 the low budget 2000s look and effects is a breath of fresh air. Keep up the good work.
@MrWaketeu
@MrWaketeu 2 жыл бұрын
Fantastic video ! I knew everything about instancing, but for an unknown reason, I stayed until the end of the video ! Please continue to make such great content
@icedude_907
@icedude_907 2 жыл бұрын
Just want to inform you that both me and a friend were recommended one of your videos today despite never seeing you before. This could be about to hit the algorithm. Watched a few of your vids now, extremely well done content
@TobiDerCoole
@TobiDerCoole 6 ай бұрын
i love this guy he does things i dont understand but when people ask what im watching i can say im watching a video about rendering 2.160.000 billboard grass models with gpu instancing aligned with a plane with displaced vertices due to a heightmap
@antonynepgen2045
@antonynepgen2045 2 жыл бұрын
I love the entire way that you explain everything, I honestly learnt enough that I will remember most of it while it was entertaining - I could watch these for fun for ages
@Apes-With-Computers
@Apes-With-Computers Жыл бұрын
Another wonderful video, Acerola. I have seen this technique used before in games I've played. Your grass looks amazing! I love the yellowing effect you added related to the height. It's amazing!
@soul-candy-music
@soul-candy-music 2 жыл бұрын
I love everything about this video, lmao. Super knowledgeable, funky detective and retail store style beats, intriguing kitchen/living room ted talks - instant sub.
@mariovelez578
@mariovelez578 2 жыл бұрын
This is an amazing video! I learned almost nothing because I already knew this stuff, but you explained it so well!
@Acerola_t
@Acerola_t 2 жыл бұрын
Thanks! The next 2 grass vids go into some more modern techniques.
@mariovelez578
@mariovelez578 2 жыл бұрын
@@Acerola_t Just did, commenting on all of them to help the algorithm
@DeeCeeHaich
@DeeCeeHaich 2 жыл бұрын
dragon vale is a fire game
@mariovelez578
@mariovelez578 2 жыл бұрын
@@DeeCeeHaich Lol, yes it is!
@ktz1185
@ktz1185 Жыл бұрын
2:01 "In order to render grass, you need grass to render" fucking love it
@KoshakiDev
@KoshakiDev 2 жыл бұрын
The editing is on point. I enjoyed the video as a casual viewer and also enjoyed it as a legitimate tutorial
@jtsportfolio
@jtsportfolio 2 жыл бұрын
Dude your voice with that BGM is addictively great. It helps me sleep lol
@DarkDax
@DarkDax 2 жыл бұрын
Great video mate! Just started looking into shaders so this video was really informative. Some of that math might have gone over my head but still really enjoyable haha
@aleningi96
@aleningi96 2 жыл бұрын
Great video about gpu instancing. I'm getting into shaders rn and this was super useful!
@six-sided-claire
@six-sided-claire 2 жыл бұрын
This dude sounds like his boss told him to make a video but sound enthusiastic about it
@Gwegory22
@Gwegory22 7 ай бұрын
i would just like to say you have some of the most incredibly interesting videos as a layman to watch, i truly applaud your approach.
@PMARC14
@PMARC14 2 жыл бұрын
The math was surprisingly easy, but what was crazy was the artistry in it by taking into account all the many properties to make it look nice.
@pcih6176
@pcih6176 2 жыл бұрын
I loved your performance in "The Pianist"!
@ghwii
@ghwii 2 жыл бұрын
As a game Dev, and also someone who really digs math and algorithms, you can't even begin to grasp how grateful I am KZbin randomly decided to recommend your channel. All of your videos I've seen are a gold mine. Absolutely awesome content!
@HuxleyCrimson
@HuxleyCrimson Жыл бұрын
Top notch content man. We have some real added value information here, and it gets deep enough while clearly conveyed and staying at reach. Kudos to you. Instant sub.
@johncreativeproducts5688
@johncreativeproducts5688 2 жыл бұрын
what a great video man! thanks so much!!
@19vangogh94
@19vangogh94 2 жыл бұрын
I love this "Standing In Room Microphone sprinkled with animations" format, its so unique, you shouldn't loose it!
@fluffycritter
@fluffycritter 2 жыл бұрын
Nice technique. A physical wind simulation could be done by doing some shaders that do a fluid dynamics simulation (e.g. water ripples) within a texture and then use lookups into the texture to determine the sway amount. I've also seen some really clever techniques of using the depth buffer of a camera pointed down on the environment to drive the fluid dynamics based on objects moving around (for example, having large gust-of-wind objects that are only rendered on the dynamics sim texture).
@kitkittsy
@kitkittsy 2 жыл бұрын
My immediate thought when animation was brought up was that the sin of the x/z positions of the grass would be used to emulate waves of wind. Perhaps not as accurate as a simulation, but trivially different to implement than height-frequency method used here?
@jarrednorris
@jarrednorris 2 жыл бұрын
glad this popped onto my recommended. Inspired me to work on some more code. Keep it up and enjoy 1 more sub!
@JoBot__
@JoBot__ 2 жыл бұрын
That quick recap on the previous video was very useful, and I got everything I needed. Thank you.
@kylejennings819
@kylejennings819 2 жыл бұрын
As an artist with little code experience longing for a powerhouse grass setup. I would love to see an in depth tutorial including code
@Acerola_t
@Acerola_t 2 жыл бұрын
Unfortunately I don't have much interest in doing coding tutorials, I prefer focusing on theory and leaving the rest as an exercise for the reader. This is mainly because when I was learning, I noticed a sheer lack of theory focused graphics content. The core of this implementation is compute shaders which I learned from this great tutorial: kylehalladay.com/blog/tutorial/2014/06/27/Compute-Shaders-Are-Nifty.html Additionally my source code is in the description, it is a little messy but referencing it and reading documentation on functions you aren't familiar with should be able to get you there.
@HarryTheLoser_
@HarryTheLoser_ Жыл бұрын
Damn, this helped a lot, you definitely will blow up!
@WizardsCode
@WizardsCode 2 жыл бұрын
Great work... learned alot. Thank you.
@gus3000spam
@gus3000spam 2 жыл бұрын
Cool video, chill and informative. I like your style !
@2Fast4Youtube
@2Fast4Youtube 2 жыл бұрын
Okay, you got me with the recap. Subscribed forever now, you are stuck with me
@DavidRutten
@DavidRutten 2 жыл бұрын
That arrow with the fake alpha cracks me up every time.
@allepiccondor1166
@allepiccondor1166 2 жыл бұрын
Great video man can’t wait to see more
@joeypepperoni6078
@joeypepperoni6078 Жыл бұрын
I've been searching for this video for months even though I didn't know it existed. I feel like I've found a secret tome of knowledge in this video and your channel. Thank you Acerola!
@sethcarson2201
@sethcarson2201 2 жыл бұрын
That quick rundown on Dynamic Details was genuinely the cherry on top
@jake3255
@jake3255 Жыл бұрын
I remember in Just Cause 2 they had trees billboarded beyond a certain distance, and just made sure that the texture was always facing directly at you. If you flew directly above a tree, it would be lying flat on the ground and rapidly swivel beneath you
@Acerola_t
@Acerola_t Жыл бұрын
breath of the wild also used this technique for their trees, pretty neat!
@fredericklyle4001
@fredericklyle4001 2 жыл бұрын
10/10 my new favorite youtuber. Needs more cowbell? no, needs more grass. (i'm here from your video about bad grass tutorials)
@DatBass
@DatBass 2 жыл бұрын
awesome video, i've always wondered how this was possible.
@bunksoup8137
@bunksoup8137 2 жыл бұрын
My favourite part is the wire plugged into a wireless mic.
@Acerola_t
@Acerola_t 2 жыл бұрын
It's unfortunately not wireless it's a samson q2u
@jeffmcguire1599
@jeffmcguire1599 2 жыл бұрын
Dope videos. Going back to watch others. Thanks for making this stuff!
@wordydird
@wordydird 2 жыл бұрын
I just looked this up cause I was curious what the 2d plane grass was called, but this was really interesting and I learned a lot more than I expected. Cool stuff man, definitely gonna sub and watch more
@hurleyman77
@hurleyman77 2 жыл бұрын
I came for the technical information... I stayed for the gently swaying grass, and soothing summer breeze.
@voizeh7140
@voizeh7140 2 жыл бұрын
Holy cow! Your channel are awesome! And also funny
@maribelmenese4845
@maribelmenese4845 2 жыл бұрын
I really love how you put the music you use on the description
@RosemaryWilliams49fruits
@RosemaryWilliams49fruits 2 жыл бұрын
+1 for very informative. +sub for comedic style being on point.
@zerosick
@zerosick 2 жыл бұрын
liked the monogatari references subbed
@idontlikethis980
@idontlikethis980 2 жыл бұрын
I am indeed watching this in the future Thank you for addressing this matter
@alice20001
@alice20001 2 жыл бұрын
Yay! I'm the one from the future. Also, that's the swaggiest way to intro a video. LovedIt!
@yuukil5522
@yuukil5522 2 жыл бұрын
Your channel is like the brutal moose of video game design like same humor and same quality
@FedSilVor
@FedSilVor Жыл бұрын
As a person from the future I appreciate that you said that is not a new video if someone's from the future.
@arsnakehert
@arsnakehert 2 жыл бұрын
Love how this video is very much a paper in video format, but not only that, in _interesting_ video format Thanks for making this! \o/
@copycatlyn
@copycatlyn Жыл бұрын
i have no idea how i found you, but i am happy you're did. no clue what you're saying either. this is just great :) not due to your explaining, but due to my stupid and ignorance.
@bluebukkitdev8069
@bluebukkitdev8069 2 жыл бұрын
So I've been looking for someone who is competent with graphics programming and is happy to explain in detail for some time now. Everyone on YT right now either doesn't go into detail, or uses too much technical jargon, or is outdated by at least 6 years. This was a good find. Have a free sub.
@Buttered_Bread
@Buttered_Bread Жыл бұрын
Super interesting stuff, real glad I came across ur vid!
@pixelrunner2775
@pixelrunner2775 2 жыл бұрын
"In order to render grass, you need the grass to render" ah yes, the grass here is made out of grass
@stoneboi1395
@stoneboi1395 3 жыл бұрын
surprisingly high quality, hidden gem of a channel
@stoneboi1395
@stoneboi1395 3 жыл бұрын
My tips are to allow more head room in your IRL shots, but i loved the editing and the grass solurion was really cool
@Acerola_t
@Acerola_t 3 жыл бұрын
Thanks! I'll take that into consideration
@adiyn_
@adiyn_ 2 жыл бұрын
Best intro, amazing humor, cool nick, looking goo- i mean nice content quality, man i'm subscribing
@KaiMCGRPS
@KaiMCGRPS 2 жыл бұрын
i saw one vid by you and i'm currently binging your content, your videos are so cool
@Acerola_t
@Acerola_t 2 жыл бұрын
Thanks!
@squirrelgrease
@squirrelgrease 2 жыл бұрын
Final thing looks so cool! However, shouldnt the grass follow the same direction while it is blown by the wind? I dont mean all the plane having the same direction direction. I mean just similarities in direction per small regions
@hundvd_7
@hundvd_7 2 жыл бұрын
I had no idea who you are, but the Persona 3 soundtrack combined with the Acerola name made me think you're a Monogatari fan. Without P3 it would have just been a guess, but I was quite sure because of it. And then 7:08 with the Kizumonogatari OST 100% confirmed it
@hundvd_7
@hundvd_7 2 жыл бұрын
12:36 Okay, if anyone had any doubts before, it's clear now with that "Black Scene"
@Korcunu
@Korcunu 2 жыл бұрын
Great video and great editing! Really useful info for me as a hobbyist gamedev although I understood only 10% and probably need to rewatch the video multiple times xD
@Kenji_195
@Kenji_195 2 жыл бұрын
Videos like this really motivates me to keep experimenting with Unity, it was very interesting and fun to watch!!
@sethhannah7191
@sethhannah7191 2 жыл бұрын
This video style is hilarious! subbed :)
@KX36
@KX36 2 жыл бұрын
My first thouht is to use Perlin noise to make a random map of skew move over the grass map so it looks like patches of grass being blown back and forth in clumps of the same direction.
@Acerola_t
@Acerola_t 2 жыл бұрын
I do this in the next vid!
@grochlin7106
@grochlin7106 3 жыл бұрын
I had to watch the peepotalk part twice at two different speeds just to half-understand it. good video :)
@Acerola_t
@Acerola_t 3 жыл бұрын
something something trig functions and conditional logic based on localized variance
@itsfonx
@itsfonx 2 жыл бұрын
I'm a year late to the video release but hearing the statement "In order to render grass you need grass to render" just made my day.
@dominicstocker5144
@dominicstocker5144 2 жыл бұрын
Wow, didn’t know that you could put THAT much grass into a scene!
@socks2441
@socks2441 2 жыл бұрын
fascinating. its so clever how this stuff works. i feel like the grass could do with some better textures though. also, i dont know how hard it would be to add shadows to them but that would look amazing too. probably completely tank performance though, unless you could bake the shadows and animate them swaying with the wind along with the grass etc.
@TheLotroNerd
@TheLotroNerd 2 жыл бұрын
Why people should like this channel. Its not adhd there are no annoying rapidly flashing scenes ever 3 seconds. They guy actually knows what he is talking about, the guy doesn't put up with bs. His content is valid and knowledgeable, and its not a 3 hour long tutorial. Bravo!
@CausticCatastrophe
@CausticCatastrophe 2 жыл бұрын
I really appreciate these videos. they are a breath of fresh air. :)
@spicybaguette7706
@spicybaguette7706 2 жыл бұрын
Drinking game: take a shot every time Acerola says grass in this video
@INeatFreak
@INeatFreak 2 жыл бұрын
Thanks for this superior tutorial.
@mariocamspam72
@mariocamspam72 2 жыл бұрын
really nice explanation of a difficult concept
@a_random_person_
@a_random_person_ 2 жыл бұрын
That was a great video. Even gave me motivation to look at real grass to compare realism
@etopowertwon
@etopowertwon 2 жыл бұрын
You can use different textures and add random rotation during placement to make it look less uniform. Also I know this technique since Quake 1 days. There they used it for explosions, as they are spherical by nature. I defitenly remember it seeing in other games, but Q1 is my first memory as it also was the first game I played that had real 3d
@CaveyMoth
@CaveyMoth 2 жыл бұрын
I was just thinking about the grass in Far Cry 2 last night! What a coincidence! I like how it turns to face you at all times. It looks great from a single angle. But when you rotate, it all falls apart.
@Acerola_t
@Acerola_t 2 жыл бұрын
my favorite far cry for sure
@RamonAlonsoLopezMartinez
@RamonAlonsoLopezMartinez 2 жыл бұрын
Finally a channel where an actual expert (... or person in the field?) is teaching things.
@dynamicworlds1
@dynamicworlds1 2 жыл бұрын
Extreme novice with this stuff coming from only some fairly basic (and rusty) programming experience, but could you squeeze more performance out of this kind of technique by designing your texture for and laying it onto a single triangle rather than 2 stuck together to make a square. I get that you'd probably have to do a fair bit to compensate for it in terms of both the texture (to make it look good for the grass to increase in density that much as it went down), to fiddle with the position variation to make it look right, and possibly increase the scale of the triangles slightly to make things look good. I'm mainly just curious about the performance impacts of using billboards made of just one triangle rather than two as I haven't seen (or at least been aware of seeing) billboarding done on shapes other than quadrilaterals and while it makes sense that an artist would want to make full use of a square provided, at least in the general sense with all else being equal, fewer triangles is easier to render. I just don't know how much of a gain there might be to be had.
@Acerola_t
@Acerola_t 2 жыл бұрын
You could yeah This grass implementation is so incredibly barebones mesh data wise that further optimizations aren't super necessary since it's already so fast though.
@bluesillybeard
@bluesillybeard 2 жыл бұрын
@@Acerola_t Also, it would generate more fragments, so if the GPU is limited by the number of Fragments it can process it might end up making it run worse. EDIT: Fragments are the precursor to pixels. A fragment is a pixel in the process of its color being determined, in case you aren't familiar with Graphics Rendering terms.
@EthanFilms
@EthanFilms 2 жыл бұрын
Amazing video!!! Subbed!
@Gilesone1989
@Gilesone1989 2 жыл бұрын
Interesting video to understand what's going on behind the scene
@captaincommando9839
@captaincommando9839 11 ай бұрын
Literally the only grass tutorial that makes sense.
@AB-td5oo
@AB-td5oo Жыл бұрын
i have been searching for this video for a year now... finally found it
@DexFlex_YT-
@DexFlex_YT- Жыл бұрын
you could also use the terrain displacement map for grass yellowness cuz all the water goes down from the hills, so lower=green higher=yellow
@0x2480
@0x2480 2 жыл бұрын
you should swap each quad for a bigger triangle and set the uvs to extend the texture instead of repeat, would be about half the amount of verts
@Genebriss
@Genebriss 2 жыл бұрын
That creates huge overdraw which is more expensive than vertices
@Haapavuo
@Haapavuo 2 жыл бұрын
"Tall grass is older than younger grass." You are a genious.
@DJPowerPaul
@DJPowerPaul 2 жыл бұрын
Thank you for explaining and sharing in detail! First video I found from you and I look forward to check out your channel later. You earn more subs and if you are consistent, I'm pretty sure you will get them! Stay tuned!
@ZettXXII
@ZettXXII 2 жыл бұрын
I learned a lot, thanks mate.
@a45860
@a45860 2 жыл бұрын
Awesome video! Keep going
@menacingskull740
@menacingskull740 2 жыл бұрын
i think this channel needs more subs and views
@Denester31
@Denester31 3 жыл бұрын
This is a great tutorial! You gained new sub. How you achieve GPU instancing for grass?
@Acerola_t
@Acerola_t 3 жыл бұрын
Thanks! If you're interested in doing GPU instancing with Unity, check out these functions: docs.unity3d.com/ScriptReference/Graphics.DrawMeshInstanced.html docs.unity3d.com/ScriptReference/Graphics.DrawMeshInstancedIndirect.html
@Tenetri
@Tenetri 2 жыл бұрын
cool vid dude, keep it up!
@randomcap3011
@randomcap3011 Ай бұрын
Hmmm, I wonder if using a single triangle billboard would work better. On one hand it'd probably mean more empty pixels in the fragment shader, but at the same time, it'd mean half the triangles...
Modern Foliage Rendering
11:02
Acerola
Рет қаралды 149 М.
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 1,2 МЛН
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
Beat Ronaldo, Win $1,000,000
22:45
MrBeast
Рет қаралды 158 МЛН
The Strange Graphics Of LETHAL COMPANY
15:59
Acerola
Рет қаралды 1 МЛН
When Your Game Is Bad But Your Optimisation Is Genius
8:52
Vercidium
Рет қаралды 1,6 МЛН
How are holograms possible?
46:24
3Blue1Brown
Рет қаралды 1,8 МЛН
Six Grass Rendering Techniques in Unity
24:10
Daniel Ilett
Рет қаралды 56 М.
Game Dev Tutorials Are LYING To You
10:42
Acerola
Рет қаралды 339 М.
How do Major Video Games Render Grass?
9:33
SimonDev
Рет қаралды 424 М.
Why Stairs Suck in Games... and why they don't have to
11:24
Nick Maltbie
Рет қаралды 1,5 МЛН
How Do Games Render Fur?
28:51
Acerola
Рет қаралды 506 М.
What Is A Graphics Programmer?
30:21
Acerola
Рет қаралды 475 М.
What's The Deal With Depth Of Field
14:36
Acerola
Рет қаралды 125 М.
Арыстанның айқасы, Тәуіржанның шайқасы!
25:51
QosLike / ҚосЛайк / Косылайық
Рет қаралды 700 М.