从源代码里摸出材质的默认值和类型,然后简单测试内置着色器对网格,点云和线集的效果,总结中附带显示三角网格的方案。
文章目录- Open3D-GUI系列(DLC1)着色器
- MaterialRecord材质属性表
- 实用shader
- 带光照
- 不带光照
- 法向
- 线段
- 梯度
- 总结:
- 附录:全部shader
| 渲染属性 | 默认值 | C++ |
|---|---|---|
| has_alpha | false | bool |
| PBR属性 | 默认值 | C++ | Python |
|---|---|---|---|
| base_color | (1.f,1.f,1.f,1.f) | Eigen::Vector4f | numpy.ndarray[numpy.float32[4, 1]] |
| base_metallic | 0.f | float | |
| base_roughness | 1.f | float | |
| base_reflectance | 0.5f | float | |
| base_clearcoat | 0.f | float | |
| base_clearcoat_roughness | 0.f | float | |
| base_anisotropy | 0.f | float | |
| thickness | 1.f | float | |
| transmission | 1.f | float | |
| absorption_color | (1.f,1.f,1.f) | Eigen::Vector3f | |
| absorption_distance | 1.f | float | |
| point_size | 3.f | float | |
| line_width | 1.f | float | 备注:仅unlitLine着色器可用 |
| albedo_img | std::shared_ptr | open3d.geometry.Image | |
| normal_img | std::shared_ptr | open3d.geometry.Image | |
| ao_img | std::shared_ptr | open3d.geometry.Image | |
| metallic_img | std::shared_ptr | open3d.geometry.Image | |
| roughness_img | std::shared_ptr | open3d.geometry.Image | |
| reflectance_img | std::shared_ptr | open3d.geometry.Image | |
| clearcoat_img | std::shared_ptr | open3d.geometry.Image | |
| clearcoat_roughness_img | std::shared_ptr | open3d.geometry.Image | |
| anisotropy_img | std::shared_ptr | open3d.geometry.Image | |
| ao_rough_metal_img | std::shared_ptr | open3d.geometry.Image | |
| gradient | std::shared_ptr | rendering.Gradient | |
| scalar_min | 0.0f | float | |
| scalar_max | 1.0f | float | |
| sRGB_color | false | bool | |
| aspect_ratio | 0.0f | float | |
| ground_plane_axis | 0.f | float | |
| generic_params | std::unordered_map | ||
| generic_imgs | std::unordered_map | ||
| shader | “defaultUnlit” | std::string |
-
defaultLit/defaultLitTransparency
-
defaultLitSSR
-
defaultUnlit/defaultUnlitTransparency
-
normals
线段没有法向,不做测试
-
unlitLine
网格和点云在这个着色器下效果与defaultUnlit一样
只有这个着色器可以改变线宽,更适合显示线集
-
unlitGradient
比较复杂的玩意儿,不会用,显示效果奇形怪状,直接开摆
| 类型 | 适用shader |
|---|---|
| 网格 | defaultLit/defaultLitTransparency、normals |
| 点云 | defaultLit/defaultLitTransparency、normals、defaultUnlit/defaultUnlitTransparency |
| 线段 | 最好unlitLine,只有这个可以控制线宽 |
附录:全部shader网格模型在defaultUnlit下显示像平片一样,但是通过和线集一起使用,可以清晰的显示出三角面片
-
defaultLit
-
defaultLitTransparency
-
defaultLitSSR
-
defaultUnlit
-
defaultUnlitTransparency
-
normals
-
depth
-
depthValue
-
unlitGradient
-
unlitSolidColor
-
unlitBackground
-
infiniteGroundPlane
-
unlitLine
-
unlitPolygonOffset



