本指南介绍如何将3D对象文件导入VR Toolbox,并可选择通过Steam创意工坊与社区分享。
简介
本指南将引导你制作自己的道具,你可以私下使用或通过Steam创意工坊与社区分享。你制作的道具将在应用内可见,并且可以像应用自带的其他道具一样进行操作。
道具
道具位于应用安装文件夹内的名为“props”的文件夹中。在那里你可以找到我们包含的示例对象。例如,让我们进一步了解art_deco_fan。进入其目录。一个道具包含以下文件:
.obj和.mtl文件:这些是3D对象和材质定义文件。
纹理:通常为dds、jpg或png格式。
描述文件。json:告知引擎文件位置及渲染方式。注意:示例文件位于未压缩文件夹中,方便访问。对于您的道具,可将其压缩为.zip文件夹以节省空间,VR Toolbox仍能读取。
3D物体
VR Toolbox支持多种行业标准道具格式。不过,建议使用.obj和.mtl文件,因其为文本格式,若显示异常便于调试。
Obj文件及相关材质可直接从您喜爱的任意3D建模软件导出。
确保网格模型为完整圆形,无开放孔洞,避免用户看到模型内部。道具在VR Toolbox中可完全旋转/自旋,因此需确保每个角度都美观。
材质mtl文件是一种标准材质文件,但其中某些声明的解读方式较为特殊。
newmtl 吊扇
Ns 15
Ka 0.2 0.2 0.2
Kd 0.8 0.8 0.8
Ks 0.3 0.3 0.3
Ke 0.5 0.2 0.35
illum 2
map_Kd 吊扇_d.dds
map_Kn 吊扇_n.dds
map_Ks 吊扇_s.dds
newmtl用于创建材质并定义其名称。
Ka、Kd和Ks分别用于调整计算出的环境光、漫反射光和高光颜色。以上述示例来说,环境光亮度最高可达总亮度的20%,而即便物体旁有非常明亮的光源,漫反射光也会保持在80%的亮度。
VR Toolbox将Ke用作备用颜色,当漫反射纹理从磁盘加载时,物体会以此颜色进行绘制。因此,对于上述风扇示例,当风扇纹理加载时,风扇将显示为统一的棕色,其RGB值为[0.5 0.4 0.3]。为获得最佳效果,请使用漫反射纹理的平均颜色。
map_Kd和map_Kn分别定义了材质使用的漫反射纹理和法线纹理文件。对于高光纹理,可将高光信息存储在法线纹理的alpha通道中,或者使用【map_Ks】作为完整的RGB高光反射贴图。
有关更多选项,请查阅mtl文件类型的相关资料!
每个物体理想情况下应至少拥有一张漫反射纹理。VR Toolbox支持多种可选纹理:
替代漫反射纹理:
文件名称应与材质文件中的漫反射纹理名称相似,但需在文件名末尾添加“_alt”,以便VR Toolbox能够识别。
法线纹理:
用于表面凹凸映射。
高光纹理:
用于改变物体表面的反射率,例如用于表现闪亮的金属等。
法线纹理与高光纹理的组合:
法线纹理和高光纹理可以合并为一个四通道纹理,其中RGB值代表法线,Alpha通道代表单通道高光。这种设置在需要高光贴图时能提高渲染效率。
你也可以使用仅含法线的RGB纹理,以及单独的仅含高光的RGB纹理。这使你能够以全RGB模式调整物体的反射率,且仅产生极小的渲染开销。
* 如果模型材质未指定法线纹理和高光纹理,VR Toolbox将尝试自动搜索它们。其文件名是在漫反射纹理文件名后分别添加_normal和_specular生成的。
支持的纹理格式包括:dds、png和jpg。
dds文件在渲染方面效率最高,并且支持离线生成的mipmap,这有助于节省应用中道具加载/重新加载的时间。你可以使用第三方应用(如“AMD Compress”或“DDSExportTool”)将png和jpg转换为dds格式。转换前请确保启用mipmap生成功能。
*无法使用第三方应用生成你的。DDS纹理?还是转换大量纹理文件太麻烦?或是难以将法线/高光的DDS文件合并到4个通道中?VR Toolbox: 360 Desktop可以自动为你完成所有这些操作!更多信息请见本文后面的VR Toolbox道具纹理转换模式部分。这对节省你的工作流程时间非常重要!
description.json
description.json是VR Toolbox可读取的文件,用于告知程序如何解读对象,例如在【添加道具】菜单中的放置位置。
以下是示例文件的内容:
{
"type" : "basicprop",
"object" : "OverHead_fan.obj",
"title" : "装饰艺术风格吊扇",
"description" : "一个装饰艺术风格的吊扇",
"visibility" : "public",
"preview" : "preview.jpg",
"scale" : 0.75,
"rotation" : [0 90 0],
"metadata" : "transparency:off",
"tags" : ["styles|art deco", "architecture|fans"]
}
此文件遵循标准JSON语法,因此每个字符串都需要用双引号括起来。另请注意,最后一行末尾没有逗号。声明的顺序无关紧要。
description.json声明:
tags:用于告知VR Toolbox该道具在【添加道具】菜单中的位置。例如,上述风扇会出现在两个位置。
flags:用于告知VR引擎对模型应用哪些渲染效果。标志列表用逗号分隔,例如:"no_cull,no_ao"。no_cull表示应用不应对此道具执行背面剔除。no_ao表示道具不应投射环境阴影。"flags":"no_cull,no_ao",
灯光:附加到对象的灯光列表。例如:
"lights":[{"pos":[0.0, -0.6, 0.0],"color":[1.0, 1.0, 1.0]}]
缩放:在VR Toolbox中,一个距离单位为1米。如果你的对象使用其他单位,请使用缩放声明来重新调整其大小。
旋转:这是一个由3个角度数值组成的字符串,例如"0 90 0"。
元数据:附加选项:可在光源模型上切换环境光遮蔽阴影投射,如示例文件(及上文)所示。
预览图:用于Steam创意工坊中道具缩略图和标题图的图片。
内置道具
了解VR Toolbox如何读取对象并填充【添加道具】菜单的最简单方法是浏览现有的道具。在Steam中右键点击【VR Toolbox】,选择属性->本地文件->浏览。然后进入props文件夹,你就能看到应用中的所有道具了。VR Toolbox会在启动时扫描此目录。你的自定义道具需要放置在此处,若指定正确,它们将在【添加道具】菜单中可用。请查看此文件夹及其内容。
VR Toolbox的道具纹理转换模式
此替代模式会获取道具文件夹中的png/jpg文件,将其转换为带mipmap的.dds纹理文件,并将map_Ke的值输出到新的.txt文件中。
此模式只能通过命令行运行程序并附加“-c”来启用。仅在你准备好将(已测试的).png或.jpg文件转换为.dds文件时运行一次。
一旦VR Toolbox以【转换】模式启动,它加载的每个png或jpg纹理都将被转换为dds格式。因此,请通过控制器的选择菜单和预览轮导航至你的道具。预览模型需要一点时间才能显示。在此期间,VR Toolbox会完成转换。将其放置到场景中。
请注意,这不会以任何方式更改原始模型,只会生成.dds文件。之后,你需要手动编辑材质以使用新的.dds文件。
Steam创意工坊
当你对自己的道具感到满意后,可以将其发布到Steam创意工坊,供他人使用。
操作方法:在VR Toolbox应用的【自定义道具】选项卡中,点击【上传】,并将应用指向你的description.json文件。之后,该道具将在Steam创意工坊中可用。
至少需要在description.json中指定以下声明,道具才能作为工坊物品使用:类型、对象、标题、描述、元数据、可见性和预览图。你需要在此处接受Steam创意工坊条款。
分享你的道具
如果你希望以文件形式而非通过Steam创意工坊分发道具,只需将它们压缩成zip文件即可。
以下是zip文件结构示例:
props/my_prop_1/description.json
props/my_prop_1/prop1.obj
props/my_prop_1/prop1.mtl
props/my_prop_1/texture.dds
props/my_prop_2/description.json
props/my_prop_2/prop2.obj
props/my_prop_2/prop2.mtl
props/my_prop_2/texture.dds
当VR Toolbox运行时,如果你将此文件拖放到该程序上,道具将被添加到【添加道具】菜单中,并且可以像其他任何道具一样生成。
如果zip文件包含以.room结尾的文件,房间将自动打开。
最后,你可以将.zip文件重命名为。如果您愿意,可以使用VR Toolbox。
若遇到问题
道具问题通常分为以下3类:
A) 道具预览界面轮盘中显示有道具空位,但看不到物体:
物体文件问题 - 确保.obj和.mtl文件有效。在导入VR Toolbox前,确保这些文件能在第三方模型查看器(如MeshLab或Open 3D Model Viewer,两者均为免费开源软件)中正常加载。
描述文件(description.json)问题导致道具无法在VR Toolbox中显示。引擎找不到指定的物体文件,可能是description.json存在语法错误。请仔细检查该文件,查看是否有遗漏的引号、逗号等。如果问题仍未解决,可以在Steam社区讨论区发布文件内容,我们会提供帮助。B) 道具显示但呈黑色 -
问题出在对象文件上 - 3D建模软件的导出设置不正确。OBJ文件必须包含模型的清晰网格、UV、法线、切线和副切线。不能有悬浮顶点,网格中不能有乱线。
*在3DS Max中,模型名称必须与OBJ文件名匹配。材质名称必须与MTL文件第一行的名称匹配。使用Maya时,名称似乎无关紧要。
*在3DS Max中,当OBJ导出对话框中的“创建材质库”选项处于激活状态时,模型也会出现黑色显示的情况。
C) 道具显示但表面仅显示备用的“Ke”颜色值,而非预期的材质及其纹理。
问题出在。mtl文件 - 纹理未定义或材质无法找到一个/所有指定的纹理。
道具渲染不正确
如果道具过大(甚至可能大到完全看不见),请确保使用缩放声明进行适当缩放。尝试使用0.01的缩放值。VR Toolbox的默认道具是以米为单位创建和导出的。
如果道具默认方向不正确,可在其description.txt文件中使用旋转声明来调整方向。
如果道具着色出现问题,可使用渲染调试热键CTRL+SHIFT+F9来循环切换其材质和渲染组件。这些选项也可在应用的【DEV】选项卡中找到,同时还能查看几何线框选项。以下是不同的着色可视化效果:
完整渲染
漫反射材质
法线材质
高光材质
漫反射光
高光光
环境光遮蔽
显示纹理UV补丁
显示占位颜色(Ke备用颜色值)
如果道具网格和纹理正常工作,但网格中的光照法线方向颠倒:
这是网格轴心方向的问题——
*3DS Max特有的情况;
1)确保重置轴心方向(从正视图观察;+Z轴向上,+X轴向右,+Y轴为屏幕深度)
2)然后使用以下设置导出obj文件:最初发布时间:2016年
更新时间:2017年7月13日 - 内容扩展并增加了更多细节。
更新时间:2018年8月6日 - 在【道具渲染错误】部分新增了渲染调试可视化选项。