- nvidiffrast主页
- https://arxiv.org/pdf/2011.03277.pdf
- https://github.com/NVlabs/nvdiffrast
CSC2547 Differentiable Rendering A Survey
https://www.youtube.com/watch?v=7LU0KcnSTc4
DR https://blog.qarnot.com/an-overview-of-differentiable-rendering/
知乎 https://www.zhihu.com/question/364770565
Monte Carlo Ray Tracing
安装指引
有两种安装方法,使用pip安装服务器源、使用pip安装github仓库。
使用pip安装服务器源
pip install nvdiffrast
可能会安装0.2.7的版本
使用pip安装github仓库
git clone https://github.com/NVlabs/nvdiffrast
cd nvdiffrast
pip install .
而从下图可见,github仓库的版本是0.3.0。
pytorch可调用c++代码,用c++操作tensor/计算梯度。 https://www.cnblogs.com/jermmyhsu/p/10962987.html
齐次坐标
clip-space
https://gamedev.stackexchange.com/questions/65789/why-is-clip-space-always-referred-to-as-homogeneous-clip-space
clip space下运算的效率更高。
homogeneous space
https://www.youtube.com/watch?v=JSLG8n_IY9s
https://www.youtube.com/watch?v=PvEl63t-opM (视频15分钟以前讲解概念,15分钟以后示例演算)。
多出的一维度不是新维度,更像是一个新部分。这样的表达,能够优雅地实现平移的变换矩阵,也能够实现矩阵相乘来对点进行操作。
重心坐标系
http://blog.atelier39.org/cg/533.html
https://zh.wikipedia.org/zh-hans/UV%E6%98%A0%E5%B0%84 uv映射
https://en.wikipedia.org/wiki/UV_mapping
uv映射是指从3d映射到2d的操作。uv区别于xyzw,因为三维坐标系的齐次坐标已经用掉了(x,y,z,w)四个坐标,所以二维平面的坐标取uv。通过将三维空间的物体映射到二维平面,使用者能在其上绘制颜色。
https://www.youtube.com/watch?v=W4uqOhiQJBQ
能够保存 u, v, NDC
NDC是指相机的视野深度,取值通常为[-1, 1](或者[0, 1])。
https://zouchanglin.cn/194464854.html
纹理坐标uv
重心坐标在图形学中最重要的运用便是插值,他可以根据三个顶点 A、B、C 的属性插值出任意点的属性,无论是位置,颜色,深度,法线向量(还有纹理坐标uv)等等,而这些属性在之后的着色或是消除隐藏曲面都有很大的作用。
在纹理空间之内任意一个二维坐标都在 [0,1] 之内。
我怀疑,uv的含义是相对坐标。也就是说u, v, 1-u-v共同构成了重心坐标。