Destinations:/创建摄影测量的Destination场景

From Valve Developer Community
Jump to navigation Jump to search
Wikipedia - Letter.png
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
Underlinked - Logo.png
此文章需要更多Wikipedia icon 与其他文章的链接以帮助Wikipedia icon 将其集成到百科全书中。请通过在现有文本中添加Wikipedia icon 与上下文相关的链接来帮助改进此文章。
2024年1月
English (en)中文 (zh)Translate (Translate)

创建摄影测量的Destination场景

在本教程中,我们将简略的创建一个摄影测量的Destination场景.

分为三部:

  • 拍摄照片
  • 通过相片创建3D模型
  • Creating a Destination out of the 3D model
    • 如果你已经准备了OBJ或者FBX格式的3D模型和场景,可以直接拖入Destination中,你可以跳过这个步骤.

准备工作

在本教程中,我们将使用RealityCapture去计算我们的模型..

拍摄照片

拍摄英国教堂摄影机的位置,构建一个复杂的场景需要多角度的照片.

拍摄英国教堂摄影机的位置,构建一个复杂的场景需要多角度的照片:

  • 当拍摄场景时候,注意表面反射和半透明的物体.这很影响摄影测量结果.
  • 多角度的照片非常有利于摄影测量结果.例如,我们在这里展示200张相片,对于更复杂的英国教堂场景,我们甚至拍摄了450多张照片.
  • 拍摄的场景比例和VR世界中比例是差不多的.尝试捕捉小的细节,将它在Destination场景里放大.或者相反。
  • Adam Foster博客上有详细关于摄影测量的介绍和建议. 点击这里查看.

通过照片创建3D模型

当你有了照片之后,将它们传到电脑上.通过 RealityCapture 和 Maya 来处理照片将他们创建为3D环境.


对齐后的照片示例.
  • 对齐照片
    • 打开RealityCapture.
    • 查看2D面板 - 从资源管理器面板选择并拖动你的照片.
    • 点击UI顶部的开始按钮.
    • 然后会从照片位置计算对齐 - 处理需要花一些时间,这取决于照片数量.
    • 更多有关如何使用realitycapture的信息, 点击这里.他们还发布了新手界面教程 点击这里.
定义地平面.
  • 定义地平面
    • 计算的模型也许会有角度错误,我们需要重新定义下地平面来修复问题.
    • 切换到“Reconstruction”点击“Define Ground Plane”.
    • 点击拖动带有颜色的环,旋转模型.它会随着球体的轴向旋转.
    • 尽可能的使模型接近底面网格.
Make sure all of your entire desired environment is contained in the reconstruction region.
  • 设置重建区域
    • RealityCapture会计算出很多多余的环境内容,这些内容在 Destination 中是多余的 - 应该手动调整重构区域.
    • 点击Set Reconstruction Region(设置重构区域)
    • 你需要点击三次来设置一个区域 - 现在地面拉出一个矩形,然后拉高.
    • 确保你想要的模型在矩形框内.
    • 拖动顶点来调整大小,拖动中心条来移动重建区域.
A newly calculated model prior to colorizing.
  • 计算和着色模型
    • 一旦确定了构建区域,模型需要运算生成.
    • 切换到Workflow标签,点击Calculate Model(计算模型).
    • 模型计算后,点击Colorize (着色) - 将会对顶点着色.
优化面板
  • 优化
    • VR在高端机器上最佳呈现约300万三角面.50万到100万个三角面已经是高品质场景了,2--3百万是很复杂的场景了.三角面越少意味着加载速度越快.
    • 点击顶部Simplify(优化)按钮 - 优化面板显示在左下角.
    • 在"Target triangles count" 输入三角面数量,开始优化.
Unwrap 面板
  • Unwrap
    • 计算模型材质的位置.
    • 切换到顶部的Reconstruction标签.
    • 点击Unwrap - 工具面板在左下角显示.
    • 选择8K最大材质分辨率.
    • 自动生成UV map.(通过模型材质)


  • 创建材质
    • 切换到Workflow标签,点击Texture.
    • 从UV创建图片文件(材质).
导出网格对话框
  • 导出网格
    • 现在准备导出3D环境。
    • 点击顶部的"Mesh"。
    • 在导出模型对话框中,Compression栏选择JPG.
    • 点击确定.会创建OBJ、JPG和MTL文件.

准备Destinations模型(可选)

花费一点时间,通过3D模型软件导出模型.

通过Maya处理模型
  • 使用3D模型软件处理模型
    • 在3D模型软件里面重新定位下你的模型.
    • 可以使用很多3D模型软件来完成此步骤,(推荐blender 免费软件).在本教程中,我们使用Maya.
    • 打开Maya,拖入你的3D环境.你可以使用OBJ导入,或者文件>导入.
    • 默认你的模型没有纹理,按快捷键"6"可以展示 - 效果并不会出现在Destinations之中.
    • 在Maya中按快捷键"E"旋转模型.
    • 可能会有多余的面,你可以删除它.按住鼠标右键,选择"Faces"选项,然后释放右键.
    • 点击或者框选面,按"Delete"键删除.
    • 完成后保存你的模型.
    • 现在可以开始创建你的Destination场景了.

通过Destinations创意工坊工具创建场景

现在你有了一个处理好的文件.可以通过Source2或者Destination创意工坊工具创建场景了.你将会学到如何导入模型,设置玩家出生点,放置传送区域和提交你的Destination场景Steam创意工坊.


Destinations Workshop Tools
  • 创建Destination项目
    • 打开Destinations创意工坊工具
    • 点击“Create Empty Addon”(创建空的项目)然后命名(这将在你创意工坊文件路径中使用).
      • Destination项目和Dota2自定义游戏很相似。项目包括地图,模型,材质,Panorama UI文件,Lua脚本等——这些是项目的必须要求.
    • 选择你的项目,点击“Launch Tools.”开始运行Destinations工具模式.
Bring your model into Model Editor
  • 导入模型到模型编辑器
    • 首先你需要从资源管理器中找到你的模型.
    • 在资源管理器里面点击模型编辑器按钮.
    • 点击"New VMDL from Mesh file",然后找到模型,选择OBJ创建(Destinations能够支持OBJ或者FBX格式的模型)
    • 当询问你是否创建一个新内容时候,点击确定.
    • 在对话窗口中,按“…”按钮选择你Destination目录.
      • 创建一个你想要的文件夹(例如你的destination名称).
      • 操作结束后,结果应该类似".../steamtours_addons/popcorn/models/popcorn".
    • 在"Collision type" (碰撞类型)下拉,选择"Collision using exact geometry"(使用精确几何网格).
    • 在"shader" (着色器)栏下拉选择"vr_unlit".从摄影测量导入的模型已经带有光源信息,我们无需在加入光照信息.
    • 关于OBJ导入,Source引擎有自己的轴系统,如果你从Reality Capture导入模型,选择Z轴朝上(Valve).
    • 其他的默认就可以了.
    • 点击确定,可能导入需要一段时间,这取决与模型的复杂性.
Adjust your file in Model Editor
  • 在材质编辑器里调整材质
    • 你的模型现在应该在模型编辑器中出现,双击左面板的材质.
      • 在材质编辑器中,勾上“Do Not Cast Shadows” ,取消掉阴影.摄影测量已经光照信息了,所以不需要在加入额外阴影.
      • 如果你的模型受到了其他物体阴影干扰,勾上"Receive Unlit Shadows".
      • 按Ctrl+S保存并关闭窗口.
