Quantcast
Channel: 最近的帖子

英特尔® 实感™ 3D 扫描: 在 Blender 中将顶点颜色转化为 UV 贴图

$
0
0

英特尔® 实感™ F200 摄像头的最新版 软件开发套件现在包含 3D 扫描功能。 这是一个惊艳的功能,支持开发人员和数字艺术家在实际物体中进行扫描,以用于其项目。 有一个用例是在实际物体中扫描并在 Unity 中使用。 本博文将介绍如何通过原始扫描转化顶点颜色来创建 UV 纹理贴图,以便大家将扫对象导入至 Unity。 这篇帖子大部分为图片,因此无需太担心文章过长。 着手进行后,大家会发现这一流程非常简单。

整个流程涉及 4 个关键步骤。 这篇帖子将重点介绍第 3 步。 访问下列链接,查阅有关其他步骤的帖子。

  1. 使用英特尔实感软件开发工具 3D 扫描代码示例进行扫描
  2. 将 OBJ 文件格式转化为 PLY 以便在 Blender 中编辑
  3. 将顶点颜色转化为 UV 贴图并编辑 3D 网格以减少 Blender 中的顶点/多边形数量
  4. 导入以便在 Unity 中使用

您需要完成:

  1. 使用(免费)软件开发套件,在英特尔酷睿第四代处理器或更高版本处理器上运行英特尔实感摄像头
  2. 通过英特尔实感技术扫描物体并转化为 PLY 文件(通过 MeshLab,免费)
  3. Blender (免费)

流程概述:

此处主要是导入 3D 文件,并拷贝该文件。 清空副本,然后针对新的复制版本将顶点颜色绘制成 UV 贴图。

第 3 步(共 4 步)

在 Blender 中创建新项目 (Project),选择 "Import PLY"文件格式,然后选择您要从 MeshLab 中导出的 PLY 文件。

完成导入后,纹理将会消失。


然而,如果切换到 Texture 视图,您会发现扫描的 RGB 颜色现在已绘制成 Texture 模式。

如欲查看颜色,请将视图模式准确切换至 Materials。 在右面板上选择 Materials 图标。 创建新 Material。 在面板编辑器中将 Shading 设置为 Shadeless,并在 Options 中打开 Vertex Color Paint。 这一操作能够顺利将顶点颜色设置为扫描对象的材质。

但现在还不是能够为我们所用的网格。 上面布满孔洞,表面非常粗糙,多边形数量也超出了我们所需的数量。 我们希望创建的网格版本能够清空,但以 UV 贴图形式绘制其顶点着色的纹理。 我们能将该版本导入至 Unity。

创建网格副本:

前往对象菜单 (Object Menu)。 选择 Duplicate Mesh,并点击确认。 不要移动鼠标。

前往对象菜单 (Object Menu),然后选择 Move To Layer,并选择右边的正方形。

前往资产浏览器,重新命名您的网格。 一个命名为原始网格 (Original Mesh),另一个命名为第二网格 (Second Mesh)。 这样有助于保持它们的直观状态。

选择 Second Mesh,然后选择 Layer to View,并将模式更改为 Solid 渲染。

然后选择 Tool Wrench Icon 以添加修改器。 我们要更改多边形数量并获取更清晰的网格,以处理第二网格。

从 Tools 中选择 Remesh 。 在 Remesh 工具中将 Oct Tree 设置为 7-8。 将模式 (Mode) 设置为 Smooth,然后打开 Smooth Shading。 这样您会丢失材质贴图。

单击 Apply。 现在您有一个更清晰的网格供您使用 Vertex 和 UVMap。

进入该第二网格的 Edit Mode。 在 Select Menu 下方选择 All。

创建一个新 Window 并将其设置为 UV Map Mode,以查看 UVMap。


在 3D 窗口下方进入网格菜单并选择 UV。

在 UV Map Window 中选择 NEW,以创建纹理。 关闭 Alpha。 将纹理命名为您导出的模式名称。

切换至 Object Mode。 您将看到 Black Model 和 Black UV Map。 这样就可以了。

现在使用 Shift 键打开这两个层。

在资产浏览器中选择 Original Mesh。

进入 Camera Icon。

在 Bake 区域下方打开 Select to Active。 确保 Bake to Vertex 处于关闭状态。

在 Scene 下方将 Color Management 设定为 None。

在资产菜单 (Asset Menu) 中您需要首先选择 Original Mesh。 按下 SHIFT 键,然后选择 Second Mesh。 (必须按照顺序完成此项操作)。 请注意,必须确保两个层处于视线范围内,且摄像头图标处于打开状态。

前往摄像头图标。 在 Bake 下方单击 Bake。

您现在应该已绘制了一个纹理。 如欲查看该纹理,关闭第一个层,仅查看包含第二网格的层。 选择 Texture 视图,您将看到带有纹理的网格以及您的 UV 贴图。

你将会看到神奇的一点是,网格的缺失区域布满了图像。

您可进入 Texture Paint 模式清空这些图像。 还可进入 Sculpt 模式填满缺失区域,清空或在网格中添加特征。 完成这些操作后,我们的网格就已完成,可以准备导出了。 最后需要牢记几点:

  • 务必使 UVMap 的名称和网格目录中的名称保持一致。
  • 前往 UVMap Window、Image 菜单,选择 Save As,将网格保存在目录中。
  • 然后前往文件目录 (File Menu),使用与 UV 贴图相同的名称导出 .FBX 文件。

现在您可以将3D 网格导入至 Unity

如欲了解有关使用英特尔® 实感™技术的更多信息,请查看英特尔® 实感™ 开发人员专区


英特尔实感 3D 扫描: 如何为 Blender 和 Unity 扫描并做准备

$
0
0

英特尔®  实感™ F200 摄像头的最新版软件开发套件 现在包含 3D 扫描功能。 这是一个惊艳的功能,支持开发人员和数字艺术家在实际物体中进行扫描,以用于其项目。  有一个用例是在实际物体中扫描并在 Unity 中使用。  这是一个由三部分组成的系列博文,将引导您完成整个过程。 

在这第一步中,我将为您介绍如何使用 MeshLab 扫描物体并将其转化为 PLY 格式。 这个步骤用于为 Unity 等其他程序从扫描中获取颜色信息

下面是本系列的后续步骤。 这篇帖子包含前两步。  对于第三步和第四步,请在完成本帖中的步骤后点击以下链接

您需要完成:

  • 使用软件开发套件,在英特尔酷睿第四代处理器或更高版本处理器上运行英特尔® 实感摄像头(软件开发套件免费)
  • 通过英特尔实感技术扫描物体并转化为 PLY 文件(通过 MeshLab,免费)
  • Blender(免费)

第1步(共 4 步):

使用英特尔® 实感软件开发套件进行扫描。

安装英特尔® 实感软件开发套件之后,  转至 Windows 中的常用工具列,搜索“实感”。 您将在列表中找到实感软件开发套件示例浏览器。  右击并选择“以管理员身份运行”

 
 
在示例浏览器中,您将看到“常见示例部分”。 这些是将在 F200 和 R200 摄像头中使用的示例。 找到名为“3D 扫描 (C++)”的示例。
 

3D 扫描的注意事项

  • 示例用于追踪空间中的刚性 3D 物体,从而允许该物体在摄像头前旋转并进行跟踪,进而从多个面对其进行扫描
  • 如果物体的一部分在旋转,另一部分保持不动,它会使跟踪算法发生混乱,导致扫描质量低下。也就是说,如果扫描一个人的头部,不要旋转颈部进行扫描,因为这样做会导致扫描质量低下。  您应该将其作为一个立体物,旋转对扫描可见的整个躯干。 
  • 您可以向前倾斜,向后倾斜,向左旋转,向右旋转和左右旋转。 通过练习,可以对一个物体进行 360 度扫描
  • 在即使有灯光的区域进行扫描。  避免阴影,因为这些阴影或镜面反射会融入到您的 3D 纹理中

扫描步骤

  • 选择“从示例浏览器运行” 
  • 将物体放在摄像头前,您将在扫描器视图中看到它。  拿着它不动,直到第二个窗口弹出。 
  • 第二个窗口弹出后,开始按照一个方向旋转物体,放慢速度然后调转方向,尝试绕着该物体旋转一圈。 转一圈,然后后倾和前倾,然后拿着不动。  如果您正在扫描人脸,请在最后的几秒钟向前方看,将目光放在摄像头上方,使您的眼睛处于静止状态
  • 当扫描完成后,它将打开一个浏览器,允许您拖动和旋转图像。  图像将保存到您的“文档”文件夹中,名称为 3Dscan.obj
  • 您可以尽可能多次地重新运行该示例,以获得满意的扫描结果,并为您的应用或游戏进行清理

第2步(共4步):转换为PLY格式

OBJ 格式是您从扫描中获得的默认格式。 您可以使用名为 MeshLab 的免费工具,转换为 PLY 格式。 

  • 下载并安装 MeshLab(免费)
  • 从文件菜单中选择“导入”。  选择位于“文档”文件夹根目录的 3Dscan.obj 文件

  • 导入后,您的物体可能在其旁边。 您可以在物体底部左击并向上拖动,旋转该物体并进行检查。  您应该看到带有颜色的网格。 颜色信息存储为“顶点颜色”,这意味着在扫描物体时,每个顶点都用 GRB 摄像头中的像素进行了染色。
  • 从文件菜单中选择“导出网格为”
  • 在对话框中,选择”Stanford Polygon“文件格式 (*.ply)
  • 务必保存在您能找到的目录下。 

现在即可移到 Blender 中清理网格并将顶点颜色转化为 UV 贴图。

继续阅读本帖子:将顶点颜色转化为 UV 贴图并编辑 3D 网格以减少 Blender 中的顶点/多边形数量

英特尔实感 3D 扫描: 如何导入到 Unity

$
0
0

英特尔® 实感™ F200 摄像头的最新版软件开发套件现在包含 3D 扫描功能。 这是一个惊艳的功能,支持开发人员和数字艺术家在实际物体中进行扫描,以用于其项目。  有一个用例是在实际物体中扫描并在 Unity 中使用。  这是一个由两部分组成的系列,将引导您完成整个过程。 

在这最后一步中,我将为您介绍如何将扫描的物体导入至 Unity

下面是本系列的所有步骤。 这篇帖子包含第 4 步的内容。  前面几步的链接如下

您需要完成:

  • 使用软件开发套件,在英特尔酷睿第四代处理器或更高版本处理器上运行英特尔® 实感摄像头(软件开发套件免费)
  • 通过英特尔实感技术扫描物体并转化为 PLY 文件(通过 MeshLab,免费)
  • Blender(免费)

4 步(共 4 步): 

按照最后一步操作,您应该得到一个 .FBX 模型和一个 UV 纹理贴图。

打开 Unity(Unity 5 可免费下载)

  • 创建一个新的项目和场景

     
  • 转至资产菜单并选择导入新资产。 选择您从 Blender 中导出的 .FBX 模型。.
     
  • 当物体导入时,可能没有导入其纹理,您将看到灰白色版本的网格。 这样没关系。 接下来我们将添加在纹理贴图中。

     
  • 选择“材料”文件夹,然后右击并选择“导入资产”。 选择您保存在 Blender 中的 PNG 文件,然后导入。
     
  • 您将会看到纹理贴图和灰白色材料。 右击名称与网格相同的灰白色球形材料,并删除该材料。

     
  • 返回资产文件夹,右击您导入的网格。 选择重新导入

     
  • 重新导入后,它将正确地创建材料并为网格添加纹理

     
  • 如果模型在物体预览中是粉色的,则选择另一个物体(如摄像头),然后再次选择您的网格。 网格应刷新。
  • 现在您可以使用了。 将物体拖到场景中。  您可以将其放大并调整摄像头视角,使其在视野范围内。
     
  • 播放时,您应该看到您的物体正确地显示在 Unity 中。
  • 最后,如果您想要调整纹理, 如果您想要制造一些光泽或金属感, 转至材料文件夹,选择圆形版本的纹理。  在“检查器”窗口中,您可以调整纹理的金属质感或光滑度,获得想要的外观

祝您好运,可在 twitter 上找到我或发表评论: @bobduffy 

面向人工智能的英特尔校园大使计划:是什么?

$
0
0

2016 年 11月,我们宣布推出英特尔® 软件学生开发人员计划,该计划旨在和创新型学校和大学的学生展开协作,共同在机器学习和人工智能领域取得突破。作为该计划的一部分,我们还宣布推出面向人工智能的英特尔® 学生校园大使计划,该计划是一项令人振奋的全新计划,为大学生提供了与英特尔互动、参与英特尔机器学习、深度学习和人工智能项目的机会。 

什么是学生校园大使计划? 

Student Ambassadors

校园大使计划是一项促进开发人员交流的计划,帮助学生专家与其他学生数据科学家和开发人员分享他们的故事和专业知识。 英特尔正在与全球大学协作,不断推广该计划。 作为校园大使加入该计划的学生可以获得英特尔技术支持、资源和营销手段,利用英特尔软件、工具和硬件开展工作。 该计划主要面向研究生,但是本科生和博士生也可以申请该计划,前提是需要满足该计划对教育背景、技能和时间的要求(需要指出的是:该计划不提供英特尔大学生实习机会,也不提供英特尔就业职位)。 

学生校园大使计划具有哪些优势? 

学生校园大使计划为受邀加入该计划的学生提供了众多优势, 包括:

  • 拥有英特尔品牌纪念品和学生校园大使头衔,正式与英特尔公司建立关系 
  • 免费的英特尔软件、工具和库
  • 直接访问基于英特尔至强融核的人工智能集群实例,支持深度学习模型的开发和训练。
  • 在英特尔月度会议上获取提前披露的信息(必须签订保密协议)。
  • 直接对接英特尔工程师和资源,为自己的工作与英特尔架构平台的适配提供支持。
  • 为学生校园大使的演讲和/或培训提供旅行补贴
  • 获得赞助资金,在所在大学进行主持、培训和演讲,以推广学生大使的工作 

我们对校园大使的期望是什么? 

校园大使在有能力、有动力完成校园大使的工作的前提下,可以依据意自身意愿继续任职至毕业, 在担任学生校园大使期间,每位校园大使需要完成以下任务:

  • 在英特尔开发人员网站 (software.intel.com) 在线发布两篇技术文章
  • 创建一份在线档案,并在英特尔 Developer Mesh 网站(devmesh.intel.com)发布至少一个项目
  • 在一个及以上的校园大使实验室中担任主要发言人,为至少 125 位学生提供培训 

我对该计划非常感兴趣。怎样才能加入该计划? 

我们为有兴趣加入学生校园大使计划的学生或教职工提供了多种联系英特尔以及加入该计划的方法:

  • 大学可以邀请英特尔进入校园,开展为期半天的研讨会,以讨论该计划,提供支持英特尔架构的深度学习和人工智能技术初期培训。 访问该  网站 和/或联系 Niven Singh ,以获取关于组织研讨会的更多信息。 
  • 对于想要以个人身份参加学生校园大使计划的学生,我们希望他们把自身学习和/或研究情况发布到英特尔 Developer Mesh 网站的 Student Group 上,以便我们了解更多信息。将信息发布到网站有助于英特尔了解学生的工作能力,也有助于展示学生向社区分享经验的积极性和能力。 将计划发布到 Developer Mesh 后,学生需要填写并提交一份 在线申请表。 

对于不符合学生校园大使要求,或不能成为学生校园大使的学生,英特尔将提供哪些支持? 

University Clubs

英特尔将支持、资助大学里的学生社团。通过该计划,英特尔将设立赞助基金,以挑选合适的大学社团。 赞助基金为社团提供会议和聚会经费支持,作为回报,社团需要讨论和分享关于英特尔支持人工智能的信息。 当选的社团将获得人工智能培训套件,套件内包括用于在会议和聚会中分享和讨论的内容和文档。当选的大学社团将优先成为英特尔嘉宾演讲者,或凭借可用资源成为相关合作伙伴。对于有意评选英特尔学生计划大学社团的社团,可以点击此处提交申请信息。 

英特尔非常期待通过大学研讨会、校园大使和大学社团与学生开展合作和直接对话,帮助他们塑造、推动人工智能全新进展和使用案例。 我们的目标是为学生和开发人员提供资源和机会,帮助他们为推进人工智能进步贡献自己的力量。 访问Intel Student Ambassador网站以了解更多信息,通过Mesh查看人工智能计划,或直接联系 Niven Singh 获取更多信息。

英特尔® Nervana™ 人工智能研究院大学研讨会和讨论会

$
0
0

2017 年,英特尔® Nervana™ 人工智能研究院学生开发人员计划吸引了全球众多大学的参与,在大学校园内举办了多场技术研讨会和讨论会。我们真诚邀请来自各个专业、社团和拥有各种兴趣爱好的学生参加大会并了解英特尔在机器学习、深度学习和人工智能领域所取得的进展。教职工和学生 还可以参与并展示他们在各自领域内的研究成果和专业知识,英特尔也展示了在英特尔® 架构上运行的最新版工具、技术和计划,为人工智能带来强大的支持。

目前,这些研讨会在美国、非洲、印度、中国和欧洲举办。每一场研讨会都会根据学生的需求和兴趣进行调整,但是多数研讨会在开场时,由英特尔成员或嘉宾主持简要介绍技术议程,以及学生如何推动英特尔的发展。

英特尔® 学生开发人员人工智能研讨会 - 加州大学 (UC) 克利分校专场

在活动中,英特尔介绍了为学生提供的技术和计划,包括:

  • 全体参会学生均可获取的技术,如远程访问运行英特尔® 优化库和框架的英特尔® 服务器。

  • 从收集、分享和讨论人工智能知识的学生社团中挑选优秀的社团并颁发赞助。

  • 英特尔学生校园大使计划,为优秀学生提供英特尔支持,并协助宣传他们在英特尔架构上支持人工智能的项目。

上图 显示了面向英特尔架构优化的各项技术,从英特尔® CPU 到库,如英特尔® 数学核心函数库(英特尔® MKL)和面向深度神经网络的英特尔® 数学核心函数库(英特尔® MKL-DNN)。深度学习框架是新兴的人工智能解决方案的核心,英特尔正积极完善每一个主要框架,以面向英特尔架构优化这些主要框架。框内的部分展示了学生开发人员计划提供的技术,学生可以立即获取、免费试用这些技术。此外,从众多申请者中挑选出的学生校园大使在参与计划期间,有权利访问基于最新版英特尔® 至强融核™ 处理器的服务器,还能访问特定的工具。了解关于 学生校园大使计划的更多信息。

面向人工智能的欢迎和议程概述示例 - 加州大学伯克利分校学生研讨会

技术课程:研讨会至少提供两门技术课程,一般会根据大学的需求、课程或重点而调整,可能包含:

  • 机器学习和深度学习简介

  • 从技术层面深入探讨深度学习

  • 英特尔® 深度学习 SDK 演示/培训

  • 面向英特尔架构而优化的 Caffe* 演示/培训

  • 采用英特尔® Nervanad 技术和 Neon 框架的深度学习简介

  • 采用英特尔® Nervanad 技术和 Neon 框架的演示/培训

  • 从事机器学习、深度学习和人工智能研究的教职工或学生

