The final talk of the conference, and the one I was most excited about: "Performance Tips & Tricks from a Unity Consultant."
I wanted to attend this session because one of my favorite talks ever at Unite was on the same topic by Ian Dundore. I learned a lot from it. I even wrote a post about all the tips from that session, which has helped me many times: https://news.1rj.ru/str/everydayUnity/1623
While I didn't learn a lot of new things this time, the talk was still very good overall.
Highlights:
- Use native profilers such as SuperLuminal. The Unity profiler shows a very limited call stack, and in deep profile mode, too much performance is consumed by capturing the call stack. Results become increasingly skewed the deeper the stack is.
- Prewarm your shaders and use shader variant collections (SVC). However, SVC is not supported by all graphics APIs.
- More improvements for graphics and shaders are coming in Unity 6, so they encourage updating.
- Use the SRP batcher and ensure your shaders are SRP batcher-compatible.
- Use instancing for more than 100 identical meshes. This is interesting because a few years ago it was suggested that instancing should be used from 1024 meshes. I suppose this should be tested in Unity 6 with specific use cases to confirm.
- I also asked during the Q&A which low-level API he recommends, and he suggested using BRG (I have written a blog post about this as well a long time ago when BRG was just released https://news.1rj.ru/str/everydayUnity/1716).
- Avoid quad overdraw. I shared a great post about this some time ago: https://news.1rj.ru/str/everydayUnity/1634.
- Basic shader advice: use half/int16 where possible, reduce the number of variables, and minimize texture samples.
- One particularly interesting point was about memory allocations: Boehm allocates memory in 4KB blocks, and a block isn't freed until all buckets within it are free. Because of this, you should allocate long-term memory together so it’s placed in the same block.
- Avoid multiple cameras, as each adds significant overhead. Use render features instead when possible.
- Mix UI and 3D with camera space UI.
- Use the resident drawer in Unity 6 for repeating meshes where draw calls are a bottleneck.
- Avoid duplicates in Addressables. Use the Addressables Analyzer, Build Reporter, and Memory Profiler's potential duplicates tool to find duplicated assets.
- Untracked memory in the Memory Profiler might not be an issue; native profilers can help determine that.
I wanted to attend this session because one of my favorite talks ever at Unite was on the same topic by Ian Dundore. I learned a lot from it. I even wrote a post about all the tips from that session, which has helped me many times: https://news.1rj.ru/str/everydayUnity/1623
While I didn't learn a lot of new things this time, the talk was still very good overall.
Highlights:
- Use native profilers such as SuperLuminal. The Unity profiler shows a very limited call stack, and in deep profile mode, too much performance is consumed by capturing the call stack. Results become increasingly skewed the deeper the stack is.
- Prewarm your shaders and use shader variant collections (SVC). However, SVC is not supported by all graphics APIs.
- More improvements for graphics and shaders are coming in Unity 6, so they encourage updating.
- Use the SRP batcher and ensure your shaders are SRP batcher-compatible.
- Use instancing for more than 100 identical meshes. This is interesting because a few years ago it was suggested that instancing should be used from 1024 meshes. I suppose this should be tested in Unity 6 with specific use cases to confirm.
- I also asked during the Q&A which low-level API he recommends, and he suggested using BRG (I have written a blog post about this as well a long time ago when BRG was just released https://news.1rj.ru/str/everydayUnity/1716).
- Avoid quad overdraw. I shared a great post about this some time ago: https://news.1rj.ru/str/everydayUnity/1634.
- Basic shader advice: use half/int16 where possible, reduce the number of variables, and minimize texture samples.
- One particularly interesting point was about memory allocations: Boehm allocates memory in 4KB blocks, and a block isn't freed until all buckets within it are free. Because of this, you should allocate long-term memory together so it’s placed in the same block.
- Avoid multiple cameras, as each adds significant overhead. Use render features instead when possible.
- Mix UI and 3D with camera space UI.
- Use the resident drawer in Unity 6 for repeating meshes where draw calls are a bottleneck.
- Avoid duplicates in Addressables. Use the Addressables Analyzer, Build Reporter, and Memory Profiler's potential duplicates tool to find duplicated assets.
- Untracked memory in the Memory Profiler might not be an issue; native profilers can help determine that.
Telegram
Everyday Unity
Best optimization tips by Unity engineers at Unite
Compilation of best Unity tips gathered at Unite conference. I spent a bunch of time rewatching those talks so you don’t have to.
https://gamedev.center/best-optimization-tips-by-unity-engineers-at-unite/…
Compilation of best Unity tips gathered at Unite conference. I spent a bunch of time rewatching those talks so you don’t have to.
https://gamedev.center/best-optimization-tips-by-unity-engineers-at-unite/…
👍5🔥3
Controlling Unity's Rendering Order - Why and How
A detailed post packed with references to other posts, documentation, and even source code. Digging into source code is a crucial skill for software engineers.
I especially love the conclusion—something I’ve discussed extensively in my posts from Unite:
#rendering #sorting
A detailed post packed with references to other posts, documentation, and even source code. Digging into source code is a crucial skill for software engineers.
I especially love the conclusion—something I’ve discussed extensively in my posts from Unite:
In closing, I’ll repeat that if your interest in this topic is to improve performance, make sure to profile before you decide that changing the rendering order is the right optimization to implement!https://medium.com/toca-boca-tech-blog/controlling-unitys-rendering-order-why-and-how-3c2bb1da8e78
#rendering #sorting
Medium
Controlling Unity’s rendering order — why and how
Deep dive into Unity’s rendering order of objects with a focus on URP in Unity 2022.3 and Unity 6.
🔥6👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Chromatic-Distortion-Sphere: A chromatic distortion sphere shader.
https://github.com/MirzaBeig/Chromatic-Distortion-Sphere
#urp #orb #shader
https://github.com/MirzaBeig/Chromatic-Distortion-Sphere
#urp #orb #shader
🔥14👍4
Optimizing Texture Memory (VRAM) & Size
https://www.poiyomi.com/blog/2022-10-17-texture-optimization
#optimization #vram
TL;DR
MEASURE TEXTURE VRAM USAGE AND DOWNLOAD SIZE using lox9973's Assetbundle Stat tool and Thry's VRAM estimator.
Reduce Resolution in the texture import settings! Not every texture needs to be 2k or 4k.
Don't disable mipmaps - Your materials will look and run better with them on!
Crunch doesn't change VRAM usage but can reduce download size. Not a magic bullet!
For Normal Maps, Use RG Compressed BC5 (From Platform overrides menu1). Normal Quality (DXT5nm) and High Quality (BC7) use the same VRAM but look worse.
For textures with Alpha, Use High Quality (BC7). Normal Quality (DXT5) uses the same VRAM but looks worse.
Don't use JPG (or other lossy formats) to store your source textures! Lower quality, with no benefit to VRAM/Download Size
https://www.poiyomi.com/blog/2022-10-17-texture-optimization
#optimization #vram
Poiyomi
Optimizing Texture Memory (VRAM) & Size | Poiyomi Shaders
Tips and guidelines for optimizing texture memory (VRAM) and filesize for VRChat creation.
🔥7👍2
Everyday Unity
The final talk of the conference, and the one I was most excited about: "Performance Tips & Tricks from a Unity Consultant." I wanted to attend this session because one of my favorite talks ever at Unite was on the same topic by Ian Dundore. I learned a lot…
Performance tips and tricks from a Unity consultant
Amazing how fast recordings from Unite are available. Here is one of my favorite talks. Others I covered above and many more worth watching are all available now too.
https://youtu.be/CmD8MVGkDxQ?si=8JUVHTwHTqiRIT3l
#performance #optimization
Amazing how fast recordings from Unite are available. Here is one of my favorite talks. Others I covered above and many more worth watching are all available now too.
https://youtu.be/CmD8MVGkDxQ?si=8JUVHTwHTqiRIT3l
#performance #optimization
YouTube
Performance tips & tricks from a Unity consultant | Unite 2024
In this video, you'll learn proven best practices from Nicolas Borromeo, a highly experienced consultant and author of the Hands-On Unity book. He’ll cover some of the most consequential performance issues he sees regularly and tell you how to avoid or resolve…
👍7🔥2
Connecting the DOTS: Let’s make a game with Entities | Unite 2024
If you still haven't tried Entities, this talk gives you a good overview of what it is, how to work with it, and what drawbacks it has.
https://www.youtube.com/watch?v=gqJlQJn0N2g
Repo: https://github.com/Unity-Technologies/Unite24ConnectingTheDOTS
The speaker, Daniel, is also a regular guest on the Hot Path Show, which I recommend watching if you already have any experience with Entities and would like to dive into the details.
#dots #entities
If you still haven't tried Entities, this talk gives you a good overview of what it is, how to work with it, and what drawbacks it has.
https://www.youtube.com/watch?v=gqJlQJn0N2g
Repo: https://github.com/Unity-Technologies/Unite24ConnectingTheDOTS
The speaker, Daniel, is also a regular guest on the Hot Path Show, which I recommend watching if you already have any experience with Entities and would like to dive into the details.
#dots #entities
YouTube
Connecting the DOTS: Let’s make a game with Entities | Unite 2024
From ECS fundamentals to Entities 1.3, we give you a bird’s-eye view of the API landscape today in this tutorial on Unity’s Entity Component System (ECS). This video will empower you to explore the API and build the confidence to continue your ECS development…
👍8🔥3
Everyday Unity
An unusual post for this channel and a note on why I haven't posted in a while. I had the pleasure of giving a talk at Digital Dragons about "The Controllers Tree," the architectural framework developed by some of the top-tier engineers at our company. I…
Architecture Behind Our Most Popular Games
The recording of my talk from May is finally available. It focuses on how multiple successful large-scale mobile games are developed and supported over an extended lifespan. I have already received feedback, and I realize I should have provided more detail on specific areas, such as the role of each component. If you'd like a post with a deeper dive into this architecture, drop a 🔥 reaction. Feel free to ask questions so I can cover them in that post.
https://www.youtube.com/watch?v=-TlQAm8IZp4
#architecture #mvc #hmvc
The recording of my talk from May is finally available. It focuses on how multiple successful large-scale mobile games are developed and supported over an extended lifespan. I have already received feedback, and I realize I should have provided more detail on specific areas, such as the role of each component. If you'd like a post with a deeper dive into this architecture, drop a 🔥 reaction. Feel free to ask questions so I can cover them in that post.
https://www.youtube.com/watch?v=-TlQAm8IZp4
#architecture #mvc #hmvc
YouTube
Alexey Merzlikin - Architecture Behind Our Most Popular Unity Games
Are you curious about how some of the most successful Unity games are built? Do you want to learn the best practices and tips for designing scalable and maintainable game architectures? We are going to talk about the Controllers Tree architecture that is…
🔥30👍2
Classic 3D videogame shadow techniques
https://30fps.net/pages/videogame-shadows/
I found this denoscription of shadow techniques very interesting. It's a good starting point for learning shadowing by trying to implement some of these techniques. For example, I learned a lot about shadow cascades by implementing it while following an excellent tutorial on a noscriptable render pipeline: https://news.1rj.ru/str/everydayUnity/2276.
Cascades are briefly mentioned in this post as a technique used in modern games. However, it does not cover the radiance cascade technique, which you can read more about here: https://news.1rj.ru/str/everydayUnity/2423.
#rendering #shadow
https://30fps.net/pages/videogame-shadows/
I found this denoscription of shadow techniques very interesting. It's a good starting point for learning shadowing by trying to implement some of these techniques. For example, I learned a lot about shadow cascades by implementing it while following an excellent tutorial on a noscriptable render pipeline: https://news.1rj.ru/str/everydayUnity/2276.
Cascades are briefly mentioned in this post as a technique used in modern games. However, it does not cover the radiance cascade technique, which you can read more about here: https://news.1rj.ru/str/everydayUnity/2423.
#rendering #shadow
Telegram
Everyday Unity
Custom SRP 1.0.0
How to upgrade the old SRP tutorial to Unity 2022. Some of these fixes I had to do myself when I followed this series a long time ago but using Unity 2021. It's great that Jasper supports the series and shared the update.
I personally recommend…
How to upgrade the old SRP tutorial to Unity 2022. Some of these fixes I had to do myself when I followed this series a long time ago but using Unity 2021. It's great that Jasper supports the series and shared the update.
I personally recommend…
👍8🔥2