MRF issueshttps://gitlab.inria.fr/pacanows/MRF/-/issues2021-02-25T09:48:15+01:00https://gitlab.inria.fr/pacanows/MRF/-/issues/58OptiX 7 Support2021-02-25T09:48:15+01:00MURRAY DavidOptiX 7 SupportCheck if the RTBuffer class (CPU/GPU) is kept, otherwise check what should be used instead.
Same for optix::Buffer (CPU).Check if the RTBuffer class (CPU/GPU) is kept, otherwise check what should be used instead.
Same for optix::Buffer (CPU).Malia 2.0https://gitlab.inria.fr/pacanows/MRF/-/issues/70Spectrum File Support2020-01-06T10:28:39+01:00PACANOWSKI RomainSpectrum File SupportImprove the support for spectrum file.
One should be able to put a raw string like for the "value" attribute in the file directly:
300.0:0.1590986397149437,310.0:0.19393972058572118,320.0:0.23242903311147056910.0:0.010000000006943972,92...Improve the support for spectrum file.
One should be able to put a raw string like for the "value" attribute in the file directly:
300.0:0.1590986397149437,310.0:0.19393972058572118,320.0:0.23242903311147056910.0:0.010000000006943972,920.0:0.010000000002529126,930.0:0.010000000000902915,990.0:0.010000000000001228,1000.0:0.010000000000000382https://gitlab.inria.fr/pacanows/MRF/-/issues/73Malia segfault on Linux2020-01-06T09:51:32+01:00PACANOWSKI RomainMalia segfault on Linuxwhen launching it from the command line without any scene (or any arguments) instead of starting
in interactive mode
This needs to be tested on master and on fix_parsing_issueswhen launching it from the command line without any scene (or any arguments) instead of starting
in interactive mode
This needs to be tested on master and on fix_parsing_issuesMURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/77Slow loading of big assets2020-11-04T20:45:28+01:00MURRAY DavidSlow loading of big assetsMentioned by Arthur, loading huge asset is very slow.
It seems to come from an include in cuda material kernels. We need more info from him.Mentioned by Arthur, loading huge asset is very slow.
It seems to come from an include in cuda material kernels. We need more info from him.https://gitlab.inria.fr/pacanows/MRF/-/issues/78Make the cuda kernel execution more robust + add log2020-11-04T15:35:49+01:00MURRAY DavidMake the cuda kernel execution more robust + add logWe need to add a check on context launch and buffer creation.
In particular, we need to ensure enough memory is available (or at least log it otherwise).We need to add a check on context launch and buffer creation.
In particular, we need to ensure enough memory is available (or at least log it otherwise).https://gitlab.inria.fr/pacanows/MRF/-/issues/89ART Raw image support2020-02-17T16:25:21+01:00Alban FichetART Raw image supportSupport for save / read ART Raw file format (http://cgg.mff.cuni.cz/ART/).
No support planed for:
- ART Raw with CIE XYZ
- ART Raw with polarisationSupport for save / read ART Raw file format (http://cgg.mff.cuni.cz/ART/).
No support planed for:
- ART Raw with CIE XYZ
- ART Raw with polarisationAlban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/80TEST Scene to confirm BUG2020-03-23T11:29:50+01:00PACANOWSKI RomainTEST Scene to confirm BUGMURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/144TEST Analytical Support for Sphere2020-10-30T15:54:43+01:00PACANOWSKI RomainTEST Analytical Support for Sphere# To test
- retest sphere.cpp -> createMesh() --># To test
- retest sphere.cpp -> createMesh() -->https://gitlab.inria.fr/pacanows/MRF/-/issues/91[Bug | refactor_renderer] Tone mapper interactive mode2020-03-19T10:49:22+01:00Alban Fichet[Bug | refactor_renderer] Tone mapper interactive modeTone mapping problem on Linux
```
./bin/malia -scene ../assets/scenes/cornellbox.msf -i
```
![Screenshot_from_2020-02-17_16-14-37](/uploads/472576b6dd56796742c789b56c2a8219/Screenshot_from_2020-02-17_16-14-37.png)Tone mapping problem on Linux
```
./bin/malia -scene ../assets/scenes/cornellbox.msf -i
```
![Screenshot_from_2020-02-17_16-14-37](/uploads/472576b6dd56796742c789b56c2a8219/Screenshot_from_2020-02-17_16-14-37.png)Alban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/92[Bug | refactor_renderer] Segfault on save image in interactive mode2020-02-26T11:44:53+01:00Alban Fichet[Bug | refactor_renderer] Segfault on save image in interactive modeCrashes when trying to save image from the interactive GUI.
Line 1262 of `mrf/rendering/optix_renderer.cpp` seems to return an error (missing rtBufferGLUnregister?).
When adding a `rtBufferGLUnregister` prior to the `rtBufferMap`, crash...Crashes when trying to save image from the interactive GUI.
Line 1262 of `mrf/rendering/optix_renderer.cpp` seems to return an error (missing rtBufferGLUnregister?).
When adding a `rtBufferGLUnregister` prior to the `rtBufferMap`, crashes anyway, content of imageData is null.MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/93[BUG] Phong Normalized does not set pdf + possibly wrong brdf value2021-02-22T15:14:39+01:00MURRAY David[BUG] Phong Normalized does not set pdf + possibly wrong brdf valueIn the phong.cu, in function "sample_and_eval", the varying parameter "pdf" is not set, leading to potential in the MIS computation.
Also, I think the BRDF value is wrongly computed in this same function. The process is as follows:
1 - ...In the phong.cu, in function "sample_and_eval", the varying parameter "pdf" is not set, leading to potential in the MIS computation.
Also, I think the BRDF value is wrongly computed in this same function. The process is as follows:
1 - choose if sampling the diffuse or specular part.
2 - if sampling the diffuse part: sample cos weighted hemisphere and brdf = diffuse_color.
3 - if sampling the diffuse part: sample phong lobe and brdf = specular_color * phong_blahblah.
While I agree on the fact that we must "randomly" choose between sampling using cos or the phong lobe, I disagree that the BRDF should be only a restriction and not the full phong brdf (diffuse_color + specular_color).
Or if it should, then the function "brdf_eval" must also use the same principle, whereas it currently evaluate the full phong BRDF without choose between diffuse or specular.PACANOWSKI RomainPACANOWSKI Romainhttps://gitlab.inria.fr/pacanows/MRF/-/issues/94SPECTRAL TEST SCENES2020-03-23T14:47:38+01:00PACANOWSKI RomainSPECTRAL TEST SCENESSome ideas for Spectral scenes
- Cornell BOX
- Color Chart illuminated by different Illuminants
- Scene with different illuminants (analytical) and also measuredSome ideas for Spectral scenes
- Cornell BOX
- Color Chart illuminated by different Illuminants
- Scene with different illuminants (analytical) and also measuredhttps://gitlab.inria.fr/pacanows/MRF/-/issues/59In multiplexing with glass: add a test to use only the propagated wavelength2020-07-21T14:31:04+02:00MURRAY DavidIn multiplexing with glass: add a test to use only the propagated wavelengthWhen the ray is transmitted by glass, we only keep only one wavelength active, the others are set to 0. Thus, all the event occuring afterwards imply many useless operations ("mult_color", "init_color", etc).
We could optimize this by d...When the ray is transmitted by glass, we only keep only one wavelength active, the others are set to 0. Thus, all the event occuring afterwards imply many useless operations ("mult_color", "init_color", etc).
We could optimize this by doing theses operations only for the wavelength we kept.MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/97[WIP] Master: compilation error with artraw2020-03-23T11:29:26+01:00MURRAY David[WIP] Master: compilation error with artrawThe artraw_image.cpp does not compile due to following error on line 20 (also on line 44):
> C:\Dev\MRF_source\mrf\image\artraw_image.cpp(20): error C2512: 'mrf::util::_Array2D<float>': no appropriate default constructor available
Alb...The artraw_image.cpp does not compile due to following error on line 20 (also on line 44):
> C:\Dev\MRF_source\mrf\image\artraw_image.cpp(20): error C2512: 'mrf::util::_Array2D<float>': no appropriate default constructor available
Alban, can you please take a look to either use another constructor, or add a proper default constructor ?
Also, for msvc, <functional> needs to be included in artraw_image.cppAlban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/99MRF Compilation fails on Branch refactor_renderer2020-03-19T10:00:07+01:00PACANOWSKI RomainMRF Compilation fails on Branch refactor_rendererSomething Wrong with Eigen and the 2D array.
Did you experience something simumlar ?
R
> [ 89%] Building CXX object CMakeFiles/obj_compiled_files.dir/externals/tinyxml2/tinyxml2.cpp.o
> /usr/bin/c++ -DMRF_BUILD -DMRF_RENDERING_MODE_...Something Wrong with Eigen and the 2D array.
Did you experience something simumlar ?
R
> [ 89%] Building CXX object CMakeFiles/obj_compiled_files.dir/externals/tinyxml2/tinyxml2.cpp.o
> /usr/bin/c++ -DMRF_BUILD -DMRF_RENDERING_MODE_SPECTRAL -DMRF_WITH_EIGEN_SUPPORT -I/home/pac/Projets/GitlabINRIA_MRF/MRF/build -I/home/pac/Projets/GitlabINRIA_MRF/MRF -I/home/pac/Projets/GitlabINRIA_MRF/MRF/mrf -I/home/pac/Projets/GitlabINRIA_MRF/MRF/externals -I/home/pac/Projets/GitlabINRIA_MRF/MRF/externals/MRF -I/home/pac/Projets/GitlabINRIA_MRF/MRF/externals/MRF/mrf -I/usr/include/eigen3 -I/home/pac/Projets/GitlabINRIA_MRF/MRF/apps/rgb2spec/externals -O3 -DNDEBUG -fPIC -std=gnu++14 -o CMakeFiles/obj_compiled_files.dir/externals/tinyxml2/tinyxml2.cpp.o -c /home/pac/Projets/GitlabINRIA_MRF/MRF/externals/tinyxml2/tinyxml2.cpp
> In file included from /usr/include/eigen3/Eigen/Core:366,
> from /home/pac/Projets/GitlabINRIA_MRF/MRF/mrf/data_struct/eigen_array2d.hpp:17,
> from /home/pac/Projets/GitlabINRIA_MRF/MRF/mrf/data_struct/array2d.hpp:14,
> from /home/pac/Projets/GitlabINRIA_MRF/MRF/mrf/image/uniform_spectral_image.hpp:15,
> from /home/pac/Projets/GitlabINRIA_MRF/MRF/mrf/rendering/renderer.hpp:23,
> from /home/pac/Projets/GitlabINRIA_MRF/MRF/mrf/rendering/renderer.cpp:1:
> /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h: In instantiation of ‘Eigen::DenseCoeffsBase<Derived, 1>::Scalar& Eigen::DenseCoeffsBase<Derived, 1>::operator[](Eigen::Index) [with Derived = Eigen::Array<float, -1, -1, 1, -1, -1>; Eigen::DenseCoeffsBase<Derived, 1>::Scalar = float; Eigen::Index = long int]’:
> /home/pac/Projets/GitlabINRIA_MRF/MRF/mrf/rendering/renderer.cpp:176:22: required from here
> /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h:406:27: error: static assertion failed: THE_BRACKET_OPERATOR_IS_ONLY_FOR_VECTORS__USE_THE_PARENTHESIS_OPERATOR_INSTEAD
> EIGEN_STATIC_ASSERT(Derived::IsVectorAtCompileTime,
> ^~~~~~~
> /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h:33:54: note: in definition of macro ‘EIGEN_STATIC_ASSERT’
> #define EIGEN_STATIC_ASSERT(X,MSG) static_assert(X,#MSG);
MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/100MALIA COMPILATION FAILS on REFACTOR_RENDER Branch2020-03-19T09:59:57+01:00PACANOWSKI RomainMALIA COMPILATION FAILS on REFACTOR_RENDER BranchOn my Ubuntu compilation fails (not for the same reason as MRF!)
Cheers
Romain
>
```
> [ 94%] Building CXX object CMakeFiles/malia.dir/ext/imgui/imgui_impl_glfw.cpp.o
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI...On my Ubuntu compilation fails (not for the same reason as MRF!)
Cheers
Romain
>
```
> [ 94%] Building CXX object CMakeFiles/malia.dir/ext/imgui/imgui_impl_glfw.cpp.o
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp: In member function ‘void mrf::gui::BaseUI::initSensitivityBuffer()’:
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp:350:21: error: ‘SENSITIVITY_BUFFER’ was not declared in this scope
> _texture_list[SENSITIVITY_BUFFER] = Texture(sensitivity_curve_size, GL_RGBA32F, "sensitivity_buffer", false, curve);
> ^~~~~~~~~~~~~~~~~~
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp:350:21: note: suggested alternative: ‘OUTPUT_BUFFER’
> _texture_list[SENSITIVITY_BUFFER] = Texture(sensitivity_curve_size, GL_RGBA32F, "sensitivity_buffer", false, curve);
> ^~~~~~~~~~~~~~~~~~
> OUTPUT_BUFFER
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp: In member function ‘void mrf::gui::BaseUI::initIlluminantBuffer()’:
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp:361:21: error: ‘ILLUMINANT_BUFFER’ was not declared in this scope
> _texture_list[ILLUMINANT_BUFFER] = Texture(illuminant_size, GL_R32F, "illuminant_buffer", false, illuminant);
> ^~~~~~~~~~~~~~~~~
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp:361:21: note: suggested alternative: ‘ILLUMINANT’
> _texture_list[ILLUMINANT_BUFFER] = Texture(illuminant_size, GL_R32F, "illuminant_buffer", false, illuminant);
> ^~~~~~~~~~~~~~~~~
> ILLUMINANT
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp: In member function ‘void mrf::gui::BaseUI::initWavelengthBuffer()’:
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp:372:21: error: ‘WAVELENGTH_BUFFER’ was not declared in this scope
> _texture_list[WAVELENGTH_BUFFER] = Texture(size, GL_R32F, "wavelength_buffer", false, wavelengths);
> ^~~~~~~~~~~~~~~~~
> /home/pac/Projets/GitlabINRIA_MRF/MRF/apps/malia/gui/mrf_baseUI.cpp:372:21: note: suggested alternative: ‘GL_DEPTH_BUFFER’
> _texture_list[WAVELENGTH_BUFFER] = Texture(size, GL_R32F, "wavelength_buffer", false, wavelengths);
> ^~~~~~~~~~~~~~~~~
> GL_DEPTH_BUFFER
>
```MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/102Refactor: Put correct header inclusion2020-03-23T11:29:34+01:00PACANOWSKI RomainRefactor: Put correct header inclusionIn the refactor branch, we should ensure a more robust include syntax: includes should be "mrf/MODULE_NAME/file.hpp" and not "MODULE_NAME/file.hpp" or just "file.hpp".In the refactor branch, we should ensure a more robust include syntax: includes should be "mrf/MODULE_NAME/file.hpp" and not "MODULE_NAME/file.hpp" or just "file.hpp".https://gitlab.inria.fr/pacanows/MRF/-/issues/104Interactive : Broken on the fly scene loading2020-03-30T15:41:12+02:00MURRAY DavidInteractive : Broken on the fly scene loadingIt seems our recent developments broke the loading feature.
Any attempt to load is met with a black output.It seems our recent developments broke the loading feature.
Any attempt to load is met with a black output.MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/105ART Raw warnings2021-07-22T15:23:50+02:00Alban FichetART Raw warningsWindows compiler complains about not using fscanf_sWindows compiler complains about not using fscanf_sAlban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/106Refactor and clarify the specification of Image containers2022-10-06T14:46:37+02:00Alban FichetRefactor and clarify the specification of Image containers# What are the problems?
## Colour image
There is currently no clear specification about what shall contain a `ColorImage`. Is it sRGB, is it RGB?
### Why is this an issue?
The colour image have several save function which more or less...# What are the problems?
## Colour image
There is currently no clear specification about what shall contain a `ColorImage`. Is it sRGB, is it RGB?
### Why is this an issue?
The colour image have several save function which more or less write the raw colour value to the file regardless of the format. But, a EXR is generally a linear RGB while a PNG is sRGB if no ICC profile is provided.
Hence, doing
```
colorImage.save("img.exr");
colorImage.save("img.png");
```
does not have a very clear behaviour.
Furthermore, `savePNG` multiply the values by 255... So, it is already applying a conversion.
### What do I suggest?
A - `ColorImage` shall be an abstract class (will develop on that later)
B - `ColorImage` shall assume the pixels are linear values (XYZ, RGB ? I would be for XYZ)
C - `ColorImage` shall be renamed accordingly (`XYZImage` or `RGBImage`)
## Refactoring
I suggest a refactoring of the hierarchy of the Image classes. I am not an UML expert so excuse the approximations but here it is.
![image](/uploads/937bb0ed7b875c6eab0060fe89ccfa4c/image.png)
Each of the Image shall implement the copy operator. This will ease image conversion.
Also, I would avoid public load instance functions. I would prefer constructor in the corresponding class (for instance `SpectralImage *img = new EnviSpectralImage("foo.hdr");`). That does not mean we cannot have static load factories in each class.
Since this architecture is highly a personal taste and not the only way to implement it, I am opening discussion (and probably trolls ;) ) threw this issue.
## Questions about colour conversion / tonemapping
I have the feeling that we do it wrong for Reinhard tonemapping.
I think we shall consider this tonemapping function (and any tomemapping function) transforming a linear RGB space into another RGB space represented as linear value.
What do I mean? I think we shall apply anyway a sRGB gamma correction whatever the tonemapping function we are using in case we intend to display the result on a 8bit / channel monitor or on a image without an ICC profile. If there is an ICC profile, the colours shall be consider as linear RGB and then converted in the specified ICC colourspace.
Why? A tonemapping function is "just" a luminance / colour adaptation. sRGB is an old standard still in used to colour correct an RGB colour on a non linear monitor (cathodic monitor). This have nothing to do with the perceptive tonemapping function.
Am I correct there or do I miss something?https://gitlab.inria.fr/pacanows/MRF/-/issues/107Add support of spot lights2021-02-25T09:30:15+01:00MURRAY DavidAdd support of spot lightsMalia 1.2https://gitlab.inria.fr/pacanows/MRF/-/issues/109[Blender 2.8 Export] Add a Button to render only the current camera2020-11-04T20:47:11+01:00PACANOWSKI Romain[Blender 2.8 Export] Add a Button to render only the current cameraThis could be useful instead of rendering the whole animation
OR another button "Render Full Sequence"This could be useful instead of rendering the whole animation
OR another button "Render Full Sequence"https://gitlab.inria.fr/pacanows/MRF/-/issues/110[Blender 2.8 Export] Export Spectral Environment Map as well when the backgro...2020-11-04T20:46:18+01:00PACANOWSKI Romain[Blender 2.8 Export] Export Spectral Environment Map as well when the background is present in the scene--> Call rgb2spec if the png or exr image needs to be converted as Spectral Image
--> use the same number of wavelength as rendering parameters for now (or add option in the export toolbox)--> Call rgb2spec if the png or exr image needs to be converted as Spectral Image
--> use the same number of wavelength as rendering parameters for now (or add option in the export toolbox)https://gitlab.inria.fr/pacanows/MRF/-/issues/111[Blender 2.8 Export] Export A Real Spectrum from color for Light Sources2021-02-25T10:26:05+01:00PACANOWSKI Romain[Blender 2.8 Export] Export A Real Spectrum from color for Light SourcesHello
it seems that the color of the light sources is never inversed with rgb2spec to get a spectrum
The official documentation says otherwise https://pacanows.gitlabpages.inria.fr/MRF/blender_integration.md.html#toc3.2Hello
it seems that the color of the light sources is never inversed with rgb2spec to get a spectrum
The official documentation says otherwise https://pacanows.gitlabpages.inria.fr/MRF/blender_integration.md.html#toc3.2Malia 1.2https://gitlab.inria.fr/pacanows/MRF/-/issues/113Transform CTest through JUnit for displaying a report2022-10-06T14:46:17+02:00PACANOWSKI RomainTransform CTest through JUnit for displaying a reportSee here :
https://gitlab.inria.fr/guenneba/eigen4gitlabci/-/blob/master/.gitlab-ci.yml
```yaml
- (xsltproc ../scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > "JUnitTestResults_$CI_JOB_ID.xml" || true)
- ctest ...See here :
https://gitlab.inria.fr/guenneba/eigen4gitlabci/-/blob/master/.gitlab-ci.yml
```yaml
- (xsltproc ../scripts/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > "JUnitTestResults_$CI_JOB_ID.xml" || true)
- ctest -D "$MODE"Submit $COMMON_CTEST_ARGS -VV
# else
# echo Error cmake failed;
# fi
- gcovr -r .
- rm "$HOME/builds/running_build_$CI_JOB_ID"
```https://gitlab.inria.fr/pacanows/MRF/-/issues/114Creating a SNAP file instead of an AppImage2022-10-06T14:46:15+02:00PACANOWSKI RomainCreating a SNAP file instead of an AppImagefor Malia?
for Spectral Viewer?for Malia?
for Spectral Viewer?Alban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/116Making Malia less VERBOSE by default?2020-12-05T05:44:35+01:00PACANOWSKI RomainMaking Malia less VERBOSE by default?Currently Malia is set by default in info mode.
Should we switch to Warning mode by default but still we could output some information that are always required
Rendering Started
Rendering Completed in XXX seconds
Image saved to toto.foo...Currently Malia is set by default in info mode.
Should we switch to Warning mode by default but still we could output some information that are always required
Rendering Started
Rendering Completed in XXX seconds
Image saved to toto.foo
What do you think?https://gitlab.inria.fr/pacanows/MRF/-/issues/117[Refactoring] Class Color shoud extends Vec32020-04-30T18:59:52+02:00PACANOWSKI Romain[Refactoring] Class Color shoud extends Vec3To discuss itTo discuss ithttps://gitlab.inria.fr/pacanows/MRF/-/issues/120More robust handling of envmap path2020-11-04T23:25:50+01:00MURRAY DavidMore robust handling of envmap pathIn the documentation, it is specified that the ext resource path is relative:
https://pacanows.gitlabpages.inria.fr/MRF/scene_format.md.html#toc5
Handling both relative and absolute is necessary IMO, so that you can use scenes and envma...In the documentation, it is specified that the ext resource path is relative:
https://pacanows.gitlabpages.inria.fr/MRF/scene_format.md.html#toc5
Handling both relative and absolute is necessary IMO, so that you can use scenes and envmaps that are in distant directory.https://gitlab.inria.fr/pacanows/MRF/-/issues/121REMOVE GLFW from optix_util.cpp2020-05-05T15:14:31+02:00PACANOWSKI RomainREMOVE GLFW from optix_util.cppand other unnecessary OpenGL dependenciesand other unnecessary OpenGL dependenciesMalia 1.0.0 Beta 1MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/123malia should launch demo when no option specified2020-05-05T15:31:33+02:00PACANOWSKI Romainmalia should launch demo when no option specifiedMalia 1.0.0 Beta 1PACANOWSKI RomainPACANOWSKI Romainhttps://gitlab.inria.fr/pacanows/MRF/-/issues/131[Idea] RNG Number2021-02-25T09:32:03+01:00PACANOWSKI Romain[Idea] RNG NumberFrom the previous documentation
> Use libcuda to generate random numbers
> Hammersley + micro-jitter for non interactive backends (fixed number of samples) ?From the previous documentation
> Use libcuda to generate random numbers
> Hammersley + micro-jitter for non interactive backends (fixed number of samples) ?Malia 2.0https://gitlab.inria.fr/pacanows/MRF/-/issues/132Emissive spectrum for Blackbody2021-02-25T09:31:41+01:00PACANOWSKI RomainEmissive spectrum for Blackbody
> - Add another ways to specify an emissive spectrum, could be something like this:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ XML
> <spectrum blackbody=”4000K”/>
> <spectrum standard_illuminant=”D65”/>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> - Add another ways to specify an emissive spectrum, could be something like this:
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ XML
> <spectrum blackbody=”4000K”/>
> <spectrum standard_illuminant=”D65”/>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Malia 1.2https://gitlab.inria.fr/pacanows/MRF/-/issues/133Bootstrap an Embree backend2021-02-25T09:30:47+01:00PACANOWSKI RomainBootstrap an Embree backendAdd an Embree backend for support rendering with non GPU PC.
Editing this issue to:
Add a basic support for Embree.
Plan is to support lambertian reflectances as a proof of concept to bootstrap a full Embree backend.Add an Embree backend for support rendering with non GPU PC.
Editing this issue to:
Add a basic support for Embree.
Plan is to support lambertian reflectances as a proof of concept to bootstrap a full Embree backend.Malia 2.0https://gitlab.inria.fr/pacanows/MRF/-/issues/135Reminder Todo from MRF22020-11-04T23:28:50+01:00PACANOWSKI RomainReminder Todo from MRF2
Here we list all the unfinished work from porting MRF2 to the new MRF aka mRF #3
- in Scene
* [ ] verifyBRDF doesn't work in spectral (never used in RGB)
* [x] recomputeAABBox need tobe recoded, it was working before we introduce the ...
Here we list all the unfinished work from porting MRF2 to the new MRF aka mRF #3
- in Scene
* [ ] verifyBRDF doesn't work in spectral (never used in RGB)
* [x] recomputeAABBox need tobe recoded, it was working before we introduce the instanciation mechanism using shapes
- in Mesh
- operator << to merge meshes isn't working anymore
- scene_parser.cpp
* [X] addSphere
- some work in addMaterial
- some materials in scene_parser:
- Matusik
- Merl
- MeasuredAnisotropicNGAN
- AnisotropicNGAN
- AnisotropicPhong
- addAshikhminShirleyIsotropic
- Rational HC
- addDBRDF
- addFBTDF
- Flat
- UV
- Normal
- Tangent
- Rebound
- Ward
- Poulin
- addSGD
- addGGXD
- GGXComp0
- GGXComp1
- addLowSmooth
- addHe
- addGenBeckmann
- addMicroFacetGHS
- addCTD
- addHazyGloss
- addWalterBSDF
- addNano2D
- PanoramicEnvMap::getLuminanceEnvmaphttps://gitlab.inria.fr/pacanows/MRF/-/issues/136Light transport improvememt2020-04-22T21:56:25+02:00PACANOWSKI RomainLight transport improvememt
> - Implement another light transport algorithm (only Path Tracing for now) for better caustics
> - Russian roulette instead of recursion bias ?
> - Implement another light transport algorithm (only Path Tracing for now) for better caustics
> - Russian roulette instead of recursion bias ?https://gitlab.inria.fr/pacanows/MRF/-/issues/137Add Paam for ALTA format2021-02-25T09:45:26+01:00PACANOWSKI RomainAdd Paam for ALTA formatOther parametrizations for the ALTA format (only TV_TL_DPHI for now)Other parametrizations for the ALTA format (only TV_TL_DPHI for now)Malia 1.4https://gitlab.inria.fr/pacanows/MRF/-/issues/138Fresnel Glass interface (fresnel_glass_interface.cu)2021-02-25T09:51:02+01:00PACANOWSKI RomainFresnel Glass interface (fresnel_glass_interface.cu)This needs to be implemented?This needs to be implemented?Malia 1.4https://gitlab.inria.fr/pacanows/MRF/-/issues/139Optix Materials not implemented in CPU Back-end2021-02-25T09:36:09+01:00PACANOWSKI RomainOptix Materials not implemented in CPU Back-endSome materials work in the OptiXBackend but aren't implemented in the CPU backend, we list them here:
- FresnelGlass
- PerfectMirror
- FresnelMirrorSome materials work in the OptiXBackend but aren't implemented in the CPU backend, we list them here:
- FresnelGlass
- PerfectMirror
- FresnelMirrorMalia 2.0https://gitlab.inria.fr/pacanows/MRF/-/issues/140Reminder Methods from MRF2 not working anymore2020-11-04T23:22:29+01:00PACANOWSKI RomainReminder Methods from MRF2 not working anymore# Scene object
These method aren't working anymore:
- totalIntersectionCost
- totalGeometryCost
- verifyBRDF in SPECTRAL MODE
- recomputeAABBox# Scene object
These method aren't working anymore:
- totalIntersectionCost
- totalGeometryCost
- verifyBRDF in SPECTRAL MODE
- recomputeAABBoxhttps://gitlab.inria.fr/pacanows/MRF/-/issues/141IOR limitations2020-04-22T22:02:01+02:00PACANOWSKI RomainIOR limitations
> We also need to support dielectric materials inside of dielectric materials (this could be recursive),
> for that we need to store a stack of iors in the per ray data structure (current_prd in cuda code).
> For now only one ior is st...
> We also need to support dielectric materials inside of dielectric materials (this could be recursive),
> for that we need to store a stack of iors in the per ray data structure (current_prd in cuda code).
> For now only one ior is store in the current_prd, which allows us to have a conductor object dielectric inside a dielectric one
> (see scene MRF_DIR/assets/scenes/torus_in_glass.msf).
> In fact, this current ior allows us to know that the ray is inside a dielectric when hitting the conductor, but when leaving the inside
> of the dielectric material we suppose we go back to the default ior of scene, the air, hence the need for a stack of iors.
This is a big issue but not easy to solve when wanting to take into account all possible caseshttps://gitlab.inria.fr/pacanows/MRF/-/issues/142MRF Spectrum class Improvements2020-05-17T23:25:04+02:00PACANOWSKI RomainMRF Spectrum class Improvements
From old TODO list:
> - Extrapolation (linear on last two points) on fly
> - preparate spectrum -> store a new spectrum with fewer or more wavelengths for spectral rendering
> - Mutualize some code with mrf/maths/integral1D class (meth...
From old TODO list:
> - Extrapolation (linear on last two points) on fly
> - preparate spectrum -> store a new spectrum with fewer or more wavelengths for spectral rendering
> - Mutualize some code with mrf/maths/integral1D class (methods to compute integral of a spectrum)
is this still the case?Alban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/143Code Cleaning from MRF22020-11-04T23:21:58+01:00PACANOWSKI RomainCode Cleaning from MRF2# Useless class and functions
We list here the class and functions that were imported from the previous version of MRF and are never used
in this version but still present in the code base.
- material builder# Useless class and functions
We list here the class and functions that were imported from the previous version of MRF and are never used
in this version but still present in the code base.
- material builderhttps://gitlab.inria.fr/pacanows/MRF/-/issues/96To implement: walter_bsdf2020-07-21T14:31:00+02:00MURRAY DavidTo implement: walter_bsdfIt seems that the material type "walter_bsdf" (in .msf file, converted to ggx for rendering) is causing a crash when multiplexing:
> OptiX Error: 'Variable not found (Details: Function "_rtContextLaunch2D" caught exception: Variable "Un...It seems that the material type "walter_bsdf" (in .msf file, converted to ggx for rendering) is causing a crash when multiplexing:
> OptiX Error: 'Variable not found (Details: Function "_rtContextLaunch2D" caught exception: Variable "Unresolved reference to variable diffuse_color from _Z13material_evalv" not found in scope)'
To reproduce, launch malia spectral with:
-i -wr 400:700:30 -wpp 10 -scene "path_to_scene/prism.msf"
-i -wr 400:700:30 -wpp 10 -scene "path_to_scene/material_export.msf"
Both scenes contain at least one walter_bsdf material. In the latter, I identified walter_bsdf to be the cause by replacing all materials with lambert, and replacing back one by one.
The problem does not occur when not doing multiplexing.
Could you test on your side to see if you also have a this crash?MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/145Hero Wavelength Spectral Sampling (HWSS)2021-02-25T09:43:45+01:00PACANOWSKI RomainHero Wavelength Spectral Sampling (HWSS)Malia 1.3https://gitlab.inria.fr/pacanows/MRF/-/issues/146Add Reinhard Tonemapper to MIC2020-11-04T15:30:49+01:00PACANOWSKI RomainAdd Reinhard Tonemapper to MIC- Add Reinhardt tonemappar to MIC- Add Reinhardt tonemappar to MIChttps://gitlab.inria.fr/pacanows/MRF/-/issues/147Convert some scenes ?2020-11-04T20:43:26+01:00PACANOWSKI RomainConvert some scenes ?
- scenes from macguire -> conversion prbt vers mrf
- scenes from macguire -> conversion prbt vers mrfhttps://gitlab.inria.fr/pacanows/MRF/-/issues/148Faster ColorImage2020-11-04T20:48:26+01:00PACANOWSKI RomainFaster ColorImageBy using an Eigen version of Vec3f
like this is done for Array2D
provide an Eigen version of it if Eigen3 is availableBy using an Eigen version of Vec3f
like this is done for Array2D
provide an Eigen version of it if Eigen3 is availablehttps://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: DOFhttps://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/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/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/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/154Fix compilation problem for newest version of CMake2020-12-04T09:39:25+01:00Alban FichetFix compilation problem for newest version of CMakeThis temporary fix shall be addressed:
https://gitlab.inria.fr/pacanows/MRF/-/commit/ddb2b900d5e22751f7fd3220a67d099224e48906
`apps/malia/CMakeLists.txt` requires macros defined in `apps/malia/CMake/FindCuda.cmake`. Unless `find_package...This temporary fix shall be addressed:
https://gitlab.inria.fr/pacanows/MRF/-/commit/ddb2b900d5e22751f7fd3220a67d099224e48906
`apps/malia/CMakeLists.txt` requires macros defined in `apps/malia/CMake/FindCuda.cmake`. Unless `find_package(CUDA)` is called, they remain undefined and compilation crashes (see `apps/malia/CMakeLists.txt:162`).
```
█▓▒░afichet@lupin░▒▓██▓▒░ Thu Apr 23 02:57:44pm
/home/afichet/Repositories/MRF/build_malia> cmake --version
cmake version 3.17.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
```https://gitlab.inria.fr/pacanows/MRF/-/issues/155Proper wavelength sampling2021-01-22T16:09:10+01:00Alban FichetProper wavelength samplingBefore an Hero Wavelength Spectral Sampling, we need a proper random wavelength sampling.Before an Hero Wavelength Spectral Sampling, we need a proper random wavelength sampling.Malia 1.0.0 Beta 1Alban FichetAlban Fichethttps://gitlab.inria.fr/pacanows/MRF/-/issues/69Support of RTCore for ray intersection2020-12-04T09:15:55+01:00MURRAY DavidSupport of RTCore for ray intersectionCurrently, MRF does not support ray intersection acceleration provided by RT cores with RTX GPU.
This requires some modifications in the OptiX context creation as well as modifications in handling meshes.
See:
https://devtalk.nvidia.com...Currently, MRF does not support ray intersection acceleration provided by RT cores with RTX GPU.
This requires some modifications in the OptiX context creation as well as modifications in handling meshes.
See:
https://devtalk.nvidia.com/default/topic/1047102/optix/optix-6-0-quot-rtx-acceleration-is-supported-on-maxwell-and-newer-gpus-quot-/MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/167Saving in PNG not working2022-10-06T14:46:27+02:00MURRAY DavidSaving in PNG not workingWhen specifying a png file for output, the file cannot be read.
It seems there is a mixup between png and exr: the output file format is indeed png but the content seems to be exr.When specifying a png file for output, the file cannot be read.
It seems there is a mixup between png and exr: the output file format is indeed png but the content seems to be exr.https://gitlab.inria.fr/pacanows/MRF/-/issues/156Saving to EXR or HDR fails for this scene?2022-10-06T14:46:37+02:00PACANOWSKI RomainSaving to EXR or HDR fails for this scene?On my side when compiling and using Malia on master branch
the attached scene can be open and displayed interactively (malia -i)
but when saving the generated images cannot be open by SpectralViewer (3.0.1b)
or even exrdisplay for .exr f...On my side when compiling and using Malia on master branch
the attached scene can be open and displayed interactively (malia -i)
but when saving the generated images cannot be open by SpectralViewer (3.0.1b)
or even exrdisplay for .exr files.
Another weird thing is that the image is supposed to have
1080 = height
1920 = width
pixels
but it is the contray that is displayed when using SpectralViewer or display or exrdisplay
Can you confirm or deny this behaviour?
Cheers
R.
PS: The same malia version works with Official CornellBox scene[shapes_on_plane.zip](/uploads/58e8686b7bb8d752dccb9a743bd9cf0a/shapes_on_plane.zip)Malia 1.0.0 Beta 1Alban FichetAlban Fichethttps://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/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/158Point badge coverage to coverage report2020-05-04T22:29:44+02:00Alban FichetPoint badge coverage to coverage reportRenaming to .html would work ?
Worth trying.
I've already tried to directly point the URL to the file but that does not work...Renaming to .html would work ?
Worth trying.
I've already tried to directly point the URL to the file but that does not work...https://gitlab.inria.fr/pacanows/MRF/-/issues/159PFM an LDR format ?2022-10-06T14:46:46+02:00Alban FichetPFM an LDR format ?I don't think PFM shall be considered as an LDR format: it is storing 16bit floats for each channel.
See declaration in `mrf/image/image_format.hpp:44`I don't think PFM shall be considered as an LDR format: it is storing 16bit floats for each channel.
See declaration in `mrf/image/image_format.hpp:44`https://gitlab.inria.fr/pacanows/MRF/-/issues/160Job Failed #653501 Ubuntu 20.04 LTS VM is not working2020-05-18T10:21:30+02:00Alban FichetJob Failed #653501 Ubuntu 20.04 LTS VM is not workingJob [#653501](https://gitlab.inria.fr/pacanows/MRF/-/jobs/653501) failed for 00a0254e89bab7904201f51d3624e45a606dac2f:Job [#653501](https://gitlab.inria.fr/pacanows/MRF/-/jobs/653501) failed for 00a0254e89bab7904201f51d3624e45a606dac2f:https://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/162Better naming of Blender bridge options2020-11-04T20:37:18+01:00MURRAY DavidBetter naming of Blender bridge optionshttps://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/164MRF Blender Bridge2021-02-22T15:30:52+01:00Alban FichetMRF Blender BridgeIncorrect colour when exporting this scene
https://filesender.renater.fr/?s=download&token=402479d6-0439-4955-9ded-f2bef12266b4
(please do not redistribute this scene, I don't have the acknowledgement for the chair model on hand)
Image...Incorrect colour when exporting this scene
https://filesender.renater.fr/?s=download&token=402479d6-0439-4955-9ded-f2bef12266b4
(please do not redistribute this scene, I don't have the acknowledgement for the chair model on hand)
Image from Cycles:
![cycles](/uploads/97ba9b7510a9d286b9e01f9f8cf25e74/cycles.png)
Image from Malia:
![malia](/uploads/996b2a4ff63d0fba14ea92045bef12d4/malia.png)
- Colour does not match
- Roughness seems off
- Point / sphere light intensity is differenthttps://gitlab.inria.fr/pacanows/MRF/-/issues/165Typo "spectrral"2022-10-06T14:46:46+02:00Léo AckermannTypo "spectrral"While compiling Malia using
```
cmake -DCMAKE_BUILD_TYPE=Release -DMALIA_GPU_ARCHITECTURE=KEPLER -DRENDERER_INTERACTIVE=ON -DOptiX_INSTALL_DIR=${PATH}/NVIDIA-OptiX-SDK-6.5.0-linux64/
```
I've got
```
[...]
Installing Malia in .
Renderer...While compiling Malia using
```
cmake -DCMAKE_BUILD_TYPE=Release -DMALIA_GPU_ARCHITECTURE=KEPLER -DRENDERER_INTERACTIVE=ON -DOptiX_INSTALL_DIR=${PATH}/NVIDIA-OptiX-SDK-6.5.0-linux64/
```
I've got
```
[...]
Installing Malia in .
Renderer Spectrral = malia
[...]
```https://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/169Unused material2022-10-06T14:46:10+02:00MURRAY DavidUnused materialWhen a MSF file contains material that are not used by any shapes, these material are still parsed and added to the list of material.
Thus they are also compiled and their assets are uploaded to the GPU.
This can cause a huge loss of me...When a MSF file contains material that are not used by any shapes, these material are still parsed and added to the list of material.
Thus they are also compiled and their assets are uploaded to the GPU.
This can cause a huge loss of memory when using spectral mode or when unused materials are textured.
Even if this should be the user's task to ensure is scene file is clean, a safety check should be added.MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/170Materials: Bug for checkerboard in RGB mode2022-10-06T14:46:15+02:00Alban FichetMaterials: Bug for checkerboard in RGB modeCheckerboard material takes only the first color in RGB mode
# Spectral
![table_lucy](/uploads/a55f3051fca15e1be8a7a6ea572450f5/table_lucy.png)
# RGB
![table_lucy_rgb](/uploads/034cd14c58e1321223d422de1749457d/table_lucy_rgb.png)Checkerboard material takes only the first color in RGB mode
# Spectral
![table_lucy](/uploads/a55f3051fca15e1be8a7a6ea572450f5/table_lucy.png)
# RGB
![table_lucy_rgb](/uploads/034cd14c58e1321223d422de1749457d/table_lucy_rgb.png)https://gitlab.inria.fr/pacanows/MRF/-/issues/171Infinite loop argument parsing2022-10-06T14:46:10+02:00Alban FichetInfinite loop argument parsingNot sure if that happen on other executables but, this gives me an infinite error message displayed:
```
malia -i -i
```Not sure if that happen on other executables but, this gives me an infinite error message displayed:
```
malia -i -i
```https://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/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/176Blender bridge creation probably fails2022-10-06T14:46:11+02:00Alban FichetBlender bridge creation probably failsFile hierarchy changed in MRF. Blender bridge creation script cannot locate .cu for instance.
Shall probably be generated threw the `CMakeLists.txt` in the future.
https://gitlab.inria.fr/pacanows/MRF/-/jobs/858965#L1761File hierarchy changed in MRF. Blender bridge creation script cannot locate .cu for instance.
Shall probably be generated threw the `CMakeLists.txt` in the future.
https://gitlab.inria.fr/pacanows/MRF/-/jobs/858965#L1761Malia 1.0.0 Beta 1https://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/178Refactor NEE& MIS2021-02-25T09:42:16+01:00MURRAY DavidRefactor NEE& MISReminder:
- NEE = Next Event Estimation;
- MIS = Multiple Importance Sampling.
Currently, our pipeline with NEE works like:
```
At each bounce:
sampleBSDFdirection
evaluateDirectLighting(light_dir)
if(MIS) evaluateDirectLighting(bsdf_...Reminder:
- NEE = Next Event Estimation;
- MIS = Multiple Importance Sampling.
Currently, our pipeline with NEE works like:
```
At each bounce:
sampleBSDFdirection
evaluateDirectLighting(light_dir)
if(MIS) evaluateDirectLighting(bsdf_dir)
propagateRay(bsdf_direction)
```
With:
```
evaluateDirectLighting(out_dir):
if(light_pdf(out_dir) <= 0) return // -> light_pdf = 0 if no intersection between the light and the direction.
shadowRay(out_dir)
if(not_in_shadow) return BSDF_value*mis_weight
```
When NEE is active, light source emission is disabled so than light are not counted on impact as there are theoretically already accounted for.
However, our current implementation sample uniformly one light source per bounce but deactivate ALL sources, even if current point is in shadow, which is a problem. Also, light sampling is currently uniform. It would probably be more efficient to use a light power-based distribution for the sampling.
Finally, I am not sure that the direct evalutation for the BSDF direction is useful as we propagate the ray with this direction in any case. Thus, we may have an extra shadow ray that seems useless.MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/179Dev build: kernels are not exported if modified2022-10-06T14:46:10+02:00MURRAY DavidDev build: kernels are not exported if modifiedWhen building target Malia/Malia_rgb, the kernels are exported only once in the build binary dir. Thus if the files in the MRF source dir are modified by the developper, they are not exported and used when running Malia.
I think we use ...When building target Malia/Malia_rgb, the kernels are exported only once in the build binary dir. Thus if the files in the MRF source dir are modified by the developper, they are not exported and used when running Malia.
I think we use something like this:
https://stackoverflow.com/questions/34799916/copy-file-from-source-directory-to-binary-directory-using-cmake
What do you think ?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/181Compilation fails with GCC 8.2.02020-12-15T10:00:49+01:00PACANOWSKI RomainCompilation fails with GCC 8.2.0> [ 13%] Building CXX object libmrf/core/CMakeFiles/mrf_core_rgb.dir/mrf/image/envi_spectral_image.cpp.o
> cd /home/pacanows/MRF3/build/libmrf/core && /usr/bin/c++ -DMRF_WITH_EIGEN_SUPPORT -I/home/pacanows/MRF3/libmrf/core -I/home/paca...> [ 13%] Building CXX object libmrf/core/CMakeFiles/mrf_core_rgb.dir/mrf/image/envi_spectral_image.cpp.o
> cd /home/pacanows/MRF3/build/libmrf/core && /usr/bin/c++ -DMRF_WITH_EIGEN_SUPPORT -I/home/pacanows/MRF3/libmrf/core -I/home/pacanows/MRF3/build/libmrf/core/mrf_rgb -I/projets/deeplayers/include/eigen3 -I/home/pacanows/MRF3/libmrf/externals/.. -O3 -DNDEBUG -Wall -Wextra -Wpedantic -fopenmp -std=gnu++1y -o CMakeFiles/mrf_core_rgb.dir/mrf/image/envi_spectral_image.cpp.o -c /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp: In lambda function:
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:502:76: erreur: no matching function for call to ‘regex_replace(std::string&, std::regex, const char [3])’
> param_value = std::regex_replace(param_value, std::regex("^ +"), "$1");
>
^
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:502:76: note: candidates are:
> In file included from /usr/include/c++/4.8.2/regex:62:0,
> from /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:12:
> /usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template<class _Out_iter, class _Bi_iter, class _Rx_traits, class _Ch_type> _Out_iter std::regex_replace(_Out_iter, _Bi_iter, _Bi_iter, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
> regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
> ^
> /usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template argument deduction/substitution failed:
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:502:76: note: deduced conflicting types for parameter ‘_Bi_iter’ (‘std::basic_regex<char>’ and ‘const char*’)
> param_value = std::regex_replace(param_value, std::regex("^ +"), "$1");
> ^
> In file included from /usr/include/c++/4.8.2/regex:62:0,
> from /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:12:
> /usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template<class _Rx_traits, class _Ch_type> std::basic_string<_Ch_type> std::regex_replace(const std::basic_string<_Ch_type>&, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
> regex_replace(const basic_string<_Ch_type>& __s,
> ^
> /usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template argument deduction/substitution failed:
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:502:76: note: mismatched types ‘const std::basic_string<_Ch_type>’ and ‘const char [3]’
> param_value = std::regex_replace(param_value, std::regex("^ +"), "$1");
> ^
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp: In member function ‘mrf::image::IMAGE_LOAD_SAVE_FLAGS mrf::image::EnviSpectralImage::readHeader(std::istream&)’:
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:510:79: erreur: no matching function for call to ‘regex_replace(std::string&, std::regex, const char [3])’
> line = std::regex_replace(line, std::regex("^ +"), "$1");
>
^
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:510:79: note: candidates are:
> In file included from /usr/include/c++/4.8.2/regex:62:0,
> from /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:12:
> /usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template<class _Out_iter, class _Bi_iter, class _Rx_traits, class _Ch_type> _Out_iter std::regex_replace(_Out_iter, _Bi_iter, _Bi_iter, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
> regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last,
> ^
> /usr/include/c++/4.8.2/bits/regex.h:2162:5: note: template argument deduction/substitution failed:
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:510:79: note: deduced conflicting types for parameter ‘_Bi_iter’ (‘std::basic_regex<char>’ and ‘const char*’)
> line = std::regex_replace(line, std::regex("^ +"), "$1");
> ^
> In file included from /usr/include/c++/4.8.2/regex:62:0,
> from /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:12:
> /usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template<class _Rx_traits, class _Ch_type> std::basic_string<_Ch_type> std::regex_replace(const std::basic_string<_Ch_type>&, const std::basic_regex<_Ch_type, _Rx_traits>&, const std::basic_string<_Ch_type>&, std::regex_constants::match_flag_type)
> regex_replace(const basic_string<_Ch_type>& __s,
> ^
> /usr/include/c++/4.8.2/bits/regex.h:2182:5: note: template argument deduction/substitution failed:
> /home/pacanows/MRF3/libmrf/core/mrf/image/envi_spectral_image.cpp:510:79: note: mismatched types ‘const std::basic_string<_Ch_type>’ and ‘const char [3]’
> line = std::regex_replace(line, std::regex("^ +"), "$1");
> ^
> make[2]: *** [libmrf/core/CMakeFiles/mrf_core_rgb.dir/mrf/image/envi_spectral_image.cpp.o] Erreur 1
> make[2] : on quitte le répertoire « /home/pacanows/MRF3/build »
> make[1]: *** [libmrf/core/CMakeFiles/mrf_core_rgb.dir/all] Erreur 2
> make[1] : on quitte le répertoire « /home/pacanows/MRF3/build »
> make: *** [all] Erreur 2Alban FichetAlban Fichethttps://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/183Malia does not compile with Optix 6.0.0 and GCC 8.2.02021-06-28T15:29:44+02:00PACANOWSKI RomainMalia does not compile with Optix 6.0.0 and GCC 8.2.0[ 88%] Building CXX object
libmrf/backends/optix/CMakeFiles/mrf_optix_spectral.dir/mrf_optix/optix_geometry_handler.cpp.o
In file included from /home/pacanows/MRF3/libmrf/backends/optix/mrf_optix/optix_material_handler.hpp:20,
...[ 88%] Building CXX object
libmrf/backends/optix/CMakeFiles/mrf_optix_spectral.dir/mrf_optix/optix_geometry_handler.cpp.o
In file included from /home/pacanows/MRF3/libmrf/backends/optix/mrf_optix/optix_material_handler.hpp:20,
from /home/pacanows/MRF3/libmrf/backends/optix/mrf_optix/optix_geometry_handler.hpp:18,
from /home/pacanows/MRF3/libmrf/backends/optix/mrf_optix/optix_geometry_handler.cpp:13:
/home/pacanows/NVIDIA-OptiX-SDK-6.0.0-linux64/include/optixu/optixpp_namespace.h: Dans l'instanciation de « optix::Handle<T>::Handle(const optix::Handle<U>&) [with U = optix::GeometryTrianglesObj; T = optix::GeometryObj] » :
/home/pacanows/MRF3/libmrf/backends/optix/mrf_optix/optix_geometry_handler.cpp:356:108: requis depuis ici
/home/pacanows/NVIDIA-OptiX-SDK-6.0.0-linux64/include/optixu/optixpp_namespace.h:109:46: error: « optix::GeometryTrianglesObj* optix::Handle<optix::GeometryTrianglesObj>::ptr » est privé dans ce contexte
Handle(const Handle<U>& copy) : ptr(copy.ptr) { ref(); }
~~~~~^~~
/home/pacanows/NVIDIA-OptiX-SDK-6.0.0-linux64/include/optixu/optixpp_namespace.h:174:8: note: déclaré privé ici
T* ptr;
^~~
/home/pacanows/NVIDIA-OptiX-SDK-6.0.0-linux64/include/optixu/optixpp_namespace.h:109:49: error: ne peut convertir « optix::GeometryTrianglesObj* const » en « optix::GeometryObj* » dans l'initialisation
Handle(const Handle<U>& copy) : ptr(copy.ptr) { ref(); }
^
make[2]: *** [libmrf/backends/optix/CMakeFiles/mrf_optix_spectral.dir/mrf_optix/optix_geometry_handler.cpp.o] Erreur 1
make[1]: *** [libmrf/backends/optix/CMakeFiles/mrf_optix_spectral.dir/all] Erreur 2Alban FichetAlban Fichethttps://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/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/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/187Clean CI2021-01-19T17:50:40+01:00Alban FichetClean CINot strictly critical by a regular waste of time: CI is currently a mess (at least for me). When a runner stop working, I do not know which one it is.
I would suggest we restart from scratch:
- Refactor tags (win10, vs2017) (win10, vs20...Not strictly critical by a regular waste of time: CI is currently a mess (at least for me). When a runner stop working, I do not know which one it is.
I would suggest we restart from scratch:
- Refactor tags (win10, vs2017) (win10, vs2019) for Windows with relevant MSVC installed.
- Make a clear distriction between runners from BRDF explorer and runner from Malia
That said, having multiple runners with the same tags helps redundancy when one is crashed.
Proposed list of tags to characterize each runner: `os, compiler`
- `os`:
- win10
- linux (eventually distro variant in addition)
- macos
- `compiler`:
- gcc
- vs2017
- vs2019
- clang
For instance: `win10, vs2017, vs2019`, `macos, clang` or `linux, ubuntu-18-04, gcc`https://gitlab.inria.fr/pacanows/MRF/-/issues/188refactor path_ray_data2021-02-22T15:31:49+01:00MURRAY Davidrefactor path_ray_dataCurrently the PRD contains some data that is unused/may be optimized:
```cpp
struct PerRayData_pathtrace
{
mrf::spectrum::COLOR attenuation;
mrf::spectrum::COLOR result;
optix::float3 origin;
optix::float3 direction;
#ifdef MRF...Currently the PRD contains some data that is unused/may be optimized:
```cpp
struct PerRayData_pathtrace
{
mrf::spectrum::COLOR attenuation;
mrf::spectrum::COLOR result;
optix::float3 origin;
optix::float3 direction;
#ifdef MRF_RENDERING_MODE_SPECTRAL_MULTIPLEXED
float wavelength_offset;
#endif
mrf::spectrum::COLOR_B ior; // **CAN BE REMOVED (replaced by an int) USING AN ALL-IOR BUFFER**
int id_wavelength;
int backface; // **Unused**
unsigned int seed;
unsigned int num_sample;
optix::float2 offset_sampling; //cranley patterson
int depth;
bool countEmitted;
bool done;
bool is_inside;
int shadow_catcher;
};
```
The `mrf::spectrum::COLOR_B ior;` is heavy and not really fully used. A better solution is to build a buffer containing all IORs (eta+kappa) and only store a indexed reference in the PRD. That implies additionnal "permanent" storage for the buffer but grealty reduces the memory bandwith usage for the PRD, which all thing considered, should significantly make the additionnal storage worth it.
Using such a buffer would also be useful for medium tracking, to store index of previous/futur medium in a memory friendly way.Malia 1.1.0MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/189NVRTC error when there is no lambert2021-06-28T15:26:24+02:00MURRAY DavidNVRTC error when there is no lambertThere seems to be a NVRTC compilation error when the scene does not contain any object with a lambertian material:
[FATAL] ======> Error Message: Invalid value (Details: Function "_rtGeometryInstanceSetMaterial" caught exception: Materi...There seems to be a NVRTC compilation error when the scene does not contain any object with a lambertian material:
[FATAL] ======> Error Message: Invalid value (Details: Function "_rtGeometryInstanceSetMaterial" caught exception: Material index out of bounds 0)Malia 1.0 patchMURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/190fix rgb2spec2021-02-25T09:33:39+01:00MURRAY Davidfix rgb2specThere is some fixing to do here (apparently).There is some fixing to do here (apparently).Malia 1.0 patchPACANOWSKI RomainPACANOWSKI Romainhttps://gitlab.inria.fr/pacanows/MRF/-/issues/192Update doc for install and compilation2021-03-19T15:23:42+01:00MURRAY DavidUpdate doc for install and compilationThe documentation is not up to date with the current Cmake and compilation process.
Also, information about compilation should be in the developper section.
THe Malia section should only contain download link and command-line (and infor...The documentation is not up to date with the current Cmake and compilation process.
Also, information about compilation should be in the developper section.
THe Malia section should only contain download link and command-line (and information about the application), and no information on compilation/development.Malia 1.0 patchMURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/193Update doc on blender bridge2022-10-06T14:46:06+02:00MURRAY DavidUpdate doc on blender bridgeThe blender bridge is now designed as a Blender plugin. The documentation does not reflect that and still list it as a runnable script.The blender bridge is now designed as a Blender plugin. The documentation does not reflect that and still list it as a runnable script.Malia 1.0 patchMURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/194[bug] Add sanity check when saving images2021-03-02T16:00:39+01:00MURRAY David[bug] Add sanity check when saving imagesCurrently, at least with windows, saving an image may fail without any error message if the path does not exist due to saving in a non-existent folder.
This should either require that the path is created (creating folder, not sure it is...Currently, at least with windows, saving an image may fail without any error message if the path does not exist due to saving in a non-existent folder.
This should either require that the path is created (creating folder, not sure it is easy within c++), or at least throw an error and log it. But it seems that there is no check to ensure that the destination file can be/has been created when saving an image.Malia 1.0 patchhttps://gitlab.inria.fr/pacanows/MRF/-/issues/195Restore Optix5 version2021-06-28T15:29:44+02:00MURRAY DavidRestore Optix5 versionCurrently Optix5 is not supported on master, only with the dedicated branch:
https://gitlab.inria.fr/pacanows/MRF/-/tree/malia_optix5_dev
This one is not up-to-date and is hardly maintained. It should either be reintegrated in the main ...Currently Optix5 is not supported on master, only with the dedicated branch:
https://gitlab.inria.fr/pacanows/MRF/-/tree/malia_optix5_dev
This one is not up-to-date and is hardly maintained. It should either be reintegrated in the main branch using one the following:
- a #optix_version macro (set when running cmake, either automatically or manually) for conditionnal compilation of the relevant files.
- subidviding the optix backend repo into optix5 and optix65 folders. Eventually with a generic_optix folders containing all the common code.
- using c++ heritage to do the previous proposition.
This may allow managing multiple Optix installation (and maybe simpler to add optix7 compatibility later).Malia 1.1.0MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/196Better release asset management2021-07-05T15:44:43+02:00MURRAY DavidBetter release asset managementCurrent release assets directly link to artifact.
Meaning old release artifact are no longer accessible once a new version is released. Only the source code remain consistent with the version. We have two solutions here:
- remove the l...Current release assets directly link to artifact.
Meaning old release artifact are no longer accessible once a new version is released. Only the source code remain consistent with the version. We have two solutions here:
- remove the links to artifacts for older release.
- try a better management with version specific permalink as specified:
https://docs.gitlab.com/ee/user/project/releases/#permanent-links-to-release-assets
I'd recommend the later as the former does not really make sense with the concept of releases. But it may require a bit of work and planning. It should be discussed/debated when we have the time, and IF necessary.Malia 1.1.0https://gitlab.inria.fr/pacanows/MRF/-/issues/197Move termcolor in externals/2021-03-26T14:51:40+01:00PACANOWSKI RomainMove termcolor in externals/The file termcolor.hpp
should probably moved to externals and removed from TestingThe file termcolor.hpp
should probably moved to externals and removed from Testinghttps://gitlab.inria.fr/pacanows/MRF/-/issues/199[Win10] Pre-compiled binaries are broken2021-07-05T11:27:06+02:00PACANOWSKI Romain[Win10] Pre-compiled binaries are brokenThe public pre-compiled binaries for Windows available publicly here
https://gitlab.inria.fr/pacanows/MRF/-/jobs/artifacts/master/raw/Malia-1.0.0-win64.7z?job=malia_win10
is missing the glfw3.dll.
When trying to execute from Windows Ma...The public pre-compiled binaries for Windows available publicly here
https://gitlab.inria.fr/pacanows/MRF/-/jobs/artifacts/master/raw/Malia-1.0.0-win64.7z?job=malia_win10
is missing the glfw3.dll.
When trying to execute from Windows Malia (both rgb and spectral) won't start.Malia 1.2MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/200Regression spectral bin rendering2021-05-20T17:01:28+02:00Alban FichetRegression spectral bin renderingThere is again spectral banding on renderings.
I don't know for how long, cannot execute the code on Linux due to conflicting CUDA versions.
![banding](/uploads/30c0c09969dfb117694d8da7b20aa929/banding.png)There is again spectral banding on renderings.
I don't know for how long, cannot execute the code on Linux due to conflicting CUDA versions.
![banding](/uploads/30c0c09969dfb117694d8da7b20aa929/banding.png)MURRAY DavidMURRAY Davidhttps://gitlab.inria.fr/pacanows/MRF/-/issues/202Better PLY loading2021-07-05T11:24:53+02:00MURRAY DavidBetter PLY loading-Move the PLY loading (using tinyply) to a dedicated PLYLoader class.
-Use the class when parsing the scene, instead of using directly tinyply.-Move the PLY loading (using tinyply) to a dedicated PLYLoader class.
-Use the class when parsing the scene, instead of using directly tinyply.Malia 1.2https://gitlab.inria.fr/pacanows/MRF/-/issues/203Automatization of adding a new Material2021-06-28T15:27:23+02:00PACANOWSKI RomainAutomatization of adding a new MaterialWrite a python Script that generates a template
- MyNewMaterial.hpp .cpp
- MyNewMaterialParser.hpp .cpp
- mynewmaterial.cu
from an XML file that describes the new material.Write a python Script that generates a template
- MyNewMaterial.hpp .cpp
- MyNewMaterialParser.hpp .cpp
- mynewmaterial.cu
from an XML file that describes the new material.Malia 1.3https://gitlab.inria.fr/pacanows/MRF/-/issues/204Refactoring SceneParser2021-07-05T11:24:29+02:00PACANOWSKI RomainRefactoring SceneParser
Move XML parsing methods from SceneParser to another class
XMLParser.cpp
XMLParser.hpp
this way specific parsers will be able to use generic functions (e.g., retrieveColor(...) ).
A parser for Geometry should be also added.
A specif...
Move XML parsing methods from SceneParser to another class
XMLParser.cpp
XMLParser.hpp
this way specific parsers will be able to use generic functions (e.g., retrieveColor(...) ).
A parser for Geometry should be also added.
A specific parser for Ply as wellMalia 1.3MURRAY DavidMURRAY David