示例课程:

采用英特尔® Nervanad™ 技术和 Neon 框架的深度学习简介

应用 Neon 框架的英特尔 Nervana 技术平台的深度学习演示

使用深度学习方法进行 MOOC 行为建模的学生课程

获取关于英特尔 Nervana 人工智能研究院的更多信息。了解关于如何申请 面向人工智能的英特尔学生校园大使计划的更多信息。

面向虚拟现实更新旧版 Unity* 游戏

$
0
0

许多开发人员利用面向 PC 和移动设备的 Unity* 游戏创建了卓越的任务和游戏。  现在,虚拟现实功能已经集成至 Unity 3D,我们需要了解如何更新旧版游戏,以提供出色的虚拟现实体验。本文将向开发人员介绍如何转换现有的 Unity 游戏,使其兼容 HTC Vive* 虚拟现实硬件。

  • 目标虚拟现实类别: 高端虚拟现实
  • 目标虚拟现实硬件: HTC Vive
  • 目标 Unity 版本: Unity 5.0

本文将涵盖以下主题:

  • 重新设计旧版游戏,以提供全新的虚拟现实体验
  • 集成 SteamVR* 插件的技巧
  • 开始使用控制器脚本
  • 全新 C# 到旧版 JavaScript* 解决方案
  • 从 2D 图形用户界面迁移至 3D 用户界面

设计全新的虚拟现实体验

虽然旧版 Unity 游戏并非专为虚拟现实而设计,但是由于 Unity 是一种模拟真实图形和物理的 3D 环境,很有可能您在改善虚拟现实体验方面已经取得了一定的进展。 添加控制器脚本前,您首先需要充分考虑旧版游戏和它所提供的全新的虚拟现实体验。 以下技巧可以帮助您设计适合旧版游戏的虚拟现实体验:

通过设计消除运动眩晕:  标准 Unity 游戏或应用的游戏体验非常令人难忘,但是无法欺骗您的感官, 认识这一点非常重要。 如果您创建了一款非常刺激的高速赛车游戏,然后将它移植到虚拟现实,用户的大脑将会接受非常混乱、错误的信号,最终引起用户的条件反射。 问题是当您的大脑看到虚拟现实世界中的第一人称运动时,它会向您的腿和驱干发送信号,以平衡眼前的运动。 某些用户可能很享受这种游戏体验,但对于大多数用户来说,这是一个非常糟糕的体验,尤其在用户直立时,有可能会摔倒。  如果他们坐着玩游戏,感知到的运动不会造成太大的问题,同时增强了安全性。 评估游戏的最佳体验,考虑建议坐式或站立的游戏体验,以及调整移动,避免用户在场景中遇到平衡问题。

对于站立的玩家,消除运动眩晕的一个有效方法是取消全部的运动,添加远距传动特性,使游戏玩家在空间中随意转换。  借助远距传动特性,您可以以用户的身份站立,将各个方向的移动距离限制在几英尺以内,用户可以将控制器指向游戏中的某个空间,通过远距传动到达那个空间。  例如,如果 FPS 射击玩家借助远距传动特性进行远距离移动,虽然他们只能步行前进或后退几步,但是游戏效果却更好。

我的游戏示例最初设计为第一人称空间驾驶体验。 因此,我决定提供坐式体验,而非空间定位体验, 这样做将不会产生混乱的大脑信号,避免了用户维持双腿平衡的过程中出现双腿僵硬的现象,同时用户能够在场景中自由移动。  我还决定降低多数运动的幅度,使运动缓和了许多。  作为一款空间游戏,实施效果非常不错;在空间中漂浮时,不会因为转弯或运动而感到眩晕。 在坐式体验中,您仍可以感受到运动,但是运动更为可控,不会在大脑中产生杂乱的信号,也无需调整或适应运动。 (如欲进一步迁移至虚拟现实的原始游戏版本,请在查看 本文,这是一篇利用超极本™ 创建 Unity 游戏的教程。) 

面向第一人称设计: 虚拟现实面临的另一个主要问题是第一人称体验。 如果旧版游戏不是专为第一人称视角而设计,需要考虑如何使第三人称视角变为有趣的第一人称体验,或者如何将游戏转换为第一人称视角。

我的游戏属于混合第一人称游戏,但是包含镜头跟随动作的特性。  我认为它太被动,只是间接的第一人称体验。  因此,我决定将人物与动作直接锁定,而非通过脚本间接跟随。

自然交互式用户界面或控制。  由于摄像头的位置不固定,而典型的屏幕菜单在摄像头中显示,因此,交互式用户界面和控制是另一大问题。 摄像头的位置就是用户正在查看的区域。 务必妥善解决控制、菜单和自然交互性问题。  由于多数控制台控制位于游戏手柄,而非屏幕上,因此,控制台游戏开发人员优势非常明显。  如果您设计的移动游戏使用了触摸控制、复杂键或可用鼠标的屏幕控制,您需要重新思考您的控制方案

我的游戏包含了 4 个控制选项:左转、右转、前进和发射。  移动版游戏使用了屏幕可触控控制,PC 版游戏使用了按键命令。  对于虚拟现实版本,我开始借鉴坦克的控制进行设计: 左控制器顺时针旋转,右控制器逆时针旋转等。测试前,这一切似乎比较可行。 我很快发现我的左拇指想要控制两个旋转方向,  事实证明,我之前用游戏手柄玩游戏,无法克服这种肌肉记忆。 HTC Vive 控制器是手持的,手指可以自由放置(和手柄相似),因此,我进行了重新设计。 左控制手柄负责控制方向,右触发器为汽车提供燃料,利用右拇指发射激光,和手柄中的 A 或 X 按钮用法相似。

利用 360 度:  虚拟现实游戏提供 360 度全方位的视角,如果游戏只允许玩家只向前移动,是对虚拟现实优势的一种浪费。  实际上,这是常规版游戏所面临的问题。 我设计了面向所有敌人的迷你-HUD 显示模式,您可以查看敌人是否从两侧或后面靠近您的战舰。  利用虚拟现实技术,只需向左或向右扭头便能轻松观察周围环境。 我将专门针对前进视角以外的危险进行改进,以充分利用 360 度全方位的虚拟现实体验。

针对示例游戏的虚拟现实重新设计决策包含以下几个方面

  • 采用坐姿玩法,以避免眩晕和双腿抽搐的症状
  • 禁用跟踪摄像头,将摄像头锁定车辆的前部
  • 抑制旋转,以避免平衡问题,缓和游戏的移动
  • 将控制映射到 HTC Vive 控制器中,该控制器与手柄控制的布局类似。
  • 创建特性,在更广阔的全景中展示视图和动作

添加 SteamVR 插件

这既不是最简单的操作,也不是最严峻的挑战,  完全取决于代码的老旧程度以及它对 SteamVR 工具套件的兼容。   我将介绍它预期的工作方式以及可能需要您执行的操作。

清理您的游戏,以安装最新版 Unity: 首先,复制原始游戏。 下载最新版 Unity。  打开该版本的旧版游戏。 如有提示,更新 API。  打开游戏并检查控制台是否存在过时的 API,建议您进行更新。

安装 SteamVR 插件: 如果现代版 Unity 能够正常运行游戏,可以下载并导入 SteamVR 插件。 转至 Unity 商店。 搜索 SteamVR 插件, 请选择唯一一个带有熟悉的 Steam 标识的插件。 单击 Import。

选择 All 以导入全部特性、模型和脚本。  所有内容在 SteamVR 文件夹中有序地排列,便于您弄清哪些脚本和资产来自插件。

测试示例场景: 转至下一步之前,确保 HTC Vive 硬件已经连接且正常运行。  在 Unity 中转至 Project 选项卡,打开 SteamVR 文件夹,选择 Scenes 文件夹,然后选择示例场景。  您将看到一个堆着箱子的场景和 SteamVR 截屏。  进入场景并带上头盔。  您应该看到全面的虚拟现实场景以及 HTC Vive 控制器。  如果您看到了上述场景和控制器,可以断定 SteamVR 插件正常运行。

如果没有 – 尝试创建新的项目: 如果您看不到控制器或 SteamVR 示例无法在头盔中加载,需要创建一个新的空白项目。  导入 SteamVR 工具套件并尝试示例场景。 如果这样仍不奏效,表示您的 Unity 版本或 Steam 硬件出现了问题。 

新项目能够正常运行,但是旧项目无法正常运行:  如果全新项目运行良好,但是原始游戏无法兼容 SteamVR 插件,需要再次创建空白项目,安装 SteamVR 工具套件,测试套件是否正常运行,然后将您的游戏迁移至新项目。 为了完成上述操作,首先关闭项目。 在清理后的 Unity 项目中,复制 Assets 文件夹中的全部内容, 转至新项目中的 Asset 文件夹并粘帖。 打开 Unity 项目,开始测试虚拟现实。  这种方法被证实有效。  但是,您的游戏已被损坏,  许多资产的所有项目设置已经丢失,包括从项目组件到游戏资产(如模型、声音文件等)的链接。转至每个资产和每个组件,以确保游戏对象和声音文件正确链接。 这个过程费时费力, 我已经经历过两到三次。 也没有那么糟糕,但是非常琐碎。

更换摄像头:  进行下一步操作之前,请带上 HTC Vive 头盔并正常运行游戏,您应该能够通过转动头部来移动摄像头,还能环顾游戏场景。 但是您仍看不到 HTC Vive 控制器,将虚拟现实应用于摄像头的关键技术还未设置。  下面是实现集成的最关键步骤,  操作起来非常简单,让人难以相信。  为了在应用中添加虚拟现实特性,只需将场景中的主摄像机替换为 SteamVR 文件夹中的 Prefab 摄像头。  就这么简单! 但是,现有摄像头仍有大量的脚本或设置。  不要立即替换摄像头,  建议您以子对象的形式将 Prefab 摄像头放入现有摄像头。  

