← 开源
BachiLi

redner

Differentiable rendering without approximation.

Model DevelopmentArchitectureNASL
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
1.45k
Star
145
Fork
+1
本周
17
贡献者
创建于 2018-11-10 · 更新于 2026-10-13 · 今日第 10308 名
主要开发者
BachiLiSuperShinyEyesfrancoisruty

BachiLi/redner 排名第 10,308,有 1,447 个星标。

同类别比较

BachiLi/redner 排名第 10,308,此处有 8 个同类条目;liyaguang/DCRNN 排名第 10,306。

同类别比较
名称排名指标
mit-han-lab/proxylessnas10,300
语言:
C++
星标数:
1,450
分叉数:
281
简介:
[ICLR 2019] ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware
google-deepmind/rlax10,302
语言:
Python
星标数:
1,449
分叉数:
110
bigscience-workshop/Megatron-DeepSpeed10,305
语言:
Python
星标数:
1,448
分叉数:
225
简介:
Ongoing research training transformer language models at scale, including: BERT & GPT-2
liyaguang/DCRNN10,306
语言:
Python
星标数:
1,448
分叉数:
426
简介:
Implementation of Diffusion Convolutional Recurrent Neural Network in Tensorflow
megvii-research/ML-GCN10,311
语言:
Python
星标数:
1,446
分叉数:
346
简介:
PyTorch implementation of Multi-Label Image Recognition with Graph Convolutional Networks, CVPR 2019.
nilearn/nilearn10,312
语言:
Python
星标数:
1,445
分叉数:
690
简介:
Machine learning for NeuroImaging in Python
AshwinRJ/Federated-Learning-PyTorch10,314
语言:
Python
星标数:
1,442
分叉数:
459
简介:
Implementation of Communication-Efficient Learning of Deep Networks from Decentralized Data
rail-berkeley/softlearning10,318
语言:
Python
星标数:
1,440
分叉数:
249
简介:
Softlearning is a reinforcement learning framework for training maximum entropy policies in continuous domains. Includes the official implementation of the Soft Actor-Critic algorithm.
关键参数与规格
关键参数与规格
参数值
语言NASL
类别Model Development
子类别Architecture
关键词3D
星标数1,447
分叉数145
贡献者17
创建日期2018-11-10
更新日期2026-10-13
1 天星标数0
7 天星标数1
排名10,308
上次排名10,313
排名变化5
7 天星标排名9,838
上次 7 天星标排名9,901
7 天星标排名变化63
总星标排名8,334
上次总星标排名8,325
总星标排名变化-9
国家USA
README 摘录

redner: Differentiable rendering without approximation redner is a differentiable renderer that can take the derivatives of rendering outputs with respect to arbitrary scene parameters, that is, you can backpropagate from the image to your 3D scene. One of the major usages of redner is inverse rendering (hence the name redner) through gradient descent. You can also use redner in a fast deferred rendering mode for local shading: in this mode it still has correct gradient estimation and more elaborate material

models compared to most differentiable renderers out there. For more details on the renderer, what it can do, and the techniques it use for computing the derivatives, please take a look at the paper: Differentiable Monte Carlo Ray Tracing through Edge Sampling, Tzu-Mao Li, Miika Aittala, Fredo Durand, Jaakko Lehtinen. Since the submission we have improved the renderer quite a bit. In particular we implemented a CUDA backend and accelerated the continuous derivatives significantly by replacing automatic differentiation with

manually-derived derivatives. See Tzu-Mao Li's thesis for even more details. Also see the "News" section below for the changelog. Installation With either PyTorch (any version >= 1. 0) installed in your current Python environment. For GPU accelerated version (Linux and Windows, CUDA version >= 10. 0): otherwise (Windows, Linux and OS X): Windows version only supports PyTorch and not TensorFlow at the moment. Documentation A good starting point to learn how to use redner is to look at the wiki

