Google Sceneform - 它已被弃用吗?有任何替代品吗?

38
我在我的ARCore项目中使用了Sceneform。看起来这个项目现在被Google标记为已归档。更多信息可以在这里或者这个页面找到。
我不知道Google是否真的放弃了这个SDK,或者它是否会直接集成到ARCore SDK中?谢谢提供有关该SDK未来和潜在替代品的任何信息。

1
谷歌没有就此事情发表官方声明似乎有些奇怪。我想知道他们是否会建议直接使用Filament:https://github.com/google/filament。 - elprl
Reddit上有一个类似的问题,@romain-guy(Android开发团队的成员)在评论中提到:https://www.reddit.com/r/androiddev/comments/glduwe/is_sceneform_dead/ - kaliatech
1
@elprl Filament很棒,但它并不是与Sceneform相等的技术。它们甚至不是苹果和橙子的关系,它们完全处于不同的水平。我喜欢Sceneform的好处,例如在ARCore之上的ArFragment、TransformableNode、PinchGestures、ShapeFactroy等等。 - Csaba Toth
1
那么没有人知道为什么它被停止了吗? - laim2003
3个回答

44

2022年修改:

Sceneform维护者和继承者:

与Google Sceneform (1.15.0, 1.16.0, 1.17.0和1.17.1)的区别

  • 无需插件: 直接从assets、res/raw、本地文件或http/https url中使用gltf和glb 3D模型文件,而不是sfa、sfb、fbx、obj等格式的文件
  • 最新版本的ARCore SDKGoogle Filament
  • 最新的gradle依赖包括AndroidX、LifecycleScope/Coroutines (仅适用于SceneView),...
  • 作为mavenCentral()依赖项可用
  • 支持增强图像
  • 支持增强面部
  • 使用glbgltf格式的3D模型(支持动画)
  • 使用hdrktx格式的环境贴图 (IndirectLight + Skybox)
  • 仅支持3D使用,而且是单一依赖项,不需要ARCore(仅适用于SceneView)
  • MediaPlayer的VideoNode(mp4,avi等)视频3D节点
  • 水平/垂直平面放置
  • 深度遮挡和放置(仅适用于SceneView
  • InstantPlacement(仅适用于SceneView
  • 通过调整实现更加壮观或真实的HdrLightEstimation
  • 简单的模型查看器,只需使用ArSceneView参数即可进行基本使用
  • 无需过多了解OpenGL知识

  • 1
    截至2021年3月,它似乎得到了很好的维护... :O - Fattie
    太棒了,Thomas Gorisse! - sunlover3
    非常感谢您的努力。我可以知道您为什么转向Kotlin吗? - undefined

    24

    更新日期:2023年9月5日。

    关于Google IO '21上的Sceneform替代品

    让我们听听Google ARCore团队的开发者倡导者Fred Sauer告诉我们关于Sceneform替代品的情况。这里有一个名为AMA: ARCore(时间06:25)的视频链接


    Sceneform分支(非官方Sceneform 1.21)

    这是存档Sceneform的延续


    关于最新官方版本

    有三个官方版本可供选择:

    • Sceneform 1.17.1
    • Sceneform 1.16
    • Sceneform 1.15

    几个月前,Google建议不要使用最新版本的Sceneform 1.17,原因是Maven构件(现在可能已经正常工作,但仍存在疑问)。Sceneform 1.16在Android Studio插件菜单中不可用,因为它的状态是已归档(我应该说是已废弃)。版本1.16支持glTF/glTB格式,而不是SFASFB资源。而且Sceneform 1.16已经开源,因此您可以从GitHub上下载。唯一让我不明白的是,如果Sceneform 1.16已经被归档,为什么Google还发布了Sceneform 1.17?!

    目前有两个百分之百可用的版本 - Sceneform 1.16 和 Sceneform 1.15。

    Sceneform 1.16 安装

    • 要下载 Sceneform 1.16 用于 ARCore Android,请在 GitHub 上使用 此链接

    • 请使用这些详细的 说明Sceneform 1.16 SDK 包含并构建到您的应用程序中。


    Google停止了Sceneform的开发

    Google没有准备发布一个新的官方3D渲染引擎(即使使用Filament作为基础)。原始的ARCore团队解散了,这就是为什么新的ARCore功能实现得如此缓慢。


    1
    ARCore SDK for Unity已被弃用,并且在Unity 2020及更高版本中不再受支持。该SDK仅应由无法迁移到Unity的AR Foundation的现有项目上工作的开发人员使用。 - Softlion
    谢谢@Softlion,我会把它加入到我的答案中。 - Andy Jazz
    1
    所以“解决方案”就是迁移到AR Foundation,这是一款每年1800美元/座位的产品。 - Softlion
    Google I/O视频的链接已经失效。 - undefined
    嗨 @stackunderflows,我已经替换了链接。 - undefined
    使用Sceneform 1.15有很多例子可以帮助开发者更好地理解,所以很难转到1.16版本。我已经构建了太阳系的例子,而且它运行得很完美,但不好的是Sceneform插件已经被弃用了。也许一个好主意是结合我们现在拥有的东西来开发新的解决方案。https://developers.google.com/sceneform/develop/samples https://github.com/SceneView/sceneform-android - undefined

    7
    这是一个悲伤的故事,我喜欢Sceneform,对我来说简单地替换它并不容易。因此,我分叉了它,并将库更新到androidx和filament 1.7。https://github.com/RGregat/sceneform-android-sdk。现在无法正常工作的是ARCore 1.18中引入的新深度API。我不确定将其实现到Sceneform中有多难,因为这取决于片段着色器。

    你的 fork 似乎也已经存档了。是否还有正在进行的 fork 开发? - Travis Well
    说明文件有误导。对此我感到抱歉。您可以使用这个分支,但是进行活跃的开发可能会比较困难。例如,新的深度 API 需要访问片段着色器,而这在 Sceneform 中并不是很容易实现的。也许在 Filament 中可以,因为我们理论上可以访问它,但我不确定。 - Sceada

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接