All Projects → ColinLeung-NiloCat → Unityurp Mobiledrawmeshinstancedindirectexample

ColinLeung-NiloCat / Unityurp Mobiledrawmeshinstancedindirectexample

Licence: mit
Example project to draw 1million grass instances on mobile

Projects that are alternatives of or similar to Unityurp Mobiledrawmeshinstancedindirectexample

Lunar Unity Console
High-performance Unity iOS/Android logger built with native platform UI
Stars: ✭ 628 (+55.06%)
Mutual labels:  unity, mobile
Unityurp Billboardlensflareshader
(1)Add a new Quad GameObject (2)Use this shader (3)Done! Now you have billboard lens flare shader for URP!
Stars: ✭ 140 (-65.43%)
Mutual labels:  unity, mobile
Sycophant
Numerous Ninjas: Beta stage mobile game written in Unity
Stars: ✭ 64 (-84.2%)
Mutual labels:  unity, mobile
Uiwidgets
UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.
Stars: ✭ 1,901 (+369.38%)
Mutual labels:  unity, mobile
Arkit Cardboard Vr
ARkit + GVR to make VR and Mixed Reality 6dof AR for iphone
Stars: ✭ 132 (-67.41%)
Mutual labels:  unity, mobile
Unityurp Mobilescreenspaceplanarreflection
Reusable RendererFeature of MobileScreenSpacePlanarReflection
Stars: ✭ 260 (-35.8%)
Mutual labels:  unity, mobile
Unityeditorjunkie
Editor scripts to make working with the Unity Editor better.
Stars: ✭ 390 (-3.7%)
Mutual labels:  unity
Framework7 Template Vue Webpack
Deprecated! Framework7 Vue Webpack starter app template with hot-reload & css extraction
Stars: ✭ 399 (-1.48%)
Mutual labels:  mobile
Fluttergrocery Shoppingappui
🍔😋 Grocery Shopping App template UI kit in Flutter
Stars: ✭ 388 (-4.2%)
Mutual labels:  mobile
Gnome Layout Manager
A bash script that batch installs and tweaks GNOME extensions as well as GTK/Shell themes. There are currently three options available: Unity, Windows and macOS.
Stars: ✭ 383 (-5.43%)
Mutual labels:  unity
Tf Pose Estimation
Deep Pose Estimation implemented using Tensorflow with Custom Architectures for fast inference.
Stars: ✭ 3,856 (+852.1%)
Mutual labels:  mobile
Kinocontour
Contour line filter for Unity
Stars: ✭ 400 (-1.23%)
Mutual labels:  unity
Enhancer
A collection of utilities to enhance the Unity Editor
Stars: ✭ 394 (-2.72%)
Mutual labels:  unity
Smartbanner.js
Customisable smart app banners for iOS and Android
Stars: ✭ 391 (-3.46%)
Mutual labels:  mobile
Android Runtime
Android runtime for NativeScript (based on V8)
Stars: ✭ 399 (-1.48%)
Mutual labels:  mobile
Recipes App React Native
Recipes App in React Native
Stars: ✭ 386 (-4.69%)
Mutual labels:  mobile
Hdrpvatexample
VAT (Vertex Animation Texture) with Unity Shader Graph and Visual Effect Graph
Stars: ✭ 401 (-0.99%)
Mutual labels:  unity
Nimbus Eth1
Nimbus: an Ethereum 1.0 and 2.0 Client for Resource-Restricted Devices
Stars: ✭ 386 (-4.69%)
Mutual labels:  mobile
Imgresize
移动端H5图片压缩
Stars: ✭ 391 (-3.46%)
Mutual labels:  mobile
Klakndi
NewTek NDI™ plugin for Unity
Stars: ✭ 401 (-0.99%)
Mutual labels:  unity

UnityURP-MobileDrawMeshInstancedIndirectExample

youtube runtime demo video: https://youtu.be/A7rav4tS88s
download .apk, try it on your android phone: https://drive.google.com/file/d/185JWZXYPnVyDnA451cEZkS2H2wOYSce_/view

DrawMeshInstancedIndirect ON screenshot DrawMeshInstancedIndirect ON (grass bending) screenshot screenshot DrawMeshInstancedIndirect OFF screenshot

Why create this repository?

To demonstrate an API that can draw millions of instance -> DrawMeshInstancedIndirect(), running on mobile devices.

Can this demo runs on midrange mobile?

  • can handle 10 million instances on Samsung Galaxy A70 (GPU = adreno612, not a strong GPU), 50~60fps, performance mainly affected by visible grass count on screen(draw distance = 125)
  • can handle 10 million instances on Lenovo S5 (GPU = adreno506, a weak GPU), 30fps, performance mainly affected by visible grass count on screen(draw distance = 75)

Requirement

if you want to try the pre-built .apk, your android device must support Opengles3.2 / Vulkan
download .apk: https://drive.google.com/file/d/185JWZXYPnVyDnA451cEZkS2H2wOYSce_/view

Where are the important files

https://github.com/ColinLeung-NiloCat/UnityURP-MobileDrawMeshInstancedIndirectExample/tree/master/Assets/URPMobileGrassInstancedIndirectDemo/InstancedIndirectGrass/Core

Editor

2019.4.15f1

Note

This is a simplified example repository to demonstrate DrawMeshInstancedIndirect API on mobile platform.
This repository is as simple as possible, only contains a simple CPU cell frustum culling(not even a quadtree) -> minimum compute GPU frustum culling (no Acceleration Algorithms), then just 1 DrawMeshInstancedIndirect call, nothing else, code is very short.

Lighting and animation is not the main focus of this project, but ~40% of the time was spent on writing grass shader's lighting & animation, you can have a look at InstancedIndirectGrass.shader if you are interested.

This repository also contains a RendererFeature(GrassBendingRTPrePass.cs) to render an offscreen RT(R8), which renders top down view grass bending area (by trail renderer following moving objects), it is a very simple method but the result is good enough for this demo.

reference

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].