. You can also take a look at the tests directories (PyTorch and TensorFlow) to have some ideas. 04/01/2020 - Added a camera distortion model. TensorFlow support is pending with some compilation issues. 02/27/2020 - Fixed a bug in BRDF derivatives. Thanks Markus Worchel again for reporting this. 02/02/2020 - Fixed a serious bug for G-buffer rendering ( Thanks Markus Worchel for reporting this. 02/01/2020 - Preliminary Windows support for GPU is available thanks to Markus Worchel

again. 01/08/2020 - Significantly improves the memory usage of mipmapping. Now you can use large textures (say 4096x4096) relatively safely. 12/15/2019 - Fixed a GC-related bug on the PyTorch rendering code in 0. 12/12/2019 - Preliminary Windows support (CPU-only) is available thanks to the contribution of Markus Worchel. 12/09/2019 - Added many tutorials in wiki using Google colab. 12/09/2019 - Fixed a bug in the Wavefront obj loader. 12/01/2019 - Redo the

build systems and setup Python wheel installation. Redner is now on PyPI ( and 11/04/2019 - Added a "generic texture" field in the material which can have arbitrary number of channels. This can be useful for deep learning application where the texture is generated by a network, and the output is fed into another network for further processing. Thanks François Ruty for the suggestion and the help on implementation. 11/04/2019 - Fixed several bugs in the OBJ/Mitsuba

loaders introduced by the and change. 10/19/2019 - Added vertex color support. 10/08/2019 - Added automatic uv computation

常见问题

记录了多少星标和分叉?

BachiLi/redner 有 1,447 个星标和 145 个分叉。

仓库排名是多少?

BachiLi/redner 排名第 10,308。

记录的语言和类别是什么?

BachiLi/redner 有 1,447 个星标,语言为 NASL,类别为 Model Development。

哪个仓库排名最接近?

BachiLi/redner 与 liyaguang/DCRNN 比较,后者排名第 10,306,有 1,448 个星标。

README

redner: Differentiable rendering without approximation

redner is a differentiable renderer that can take the derivatives of rendering outputs with respect to arbitrary scene parameters, that is, you can backpropagate from the image to your 3D scene. One of the major usages of redner is inverse rendering (hence the name redner) through gradient descent. What sets redner apart are: 1) it computes correct rendering gradients stochastically without any approximation by properly considering the discontinuities, and 2) it has a physically-based mode -- which means it can simulate photons and produce realistic lighting phenomena, such as shadow and global illumination, and it handles the derivatives of these features correctly. You can also use redner in a fast deferred rendering mode for local shading: in this mode it still has correct gradient estimation and more elaborate material models compared to most differentiable renderers out there.

For more details on the renderer, what it can do, and the techniques it use for computing the derivatives, please take a look at the paper: Differentiable Monte Carlo Ray Tracing through Edge Sampling, Tzu-Mao Li, Miika Aittala, Fredo Durand, Jaakko Lehtinen. Since the submission we have improved the renderer quite a bit. In particular we implemented a CUDA backend and accelerated the continuous derivatives significantly by replacing automatic differentiation with manually-derived derivatives. See Tzu-Mao Li's thesis for even more details. Also see the "News" section below for the changelog.

Installation

With either PyTorch (any version >= 1.0) or TensorFlow (version >= 2.0) installed in your current Python environment. For GPU accelerated version (Linux and Windows, CUDA version >= 10.0):

pip install redner-gpu

otherwise (Windows, Linux and OS X):

pip install redner

Windows version only supports PyTorch and not TensorFlow at the moment.

You can also build from source. See the wiki for building instructions.

Documentation

A good starting point to learn how to use redner is to look at the wiki. The API documetation is here. You can also take a look at the tests directories (PyTorch and TensorFlow) to have some ideas.

News