然后,在现有摄像头的 Properties 面板中关闭摄像头及其全部组件。 在属性面板中,务必取消选中摄像头旁边的选框。

然后,复制粘帖摄像头组件和设置至 Prefab 内的 Camera Head 或 Camera Eye 子对象。 移动、复制并调整设置,戴上 HTC Vive 头盔后,天空盒和其他组件正常运行。

此时,您的旧版游戏已启用了虚拟现实技术。 您应该能够运行该场景,戴上虚拟现实头盔,环顾游戏四周,将看到手上的控制器。 下面介绍如何实现控制器和脚本兼容现有的游戏逻辑。

控制器脚本

如果您和我一样利用 JavaScript 开发游戏,可能会面临更大的挑战,但是不管采用哪种方法,实现控制器脚本与游戏的兼容相当简单。 如果您的游戏中包含 JavaScript,且需要控制器兼容这些脚本,请查看以下章节。  对场景中的左、右控制器进行以下操作。  将控制器(作为子资产)添加到主摄像头下的 Prefab 摄像头中。   Tracked Controller 脚本位于 Extra 文件夹内。  将它拖放到 Camera Prefab 内的控制器(左)中。 控制器(右)和控制器(左)的操作相同。

完成后,在 Inspector 中显示 Trigger Pressed 和其它项目,在游戏中使用这些项目时将进行开关检查。

使用控制器的概念和事件侦听器方法相似。  为了捕获一个事件(如触发或触摸板),需要创建一个 C# 脚本。  以下脚本可以通过许多论坛获取。 在本例中,我向您展示了如何创建事件触发器,以启动触发器、释放触发器、触摸控制器板以及从控制器板上抬起手指。 

C# 脚本在启动触发器或触摸触摸板时触发事件:

using UnityEngine;
using System.Collections;

public class EasyController : MonoBehaviour {
    private SteamVR_TrackedController device;
    void Start () {
        device.TriggerClicked += Trigger
        device.TriggerUnclicked += UnTrigger ;

        device.PadTouched += PadTouch;
        device.PadUntouched += PadLift;
    }


    void Trigger(object sender, ClickedEventArgs e)
        {
//        Place Code Here for Trigger
        }
    void UnTrigger(object sender, ClickedEventArgs e)
    {
 //        Place Code Here for Lifting Trigger
            }

    void PadTouch(object sender, ClickedEventArgs e)
    {
//        Place Code Here for Touching Pad
      }
    void  PadLift(object sender, ClickedEventArgs e)
    {
 //        Place Code Here for UnTouching Pad
    }
}

控制器技巧:  开发游戏时,您会发现无法在虚拟现实中区分左右控制器。  建议在任意控制器上添加一个 3D 资产,如灯、球体或有助于区分左右控制器的任何组件, 以达到开发目的。 稍后,在用户界面章节介绍生成图标和标签的方法,以帮助用户了解如何使用控制器。

此外,可以在除开关以外的其他情况下使用触摸板。  本脚本会根据用户敲击触摸板的位置,支持用户控制游戏。 以下脚本支持您通过敲击触摸板左侧和右侧触发活动。

C# 脚本利用来自虚拟现实触摸板的 X 和 Y 值

using UnityEngine;
using System.Collections;
using Valve.VR;

public class myTouchpad : MonoBehaviour
{
    SteamVR_Controller.Device device;
    SteamVR_TrackedObject controller;

    void Start()
    {
        controller = gameObject.GetComponent<SteamVR_TrackedObject>();
    }

    void Update()
    {
        device = SteamVR_Controller.Input((int)controller.index);
        //If finger is on touchpad

        if (device.GetTouch(SteamVR_Controller.ButtonMask.Touchpad))
        {
            //Read the touchpad values
            touchpad = device.GetAxis(EVRButtonId.k_EButton_SteamVR_Touchpad);
            touchstate = device.GetPress(EVRButtonId.k_EButton_SteamVR_Touchpad);

        if (touchpad.x < 0)
            {
                //  Add code if left side of controller is touched
            }

        if (touchpad.x > 0)
            {
                //  Add code if right side of controller is touched
            }
       }

     else
       {
            // Add code if pad is not touched
        }

    }

}
 

 

C# 和 JavaScript 问题

SteamVR 脚本是以 C# 编写的,导致 HTC Vive 控制器难以甚至无法与现有的 JavaScript 游戏逻辑交互。 利用以下方法可以轻松实现交互,且无需进行转换。  但是,强烈建议您最终将 JavaScript 移植到 C#。

为什么它们彼此缺少交流: 在 Unity 中的脚本存在编译顺序。 可以将 C# 变量迁移至 JavaScript,或者将 JavaScript 迁移至 C# 变量,前提是需要将脚本迁移至 Standard Assets 文件夹。  首先编译这个文件夹,然后应用它们。  但是,由于您需要 JavaScript 来查看 SteamVR 值,Steam 脚本必须位于 Standard Assets 文件夹,且必须第一个进行编译。  如果您移动了它们,会破坏 SteamVR 插件,  因此,无法将 C# 变量传输至 JavaScript。 

但是还有其他方法。

一个简单的变通方法:  我突然想起,C# 和 JavaScript 均可以在游戏对象上接受和设置值。 例如,两种脚本类型均可获得和/或定义该场景游戏对象上的标签值。 游戏对象标签本身就是在脚本之间传输的变量。 例如,如果场景中的 LaserCannon 最初被标记为 “notfired”,触摸板事件可以在 C# 中将 LaserCannon.tag 设置为 “fired”。  现有的 JavaScript 能够查找每帧的对象标签值。 当 LaserCannon.tag = “fired”(由 C# 脚本编写)时,JavaScript 将它们挑选出来,并运行发射激光炮的函数。 这个技巧支持 C# 将事件和值传输至 JavaScript,也支持 JavaScript 传输事件和值至 C#。 

利用上述 C# 示例介绍如何利用 JavaScript 共享变量。 如果我敲击了触摸板的一侧,相应粒子发射器将在 C# 中变更标识值。  打开粒子发射器、播放声音、碰撞检测和相关点的代码全部位于现有的 JavaScript 中,随附于左右粒子发射器。 因此,首先需要在 C# 中明确这些粒子发射器。 将 “rthrust” 和 “thrust” 声明为 GameObjects。 然后在 Start 部分,将对象 “lthrust” 定义为场景中的左粒子发射器,将 “rthrust” 定义为右粒子发射器。  

C# 添加游戏对象至脚本

public class myTouchpad : MonoBehaviour
{
    public GameObject rthrust;
    public GameObject lthrust;

    SteamVR_Controller.Device device;
    SteamVR_TrackedObject controller;


    void Start()
    {
        controller = gameObject.GetComponent<SteamVR_TrackedObject>();
        rthrust = GameObject.Find("PartSysEngineRight");
        lthrust = GameObject.Find("PartSysEngineLeft");
    }

然后,在 If 语句内部(该语句确定触控板的左右侧是否被触碰)添加了代码,以更改标签名称 “lthrust” 和 “rthrust”。 (需要指出的是:您可能认为方向反了,但是在空间中,向右转意味着启动左助推器。)

触摸触摸板时,C# 更改对象的标签值 

if (touchpad.x < 0)
            {
                lthrust.tag = "nolthrust";
                rthrust.tag = "rthrust";
            }

 if (touchpad.x > 0)
            {
                rthrust.tag = "northrust";
                lthrust.tag = "lthrust";
            }

最终,在随附于每个粒子发射器的 JavaScript 中,在 if 语句结尾处添加了一个附加条件"|| this.gameObject.tag='rthrust'",以检查标签是否等于 C# 脚本设置的值。 

JavaScript 基于来自 C# 标签更新执行游戏逻辑

if (Input.GetKey ("left") || this.gameObject.tag=="rthrust"){
         GetComponent.<ParticleSystem>().enableEmission= true;
         GetComponent.<AudioSource>().PlayOneShot(thrustersright);
    }

情况就是如此: C# 和 JavaScript 的交流。  同样的技术可以以相反的方向使用。 这是一个简单的变通解决方案,用于在两个语言和脚本之间启动控制器以及创建基本游戏体验。 完成任务后,建议您将 JavaScript 转换为 C#。

C# 技巧:  如果您刚接触 C#,可以采用以下技巧。  如果对某些数字执行加法、乘法或除法后可能产生小数,需要将变量声明为浮点。  还需要将执行加减乘除运算的数字设置为浮点集。 

