`
projectanarchy2
  • 浏览: 4841 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Vision引擎中环境地形介绍

 
阅读更多

 

地形介绍
对于任何基于户外场地的游戏而言,强大的地形工具组都必不可少。 vForge 提供一套功能丰富的地形编辑工具组,可供您创建巨大的动态载入 MMO 和 RPG 景观,或是为您的下一个射击游戏大作创造茂密的丛林。
vForge 地形工具能让您充分控制地形设计和构架,附带能与独立地形应用程序媲美的工具,包括特殊笔刷类型和在地形上开孔制造洞穴的功能。 细节纹理绘制可在多个纹理层之间实现细致的混合,植被既可使用纹理集公告牌,也可使用几何网格,让您充分掌控创建世界的具体方式。

和静态几何网格不同,地形不是从 3ds Max 或 Maya 这类内容创建工具中导出的。 地形是一种特殊用途的几何体类型,存在某些限制(例如没有突起、洞穴),但便于编辑和制作纹理、能快速渲染植被、支持自动 LOD 和内置动态载入。
 
技术概览
地形不是引擎中的固线式几何体类型,而是作为 Vision 引擎插件的一部分,使用引擎现有的低级别几何体功能加以执行。 所以,程序员可以查看其实现方式,并根据具体要求加以修改。
设计引擎的地形系统时需着眼于如下目标:
运行库的低负担: 地形渲染在最终发布版本中造成的状态变更应尽量少,要让每次绘制请求都渲染大量几何网格。
低内存占用: 地形会在不同绘制请求中尽量重复使用顶点流。 例如,所有地形页面都共享 x-y 坐标,LOD 索引缓存也会共享。 这可以节省大量内存。
灵活性: 地形是 Vision 引擎插件的一部分,所以可以修改。 一套内置系统会分析着色器样本名称,以此确认需要多少加权纹理,从而允许程序员使用类别广泛的自定义地形着色器而无需修改地形代码。
可动态载入: 地形被分割成区块,每个区块的数据都是磁盘上的一个实体文件。 这可以实现区块文件的动态预缓存和卸载,并且在一定时间内不会有可见的影响。
可渲染地形和可编辑地形的明确分离: 可编辑地形被编辑器使用,包括所有来源数据信息,例如每个细节纹理的光度加权通道等。 导出后,程序使用一种轻量地形类(基于可编辑地形类),抛弃了所有此类元信息。 它仅对几何网格进行操作,带有一套纹理和一个用于渲染一切对象的着色器。
 
样本纹理
SDK 自带供地形编辑器使用的样本纹理。 您可以在 No fitting element separators were found for the menu "vForge sample maps(vForge 样本纹理)". Please use either '->', '=>', '→', '>', '\' or '/' as separators.中找到这些纹理的链接。
 
技术信息
更详细地了解若干地形技术资料。
地形图形类型
为了编辑和处理地形,您必须首先在场景中添加一个地形图形类型。
地形配置
如何为您的项目设置地形,定义地形缩放比例和大小以及动态载入功能。
地形编辑
探讨地形编辑工具,创建非凡的景观其实很简单。 创建地形很简单,只需将地形图形放到您的场景中,并使用内置工具为您的世界生成地形,或使用 vForge 多种纹理细节绘制工具绘制您的世界,添加岩山、沙滩,绘制一条道路,引导玩家踏上冒险之旅。 没有植被的地形是不完整的,不管是热带风情还是异星地貌。vForge 直观的植被绘制系统可以让您绘制公告牌和基于几何体的树木、岩石等项。 植被编辑器工具组也包含一个可以快速上手的纹理集创建器,用于通过您的图像生成公告牌。
纹理集
为了在地形中使用与屏幕对齐的公告牌,首先必须创建一个纹理集并加入该图像。 这种植被类型适合某些特定草地和远处的对象。 纹理集文件定义了纹理上作为公告牌图像使用的纹理子矩形。 最简单的纹理集只有一个框架,覆盖了整个纹理。 在一个纹理集文件中加入多个类似图像后,您可以基于一些用户定义的简单规则变换图像、迅速绘制植被。
地形光照贴图
本章中,我们将探讨在处理地形时如何使用静态光照和 vLux 光照贴图。
2D 概览地图
2D 概览地图可协助您处理地形区块可视性,为地形的开发提供反馈。
小地图覆盖
地形图形有一个小地图属性。 该图像渲染为 2D 视图面板(”可视性结果”),可选择作为半透明覆盖渲染在地形顶部。
转换方案区块
该功能非常有助于检查某个地形区块使用了哪些资源,例如,哪些纹理已被(成功)烘培,或者哪些植被模型正在使用中。 这些信息可以通过剖析布局中的资源查看器面板剖析。
发布地形零售版
地形编辑器会生成大量冗余文件。 在一些情况下,这些文件仅对编辑器有用,对运行库无用。 本章将探讨如何为项目的零售版准备地形文件。

转自:projectanarchy中文社区

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics