code和原文:https://github.com/ashawkey/nerf2mesh
1. Nerf2Mesh结构总览
Nerf2Mesh可以理解为是一种在Nerf结构基础上的下游任务。它的输出是两样东西:
- mesh网格
- 纹理图
在上图中,最左侧的立方体就是Nerf所构建的三维数据,它包含离散点的三维坐标、不透明度(density)以及rgb色彩。
Nerf2Mesh的整体结构也像图中分为上下两个分支:
- Density field
- Appearance Field
2. Apearance Field分支
2.1 分支结构
左下角的Appearance Field Volumn是Nerf输出的XYZ,rgb数据,它是和纹理渲染相关的一些信息。
最开始的Nerf是在三维重建的角度来设计整个网络结构,网络的输入是RGB+方向向量,它并没有考虑到光照和物体的材质。所以原始的Nerf在光反射的场景表现不好。或者说,Nerf在网络设计的时候,并没有显式地去学习光照、材质、漫反射、镜面反射这些内容(或许内部会像一个black box一样学习到一些光照信息),所以会导致渲染的时候光照的表现不好。
Nerf输出的内容经过MLP1提取特征,然后分成两个分支分别提取漫反射和镜面反射的