  • 声明如下所示:  public float: myVar ;
  • 计算如下所示:myVar = (float)otherVar +1f

将 2D 图形用户界面转换为 3D 用户界面

根据创建 Unity 游戏的年代的不同,您可能使用了图形用户界面菜单、按钮或其他屏幕控制和用户界面元素。 我的旧版游戏专为平板电脑和 PC 而设计,因此包含屏幕和图形用户界面。  在启动菜单、标题图形、屏幕得分和警报中使用了图形用户界面。  头盔中禁用上述功能,但是可以在 PC 屏幕上查看。  在 Google 搜索后发现,需要将图形用户界面转换为用户界面,这是因为用户界面能够在游戏的 3D 空间内显示,支持它们在虚拟现实中可见性与互动性,但是图形用户界面不具备这些特性。

面向虚拟现实的用户界面技巧:用户界面的启用方法非常简单,只需在 Hierarchy 面板中右键单击,添加用户界面并选择 Canvas。  在默认情况下,Canvas 设定为屏幕空间,因此全部尺寸和位置属性在 Inspector 中显示为灰色。  但是在 Properties Inspector 中的 Canvas 模块中,您可以将屏幕视图更改为世界空间。    

更改后,可以在场景中的任何地方对用户界面特性进行放置与排列。  Canvas 设置完成后,可以在 canvas 中添加特定的用户界面项目,如按钮、图像或文本项目。 

为了进行测试,将文本用户界面元素作为子对象添加至 Canvas 项目(请参阅下图左侧)。  在 inspector 的文本输入字段中输入 "Hello World"。  如果您看不到场景中的字,请转至文本的 Properties Inspector。 在 Paragraph 下面,将水平和垂直溢出更改为溢出。 我发现缩放比例有误,默认的字体太大,溢出设置支持您看清文字(甚至在字体过大的情况下)。  您可以利用 Inspector 中缩放特性缩小 Canvas 或文本。  尝试不同的缩放和字体,以确保字体清晰。 如果您的字体边缘是锯齿状,降低缩放并扩大字体。

控制器用户界面:  为控制器提供指令是用户界面的一个绝佳使用案例。  标记左、右控制器,为控制器添加图标,以标记控制器的作用和位置。 左侧是我的启动界面,为每台控制器添加了用户界面,帮助用户辨别左右控制器。 在主游戏场景,控制器配备了图形用户界面,以展示如何操作游戏。

最终,我发现更新游戏并没有那么难,在这一过程中,我思考了如何改进交互,为用户比初始版本更为浸入式、更直观的体验。 仅仅通过练习,我便获取了关于更新原始虚拟现实游戏的更多知识。  请观看以下视频,查看应用虚拟现实技术的游戏示例。

视频地址:https://dn-moderncode.qbox.me/game/updating-older-unity-games-for-vr.mp4

如果您有任何看法或者想和我讨论本次经历,在下方添加评论或通过 Twitter @bobduffy与我联系。

在Microsoft Surface Book 上安装并运行 SteamVR

$
0
0

没错!我最终入手了一套 HTC* Vive 虚拟现实系统。然后得到一条坏消息。我的 PC 无法满足虚拟现实的最低要求。我最好的系统是 Microsoft* Surface Book 酷睿 i7(键盘底座上配备 NVIDIA* GPU),仍不符合要求。 我并没有变得非常沮丧,相反我认为支持的最低规格和实际运行的要求可能有差别。因此,我进行了一翻尝试。 

令人欣慰的是,确实可行! 我的 Surface Book 支持虚拟现实,我可以使用专为 Vive 设计的许多虚拟现实应用,包括 TiltBrush*。这样的体验对我而言非常奇妙,我不用对着崭新的 Vive 幻想虚拟现实应用。但是,Surface Book 显然不是一个高端虚拟现实系统。尽管它可以帮您入门,并运行基础虚拟现实应用,但是 Surface Book 无法运行任何带有全沉浸式 3D 环境的游戏。因此,在亲自体验之前,请抱有合理的预期。 

如果您想亲自尝试,请遵循以下步骤,但是再次强烈建议您仅将其看作暂时过渡的解决方法。 Surface Book 无法运行最有趣的应用,不能实现虚拟现实的真正价值。

如果您有一台底座配备了 NVIDIA GPU 的 Surface Book 酷睿 i7,请遵循以下步骤。

  1. 观看 Vive 设置视频,忽略 Vive 设置软件
  2. 升级您的 NVIDIA 显卡驱动程序
  3. 设置您的房间激光定位器
  4. 安装并使用 Steam VR
  5. 将您的 Vive 插入 Surface Book
  6. 运行房间设置 (Run Room Setup)

您可以跳过 Vive 设置:在 Vive 上,您将首先跳转至 Vive 设置网站,通过访问https://www.htcvive.com/us/setup/下载设置应用。  我发现这个设置应用无法从我的 Surface Book 连接至 Vive服务器。搜索谷歌后发现这是一个常见问题。多数帖子建议直接转至 Steam*, 但是我建议观看 Vive 设置视频,链接位于 HTCVive.com 网站的设置页面。 了解如何设置激光定位器对体验至关重要,视频进行了详细说明。

升级显卡驱动程序:下面将升级您的 NVIDIA 显卡驱动程序。 Surface Book i7 键盘底座中的 GPU 是专用 GPU, 仅用作 GeForce GPU。 您可以通过两种方式升级驱动程序。如果您有默认的 NVIDIA 控制面板和驱动程序,可启动 NVIDIA 控制面板。 在帮助菜单中找到升级选项。 如果没在找到升级选项,可能是因为您已经升级了控制面板和驱动程序。也可以在设备管理器中升级驱动程序。 

放置基站 / 激光定位器:激光定位器安装完成后,才能试用头戴式设备,这点非常重要。针对 Surface Book,建议将激光定位器放置在房间的角落,两者相距 10 英尺,保留一定的空间。 您不需要坐在该区域的中央,可以坐在一侧。只要激光定位器能始终检测到头戴式设备,便能正常运行。将激光定位器安装在高处,使其对准房间中心。 我将一个激光定位器放置在 1.5 米(5 英尺)高的三脚架上,另一个放置在 Vive 盒子中,盒子位于 1.8 米(6 英尺)高的梳妆台上。把它们当作聚光灯。如果您的头戴式设备位于两个激光定位器的作用范围以外,虚拟现实体验将变成灰色。 由于本文是一篇实用性较强的帖子,我向您介绍了我的绝佳设置,;  一个三脚架和一个盒子,您可以看到,无需电钻和探测器便能安装。

安装 Steam:下面将在您的 Surface Book 上安装 Steam。请注意,如果您不知道用户名,您的用户 ID 不是您的电子邮箱地址。如果您不记得登录名或密码,建议您在 Steam 网站重设密码。在此过程中,您将获取用户名。  如果您没有 Steam,请安装一个。继续尝试启动 Steam 前, 请确保您的网络支持 Steam 与服务器之间的通信。某些企业网络和防火墙会拦截 Steam。如果 Steam 启动成功,将不受任何阻碍。 关闭 Steam 并插入 Vive 系统。通过一个 USB 和 mini display 连接至 Surface Book / Doc。请准备一个适用于 HDMI 适配器的 mini display 端口。我用的是一个连接 DVI 适配器的 Mac Mini-Display 和一个 DVI 到 HDMI 适配器。测试时,务必检查音频是否通过 HDMI 或检查音频输出。确保插入所有电源, 包括 Surface Book(或 Dock)和 HTC Vive。 最好重启 Steam Services,连接硬件后将在启动时加载。接下来启动系统,保持硬件连接。

重启与启动 Steam: 系统启动时,您将发现 HTC 被用作第二个监控器,应有第二个桌面。 请勿将显示器设置为镜像 (Mirror)。如欲更改设置,按住 Window 键和 P,然后选择 Extend。SteamVR 将在稍后更改,但是目前,开始的模式是 Extend。 

系统启动后,将启动 steam。Steam 将找到硬件并更新,以添加 SteamVR。 

插入硬件并启动 Steam 后,您将在右上角的一系列图标中,看到一个 VR 图标, 如果没有,将很快显示。如果您最近购买了一款 Vive 虚拟现实头戴式设备,可以通过兑换代码安装 SteamVR 应用。 在 Steam 中转至 Library 选项卡。 单击左下角的 Add Application,输入您的代码。 将安装运行 SteamVR 所需的关键库和应用,包括 TiltBrush。

启动 Steam VR。 在 steam 右上角的一系列图标中选择 SteamVR 图标,并选择 Launch SteamVR。 如果没有显示 VR 图标, 表明 Steam 没有检测到虚拟现实硬件。 请检查线电连接,然后重启。

选择 VR 图标时,请选择 Start SteamVR。 将弹出一个 VR 窗口,显示头戴式设备的图标、每个控制器和插入的激光定位器数量。

激光定位器和头戴式设备应显示为绿色。如果头戴式设备显示为绿色并不断闪烁,表明它对某个激光定位器不可见。将两个控制器和头戴式设备放到中央区域,使其对两个激光定位器均可见。

运行房间设置 (Run Room Set up)。 在 SteamVR 控制面板的菜单应用 (Menu Application) 中,您将看到一个房间设置选项,请按照指令进行操作。   不要戴上头戴式设备。首先,执行 Surface Book 上的指令。这些指令将指导您设置您的虚拟现实空间。 在适当的时候,系统将要求您戴上头戴式设备。

应用建议: 您已设置完毕并且准备好运行虚拟现实应用。运行 SteamVR 教程。游戏体验还不错。提示:如果教程中的房间分解看起来像慢镜头,应重启并重新打开。 《神奇装置》运行得比较顺畅。我运行了几次都没有问题。  但是《TiltBrush》效果最好。无论系统运行了多久,性能始终保持卓越。  但是不能运行全沉浸式体验,如《The Lab》, Surface Book 在运行此类应用时已达到极限。

如欲获取使用《Tilt Brush》绘图的窍门和技巧,请阅读最新博文,我将与您分享在虚拟现实中绘图的经验。

我的第一幅《TiltBrush》草图

立体素描 - 在《TiltBrush》使用教程中有详解

希望本文对您有所帮助。 Surface Book 显然不是运行虚拟现实应用的最顶级系统,但是《TiltBrush》等某些应用的运行效果出色,它能帮助您初步接触虚拟现实……直到您能获得更高性能。  相信我,不出 10 分钟您便想要更高的性能。

租赁高性能设备: 如果您需要更高的虚拟现实性能,英特尔将通过英特尔演示资料库 PC 租赁服务为您提供用于贸易展、游戏测试等任何用途的高性能设备。 阅读本文获取更多详情。

 

 

 

使用 Oculus Medium 在 VR 中雕塑 3D 资产

$
0
0

之前我曾发文介绍如何将 VR 用作沉浸式创意工具以使用 Tilt Brush 等 VR 应用(见  用 Tilt Brush 绘画 和 3D 内容大众化)。Tilt Brush 是一种令人惊叹的工具和体验,但在 Tilt Brush 中创建的文件格式和资产离开这一工具之后并无多大作用。但是在 Oculus* Medium* 中完成的 VR 工作具有非常全面的功能,并且兼容其他 3D 工具和技术。Oculus Medium 是一流的 3D 雕塑应用,在 VR 中可发挥全面的功能。它类似于 Mudbox*、ZBrush*,以及 Blender* 的雕塑功能。最终你可以得到一种结构化 3D 资产,可用于 Blender、Maya、Unity 和 Unreal 的 3D 编辑器、3D animator 和 3D 游戏引擎。

本文将介绍如何通过它设计相应的硬件、技巧和流程,以在 VR 中创建 3D 资产。

相关要求和技能水平

