【问题标题】:Hide area of an SCNMaterial隐藏 SCNMaterial 的区域
【发布时间】:2018-09-15 18:59:17
【问题描述】:

我正在使用 SceneKit 和 ARKit 1.5,一旦映射了表面,我就会对其应用材质。

我想只显示具有 alpha 效果的特定半径内相机下方的内容。我想让材质保持静态,这意味着当相机移动时它不会移动,只有半径形状会移动。

我可以使用什么样的技术来做到这一点?

Google 的 ArCore 完美地做到了这一点。

实际效果图:

所需的渲染:

ARCore 示例:(点击查看 GIF)

谢谢!

【问题讨论】:

  • 想法是在检测到的平面上移动一个平面。

标签: shader scenekit mask arkit scnmaterial


【解决方案1】:

我会使用着色器修改器来实现。

使用.surface 入口点,您可以将_surface.transparent 设置为取决于阴影点和视点之间的距离的值:

_surface.transparent = attenuation(length(_surface.position));

【讨论】:

  • 感谢您的回答,我尝试使用 _surface.transparent 但它会修改整个表面的透明度。我想让表面的一部分像我的图片一样以圆形透明。如何使用着色器定义透明/非透明区域?
  • 按像素应用表面修改器。如果整个表面变得透明,那么您的衰减函数需要更多调整。
  • 谢谢,不幸的是,我目前还没有足够的知识来编写衰减函数着色器代码(尽管我也很喜欢)。到目前为止,使用 Apple doc 我能够在材料上制作透明条纹,但仅此而已。
猜你喜欢
  • 2011-06-18
  • 1970-01-01
  • 2012-10-23
  • 2018-11-03
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多