From be4f655c1d42a746dc0b350ccdd9fefc7bd8dc6a Mon Sep 17 00:00:00 2001 From: Snosixtyboo <40643808+Snosixtyboo@users.noreply.github.com> Date: Wed, 12 Jul 2023 13:30:06 +0200 Subject: [PATCH 1/2] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 59eed1e..512ef10 100644 --- a/README.md +++ b/README.md @@ -357,7 +357,7 @@ After extracting or installing the viewers, you may run the compiled ```SIBR_gau It should suffice to provide the ```-m``` parameter pointing to a trained model directory. Alternatively, you can specify an override location for training input data using ```-s```. To use a specific resolution other than the auto-chosen one, specify ```--rendering-size ```. Combine it with ```--force-aspect-ratio``` if you want the exact resolution and don't mind image distortion. -**To unlock the full frame rate, please disable V-Sync on your machine and also in the application (Menu → Display).** +**To unlock the full frame rate, please disable V-Sync on your machine and also in the application (Menu → Display). In a multi-GPU system (e.g., laptop) your OpenGL/Display GPU should be the same as your default CUDA GPU (or the one whose CUDA index you pass with --device) for maximum performance.** In addition to the intial point cloud and the splats, you also have the option to visualize the Gaussians by rendering them as ellipsoids from the floating menu. SIBR has many other functionalities, please see the [documentation](https://sibr.gitlabpages.inria.fr/) for more details on the viewer, navigation options etc. There is also a Top View (available from the menu) that shows the placement of the input cameras and the original SfM point cloud; please note that Top View slows rendering when enabled. The real-time viewer also uses slightly more aggressive, fast culling, which can be toggled in the floating menu. If you ever encounter an issue that can be solved by turning fast culling off, please let us know. From fef0b4a41da6e63ba25c2244356b57a8d9b7c5dc Mon Sep 17 00:00:00 2001 From: bkerbl Date: Wed, 12 Jul 2023 14:03:28 +0200 Subject: [PATCH 2/2] Better description of GPU selection --- README.md | 4 +++- assets/select.png | Bin 0 -> 19573 bytes 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 assets/select.png diff --git a/README.md b/README.md index 512ef10..aa338a9 100644 --- a/README.md +++ b/README.md @@ -357,7 +357,9 @@ After extracting or installing the viewers, you may run the compiled ```SIBR_gau It should suffice to provide the ```-m``` parameter pointing to a trained model directory. Alternatively, you can specify an override location for training input data using ```-s```. To use a specific resolution other than the auto-chosen one, specify ```--rendering-size ```. Combine it with ```--force-aspect-ratio``` if you want the exact resolution and don't mind image distortion. -**To unlock the full frame rate, please disable V-Sync on your machine and also in the application (Menu → Display). In a multi-GPU system (e.g., laptop) your OpenGL/Display GPU should be the same as your default CUDA GPU (or the one whose CUDA index you pass with --device) for maximum performance.** +**To unlock the full frame rate, please disable V-Sync on your machine and also in the application (Menu → Display). In a multi-GPU system (e.g., laptop) your OpenGL/Display GPU should be the same as your CUDA GPU (e.g., by setting the application's GPU preference on Windows, see below) for maximum performance.** + +![Teaser image](assets/select.png) In addition to the intial point cloud and the splats, you also have the option to visualize the Gaussians by rendering them as ellipsoids from the floating menu. SIBR has many other functionalities, please see the [documentation](https://sibr.gitlabpages.inria.fr/) for more details on the viewer, navigation options etc. There is also a Top View (available from the menu) that shows the placement of the input cameras and the original SfM point cloud; please note that Top View slows rendering when enabled. The real-time viewer also uses slightly more aggressive, fast culling, which can be toggled in the floating menu. If you ever encounter an issue that can be solved by turning fast culling off, please let us know. diff --git a/assets/select.png b/assets/select.png new file mode 100644 index 0000000000000000000000000000000000000000..58a0ad9fbef31d5b53d4dd001ad5a1bf708c1704 GIT binary patch literal 19573 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 literal 0 HcmV?d00001