  • 所需技能水平:低
  • 所需创作技巧:中高。要求善于绘画、制图或雕塑各种形状和资产
  • 目标 PC:支持 VR 的 PC。完成本项工作需要用到:
    • 包含 16GB Ram 的英特尔® Skull Canyon NUC PC、英特尔® 酷睿 i7 和英特尔 Thunderbolt™ 3 端口
    • 支持通过英特尔 Thunderbolt™ 3 端口连接 nVidia* 1070 GPU 的 Razor* Core* GPU 机箱
  • VR 硬件:所使用的硬件包含:
    • HTC* Vive* Steam* VR HMD 和追踪系统
    • ReVive* 库,以在 HTC Vive 上运行 Oculus 软件
  • ​硬件图像。PC 是大小相当于鼠标的小型 VHS 设备。一根小型 Thunderbolt 线缆连接 GPU 机箱和 PC 右端。点击此处,可查找到各种支持 VR 功能的英特尔 PC

为何在 VR 中创造/设计

开始之前,我首先介绍一下内容创建者将 VR 视作工作手段的契机。 如果大家度过我的博文,一定知道我首先是以创建者和艺术家(而非技术人员)的身份使用这些技术。长期致力于艺术工作,我知道许多艺术家像我一样,一直都是描绘和调整在真实生活中的事物,以 2D 的形式将它们呈现在纸上。相比鼠标,我们更喜欢使用铅笔,毛笔或钢笔。而且我们知道,由于主流 3D 工具非常机械和繁琐,所以将头脑中的创意编程数字 3D 资产是一件非常困难,甚至不可能的事情。我不在乎多少次学习如何在 3D 资产上 UV 贴图或重新拓扑 3D 网格,对我来说这仍然是一个挑战。

在以下几点上,大家必须要相信我。在 VR 中创建 3D 资产和绘画一样,是一件简单而快乐的事情,同时还可以根据需要直接创建用于 3D 用途的资产。无论你想绘制出打印的古怪雕塑,还是创建用于动画或游戏的罗马拱门,VR 艺术工具都可以帮助你想画素描一样轻松创建出一切。另外,在创建时,您还可以在艺术作品四周走动观察。一次奇妙的体验。

我相信,VR 可带领艺术家们走进数字 3D 体验的世界。相比以前只有了解如何使用复杂 3D CAD 和 GGI 工具的人才能有这种体验,现在 VR 向所有眼光独到,想象力丰富的人敞开了数字 3D 艺术的大门。

Oculus Medium 基本知识

Oculus Medium 是市场上第一款结构良好的 3D 艺术工具。尽管它是 Oculus 应用,但你不需要安装 Oculus VR 系统。开源库 Revive 支持 所有 HTC Vive 用户使用这些系统。如果你有 HTC Vive 系统,只需下载和安装 GitHub 库。点击此链接了解详情。

从艺术家的角度来说,Medium 支持你遵循和转化艺术家使用的既定技巧。唯一的不同是,你需要知道选择哪些菜单和选项来实施这些技巧。完成一到两个项目后,你自然就会变得熟练起来。以下是对你来说非常熟悉,创作任何作品都需要遵照的流程,也是操作 Medium 所需要遵循的步骤

  • 找到相关的参考材料 — 根据需要选择导入参考图像
  • 绘制出基本形状 — 一开始使用低分辨率小笔刷绘制基本形状
  • 在绘制过程中返回检查作品 — 四处走动,旋转艺术品,查看实体周围的空间等等。
  • 处理细节部分 — 提高分辨率,根据需要增加细节

Medium 控制器和特性:Medium 将提供一些教程,以便你熟悉使用方法。建议大家首先看看这些教程。以下基础知识可以帮助大家正确使用该工具

  • 左侧工具面板:选择或修改时所需的关键工具都在你的左侧。往下有 4 个选项,对应 Oculus Touch 控制器上的 4 个条目。如果使用 Vive 控制器,这些是左触控板其中的一部分。无关使用哪种方法,都可以用左手大拇指进行选择
    • 主菜单:轻击触摸板右下方或按钮,将激活主菜单。可以使用主菜单保存项目、退出应用、选择教程等等。
    • 控制面板:用拇指轻击右上方,可打开主选项菜单。你可以通过该菜单创建新项目、保存项目、导出和打开或关闭特性,与镜像工具相同
    • 工具面板。向上轻扫触控板左侧或向上拨动操纵杆,将出现工具面板。这些就是雕塑工具。你可以通过这些工具切换绘制 3D 粘土和在粘土上着色的笔刷。还可以添加细节或使用 Smooth、Inflate 等工具修正粘土。
    • 层次菜单:轻击或向下轻扫可激活层次菜单。你可以通过层次菜单在项目中添加操作层,以便创作作品时免受其他操作层的干扰。还可以增加作品的分辨率,以便更细致地雕塑作品
  • 右侧工具,工具选项:右侧是供你雕塑作品的区域。如果选择 Clay 工具,只要食指拉住触发器,该工具就会六出大量粘土。
    • 触发器:食指位置的触发器就像在拉软管、磨砂机或其他需要对准和操作的工具上的触发器。必须非常直观
    • 调整大小:用拇指轻扫操纵杆或上下轻扫触控板,可以调整工具大小。调整时会出现一个绿色光标,显示工具调整后的大小
    • 颜色:选择左上方的色环按钮/触控板,可以选择工具的颜色
    • 工具选项:选择左下方的按钮或触控板位置上的 Gear 选项,可以调整工具的特性。选择完成后将出现弹出菜单,支持您更改笔刷形状、将工具从添加粘土换成减少粘土,或从膨胀换成收缩等操作。
    • 笔刷选项:如果处于 Clay 工具位置并选择了工具选项,你可以通过该选项选择模具图案。这些模具图案是现有的作品模型,包括人体骨骼和建筑形状。你可以将在场景中添加这些图案以供参考或作为雕塑的起点。
  • Scene Grabber - 整个场景都可以抓取和移动。两手均可进行这种操作,只需握住控制器把手上的 grabber 按钮。握住后,可以通过移动控制器锁定场景。再握一下,释放场景。还可以调整场景的大小,紧握控制器并将其拉开可以扩大场景,或者拉在一起以缩小场景

雕塑技巧

用小刷子开始雕塑

项目开始后,我决定创建像外星人似的丑脸。我决定步使用参考艺术,因为我想看看自己的想象力能到达怎样的程度。首先画出下巴巨大的脸庞。这是我想起了某位动作片男主角/加州州长,因为他的脸和这个有点像。为此我首先

  • 打开 Mirror 特性,这样只需画出一边脸。具体步骤是:用拇指选择触控板的右上部分,使用右控制器,指向 Mirror 特性,然后拉住右侧的触发器
  • 将笔刷大小缩小至中号,直至合适的笔尖大小。在触控板右侧查看笔尖大小,然后用拇指上下轻扫触控板右侧,以调整笔刷大小。控制器上将出现绿色光标,显示笔刷的大小。
  • 用低分辨率画将呈现出奶油色的样子,没关系,这就是我要的基本样子。雕塑。如果需要向下,只需向左轻扫左拇指,如果需要重来,向右轻扫即可。

这样就足够了,我已经为最终的作品打下了基础。

填充雕塑

从这里开始编辑作品,使作品看起来更像是外星人或妖怪。我把鼻子削掉,并使颧骨更加凹陷。磨平,膨胀,收缩,直到这个低分辨率作品得以完善。我建议使用左控制器工具面板中的选项。用左拇指向上轻扫触控板,可打开工具面板

