Skip to content

Commit a461385

Browse files
committed
update readme
1 parent 5ff4703 commit a461385

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

readme.md

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,25 @@ This repository contains the source code for a Unity port of the web viewer from
1111
After cloning the project you can simply use the menu *MobileNeRF -> Asset Downloads* to download any of the sample scenes available.
1212
In each scene folder there will be a convenient prefab, that you can then drag into the scene and you're good to go.
1313

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+
1420
## Details
1521

1622
The project was created with Unity 2021.3 LTS using the Built-in Render Pipeline.
1723

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+
2134

2235
For more details read the official paper here: https://mobile-nerf.github.io/

0 commit comments

Comments
 (0)