open-brush

open-brush

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

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

Open BrushVR绘画开源项目3D绘画虚拟现实Github

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 文件夹中。它们在非实验模式下不可见。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多