  • 磨平 — 使用磨平工具磨掉 3D 粘土的凸出部分
  • 膨胀/收缩 — 如果想扩大或缩小粘土,可以使用这项工具。选定该工具后,你可以通过有控制器上的 Inflate 或 Deflate 进行调整。右控制器将在触控板左下方出现一个 Gear 图标。用拇指压住该图标,将出现相应的工具选项,支持你调正粘土的膨胀或收缩
  • 围绕雕塑转转 — 强烈建议 VR 艺术新手这样做。大部分人学习过如何创作 2D 艺术。一旦开始进行 3D 艺术创作,你会发现缺乏眼光和深度协调。作品扁平,没有层次。处理项目的每一个面,很快你就能学会如何创作 3D 艺术。

提高分辨率;增加细节

看上方的图像你会注意到,左侧底部作品的细节不如右侧的作品,因为我增加了设计的细节,尤其是鼻孔、嘴巴和眼睑。相比基础分辨率,这些区域要求更高的清晰度。雕刻出基础形状后,使用左控制器,向下轻扫。此操作将拉开层次菜单。建议复制现有的层次。这样将创建一个新的层次 2。使用右控制器关闭层次 1,打开并选择层次 2。 

右下方将出现类似正方形的形状,由指向外侧的箭头组成。选择该正方形,将提高项目的分辨率。建议提高两倍。该系统将花费一点时间提高雕塑的分辨率。可以在左控制器上向下轻扫,消除该菜单。

完善雕塑

从这里开始我建议主要使用 Inflate 工具。使用 inflate 将区域提出来,详细蚀刻其他区域。使用该工具,你可以选择使用 Deflate,具体操作方法是在右侧选择该选项(左下方的按钮/右拇指触控板的位置)。Deflate 就像一台磨砂机。它将剔除多余部分,支持你蚀刻细节。切换回 inflate 工具支持你膨胀某些区域。在完善阶段,另外一个最常用的工具是 Smooth 工具,它可以将打磨粗糙边缘。使用这些工具时,你将希望调整笔刷的大小,以及工具与粘土之间的距离。这些会影响雕塑表面收缩、膨胀或打磨的程度

该段视频介绍了以这种分辨率操作的收缩、膨胀和打磨工具

绘画

创建出 3D 资产雏形后,建议直接在 Medium 中绘画。也可以使用其他工具,但 Medium 更加直观。在左控制器上,用拇指向上轻扫,将出现工具面板。使用右控制器指向并选择 Paint 工具。

处于绘图模式时,右控制器正常运行,但不是在雕塑,而是在喷洒涂料。用左控制器抓取该模式并四处移动,可在雕塑的任意部分、角度或任意面绘画。这时分辨率较高,你才能很好地画出所有细节和特征

 

导出

最后一步是将该作品变成其他形式。使用左拇指触控板选择右上方的按钮。将控制器指向 Export。选择 Export 时,务必选择 Texture 选项。建议分辨率为 2048。FBX 似乎适用于大部分应用,比如 Blender、Maya、Unity 和 Unreal,因此我建议使用该工具导出,不过你也可以随意处理。

下图所示为导入至 Blender,然后用其 Cycles 渲染器渲染后的雕塑。这些处理过程只花了几秒钟时间,因此使用这种高级渲染器几乎达到了实时渲染。

 

 


使用 Blender* 重新拓扑 VR 和游戏素材

$
0
0

retopolgized images

本文将介绍如何将网格重新拓扑成一个整洁的低密度模型,然后 UV 解包该网格,以便将纹理贴添加至新模型。本文还将探讨如何使用免费工具,比如 Blender* 及其 Bsurface 插件,重新拓扑雕塑的 3D 网格。

关于重新拓扑

重新拓扑指一种重新构建 3D 网格使其规模更小、设计更整洁、更便于使用的行为。重新拓扑看起来似乎只是 3D 创作人员的课间自习,但这一任务非常关键,且有利于灵活创作模型。大多数原始网格使用 3D 建模程序构建而成,经过了雕塑或扫描,可捕捉细节层以使模型变得美观。然而,同一细节会生成较大的文件,其读写操作和所需的内存对目标应用来说存在一定难度。而且大多数细节丰富的网格细节过多且不对称,生成网格动画时会产生大量奇怪或无用的折痕、折叠和移动。

high topology mesh and renderlow topology mesh and render

为避免出现这种情况,需要将网格重新拓扑成更基础、更实用的结构,然后将该 3D 结构的颜色、碰撞和折痕等详细数据传输至“合并”的2D 材质贴图。这样可减少 3D 网格顶点的数量,缩小文件规模,同时渲染效果保持不变。在上图中,原始网格的面数从 500,000 减至 2,000,但输出的外观相对一致。

开始前的准备工作:

  • PC:Mac* 或 Linux* 计算机;推荐使用英特尔® 酷睿™ i5 或英特尔® 酷睿™ i7 处理器
  • 启用 BSurface 插件的 Blender 3D(免费下载)

Blender* 和 BSurface

Blender 是一款免费、功能齐全的 3D 建模、渲染和动画工作室工具。借助这款强大的工具,你可以在 Blender 中创建简单的 3D 对象或生成全特性动画影片。为实现本文的目的,我们重点使用 Blender 的建模功能。如果之前用过 Blender,建议观看 入门视频学习如何设置 Blender 以获得比较理想的结果。

如需完成本教程中的任务,需要一个高拓扑 3D 网格。出于教学目的,我们使用 Blender 中的一个网格对象 — Suzanne 猴头模型。如需创建顶点数超过 500K 的高密度版模型,请执行以下步骤:

  1. AddMesh,然后选择 Suzanne
  2. Tools面板下方选择 Smooth
  3. Properties面板下方点击 wrench 图标以获取修饰符。
  4. 添加名为 Subdivision Surface的修饰符。
  5. Subdivision设为 5。
  6. 单击 Apply

使用 BSurface 重新拓扑

本视频介绍了以下重新拓扑步骤。

设置 BSurface

如需安装 BSurface,从 File菜单单击 User Preferences。选择 Add-Ons选项卡。搜索 “bsurf”。此时右侧将显示 BSurface 插件。启用该插件时,选中插件名称左侧的方框......此时 BSurface 应已安装并启用。

要想 BSurface 将右侧的顶点与原始模型对齐放置,必须在场景中的“对象模式”下加载和最初选择原始模型。然后创建重新拓扑、添加平面,这样就可以创建一个新的素材。前往 Edit 菜单,然后选择 Snap to Features

配置 BSurface 时,从 Tools菜单中选择 Grease Pencil选项卡。然后进行以下操作:

  • 选择继续。
  • Data Source下方选择 Object
  • Stroke Placement下方选择 Surface

surface button in the menu

你可能会发现,可以手动移动部分顶点、边缘或平面。要想这些条目同时贴住模型表面,请在编辑模式下选择以下选项:在 Snap下方选择 on,然后在 Snap Element下方选择 Face。最后,点击右下方的 4 个图标。

face button in the menu

现在您已准备好使用 BSurface。

创建第一个栅网

BSurface 可根据你在原始网格上绘制的一些线条自动创建网格。

  • 只需朝一个方向绘制几条平行线。BSurface 将根据这些线条创建一个交叉网格。不要绘制不同方向或交叉方向的线条。
  • Tools面板下方的 Tools选项卡中,可以看到 BSurface。单击 Add Surface按钮。

steps to add surface

  • 如果要调整创建的内容,可设置 Cross strokesFollow的数量(绘制的线条之间的线条)。此外,如果你想要 BSurface 忽略除第一条和最后一条之外的其他线条,可以清空 Loops on strokesFollow现在就是第一条和最后一条线之间的细分部分。

cross strokes example

创建径向网格

你通常需要一个围绕某个区域(比如眼睛或嘴巴)的网格。要创建这种类型的网格,只需从围绕的区域绘制均匀分布的射线。

radial mesh

单击 Add Surface,然后选择 Cycle Cross,以结束径向并设置所需的环形交叉的数量。

radial mesh example

和之前一样,可以清空 Loops on strokes以更均匀地设置细分。

角落填充

你会发现,通常网格两侧完成后,仍然需要填充两侧之间的网格。为此,可以选择两侧上的所有点。使用 SHIFT+ RIGHT+CLICK 取消选择角落的点,然后绘制缺失的一侧。在下列示例中,设置并选择顶部和右侧的边缘。按照网格点的弧线绘制底部边缘。单击 Add Surface进行填充。

corner fill

corner fill grid

连接网格

如需连接两个网格,请选择需要连接的所有点。请确保每侧所选择的点的数量相同。然后想象它们之间的一系列线条。绘制至少两条线,最后一条线在突显的顶点集上进行绘制。

connecting meshes

connecting meshes detail

现在你已经基本了解了快速重新拓扑模型所需的 BSurface。继续使用 BSurface 在高拓扑模型上创建完整的网格。

UV 解包和添加详细的纹理贴图

UV 解包是这一流程的关键组成部分,也是管道的一部分,可帮助你将高拓扑模型中丢失的细节上传到刚刚重新拓扑的模型上。

UV 解包是定义如何将 2D 图像映射在网格的所有顶点上的过程。可以想象一下地球模型,你有一个光滑的球体,并计划生成有关地球上包裹的所有特征的打印图像。对于包裹住地球的 2D 图像,你需要合理地裁剪图像,使其包裹住球体。这称之为地图投影。

texture map
图片来源维基百科:古德等面积投影的世界

对于 3D 建模,UV 解包模型支持你定义这种投影模式,从而了解如何将所有类型的 2D 信息映射到 3D 对象上。在地球示例中,你可以将信息合并成包含有关地球陆地或水的色彩、粗糙度/光泽度和高度信息的 2D 图像映射,然后使用 UV 贴图把它投影到球体上。

以下示例展示了如何 UV 映射 3D 外星人头部模型。左侧的图像称为色彩贴图,中间的图像称为法线贴图或凹凸贴图。两张图像都有在各自图像上进行扁平化处理的线框网格。这种扁平化网格模式就是 UV 贴图。

UV map

所需内容

在这部分教程中,你需要一个包含纹理细节的高多边形网格,可以是能用的文件,也可以是创建并用 Sculpt 添加纹理细节的高多边形对象。链接中的文件是雕刻了皱纹、线条和皮皱的猴子头部。

首先确保高多边形网格和重新拓扑或低多边形网格在同一空间中。使用属性面板中的转化选项将 X、Y 和 Z 轴设在同一位置。

本视频还介绍了需要执行的步骤。

第一步:标记接缝处

标记接缝处是一种选择过程,将网格裁剪或分解以使其成为扁平 2D 模式的 3D 模型。例如,衬衫或毛绒玩具等将 2D 材料缝在一起所形成的接缝处。而且你肯定不希望接缝处太多,也不希望接缝位于显眼的区域。将它们放在有大量曲面几何体以及使自然边缘看起来合理的地方。如果像我们一样合并纹理贴图,接缝处可能不会显示出来。但如果使用噪音或其他模式的程序化贴图,这些模式通常在接缝处断裂。

如果要标记接缝处,请选择“低多边形对象”,然后前往编辑模式。选择 Edge 选择工具,然后选择想要放置接缝处的位置。

marking seams example

