Project Icon

open-brush

开源VR绘画工具,让创意无限延展

Open Brush是Tilt Brush的开源分支,为VR艺术创作提供3D绘画工具。支持多种VR平台,具有丰富笔刷和功能,可在虚拟空间自由创作。作为社区主导项目,持续改进创新。适用于专业创作和休闲娱乐,提供身临其境的VR绘画体验。

Open Brush - 全方位艺术

当前版本 预发布版本 Crowdin 在Open Collective上支持我们! X Discord

Open Brush 横幅

Open Brush 是 Tilt Brush 的免费分支,Tilt Brush 是一款由 Google 提供的房间级 3D 绘画虚拟现实应用程序,最初由 Skillman & Hackett 开发。我们对原始代码库进行了大量更改,包括 Unity 升级和功能添加,使 Open Brush 达到现代 XR 开发标准。您可以在我们的文档网站上找到显著的变化。

我们希望将 Tilt Brush 作为一个社区主导的项目永久免费维护和改进!

由于原始仓库已归档,我们无法提交 PR,所以欢迎在这里提交!

用户指南 开发者说明 路线图 请加入 Icosa Discord 并参与其中! 社区教程、文章和其他资源列表 在 Open Collective 上支持我们

下载

商店

GitHub

致谢

  • 感谢 Tilt Brush 开发者的出色工作,以及找到开源应用程序的方法!
  • 感谢 SiMonk0 设计了全新的精彩logo!
  • 感谢 SideQuest 团队的支持。
  • 感谢 VR Rosie 制作宣传艺术品、横幅和视频。

最新开发版发布

无需等待正式发布,您可以从 Github 发布页面下载自动构建的 Windows(SteamVR)或 Oculus Quest / Quest 2 版本的 ZIP 文件。版本号形如"vX.Y.0"的是官方发布版,而不以.0结尾的版本仅供测试使用,不保证质量。此外,这些发布版被标记为"预发布"。但是,如果您想在正式发布之前测试最新的更改,您可以使用这些版本来替代或与正式 Open Brush 发布版并行使用。 这些构建版本与官方Open Brush发布版共享保存位置,但可以与正式版本并行安装。Oculus构建版本与所有侧载内容一样,会列在"未知来源"中,并在名称后附加"Github"字样(包名也不同),以区别于官方发布版。

请注意,"实验性"构建版本包含实验性笔刷,使用这些笔刷创建的草图在官方版Open Brush中加载时可能会呈现不同的效果!

此外,还有一个为Windows单目视觉创建的版本,它被列为Github Actions的"Artifact",但这仅供开发人员使用,普通用户不应使用。你可以通过浏览提交列表找到它,然后点击标题下方的绿色对勾(在XXX committed XXX ago旁边),滚动到你想要的构建版本,点击Details。然后在右上角点击Artifacts,再点击构建版本的名称。解压下载的文件,然后运行可执行文件(桌面OpenXR/单目视觉)或使用adb install com.Icosa.OpenBrush-github.apk安装apk文件(Android Oculus)。

原Tilt Brush README中的重要说明

Tilt Brush商标和标志("Tilt Brush商标")是Google的商标,与GitHub上Apache许可的Tilt Brush仓库中包含的版权或专利许可授权分开处理。除这些指南允许的使用外,任何对Tilt Brush商标的使用都必须事先获得批准。

欲了解更多信息,请阅读Tilt Brush品牌指南


构建应用程序

在你自己的设备上运行Open Brush开源应用程序。

前提条件

  • Unity 2022.3.34f1
  • Python 3(可选 — 仅当你希望运行Support/bin目录中的脚本时需要)已用Python 3.8测试。

在Unity编辑器中运行应用程序

首次运行应用程序时,请按以下步骤操作:

  1. 启动Unity。
  2. 转到File > Open Scene
  3. 选择/Assets/Scenes/Main.unity。Unity应该会自动提示你导入TextMesh Pro
  4. 选择Import TMP Essentials。 你也可以通过Window > TextMesh Pro > Import TMP Essential Resources来完成这一步。
  5. Play

这些步骤已在Release 1.0.54中测试过。

从Unity编辑器构建应用程序

虽然可以使用标准Unity构建工具构建Open Brush,但我们建议使用构建脚本以确保应用程序使用正确的设置构建。要运行此脚本,请转到Open Brush > Build > Do Build,或通过导航到Open Brush > Build > Build Window从Open Brush构建窗口进行构建。

注意:首次构建应用程序可能需要一些时间。

从Windows命令行构建应用程序

使用Support/bin目录中的build脚本来指定目标平台和你希望启用的构建选项。运行build —help查看各种构建选项。

附加功能

