Genesis icon indicating copy to clipboard operation
Genesis copied to clipboard

How to disable or change the denoiser?

Open Vesnica opened this issue 10 months ago • 3 comments
trafficstars

Hi, I want to disable the denoiser for raytracer renderer(since Optix is not supported in WSL2), but 'denoise' parameter is not exist. gs.renderers.RayTracer's input parameter set is inconsistent with the documentation(https://genesis-world.readthedocs.io/en/latest/api_reference/options/renderer/raytracer.html)

And I don't know how to change the denoiser to OIDN, The documentation does not mention it. I set LUISA_COMPUTE_DOWNLOAD_OIDN=ON when compiling LuisaRenderer.

Vesnica avatar Dec 21 '24 11:12 Vesnica

When I tested it, setting LUISA_COMPUTE_DOWNLOAD_OIDN=ON when compiling LuisaRenderer works to change it to OIDN. Also, to close the denoise or change the denoise parameter you can find it in the camera parameters.

wangyian-me avatar Dec 22 '24 05:12 wangyian-me

Unfortunately, I have already made the configuration as described above, but it seems that Genesis still insists on using Optix.

I copied the entire successfully built directory into the installation path of the Genesis library (where I can see the OIDN-related files exist).

ls ~/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/
LuisaRenderPy.cpython-310-x86_64-linux-gnu.so      libluisa-render-sampler-paddedsobol.so
ctx_5feec1acce954df690e11b75b8239ba0               libluisa-render-sampler-pmj02bn.so
dummy                                              libluisa-render-sampler-sobol.so
libOpenImageDenoise.so                             libluisa-render-sampler-tileshared.so
libOpenImageDenoise.so.2                           libluisa-render-sampler-zsobol.so
libOpenImageDenoise.so.2.2.2                       libluisa-render-sdl.so
libOpenImageDenoise_core.so.2.2.2                  libluisa-render-shape-deformablemesh.so
libOpenImageDenoise_device_cpu.so.2.2.2            libluisa-render-shape-group.so
libOpenImageDenoise_device_cuda.so.2.2.2           libluisa-render-shape-inlinemesh.so
libOpenImageDenoise_device_hip.so.2.2.2            libluisa-render-shape-instance.so
libOpenImageDenoise_device_sycl.so.2.2.2           libluisa-render-shape-loopsubdiv.so
libcudadevrt.a                                     libluisa-render-shape-mesh.so
libembree4.so                                      libluisa-render-shape-plane.so
libembree4.so.4                                    libluisa-render-shape-sphere.so
libimf.so                                          libluisa-render-shape-spheregroup.so
libintlc.so                                        libluisa-render-spectrum-hero.so
libintlc.so.5                                      libluisa-render-spectrum-srgb.so
libirng.so                                         libluisa-render-subsurface-null.so
liblc-api.so                                       libluisa-render-subsurface-uniform.so
liblc-ast.so                                       libluisa-render-surface-disney.so
liblc-backend-cpu.so                               libluisa-render-surface-glass.so
liblc-backend-cuda.so                              libluisa-render-surface-layered.so
liblc-backend-remote.so                            libluisa-render-surface-matte.so
liblc-core.so                                      libluisa-render-surface-metal.so
liblc-dsl.so                                       libluisa-render-surface-mirror.so
liblc-ext-eastl.so                                 libluisa-render-surface-mix.so
liblc-ext-stb.so                                   libluisa-render-surface-null.so
liblc-ir-v2.so                                     libluisa-render-surface-plastic.so
liblc-ir.so                                        libluisa-render-surface-substrate.so
liblc-osl.so                                       libluisa-render-texture-bumptonormal.so
liblc-runtime.so                                   libluisa-render-texture-checkerboard.so
liblc-tensor.so                                    libluisa-render-texture-concat.so
liblc-validation-layer.so                          libluisa-render-texture-constant.so
liblc-vstl.so                                      libluisa-render-texture-image.so
libluisa-render-base.so                            libluisa-render-texture-mix.so
libluisa-render-camera-ortho.so                    libluisa-render-texture-multiply.so
libluisa-render-camera-pinhole.so                  libluisa-render-texture-nishitasky.so
libluisa-render-camera-thinlens.so                 libluisa-render-texture-scale.so
libluisa-render-environment-combined.so            libluisa-render-texture-sky-precompute.so
libluisa-render-environment-directional.so         libluisa-render-texture-swizzle.so
libluisa-render-environment-grouped.so             libluisa-render-texture-uvmapping.so
libluisa-render-environment-null.so                libluisa-render-texturemapping-spherical.so
libluisa-render-environment-spherical.so           libluisa-render-texturemapping-uv.so
libluisa-render-ext-assimp.so                      libluisa-render-transform-identity.so
libluisa-render-ext-assimp.so.5                    libluisa-render-transform-lerp.so
libluisa-render-ext-assimp.so.5.2.5                libluisa-render-transform-matrix.so
libluisa-render-ext-tinyexr.so                     libluisa-render-transform-srt.so
libluisa-render-film-color.so                      libluisa-render-transform-stack.so
libluisa-render-filter-box.so                      libluisa-render-transform-view.so
libluisa-render-filter-gaussian.so                 libluisa-render-util.so
libluisa-render-filter-lanczossinc.so              libluisa_compute_api_types.a
libluisa-render-filter-mitchell.so                 libluisa_compute_backend_impl.so
libluisa-render-filter-triangle.so                 libluisa_compute_ir_static.a
libluisa-render-integrator-aov.so                  libpi_level_zero.so
libluisa-render-integrator-direct.so               libsvml.so
libluisa-render-integrator-gradientpath.so         libsycl.so.7
libluisa-render-integrator-group.so                libsycl.so.7.1.0-8
libluisa-render-integrator-megapath.so             libtbb.so
libluisa-render-integrator-megapm.so               libtbb.so.12
libluisa-render-integrator-megavpt.so              libtbb.so.12.11
libluisa-render-integrator-megavptnaive.so         libtbbbind.so.3
libluisa-render-integrator-megawave.so             libtbbbind.so.3.11
libluisa-render-integrator-normal.so               libtbbbind_2_0.so.3
libluisa-render-integrator-pssmlt.so               libtbbbind_2_0.so.3.11
libluisa-render-integrator-wavepath.so             libtbbbind_2_5.so.3
libluisa-render-integrator-wavepath_v2.so          libtbbbind_2_5.so.3.11
libluisa-render-integrator-wavepathreadback.so     libtbbmalloc.so
libluisa-render-light-diffuse.so                   libtbbmalloc.so.2
libluisa-render-light-null.so                      luisa-render-pipe-render
libluisa-render-lightsampler-uniform.so            luisa_nvrtc
libluisa-render-medium-homogeneous.so              test_alias_method
libluisa-render-medium-null.so                     test_sky
libluisa-render-medium-vacuum.so                   test_sphere
libluisa-render-phasefunction-henyeygreenstein.so  test_u64
libluisa-render-sampler-independent.so

