• 主页 > 学术知识
  • 3D游戏引擎中大规模室外场景渲染技术研究

    html模版3D游戏引擎中大规模室外场景渲染技术研究

    摘要:经过多年发展,3D游戏引擎已经形成一套相当成熟的3D游戏开发架构系统,其中最重要的步骤,就是将游戏世界中各种坐标转化为图形像素,输出至屏幕中,生成各种生动、有趣的游戏画面。基于场景需求不同,需要采用的大场景渲染技术也不同,一般为室内场景渲染技术和大规模室外场景渲染技术。本文以大规模室外场景渲染技术为例,对地形地表渲染、动态水渲染、植物渲染等进行研究,力求提升场景真实感,创建更好的游戏体验,也为相关研究及工作开展提供参考。

    关键词:3D游戏引擎;大规模;室外场景渲染技术;地形;几何图形

    一个游戏室外场景内核引擎好坏,直接影响游戏质量和游戏体验,而且,游戏不同于模拟仿真,场景数据难免存在随机生成问题,借助随机生成创造游戏开发者想要的场景。因此,大规模室外场景渲染技术是一项富有挑战性的技术。

    1 大规模室外场景渲染技术概述

    3D游戏引擎架构中,底层渲染模块由若干个独立软件工具库组成,可以为引擎上层提供多次、重复利用的渲染功能,包括动态几何体、可见裁剪、碰撞检测与反馈、静态几何体、节点阴影、光线、布告板及天空体等。设计人员可利用控制台数据图形API,完成渲染工作,具体操作流程为:封装→提交程序(Direct3D库、OpenGL库),控制显示对象载入、脚本读取和显示属性设置→拆解,获得游戏对象每一帧对象→多边形裁剪算法/碰撞算法或/碰撞检测算法→处理和应用特效技术→优化和加速渲染过程。

    2 大规模室外场景渲染技术研究

    2.1 地形渲染技术

    地形渲染是室外场景主要部分,地形是自然界最复杂的景物之一,地形数据多少决定场景大小,文章主要讨论大规模地形建模、渲染、可见性检测等方法。地形建模主要通过数字高程模型、等高线模型实现,等高线模型是借助等高线表示地形起伏,是用二维表示三维最常用的方法[1]。但是等高线在点的分布上不均匀,地形起伏大区域,等高线密集,对应点多,地形起伏小区域,等高线稀疏,对应点少,直接将等高线转化为三维图形,地形造型中等高线台阶痕迹明显,造型不美观,故多采用数字高程模型。数字高程模型,是利用地形表面上一组有限高程采样点描述地形表面起伏特征的几何模型,可范围规则格网和不规则三角网地形模型[2]。其中,规则格网地是目前3D游戏引擎中使用较多的一种地形模型,能全面考虑地貌特征,表示负责地形,但数据结构复杂,使用和管理难度较大。

    地形渲染技术包含静态渲染和动态渲染两种,静态渲染需要提前计算好静态地形均匀程度,如高山地貌使用更多细节等级,平原地貌使用较低细节等级。以汽车赛道为例,与赛道邻近地区需要建立较高等级细节,较远地方使用较少细节。动态渲染,是跟随视点移动,实时更新地形网格的一种渲染技术,技术手段和渲染算法更为先进,建立起的地形场景更真实、更符合常理。但是,在实际应用中还存在精度和速度割裂、地形表面呼吸现象、几何形变等情况,需要一一解决。

    2.2 可见性检测技术

    在计算机图形学中,可见性检测技术主要用于判断视域体中哪些面可见,视域体外哪些面不可见。设计人员可使用该技术及对应算法,如精确对近似、点对区域、静态场景对动态场景等,精准绘制可见场景模型,完成3D大规模场景建立。例如,某三维场景由三角形网络三元组成,表示为,工作量巨大,为减少绘制数量,需要进行可见性剔除面片。

    2.3 地形LOD技术

    LOD,是层次细节的建成,是一种使用多边形、符合人眼视觉效果的技术。简单来说,当场景中物体远离摄像机时,可在不影响视觉效果的前提下,绘制一些简单三角形网格表示物体,从而提升运行效率[3]。该技术会为同一物体建立多个不同层次细节模型,对其进行简化操作,调整细节程度表达物体,使其成为一个较低细节的物体模型(一般层次简化包含三种面片收缩、边的压缩及顶点删除),在地形渲染中也被称为多分辨地形渲染技术。这种地形层次的简化分为规则和无规则两种,规则简化方法有二叉树、四叉树等,而记住由上至下递归方法完成剖分,无规则简化方法,则采用由下至上方法进行处理,达到相似地形效果。

    基于四叉树的LOD网络生成技术是目前应用较为普遍的一种方法,这是因为3D游戏场景过于复杂和庞大,很多物品采用二叉树方法,图形渲染器需要处理庞大网格数据,采用四叉树建立网络模型,会更容易获取地形数据,建立更为直观的地形模型。但是,四叉树中上层节点采样点少,且采样分辨率低,会产生较大地形误差,下层节点采样点分辨率较高,地形误差也较小,可用下层节点表示地形,减少误差。同时,大量使用采用点采样会降低绘制速度,需要根据当前视点位置、地形三角形复杂程度和观察方向,在节点中漫游,选择适宜节点集合表示地形。为避免四叉树节点“裂缝”问题出现,需要及时使用边删除技术、边插入技术避免初级裂缝产生,对于更为严重的裂纹,可采用布尔矩阵方法。将节点A划分成8个三角形,用一个布尔矩阵表示四叉树性结构组织节点状态,若布尔值为0,说明节点层次高,无需向下简化;若布尔值为1,表明仍需向下简化,配合使用边删除技术、边插入技术,就可精准表示一个无裂缝的多分辨率地形。

    3 场景真实感渲染技术研究

    3.1 纹理映射技术

    纹理映射,将反映物体表面细节的图案贴到物体表面的技术,处理流程为“获取纹理→定义纹理函数→反走样处理”。纹理映射方式有三种方式:颜色纹理映射、凹凸纹理映射、过程纹理映射,其中,颜色纹理映射是最基本的应用,是将一幅花纹图案映射在物体表面,物体结构并未发生任何改变[4]。通过参数曲面上一点的参数值,确定图案纹理、颜色及位置,建立表面点与图案之间的联系。凹凸纹理映射主要用于模拟头发、皮毛、衣服等物体。过程纹理映射主要用于模拟物体表面细节,如木材、大理石纹理,纹理效果不受物体表面形状变化,不会发生纹理走样情况,更符合自然效果。

    3.2 光影处理

    光影处理是提升室外场景真实性最主要方式,没有光影照射的三维模型与二维模型误差,只有物体吸收、反射、投射光照,使视觉系统看到物体,才能提升游戏场景真实感。例如,光照贴图,即利用好算法计算出拟真光影效果,给一个场景中所有多边形贴图赋值,即可得到表面复杂的光照效果,其视觉效果远超OpenGL局部光照。光照贴图数据来源包括地形高度图、光源位置、光照强度,借助光线跟踪和辐射度算法预处理得到全局光照模型,然后,将光照贴图和多细节纹理混合模型结合,模拟复杂地形,获得更加真实的室外场景。

    场景中非地形阴影同样可利用光照贴图解决,将纹理贴图技术贴在物体表面并模拟简单阴影,借助渲染地形→根据光源和物体位置计算阴影位置,构成阴影平面面片→使用alpha混合和透明纹理映射函数,计算物体阴影。树木、人物对应动态阴影则需要借shadowVolume、ShadowMap算法实现,其中,shadowVolume基于几何体算法,沿着光照轮廓区域进行正面和反面渲染,在屏幕模板缓冲区,分离得到精准阴影区,渲染流程十分简单,但花费时间较多,且阴影边缘视觉较为生硬,需要结合其他技术协同应用。

    3.3 植物渲染

    在3D游戏引擎大规模室外场景渲染中,花草树木必不可少,但对这些植物均使用三角面片描述,现有硬件环境难以支持,一般采用叉平面+ alpha测试渲染花草,实现植物不同交叉平面的有效渲染。在具体应用中,为提升植物真实性,需要注意以下几点:(1)植物动态效果。将每个植物对应面定点按照一定规律调整位置,实现随风运动效果,可借助顶点着色器、关键帧、骨骼动画技术实现物体摆动。(2)光照效果。依照植物地面光照亮度信息调整植物亮度,可将植物顶点随机调亮一个幅度,下层顶点随机调暗一个幅度,模拟光照不均匀情况。(3)多分辨纹理技术消除纹理抖动。对于距离不同但大小一致的面片,贴上统一高分辨纹理后,无法完全模拟物体缩小贴图效果,还会发生纹理抖动,若该抖动情况较多,游戏画面将出现明显闪动情况。采用多分辨率技术,将同一纹理贴图准备几个不同分辨率版本,依照物体位置,选择对应分辨率贴图,能取得更好渲染效果。

    结束语

    总之,游戏世界中,场景管理是十分重要的内容,也是游戏设计和生成最大难点。游戏设计者需要基于实际需求,积极采用相应渲染技术,不断提升室外场景真实性,为用户提供高质量游戏体验。

    参考文献

    [1]王梓屹. 基于GPU的大规模复杂场景渲染优化算法研究[D].西华大学,2017.

    [2]秦均玲. 大规模红外场景实时渲染技术研究[D].南京理工大学,2019.

    [3]叶诚. 大规模复杂场景渲染优化策略[D].天津理工大学,2020.

    [4]陈凌超. 3D游戏引擎构架及游戏动画渲染技术分析[J]. 中国新技术新产品,2022,(01):16-18.

    版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88888888@qq.com 举报,一经查实,本站将立刻删除。如若转载,请注明出处:http://jonrmal.com/index.php/qikan/2627.html

    加载中~

    相关推荐

    加载中~