06/12/2020 - Python 3.8 support.
04/01/2020 - Added a camera distortion model.
03/17/2020 - Pip package for Windows! Currently only with PyTorch support. TensorFlow support is pending with some compilation issues.
02/27/2020 - Fixed a bug in BRDF derivatives. This affects normal mapping the most. Thanks Markus Worchel again for reporting this.
02/02/2020 - Fixed a serious bug for G-buffer rendering (https://github.com/BachiLi/redner/issues/93). Thanks Markus Worchel for reporting this.
02/01/2020 - Preliminary Windows support for GPU is available thanks to Markus Worchel again.
01/08/2020 - Significantly improves the memory usage of mipmapping. Now you can use large textures (say 4096x4096) relatively safely.
12/15/2019 - Fixed a GC-related bug on the PyTorch rendering code in 0.1.30. Please update.
12/12/2019 - Preliminary Windows support (CPU-only) is available thanks to the contribution of Markus Worchel.
12/09/2019 - Added many tutorials in wiki using Google colab. Added a sphinx-generated documentation.
12/09/2019 - Fixed a bug in the Wavefront obj loader. Thanks Dejan Azinović for reporting!
12/01/2019 - Redo the build systems and setup Python wheel installation. Redner is now on PyPI (https://pypi.org/project/redner-gpu/ and https://pypi.org/project/redner/).
11/04/2019 - Added a "generic texture" field in the material which can have arbitrary number of channels. This can be useful for deep learning application where the texture is generated by a network, and the output is fed into another network for further processing. See test_multichannels.py for usages. Thanks François Ruty for the suggestion and the help on implementation.
11/04/2019 - Fixed several bugs in the OBJ/Mitsuba loaders introduced by the uv_indices and normal_indices change.
10/19/2019 - Added vertex color support. See test_vertex_color.py.
10/08/2019 - Added automatic uv computation through the xatlas library. See the compute_uvs function in shape.py and test_compute_uvs.py.
10/08/2019 - Slightly changed the Shape class interface. The constructor order is different and it now takes extra 'uv_indices' and 'normal_indices' arguments for dealing with seams in UV mapping and obj loading. See pyredner/shape.py and tutorial 2.
09/22/2019 - We now handle inconsistencies between shading normals and geometry normals more gracefully (instead of just return zero in most cases). This helps with rendering models in the wild, say, models in ShapeNet.
09/21/2019 - Fixed a serious buffer overrun bug in the deferred rendering code when there is no radiance output channel. If things didn't work for you, maybe try again.
08/16/2019 - Added docker files for easier installation. Thanks Seyoung Park for the contribution again. Also I significantly improved the wiki installation guide.
08/13/2019 - Added normal map support. See tests/test_teapot_normal_map.py.
08/10/2019 - Significantly simplified the derivatives accumulation code (segmented reduction -> atomics). Also GPU backward pass got 20~30% speedup.
08/07/2019 - Fixed a roughness texture bug.
07/27/2019 - Tensorflow 1.14 support! Currently only support eager execution. We will support graph execution after tensorflow 2.0 becomes stable. See tests_tensorflow for examples (I recommend starting from tests_tensorflow/test_single_triangle.py). The CMake files should automatically detect tensorflow in python and install corresponding files. Tutorials are work in progress. Lots of thanks go to Seyoung Park for the contribution!
06/25/2019 - Added orthographic cameras (see examples/two_d_mesh.py).
05/13/2019 - Fixed quite a few bugs related to camera derivatives. If something didn't work for you before, maybe try again.
04/28/2019 - Added QMC support (see tests/test_qmc.py and the documentation in pyredner.serialize_scene()).
04/01/2019 - Now support multi-GPU (see pyredner.set_device).
03/31/2019 - Brought back the hierarchical edge sampling method in the paper.
02/02/2019 - The wiki now contains a series of tutorial. The plan is to further expand the examples.

Dependencies

redner depends on a few libraries/systems, which are all included in the repository:

Roadmap

The current development plan is to enhance the renderer. Following features will be added in the near future (not listed in any particular order):

  • More BSDFs e.g. glass/GGX
  • Support for edge shared by more than two triangles (The code currently assumes every triangle edge is shared by at most two triangles. If your mesh doesn't satisfy this, you can preprocess it in other mesh processing softwares such as MeshLab)
  • Source-to-source automatic differentiation
  • EWA filtering, covariance tracing
  • Russian roulette
  • Distribution effects: depth of field/motion blur
  • Proper pixel filter (currently only support 1x1 box filter)
  • Volumetric path tracing (e.g. http://www.cs.cornell.edu/projects/translucency/#acquisition-sa13)
  • Spectral rendering
  • Gradient visualization
  • Spherical light sources

Citation

@article{Li:2018:DMC,
    title = {Differentiable Monte Carlo Ray Tracing through Edge Sampling},
    author = {Li, Tzu-Mao and Aittala, Miika and Durand, Fr{\'e}do and Lehtinen, Jaakko},
    journal = {ACM Trans. Graph. (Proc. SIGGRAPH Asia)},
    volume = {37},
    number = {6},
    pages = {222:1--222:11},
    year = {2018}
}

If you have any questions/comments/bug reports, feel free to open a github issue or e-mail to the author Tzu-Mao Li (tzumao@mit.edu)

排名相邻
同类项目