MRF issueshttps://gitlab.inria.fr/pacanows/MRF/-/issues2021-01-14T11:47:51+01:00https://gitlab.inria.fr/pacanows/MRF/-/issues/186Bench using spf2021-01-14T11:47:51+01:00MURRAY DavidBench using spfTODO: test the impact of using "-spf" = max_samplesTODO: test the impact of using "-spf" = max_samplesMURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/185Check multi-gpu performances2021-01-13T10:33:57+01:00MURRAY DavidCheck multi-gpu performancesProxy issue to remember to check if
https://forums.developer.nvidia.com/t/optix-6-5-multi-gpu/118375
https://forums.developer.nvidia.com/t/question-about-handling-buffers-when-using-multiple-gpus/54011
Can be useful for multi-gpu.Proxy issue to remember to check if
https://forums.developer.nvidia.com/t/optix-6-5-multi-gpu/118375
https://forums.developer.nvidia.com/t/question-about-handling-buffers-when-using-multiple-gpus/54011
Can be useful for multi-gpu.MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/184Malia Optix 5.1 and Gcc 8.2 on Plafrim2021-01-08T13:50:33+01:00PACANOWSKI RomainMalia Optix 5.1 and Gcc 8.2 on PlafrimTHIS is on Sirocco19 with RTX8000
Cuda 10.2
GCC 8.2.0
Execution on interactive mode
(base) [pacanows@sirocco19 bin]$ ./malia -scene scenes/demo.msf -samples 1000 -wr 380:830:10
Malia Rendering Engine Started
!!!!!!!!!!!!!!!!!!!!!!!!...THIS is on Sirocco19 with RTX8000
Cuda 10.2
GCC 8.2.0
Execution on interactive mode
(base) [pacanows@sirocco19 bin]$ ./malia -scene scenes/demo.msf -samples 1000 -wr 380:830:10
Malia Rendering Engine Started
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WARNING:
You should always run with libnvidia-ml.so that is installed with your
NVIDIA Display Driver. By default it's installed in /usr/lib and /usr/lib64.
libnvidia-ml.so in GDK package is a stub library that is attached only for
build purposes (e.g. machine that you build your application doesn't have
to have Display Driver installed).
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[FATAL] ======> Optix EXCEPTION. SOMETHING WHEN WRONG !!!! SORRY
[FATAL] ======> Unknown error
[FATAL] ======> Optix Exception CAUGHT !!!
[FATAL] ======> Error Message: Unknown error
[FATAL] ======>
[FATAL] ======> If your error is related to Optix Library that could not be loaded
============================> DO YOU HAVE A NVIDIA CARD ???
[FATAL] ======> If you have a nvidia card CHECK YOUR DRIVER VERSIONS
(base) [pacanows@sirocco19 bin]$https://gitlab.inria.fr/pacanows/MRF/-/issues/182libnrtc.so copied but missing2020-12-15T10:08:51+01:00PACANOWSKI Romainlibnrtc.so copied but missingOn master branch.
After a make install on Linux or Plafrim
- > (base) [pacanows@devel01 bin]$ ls -ailht
- > total 89M
- > 33187397 drwxr-xr-x 6 pacanows manao 4,0K 15 déc. 10:03 .
- > 33628380 lrwxrwxrwx 1 pacanows manao 18 15 dé...On master branch.
After a make install on Linux or Plafrim
- > (base) [pacanows@devel01 bin]$ ls -ailht
- > total 89M
- > 33187397 drwxr-xr-x 6 pacanows manao 4,0K 15 déc. 10:03 .
- > 33628380 lrwxrwxrwx 1 pacanows manao 18 15 déc. 10:03 liboptixu.so -> liboptixu.so.6.5.0
- > 33628378 lrwxrwxrwx 1 pacanows manao 17 15 déc. 10:03 liboptix.so -> liboptix.so.6.5.0
- > 33628377 lrwxrwxrwx 1 pacanows manao 28 15 déc. 10:03 libnvrtc-builtins.so.10.2 -> libnvrtc-builtins.so.10.2.89
- > 33628375 lrwxrwxrwx 1 pacanows manao 25 15 déc. 10:03 libnvrtc-builtins.so -> libnvrtc-builtins.so.10.2
- > 33628373 lrwxrwxrwx 1 pacanows manao 16 15 déc. 10:03 libnvrtc.so -> libnvrtc.so.10.2
---------------------------------------------------------------^
libnrtc.so is pointing to a missing library.
BUT it Malia is not using it. So why is it copied ?
> - (base) [pacanows@devel01 bin]$ ldd -v malia
> - linux-vdso.so.1 => (0x00007f3336004000)
> - liboptix.so.6.5.0 => /home/pacanows/bin/./liboptix.so.6.5.0 (0x00007f3335af4000)
> - liboptixu.so.6.5.0 => /home/pacanows/bin/./liboptixu.so.6.5.0 (0x00007f333572e000)
> - libgomp.so.1 => /cm/shared/modules/intel/skylake/compiler/gcc/9.3.0/lib64/libgomp.so.1 (0x00007f33354f8000)
> - libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f33352dc000)
> - libnvrtc.so.10.2 => /usr/local/cuda-10.2/lib64/libnvrtc.so.10.2 (0x00007f3333b2f000)Alban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/180Performance on V100,RTX 5000, 6000, 80002021-01-13T10:35:00+01:00PACANOWSKI RomainPerformance on V100,RTX 5000, 6000, 8000Offline Rendering Benchs (on Master)
Commandline for this bench
./malia -scene scenes/demo.msf -samples 1000 -wr 380:830:10 -wpp 46 -o test.hdr -logging 3
With Cuda 10.2 and Optix 6.5.x
|Scene | RTX 5000 | Dual RTX 6000...Offline Rendering Benchs (on Master)
Commandline for this bench
./malia -scene scenes/demo.msf -samples 1000 -wr 380:830:10 -wpp 46 -o test.hdr -logging 3
With Cuda 10.2 and Optix 6.5.x
|Scene | RTX 5000 | Dual RTX 6000 | Dual RTX 8000 | Dual RTX 2080S | RTX 2080S | RTX 2080 Ti | RTX 3070 |
|-------------------| -------- | -------------- | ------------- | --------------- | --------- | ----------- | -------- |
|CornellBox Official| 87.71s | 1442s | 1642s | 54.04s | 86.35s | 62.6797s | 44.82s |
- CornellBox Official : demo.msf + demo.mcf (512x512 pixels)
- RTX5000 an dual RTX6000 : IOA Cluster with GCC 8.3
- Dual RTX8000 : on Plafrim
Probably better to launch this directly from a script!
**Bench for Branch Optix 5 With GCC 8.2.0 compiled for GPU sm_70 VOLTA**
|Scene| Dual V100 Optix 5.1.0 Cuda 10.2| Dual RTX 8000 Optix 5.1.0 Cuda 10.2 | Dual V100 Optix 6.0.0 Cuda 10.2 | Dual RTX 8000 Optix 6.0.0 Cuda 10.2
|------| ------ | ------ | ------ |------ |
|CornellBox Official | 56s | 39s| 87s | 39.8s|
RomainMURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/177Handles Thin film internal reflections2021-06-28T15:31:20+02:00MURRAY DavidHandles Thin film internal reflectionsWhen using a glass defined as a thin film (modeled with only plane with a specified thickness), we only apply a simple refraction (in and out refraction), thus ommiting internal reflections (either caused by TIR or simple reflection when...When using a glass defined as a thin film (modeled with only plane with a specified thickness), we only apply a simple refraction (in and out refraction), thus ommiting internal reflections (either caused by TIR or simple reflection when the glass is not totally transmissive).
The impact of these internal reflections can be described as geometrical serie of reason:
- T x R (the transmittance T and reflection R (Fresnel) coefficients) in case we allow the transmitted ray to emerges on the same side as it entered. T x R must be applied for each traversal of the thin glass.
- (TR)² if considering the ray always emerges on the other side than the one it entered the glass. (TR)² must be applied for each back and forth traversal.
There would be two ways to correctly handle both of these scenarii:
- As the geometrical serie converges, we can use its limits as the effective transmission rate. In this case, we would not simulate any "physical" lateral shift, despite accounting for it in the transmission rate. That is to say, the ray will always emerge at the same point for a given incoming direction.
- We can sample the number of internal reflections occuring, and thus shift the emerging point accordingly. The transmission rate is also straightforward as it still is a geometrical serie.
Note that these two approach can also be applied to a reflection occuring at the entry point. Currently at this point, we either apply a reflection (using only the R fresnel coefficient) or a simple refraction (T coefficient). We could also account for a "reflection" being the results of internal reflections followed by a refraction on the entry point side.
In my opinion, sampling the number of internal events to allow for a physical shift and an exact transmission/reflection rate may be more accurate for the propagation of the ray. However it is obviously more computationally heavy than always using the limit of the serie without shift. We can also implement both solutions and use either one on demand ?
EDIT: corrected "fresnel transmission T" by "transmittance T", the latter was I thought about when writing this. The serie reason is the fresnel refecletion coefficient R time the amount of absorption along a traversal (aka, transmittance T here equivalent to beer-lambert).Malia 1.1.0PACANOWSKI RomainPACANOWSKI Romainhttps://gitlab.inria.fr/pacanows/MRF/-/issues/175Support for ANalytical IOR2021-07-05T11:29:17+02:00PACANOWSKI RomainSupport for ANalytical IORMalia 1.1.0https://gitlab.inria.fr/pacanows/MRF/-/issues/174Hosek Wilkie sky model2020-12-04T00:08:09+01:00Alban FichetHosek Wilkie sky modelAdd an Hosek Wilkie sky model to the environment map collection.
Convey incredible realism to even simple scenes.
https://www.shadertoy.com/view/3ddBD8 (here in RGB without any turbidity nor albedo stuff, full code is available with th...Add an Hosek Wilkie sky model to the environment map collection.
Convey incredible realism to even simple scenes.
https://www.shadertoy.com/view/3ddBD8 (here in RGB without any turbidity nor albedo stuff, full code is available with the paper here: https://cgg.mff.cuni.cz/projects/SkylightModelling/ )Malia 1.1.0https://gitlab.inria.fr/pacanows/MRF/-/issues/172Fix epsilon / ray offset after a bounce2021-02-25T09:44:17+01:00Alban FichetFix epsilon / ray offset after a bounceCreating an issue to remind us to fix that after our discussion.
For the record, the current state creates some visible artifacts:
![cornellbox_official_bug](/uploads/afa7567da04c0b8f3d01068e50eca4ff/cornellbox_official_bug.png)
(top ...Creating an issue to remind us to fix that after our discussion.
For the record, the current state creates some visible artifacts:
![cornellbox_official_bug](/uploads/afa7567da04c0b8f3d01068e50eca4ff/cornellbox_official_bug.png)
(top of the Cornell box)
Increasing the epsilon fixes the problem but not necessary the best solution. We have to discuss that.Malia 1.0 patchhttps://gitlab.inria.fr/pacanows/MRF/-/issues/168Generate an orthonormal basis when no texture coordinates provided2020-06-18T10:21:32+02:00Alban FichetGenerate an orthonormal basis when no texture coordinates providedUse this technique for generate orthonormal basis from normal vector:
http://jcgt.org/published/0006/01/01/
- If texture coordinates are provided, calculate tangents from the coordinates
- Otherwise, use Duff et al.Use this technique for generate orthonormal basis from normal vector:
http://jcgt.org/published/0006/01/01/
- If texture coordinates are provided, calculate tangents from the coordinates
- Otherwise, use Duff et al.https://gitlab.inria.fr/pacanows/MRF/-/issues/166Better documentation about material2021-07-05T11:30:11+02:00MURRAY DavidBetter documentation about materialFollowing https://gitlab.inria.fr/pacanows/MRF/-/merge_requests/130:
Materials analytical model must be added to complement the XML description.
The section "Adding a material" must be completed to better describe the expected function...Following https://gitlab.inria.fr/pacanows/MRF/-/merge_requests/130:
Materials analytical model must be added to complement the XML description.
The section "Adding a material" must be completed to better describe the expected function when using the material_eva.cu.MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/163Malia arguments checking2021-02-25T09:46:20+01:00Alban FichetMalia arguments checkingSegfault when incorrect arguments are provided for `-wr`
Examples:
- `malia -i -scene toto.msf -wr 400:800`
- `malia -i -scene toto.msf -wr 4000:800:30`Segfault when incorrect arguments are provided for `-wr`
Examples:
- `malia -i -scene toto.msf -wr 400:800`
- `malia -i -scene toto.msf -wr 4000:800:30`Malia 1.0 patchhttps://gitlab.inria.fr/pacanows/MRF/-/issues/162Better naming of Blender bridge options2020-11-04T20:37:18+01:00MURRAY DavidBetter naming of Blender bridge optionshttps://gitlab.inria.fr/pacanows/MRF/-/issues/161Wrong debug informations2021-02-25T09:47:43+01:00MURRAY DavidWrong debug informationsWhen compilation of cuda kernels fails due to error in the kernel code, this error message is displayed:
```
[FATAL] ======>
[FATAL] ======> If your error is related to Optix Library that could not be loaded ============================...When compilation of cuda kernels fails due to error in the kernel code, this error message is displayed:
```
[FATAL] ======>
[FATAL] ======> If your error is related to Optix Library that could not be loaded ============================> DO YOU HAVE A NVIDIA CARD ???
[FATAL] ======> If you have a nvidia card CHECK YOUR DRIVER VERSIONS
```
This can be misleading in that one may think his OptiX/Cuda installation is wrong, whereas it's caused only be coding errors.
A more thorough check should be done regarding the reasons this message is displayed, so that compilation fails correctly points to their real causes (coding errors or wrong installation).Malia 1.0 patchhttps://gitlab.inria.fr/pacanows/MRF/-/issues/157Tonemapping operators2020-11-04T23:19:06+01:00Alban FichetTonemapping operatorsCurrently, the Reinhard tonemapping operator is within `color.hpp`.
It may be a good idea to create a separate module for tonemapping operators. Then, how shall it be accessed ?
# 1 - Static methods?
```
class Tonemapper {
public:
sta...Currently, the Reinhard tonemapping operator is within `color.hpp`.
It may be a good idea to create a separate module for tonemapping operators. Then, how shall it be accessed ?
# 1 - Static methods?
```
class Tonemapper {
public:
static Color reinhard05(
Color const & color,
float const & chromatic_adaptation,
Color const & means,
float const & lum_mean,
float const & light_adaptation,
float const & contrast,
float const & intensity);
};
```
# 2 - Abstract tonemapper?
```
class Tonemapper {
public:
virtual Color apply(Color const& color) const = 0;
};
class Reinhard05 : public Tonemapper {
public:
Reinhard05(
float const & chromatic_adaptation,
Color const & means,
float const & lum_mean,
float const & light_adaptation,
float const & contrast,
float const & intensity);
virtual Color apply(Color const& color) const;
};https://gitlab.inria.fr/pacanows/MRF/-/issues/153Better light source sampling:2021-02-25T09:49:06+01:00PACANOWSKI RomainBetter light source sampling:- Chose a light based on a cdf
- Solid angle spherical rectangle for QuadLights
both can be combined- Chose a light based on a cdf
- Solid angle spherical rectangle for QuadLights
both can be combinedMalia 1.2https://gitlab.inria.fr/pacanows/MRF/-/issues/152Support for Spherical Envmap2021-07-05T11:32:10+02:00PACANOWSKI RomainSupport for Spherical Envmap- Support spherical envmaps- Support spherical envmapshttps://gitlab.inria.fr/pacanows/MRF/-/issues/151Envmap Resizing Support2020-04-22T22:12:25+02:00PACANOWSKI RomainEnvmap Resizing SupportFrom old doc:
> - Does not support resize of envmaps, see code in optix renderer.cpp updateBackground(), the buffer that holds the envmaps on gpu are never resized
>
is this still true ?From old doc:
> - Does not support resize of envmaps, see code in optix renderer.cpp updateBackground(), the buffer that holds the envmaps on gpu are never resized
>
is this still true ?https://gitlab.inria.fr/pacanows/MRF/-/issues/150How to integrate Beer Lambert LAW for some Materials?2020-04-22T22:11:42+02:00PACANOWSKI RomainHow to integrate Beer Lambert LAW for some Materials?- Fresnel glass extinction ? beer lambert ?- Fresnel glass extinction ? beer lambert ?https://gitlab.inria.fr/pacanows/MRF/-/issues/149ThinLens in OptixBackend2020-04-22T22:10:50+02:00PACANOWSKI RomainThinLens in OptixBackend- Support other cameratype -> thinlens: DOF- Support other cameratype -> thinlens: DOF