But it still produce the same error when I run the examples/rendering/demo.py:

[Genesis] [01:54:13] [INFO] Viewer created. Resolution: 1920×1080, max_FPS: 60.
[Genesis] [01:54:13] [INFO] Resetting Scene <f7098c3>.
[Genesis] [01:54:13] [INFO] Running at 595.65 FPS.
[2024-12-23 01:54:15.062] [console] [error] Failed to load OptiX function table. You may need to update your driver. [/home/ubuntu/Genesis/genesis/ext/LuisaRender/src/compute/src/backends/cuda/optix_api.cpp:169]
     0 [0x7fe73957bbfb]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-backend-cuda.so :: luisa::compute::optix::load_optix() + 1675
     1 [0x7fe73957bf33]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-backend-cuda.so :: luisa::compute::optix::api() + 115
     2 [0x7fe7394b326b]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-backend-cuda.so :: luisa::compute::cuda::CUDADevice::Handle::optix_context() const + 235
     3 [0x7fe7395225f5]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-backend-cuda.so :: luisa::compute::cuda::CUDAPrimitive::_build(luisa::compute::cuda::CUDACommandEncoder&) + 165
     4 [0x7fe739531eb6]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-backend-cuda.so :: luisa::compute::cuda::CUDAMesh::build(luisa::compute::cuda::CUDACommandEncoder&, luisa::compute::MeshBuildCommand*) + 374
     5 [0x7fe7394a3478]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-backend-cuda.so :: luisa::compute::cuda::CUDAStream::dispatch(luisa::compute::CommandList&&) + 200
     6 [0x7fe7394b481e]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-backend-cuda.so :: luisa::compute::cuda::CUDADevice::dispatch(unsigned long, luisa::compute::CommandList&&) + 94
     7 [0x7fe769b7bec4]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/liblc-runtime.so :: luisa::compute::Stream::operator<<(luisa::compute::CommandList::Commit&&) + 52
     8 [0x7fe76ada4e08]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/libluisa-render-base.so :: luisa::render::Geometry::_process_shape(luisa::render::CommandBuffer&, float, luisa::render::Shape const*, luisa::render::Surface const*, luisa::render::Light const*, luisa::render::Medium const*, luisa::render::Subsurface const*, bool, unsigned long) + 1800
     9 [0x7fe76ada6fa2]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/libluisa-render-base.so :: luisa::render::Geometry::update(luisa::render::CommandBuffer&, ankerl::unordered_dense::v2_0_2::detail::table<luisa::render::Shape*, void, luisa::hash<luisa::render::Shape*>, std::equal_to<void>, luisa::allocator<luisa::render::Shape*>, ankerl::unordered_dense::v2_0_2::bucket_type::standard, eastl::vector<luisa::render::Shape*, eastl::allocator> > const&, float) + 354
    10 [0x7fe76ad6ecc8]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/libluisa-render-base.so :: luisa::render::Pipeline::update(luisa::compute::Stream&) + 792
    11 [0x7fe76cb63a86]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/LuisaRenderPy.cpython-310-x86_64-linux-gnu.so :: unknown + 313990
    12 [0x7fe76cb363b8]: /home/ubuntu/venv/torch/lib/python3.10/site-packages/genesis/ext/LuisaRender/build/bin/LuisaRenderPy.cpython-310-x86_64-linux-gnu.so :: unknown + 127928
    13 [0x5593ee596282]: python :: unknown + 1618562
    14 [0x5593ee58cb4b]: python :: _PyObject_MakeTpCall + 603
    15 [0x5593ee5a3ebb]: python :: unknown + 1674939
    16 [0x5593ee581cf2]: python :: _PyEval_EvalFrameDefault + 6690
    17 [0x5593ee596aec]: python :: _PyFunction_Vectorcall + 124
    18 [0x5593ee580ae8]: python :: _PyEval_EvalFrameDefault + 2072
    19 [0x5593ee596aec]: python :: _PyFunction_Vectorcall + 124
    20 [0x5593ee582f59]: python :: _PyEval_EvalFrameDefault + 11401
    21 [0x5593ee596aec]: python :: _PyFunction_Vectorcall + 124
    22 [0x5593ee580ae8]: python :: _PyEval_EvalFrameDefault + 2072
    23 [0x5593ee596aec]: python :: _PyFunction_Vectorcall + 124
    24 [0x5593ee5809a2]: python :: _PyEval_EvalFrameDefault + 1746
    25 [0x5593ee665e56]: python :: unknown + 2469462
    26 [0x5593ee665d26]: python :: PyEval_EvalCode + 134
    27 [0x5593ee68cae8]: python :: unknown + 2628328
    28 [0x5593ee6872ef]: python :: unknown + 2605807
    29 [0x5593ee68c885]: python :: unknown + 2627717
    30 [0x5593ee68be68]: python :: _PyRun_SimpleFileObject + 424
    31 [0x5593ee68bb47]: python :: _PyRun_AnyFileObject + 71
    32 [0x5593ee68002e]: python :: Py_RunMain + 702
    33 [0x5593ee659d6d]: python :: Py_BytesMain + 45
    34 [0x7fe881837d90]: /lib/x86_64-linux-gnu/libc.so.6 :: unknown + 171408
    35 [0x7fe881837e40]: /lib/x86_64-linux-gnu/libc.so.6 :: __libc_start_main + 128
    36 [0x5593ee659c65]: python :: _start + 37
Aborted (core dumped)

Are there any additional code adjustments required?

Vesnica avatar Dec 22 '24 18:12 Vesnica

If you correctly enable LUISA_COMPUTE_DOWNLOAD_OIDN as ON in the compile configuration, you should see the installation process of the OIDN denoiser, which includes messages like:

-- [download 99% complete]
-- [download 100% complete]
-- Downloading... done
-- extracting...
     src='path/to/Genesis/genesis/ext/LuisaRender/build/_deps/openimagedenoise-subbuild/openimagedenoise-populate-prefix/src/oidn-2.2.2.x86_64.linux.tar.gz
     dst='path/to/Genesis/genesis/ext/LuisaRender/build/_deps/openimagedenoise-src'
...

After this, you will find the extracted folders openimagedenoise-src, openimagedenoise-build, and openimagedenoise-subbuild in your build/_deps directory. Running the build command should then work correctly.

If you do not see these dependencies installed, you might need to remove your build folder and recompile.

ACMLCZH avatar Dec 26 '24 05:12 ACMLCZH