Scaling your model in Hammer
  • 拖入模型进入Hammer
    • Hammer 是维尔福公司的关卡编辑器。这是在发布前进行所有工作的编辑工具.
    • 在资源管理器(Asset Browser)界面,点击左上方的Hammer工具.
    • 在Hammer工具中,使用Ctrl+N(或者File > New File)创建一个新地图.
    • 从资源管理器(Asset Browser)中找到你的模型(你可以使用搜索).
    • 找到它后将模型拖入进Hammer工具.
    • 你的模型拖入进来时候或许非常小,你需要调整下比例.使用缩放工具(E)可以调整大小.或者在属性框里面的比例输入大小.这里我们使用100大小.
    • 更多关于Hammer使用的信息,你可以参考开发者wiki:
Placing the Player Start in Hammer
  • 放置玩家出生点
    • 当你载入Destination场景时这将是玩家的出生点.
    • 选择最左边工具栏里面的实体工具(Entity tool)(灯泡图标).
    • 确认下实体是不是“info_player_start”(应该是默认的).
    • 点击地图放置玩家出生点.
    • 你可以使用移动(快捷键T)和旋转工具(快捷键R)来设置出生点的位置.
  • 放置传送区域
    • 传送区域决定了玩家可以传送的范围.传送类型有两种 - 网格和标记.
Placing a Teleport mesh
  • 放置传送网格
    • 传送网格是你设置的一个广阔平坦的区域,它将限制玩家的传送范围.
    • 选择多边形工具(Polygon tool).
    • 点击顶点画出你想要的传送区域.按 Enter键完成.
    • 你可能需要移动(T)和缩放(E)来调整多边形区域.确保传送网格高于地表,防止出现叠影现象(Z-fighting).
    • 搜索框中搜索“teleport”(传送),找到teleport_area_visible.vmat,将它覆盖在多边形网格上.
      • 点击并且拖动材质到多边形网格上.
      • 选择多边形,你能在右边看到选项面板.
        • 如果你没看到选项,确保网格在最上方被选中.
        • 如果传送网格很复杂不是简单的矩形,在Object Properties中的"Physics Type"(物理类型)选择 "Mesh" (网格)属性,这可以使传送正确附着在网格上.
      • 点击“Tie Selected Meshes to Entity”(转换成网格实体).
      • 类型选择vr_teleport_area into the field 并点击确定.这可以给网格附上传送区域限制的属性.
      • 如果你的传送区域并非平面,应当确保你的Object Properties中的"Physics Type"(物理类型)转换成"Mesh"网格.
Placing Teleport markers
  • 放置传送标记
    • 传送标记是应对不规则区域或者景点传送非常好的选择.
    • 选择实体工具(灯泡图标).
    • 实体类型选择vr_teleport_marker.
    • 放置传送标记非常简单,和放置模型一样,它可以被拖动放置.
Find the default skysphere in the Models tab
  • 添加天空
    • 如果没有天空,那么背景完全是黑色的.
    • 我们在Destinations创意工坊中有默认的天空球.
    • 在模型面板中找到天空球类型.
    • 拖动天空球模型到你的环境之中.
    • 天空球非常的大 - 将它移动到场景的中心.


  • 测试Destination场景
    • 按F9进行编译测试。选择"Full Compile"选项.
    • 点击"Build".如果你没有保存,将会提示你保存你的地图.地图名字不是很重要,只要你项目名称就可以了.
    • 编译完成后能够在VR中测试你的Destination场景.
    • 继续在Destination场景中添加编辑模型、环境以及光照,直到你认为可以提交到创意工坊为止.
Steam Workshop Manager
  • 提交到Steam创意工坊
    • 一旦你满意你的作品,回到资源管理器(Asset Browser)界面,点击Workshop Manager按钮.
    • 点击"+"图标,选择File(文件)>New Submission(新的提交).
    • 填写描述并选择一个封面作为Destination的预览.可以选择屏幕截图作为封面缩略图预览.
    • 最后,点击“Submit”(提交)上传你的Destination项目至Steam创意工坊.需要等待一会儿,取决于文件大小.
  • 现在你的项目会展示在Destination创意工坊.
    • 不要忘了同意创意工坊协议,否则其他人不能看到你的创作.


恭喜!现在其他玩家将可以下载你的项目进行游玩.