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

From Valve Developer Community
Jump to: navigation, 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
This article needs more links to other articles to help integrate it into the encyclopedia. Please help improve this article by adding links that are relevant to the context within the existing text.
January 2024



English (en)
... Icon-Important.png

创建摄影测量的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创意工坊.
    • 不要忘了同意创意工坊协议,否则其他人不能看到你的创作.


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