Тэги:
#RenderMeshInstanced #DrawMeshInstanced #DrawMeshInstancedIndirect #RenderMeshIndirect #unity_dots #ecs #burst #job_system #gpu_instancing #compute_shader #unity_shader #data-oriented_design #benchmarking #millions_of_objects #framerate #performanceКомментарии:
Let me know if you'd like to see anything else benched, or whatever else you'd like me to cover :)
My specs:
Ryzen 9 5950X 16-core
GeForce RTX 3090
64GB Memory
Is it unity? That’s looks insane that I don't believe at all. I think there must be a lot of downsides, also all of those objects are just images of one object. If you make all those objects different...
ОтветитьVery cool my friend.
ОтветитьThis one was fascinating mate, really liked the visually focused explanations, showcasing the tangible FPS improvement along the way.
ОтветитьOn a blank scene on Unity 2023, I only get 40 - 60 FPS.
My computer has like 32 GB of RAM, a GTX 1080 and four cores using Intel i5 processors. How do you get insanely high framerates to begin with?
So I got the GPU Instancing stuff working, but was wondering if there was a way to change the material of a single index of the matrices. Right now I have 3 Matrices overlapped with 1 unique material each. Whichever material I want showing at a specific index, I throw the other 2 matrices positions at that index off screen (say new Vector3(-10000f, -10000f, -10000f)). But this seems really inefficient. I'm basically trying to do an RTS grid system. Undiscovered tiles are black, tiles currently in-sight are lighter material, and tiles discovered, but not currently in vision are slightly darker material. None of the tiles move, so I really just need them for visual representation which this GPU Instancing seems to be really efficient at, but I can't figure how to just use one matrix and change the material at a given index.
Ответитьis this similiar to vfx graph?
ОтветитьBasically an entire intermediate computer graphics course in 10 minutes. Bravo!
ОтветитьAmazing stuff. I'd bet anything a lot of triple A devs would get to about 4 on your list and call it good enough. On that note, you should give Colossal Order a hand to fix the mess that is Cities Skylines II.
Ответитьunreal engine: "just enable nanite"
although it cant quite reach 120 fps in every situation
Fun video to watch. I was a bit surprised to see that people are still debating the whole 'Camera.main' thing though. It's pretty well known by now that it uses FindObject internally. There are like, two or three videos where Unity's own optimization specialist contractor went over this stuff and explained it and this one topic specifically was one of his dramatic jokes during the presentations.
ОтветитьHow come you’re not making Udemy courses! I’d buy all of them!
Ответитьbro i cantr even get 40 fps on just runnoig woindows
ОтветитьThank you :) This was a really useful video. I've been trying to dive into DOTS for a while after reading Data Oriented Design by Richard Fabian. The Dots documentation doesn't seem all that clear to me and I've been unable to locate resources that are massively up to date that explain it clearly. Can you advise anywhere I can find a fantastic up to date video or Documentation?
Ответитьyou are a wizard Matthew
Ответитьfix the number formatting in title, it had me so confused on what it meant
ОтветитьIncredible video, well done!
Ответитьterrific video! subbed
Ответитьcan you use gpu instancing indirect in URP/HDRP?
ОтветитьThis is massive, I'm making a satellite tracker that I've been trying to optimize forever and this is what I've been looking for, thank you.
ОтветитьIs there a way to see a tutorial for this? Im so noob I have no clue what Im doing. I basically want to turn 5k 2D sprites into this..
Ответитьpointless video now lol
ОтветитьRider yells at me too bro :)
Ответить-> 13,086,178 Objects At 120 FPS <- So how ? xD
This is mind blowing.
ОтветитьAmazing!! Thank you!
Ответитьgreat content! thanks mate
ОтветитьFinally you have hat made of hair😅
ОтветитьI'm confused. Your title says 13m at 120FPS, but your example only goes up to 2.7m at 20fps?
ОтветитьLmao the clash of clans font
ОтветитьVery nice video, this is the way I always work, Test everything , learn the best practices, from actual experimentation. I’m caching everything, coded for years on mobile/ switch, and those caches have an impact on a 10 to 20 times, slower Cpu. Input. For exemple is costly, more on some hardware. Plus it’s not just the call of an external function, taking time, it’s also the need for the cpu to trash the data and code cache. Making the functions coming after slower, because of it
Ответить"I have a question; I'm working on an MMORPG game. Should I switch from GameObjects to ECS? If I go with GameObjects + Burst + Jobs, is it feasible for handling a game with potentially thousands of concurrent players?"
ОтветитьI am building my first physics based platformer and am getting into collision detection issues. I thought "well, that's all I can push unity to so I have to limit my game design. Doesn't feel too good, but I guess limits are limits and I have to accept them." But from now on I guess I don't have to worry anymore that my character will miss anything (collisions). This tutorial was godlike to me. Thank you so much!
ОтветитьThis video is pure gold 🥇, thank you❕
ОтветитьI am drawing my trees using render mesh instanced but they have no shadows. How can I fix it?
ОтветитьI use Graphics Draw Mesh Indirect for a voxel game like minecraft for the tile entities so I can get good FPS with many tile entities. The only thing is, I have not gotten into animating these meshes yet or doing anything special like that.
ОтветитьInsanely helpful to see these steps broken down like this, thanks for the video :)
ОтветитьNice, but I don't see the point in the video where you achieve 13 million objects at 120FPS
ОтветитьI can't mentally get my head around how unity dots works. I really hope we get some really good resources on how to use this system ASAP because I could benefit from that knowledge hugely
ОтветитьHope my potato renders 120 slices per second!
ОтветитьAnother benefit to rendering everything on the GPU is that I can then use it to cook my dinner when rendering the scene
ОтветитьWaouh! What an amazing and instucting video ! Thank you so much.
ОтветитьWill you possibly make more tutorials on ecs?
ОтветитьExcellent as always. Would using the C# AsParallel make any difference?
ОтветитьQuick question..what are some examples of best use cases for this?
Is it pretty much only in scenes where you have many of the same object doing the exact same thing and performance is limiting design? Say you want 1,000 dumb zombie AI in a bullet hell game, but you can only reasonably get 200 on screen at a time with reasonable FPS.
I guess I struggle with the design part..where does it make sense to consider this method vs. doing it the "less than ideal but it works and is good enough" way?
I'm curious where someone who really knows their stuff (not me) and has all these tools in their toolbox available to them considers this.
Thanks for the video! Very cool stuff.
Very good tutorial thanks, but unfortunately in mobile devices multithreading frameworks from unity doesn't give good fps boost ( maybe 5-7fps, I find solution in render scale, and URP - SRP rendering, which was huge boost, ability to render 400k triangles at 60fps in 2gb RAM mobile
ОтветитьEpic video nothing more to say
Ответить