你应该能够很快地运行基本版本的Open Brush。以下功能需要更多时间:

开源Tilt Brush时被替换或移除的系统

由于开源许可问题,Tilt Brush中的一些系统被移除或替换为替代方案。这些包括:

  • Sonic Ether自然光晕。官方Tilt Brush应用使用从Asset Store购买的版本;开源版本使用Sonic Ether稍作修改的开源版本

  • FXAA。官方Tilt Brush应用使用的是Unity早期版本中标准资产中包含的FXAA的修改版本 - FXAA3 Console。这已被jintiao的FXAA所替代。

  • 渐晕和色差。官方Tilt Brush应用使用的是Unity早期版本中标准资产中包含的渐晕和色差效果的修改版本。这些已被Keijiro的KinoVignette的修改版本所替代。

  • 移轴。官方Tilt Brush应用使用的是Unity早期版本中标准资产中包含的移轴效果的修改版本。这些已被ruby0x1的移轴的修改版本所替代。

生成Secrets文件

Google和Sketchfab等服务的凭证存储在SecretsConfig可编程对象中。出于安全考虑,这在git配置中被忽略。要将其添加回来:

  1. 在Unity的项目窗口中右键点击根/Assets文件夹。 选择Create,然后选择Secrets Config。这将在Asset文件夹中创建Secrets.asset
  2. Scenes/Main.unity中,转到App > Config,将SecretsExample 替换为新生成的Secrets.asset

Google服务API支持

设置Google API支持以在应用中访问Google服务。

启用Google服务API

启用Google服务API时,请按以下步骤操作:

  1. Google Cloud Console中创建一个新项目。

  2. 启用以下API和服务:

    • YouTube Data API v3 — 用于上传视频到YouTube
    • Google Drive API — 用于备份到Google Drive
    • People API — 用于用户名和头像

注意:您在开发者控制台上的应用名称应与您在App.cs中的App.kGoogleServicesAppName给应用的名称相匹配。

创建Google API密钥

创建Google API密钥时,请按以下步骤操作:

  1. 从Google Cloud Console进入凭证页面。
  2. 点击创建凭证并从下拉菜单中选择API密钥

Google OAuth同意屏幕信息

OAuth同意屏幕会要求用户允许访问他们的Google账户。您应该能够从凭证屏幕配置它。

配置OAuth同意屏幕时,请按以下步骤操作:

  1. 填写您的应用名称和logo,以及应用将访问的用户数据范围。

  2. 将以下路径添加到作用域列表中:

    • Google Drive API ../auth/drive.appdata
    • Google Drive API ../auth/drive.file

创建OAuth凭证

凭证用于向Google服务器识别应用。按以下步骤创建OAuth凭证:

  1. 在凭证屏幕上创建一个新凭证。
  2. 选择OAuth,然后选择桌面应用。记下为您创建的客户端ID和客户端密钥值。请保密客户端密钥!

存储Google API密钥和凭证数据

按以下步骤存储Google API密钥和凭证数据:

  1. 按照创建secrets文件的步骤操作。 在Secrets字段中添加一个新项目。
  2. 选择Google作为服务。粘贴之前生成的API密钥、客户端ID和客户端密钥。

启用原生Oculus支持

Open Brush默认针对OpenXR而不是Oculus。按以下步骤启用原生Oculus支持:

  1. 在Player设置的StandaloneAndroid选项卡中,转到Other Settings > Scripting Define Symbols
  2. 点击+按钮创建一个新条目。
  3. 添加OCULUS_SUPPORTED并按Apply

为Oculus Quest构建应用

按以下步骤为Oculus Quest构建应用:

  1. 按照Oculus Quest开发指南设置您的机器。

  2. 确保在Unity中设置以下选项:

    • Open Brush > Build > Plugin: Oculus
    • Open Brush > Build > Platform: Android
    • Open Brush > Build > Runtime: IL2CPP
  3. 导航到 Open Brush > Build > Do Build

  4. 找到生成的可执行文件。它很可能位于 ../Builds/OculusMobile_Release_OpenBrush/ 目录下。

  5. 运行 adb install com.Icosa.OpenBrush.apk

发布到Oculus商店

注意:Tilt Brush 是Google的商标。如果您打算发布应用程序的克隆版本,您必须选择一个不同的名称以区别于官方版本。

按照以下步骤发布到Oculus商店:

  1. 从Oculus获取应用程序ID。桌面版和Quest版本的应用程序需要单独的ID。

  2. 按照步骤创建您的秘密文件。在Secrets字段中添加2个新项目。

  3. 将这些ID添加到Secrets文件中。OculusOculusMobile应各有一个条目。

  4. 将应用程序ID放在每个条目的Client ID字段中。

Open Brush 介绍草图

