Open3D-GUI系列(DLC1)着色器

Open3D-GUI系列(DLC1)着色器

从源代码里摸出材质的默认值和类型,然后简单测试内置着色器对网格,点云和线集的效果,总结中附带显示三角网格的方案。

MaterialRecord材质属性表

渲染属性默认值C++
has_alphafalsebool
PBR属性默认值C++Python
base_color(1.f,1.f,1.f,1.f)Eigen::Vector4fnumpy.ndarray[numpy.float32[4, 1]]
base_metallic0.ffloat
base_roughness1.ffloat
base_reflectance0.5ffloat
base_clearcoat0.ffloat
base_clearcoat_roughness0.ffloat
base_anisotropy0.ffloat
thickness1.ffloat
transmission1.ffloat
absorption_color(1.f,1.f,1.f)Eigen::Vector3f
absorption_distance1.ffloat
point_size3.ffloat
line_width1.ffloat备注:仅unlitLine着色器可用
albedo_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
normal_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
ao_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
metallic_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
roughness_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
reflectance_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
clearcoat_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
clearcoat_roughness_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
anisotropy_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
ao_rough_metal_imgstd::shared_ptr<geometry::Image>open3d.geometry.Image
gradientstd::shared_ptr<Gradient>rendering.Gradient
scalar_min0.0ffloat
scalar_max1.0ffloat
sRGB_colorfalsebool
aspect_ratio0.0ffloat
ground_plane_axis0.ffloat
generic_paramsstd::unordered_map<std::string, Eigen::Vector4f>
generic_imgsstd::unordered_map<std::string, geometry::Image>
shader“defaultUnlit”std::string

实用shader

带光照

  • defaultLit/defaultLitTransparency

    mesh-defaultLit
    pcd-defaultLit
    wareframe-defaultLit

  • defaultLitSSR

    mesh-defaultLitSSR

    pcd-defaultLitSSR
    wareframe-defaultLitSSR

不带光照

  • defaultUnlit/defaultUnlitTransparency

    mesh-defaultUnlit

    pcd-defaultUnlit
    wareframe-defaultUnlit

法向

  • normals

    mesh-normals

    pcd-normals

    线段没有法向,不做测试

线段

  • unlitLine

    网格和点云在这个着色器下效果与defaultUnlit一样

    只有这个着色器可以改变线宽,更适合显示线集

    wareframe-unlitLine

梯度

  • unlitGradient

    比较复杂的玩意儿,不会用,显示效果奇形怪状,直接开摆

    开摆

总结:

类型适用shader
网格defaultLit/defaultLitTransparency、normals
点云defaultLit/defaultLitTransparency、normals、defaultUnlit/defaultUnlitTransparency
线段最好unlitLine,只有这个可以控制线宽

网格模型在defaultUnlit下显示像平片一样,但是通过和线集一起使用,可以清晰的显示出三角面片

triangle_mesh

附录:全部shader

  • defaultLit

  • defaultLitTransparency

  • defaultLitSSR

  • defaultUnlit

  • defaultUnlitTransparency

  • normals

  • depth

  • depthValue

  • unlitGradient

  • unlitSolidColor

  • unlitBackground

  • infiniteGroundPlane

  • unlitLine

  • unlitPolygonOffset

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吉拉尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值