  • 选择 Mesh Menu> Edge> Mark Seams。每一个想要标记的接缝处都要这样操作。

steps to follow

模型上的接缝显示为红色边缘。

red colored edges of seams

第二步:解包低多边形网格

这一步非常简单,包括解包模型,然后创建待映射的纹理文件。需要再次进入低多边形模型的编辑模式。选择所有选项,验证每个网格面是否都已选择。输入 “U”,以显示 Unwrap 菜单。选择菜单顶部的 UV Unwrap

对于待运行的 UV 贴图,你希望它能够为即将合并或渲染的纹理文件提供指南。创建新的视口窗口,将该视口设为 UV Image Editor。在视口中的 Image下方选择 New Image

red colored edges of seams

设置所需的分辨率选项,命名,然后保存。

steps to unwrap the low poly mesh

现在它将变成一张不包含任何内容的黑色图像。但是你可以从黑色图像上看到 UV 贴图。

steps to unwrap the low poly mesh

第三步:合并高多边形网格的法线贴图

在这一步,将高分辨率模型的纹理信息“合并”成一个称为法线贴图的 2D 图像文件。然后将这种纹理添加到低分辨率模型的材料上。第一步是确保你的低分辨率模型有包含纹理的材料。

选择低分辨率或重新拓扑模型。在 Properties面板中前往 Materials选项卡。如果没有材料,添加材料并选择 Nodes。(请确保 Blender 应用顶部的渲染设置设为 Cycles Render。)

cycles render

将其中一个视口设为 Node Editor,以打开 Node Editor。从菜单Add菜单选择 Texture,然后选择 Image Texture

steps to select image texture

添加完这些后,将文件设为你之前创建的 UV 图像的名称。同样将其设为 Non-Color data

steps to select non-color data

接下来需要选择合并设置。在 the Properties Panel下方选择 Render设置,它为摄像头图标。滚动到 Bake部分的底部并执行以下操作:

  • 对于 Bake Type,选择 Normal
  • 对于 Space,选择 Tangent
  • 选择 Selected To Active
  • Ray Distance设为至少 1.00。

bake section

接下来的部分可能难度较大。你需要选择两种模式,同时需要确保首先选择高分辨率版本,然后选择低分辨率版本。务必处于对象模式,而非编辑模式。

如果处于对象模式,使用 Asset Inventory面板验证高拓扑模型和低拓扑模型是否可见,而且名称右侧是否有眼睛图标。选择高拓扑模型,使其显示为白色。右击,然后点击 Select。应看到用金色部分选择的模型,名称出现在 3D 视口中。

bake section

现在按住 SHIFT 键,然后右击 3D 视口中的低多边形模型。这样操作后,低多边形模型的名称将显示为白色,3D 视口中出现低多边形模型的名称,而且选择颜色将从金色变成橘色。完成后,在 Render面板中单击 Bake

steps to select high topology

第四步:将法线贴图应用于模型

在这最后一步中,我们提取合并文件,将其连接至低多边形模型的材料。首先需要保存上一步的 Baked 渲染器。在视口中 UV 图像贴图的下方,首先验证保存的 UV 贴图的名称是否显示在文件浏览器中。图像应涂成蓝色/紫色,与下图类似。如果是编辑模式,左侧的图像显示的是法线贴图;如果是对象模式,右侧的图像显示的是合并图像。在 UV 贴图图像编辑器中,选择 Image Menu,然后单击 Save

texture ready to connect to the model

现在我们准备连接纹理和模型。

前往包含“纹理图像节点”的“节点编辑器”。将“纹理节点”连接至“法线贴图节点”。在 Add> Vector> Normal Map下方获取“法线贴图节点”。

image in normal map mode

将法线贴图模式连接至 Principled BSDF Shader 的法线插槽。现在,你应该能在低分辨率模型中看到高分辨率模型的所有细节。

image in normal map mode

现在你已完成用于游戏或 VR 软件的 3D 素材工作流的主要部分。除了模型的纹理法线信息外,还可以用其他创建真实皮肤、头发或其他材料(包括开裂的混凝土和带有刮痕的炮铜)的材料贴图制造纹理。如欲参考接下来的工作流,请使用 Substance Painter*和 Blender 等工具搜索 PBR 材料。

在 Developer Mesh 上展示您的作品

$
0
0

英特尔® 开发人员专区等开发人员网站提供了出色的工具、资源和支持。  然而,开发人员社区通常不了解他们所开展工作的相关背景。不仅社区不知情,就连致力于提供社区工具、资源和服务的负责人也不知道他们的工具和资源用于支持哪些工作。 

英特尔 Developer Mesh是英特尔®开发人员专区的一部分,旨在通过支持共享创新工作激发社区灵感,并推动社区与英特尔之间的合作。 Developer Mesh 不仅可以帮助了解社区工作,还可以让开发人员展示自己的作品并获得同行和英特尔的关注,无论是 AI 研究VR 应用还是新的物联网产品创意

Developer Mesh 允许开发人员为所有作品、项目或应用创建一个数字标志,以便与同行、主题专家和英特尔建立联系,开展协作并提供反馈和支持。开发人员可以发布照片、描述和视频,并链接到当前开展的任何项目或未来项目的存储库。

将作品发布到 Developer Mesh 时,请遵循以下步骤和最佳实践。

  • 发布内容: 我们鼓励发布所有有趣的作品,无论是正在计划和研究的作为演讲 或发言人会议的内容,正在开发的代码还是发展成熟的事物或应用。  与所开展工作的状态相比,帮助别人了解您正在开展或尝试开展的工作类型更加重要。  但关键是您拥有分享作品信息的权力和许可。分享很重要,但首先请确保由您来分享。
  •  项目名称:  项目名称应使用简单的词汇进行标识。如果项目是一个名为“美化器”的应用,那么这个名称最为合适。如果项目是一个正在开发的创意,将创意命名为“美化器应用创意”。 如果应用创意是演讲形式,则可以命名为  "AI 美化器 技术演讲”
  • 摘要:  这是该项目的一句主题词,可帮助所有人快速了解您的作品。例如,“美化器应用创意”项目可能包含很多东西。摘要应包含相应的上下文,例如“自动美化和增强自拍照的 AI 应用创意”。这样,项目创意就很明确了。
  • 项目状态,项目范围:这些选项允许您定义项目状态,即定义您的项目是否只是一个概念、正在开发之中还是已发布/已上市。 根据您所选的项目状态,您可能需要提供信息。  项目范围从学术研究、商业开发或其他方面定义您的项目。这些信息不是公开的,但有助于英特尔指标和报告。
  • 标题图片: 这是您项目的主要图片。  建议您放一张可以引起兴趣和注意的图片。应用截图或代表创意的图像都是很好的选择。但请确保您拥有分享任何内容的权力。例如,如果您使用特定小鼠(归大型电影制片厂所有)的图片,则可能需要重新考虑这一点。 另外,当您分享此项目时请注意,此图片很可能在社交媒体上看到,因此请选择一张好图片。
  • 描述:  您可以在这里添加更多详细信息。总共 200 字的描述提供了丰富的详细信息,可帮助社区和英特尔了解您的作品。  描述分为 3 个部分:  概述/用途用于描述整个项目及其使用方式,方法用于了解如何开发项目以及您使用何种方法进行开发,技术包括框架、库、工具和英特尔技术。请务必查看您是否使用英特尔技术并在描述中列出这些技术。 
  • 主题:  从 1 个或多个技术主题中进行选择,如 AI、物联网、游戏开发等,但请确保主题适合。如果主题选择错误,您将无法提高参与度和发现水平。
  • :  此选项支持在已加入的一个或多个组中列出您的项目。  您可能需要先在“组”选项卡下加入一个组,然后才能将项目分配给一个组。  将项目分配给组是一个让有共同兴趣的人发现您的项目的好方法。
  •  图像:  您可以为项目添加图像库。我们鼓励添加多个图像,以展示项目中的作品。  这可能是项目作品的图片,功能的工程图或草图,使用该项目的人员的照片等。
  • 视频 URL:  将视频嵌入到项目有助于增加观看次数、保留率和参与度。 如果您在 YouTube、Twitch 或其他来源中有此项目的视频,请使用此功能将其添加到项目中。
  • 代码库:如果您需要维护和共享存储库,那么这可能是您项目中最有价值的资源。我们强烈建议您共享此类链接。
  •  链接:  链接对于社区了解更多信息以及查看、测试或试用您的作品至关重要。 我们预计,您可能会有关于作品的博客帖子或其他媒体/文章,这些资源会对社区有所帮助。  将任何相关内容链接到您的帖子。
  •  协作者:  该网站上的许多开发人员正在寻求或提供协作。  使用此切换键选择您的项目是否在寻求协作。

凭借社区发布的此类作品,Developer Mesh 成为了社区或 英特尔团队的共同参考点,供他们寻求和吸引开发人员从事新颖有趣的工作。  Developer Mesh 为微社区(例如创客空间、学生团队和新兵训练营等)创建一个展示作品并相互交流的空间提供了一个平台。  在英特尔方面,我们会将各种英特尔计划(如英特尔® 黑带计划、英特尔®软件创新者计划和英特尔®校园大使计划)与 Developer Mesh 进行定期对接,作为新候选人、项目支持和开发者密切合作的最初联系点。

加入 Developer Mesh,向世界各地的杰出开发人员展示您的作品。

 

 



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>