Open Brush介绍草图使用了一些稍作修改的着色器来产生动画淡入效果。为了加快加载速度,介绍草图事先被转换为*.prefab文件。只有介绍草图中使用的着色器被转换以适用于介绍。

  • 当前的介绍草图位于Support/Sketches/Intro。有两个版本,一个用于PC,一个用于移动设备。
  • *.prefab文件位于Assets/Prefabs/Intro
  • 介绍中使用的材质和着色器位于Assets/Materials/IntroMaterials
  • Assets/PlatformConfigPCAssets/PlatformConfigMobile文件引用了将在介绍中使用的*.prefab文件。

创建介绍草图

按照以下步骤替换或修改介绍草图:

  1. 确保已加载您选择的草图。在Unity编辑器中运行Open Brush。

  2. 在Unity主菜单中选择 Open Brush > Convert To Intro Materials。这将把草图中的材质转换为介绍版本。 控制台中会显示无法转换的材质的警告,以及转换了多少材质的摘要。

  3. 浏览层级。在Main场景下,打开SceneParent/Main Canvas。选择任何Batch_...对象以检查它们是否设置了介绍材质。

  4. 将任何不以Batch_开头的对象从Main Canvas节点下移出。

  5. 选择Main Canvas节点,运行 Open Brush > Save Game Object As Prefab菜单命令。 场景将被保存为名为gameobject_to_prefab*.prefab文件,位于Assets/TestData文件夹下。

  6. 将游戏对象移动到Assets/Prefabs/Intro文件夹。

  7. 更新Assets/PlatformConfigPCAssets/PlatformConfigMobile中的引用,使其指向您的新prefab文件。

为移动应用创建介绍草图

您可能想要为移动版应用创建一个简化版的介绍草图。笔画简化功能位于Open Brush内的Settings菜单中。

新场景

默认情况下,您的应用只会构建在Assets/Editor/下的BuildTiltBrush.csDoBuild方法(string[] scenes = {...})中定义的场景。确保将您的自定义场景添加到这个数组中,以便在应用中看到它们。

Sketchfab支持

按照以下步骤启用Sketchfab支持:

  1. 在上传到他们的服务之前,联系Sketchfab获取客户端ID和密钥。

  2. 按照步骤创建您的秘密文件。在Secrets字段中添加一个新项目。

  3. 将客户端ID和密钥添加到该字段。

  4. 将服务设置为Sketchfab。将API密钥留空。

视频支持错误修复

如果您添加视频支持,可能会遇到一个错误:当控制器角度过大时,"Looking for audio"和"Play some music on your computer"文本会消失。通过以下方法修复:

  1. 在Unity中,找到 /Assets/TextMesh Pro/Resources/Shaders/TMP_SDF.shader 文件。
  2. 复制该文件并将其重命名为 TMP_SDF-WriteDepth.shader
  3. 在代码或文本编辑器中打开新文件,并进行以下修改:
    1. 将名称从 TextMeshPro/Distance Field 改为 TextMeshPro/Distance Field Depth
    2. Zwrite Off 改为 Zwrite On
  4. 在Unity中,选择 /Assets/Fonts/Oswald-Light SDF.asset
  5. Atlas & Material 下,双击 Oswald-Light SDF Material
  6. 在顶部,将 Shader 的名称从 TextMeshPro/Distance Field 改为 TextMeshPro/Distance Field Depth

离线渲染支持

当用户从Open Brush中保存的草图录制视频时,会在 .mp4 文件旁生成一个用于离线渲染支持的 .bat 文件。这个 .bat 文件需要Open Brush可执行文件的路径。写入此路径到文件的代码已被移除。

按照以下步骤恢复路径:

  1. 在代码或文本编辑器中打开 Assets/Scripts/Rendering/VideoRecorderUtils.cs 文件。
  2. 在文件底部附近找到 CreateOfflineRenderBatchFile 函数。
  3. 在函数中,找到关于如何修改字符串以指向可执行文件路径的注释。
  4. 更新字符串以指向正确的路径。

实验模式

实验模式是新功能在正式发布前的栖息地。这个模式启用实验性画笔和实验面板,同时禁用介绍序列。实验模式可以从设置面板启用,需要重启生效。

在实验模式中发现的新功能和画笔可能无法按预期工作。 使用实验性功能和画笔的草图在Icosa或Sketchfab上无法工作,在Open Brush的正式版本中加载时可能会出错。

使代码进入实验模式

实验模式下的代码通常包含在以下代码块中:

    if (Config.IsExperimental) {
      // 实验性代码放在这里
    }

实验性画笔

实验性画笔和环境位于 Assets/Resources/X 文件夹中。它们在非实验模式下不可见。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号