You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: readme.md
+16-3Lines changed: 16 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,12 +11,25 @@ This repository contains the source code for a Unity port of the web viewer from
11
11
After cloning the project you can simply use the menu *MobileNeRF -> Asset Downloads* to download any of the sample scenes available.
12
12
In each scene folder there will be a convenient prefab, that you can then drag into the scene and you're good to go.
13
13
14
+
## Updating
15
+
16
+
Since the initial release a small number of features have been added to the automatic shader generation code.
17
+
That means, that if you have already downloaded some scenes before, you'll have to regenerate the source files by going to *MobileNeRF -> Asset Downloads* again.
18
+
(This will not actually redownload Assets unless necessary, so this shouldn't take too long)
19
+
14
20
## Details
15
21
16
22
The project was created with Unity 2021.3 LTS using the Built-in Render Pipeline.
17
23
18
-
The biggest deviation from the official viewer is that this project doesn't use Deferred Rendering, but uses Forward Rendering instead.
19
-
Part of the reason was just me being more comfortable implementing custom shaders for forward rendering pipelines in Unity.
20
-
But I also think this makes it more practical to add VR support for this, by following [these steps](https://docs.unity3d.com/Manual/SinglePassInstancing.html). (I haven't had time for that yet).
24
+
The biggest deviation from the official viewer is, that this project doesn't use Deferred Rendering, but uses Forward Rendering instead.
25
+
This has certain implications on performance.
26
+
While the MobileNeRF representation itself greatly reduces the cost to render NeRFs, it still requires evaluating a small, view-dependent MLP (Multi Layer Perceptron) per fragment. Whenever the bottleneck is in the fragment shader, Deferred Rendering has obvious advantages, as each pixel only needs to run a single fragment shader.
27
+
28
+
Forward Rendering however gives us MSAA, which is important for VR use cases. Additionally, in VR the image has to be rendered twice, once for each eye, with a fairly large resolution. The larger the G-buffer, the smaller the benefit of Deferred Rendering. Still, MobileNeRFs mesh representations have a fairly large poly count which works against us here.
29
+
30
+
Some things to possibly look into:
31
+
* Forward Rendering, but do a Depth Prepass to reduce overdraw (might require URP, see [here](https://forum.unity.com/threads/need-clarification-on-urps-use-of-the-depth-prepass.1004577/) and [here](https://gist.github.com/aras-p/5e3aa6f81c543ca74e3ae296c72ffcaf))
32
+
* Implement Deferred Rendering and compare performance in various scenarios
33
+
21
34
22
35
For more details read the official paper here: https://mobile-nerf.github.io/
0 commit comments