首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

Shader技术在优化自然景观效果方面的研究

作者:黄筱佟 来源:科技风

摘 要:目前,虚拟漫游技术已越來越多应用在风景旅游景区的三维实景展示当中。通过各种虚拟漫游技术,使得景区风光再现,实现足不出户就可以进行参观旅游的目的。在众多景区漫游系统建立当中,提高自然景观的真实再现是提高旅游场景逼真度要解决的重要问题。本文对Shader技术进行研究,并对其提高景区常见自然景观的还原度的方法进行总结归纳。

关键词:虚拟现实;Shader;自然景观;高还原度

虚拟现实技术(VirtualReality)又称灵境技术,是利用计算机生成一种模拟环境,并通过多种专用设备使用户“投入”到该环境中,实现用户与该环境直接进行自然交互的技术,其在计算机动画、电脑游戏、影视特技、军事仿真、建筑景观设计等方面都有着非常广泛的应用。目前,虚拟现实技术技术的应用推广在旅游行业尤其广泛。而旅游场景当中自然景观的模拟一直是计算机图形学领域和虚拟现实领域的研究热点和难点。如地形地貌的生成技术、植物形态的造型及其生长状态模拟及其他物理现象的模拟等。常见的提高虚拟现实产品的画面品质的方法有:光照贴图、法线贴图、 Shader、动态光源等技术。下面我们就Shader技术对提高自然景观效果中的材质效果方面进行初步的探讨研究。

1 自然景观特点分析

旅游景点的自然景观有地域广大、植被丰富、物理特性多样化等特点。在旅游场景中常见的自然景观有山、石、草、树、水等场景对象,其中地形、植被、花草、甚至有些景区的建筑材质纹理是最为丰富多样。植被的种类、地形地貌的特色、建筑物的材质纹理各有不同,是否能进行风格化的制作效果的实现决定了景区真实还原效果的高低。而对旅游景区的自然景观进行高仿真度还原,采用普通的贴图、渲染的方法往往是不够的。因此通过研究虚拟现实的渲染技术对自然景观场景对象进行特色还原,有着十分重要的意义。

2 Shader技术

Shader也称为着色器技术。程序员通过对GPU编写一段程序来控制渲染输出效果,从而实现一些固定流水线中没有定义的技术,这种程序被称为Shader 程序。 Shader技术通过运行在GPU上运行的程序,对三维物体进行着色处理、光与影的计算、纹理颜色的呈现等,将游戏引擎中各种作为抽象的集合数据存在的模型、场景和特效,以与真实世界类似的光与影的形式呈现在观赏者眼中。着色器的类型有两种:顶点Shader和片段Shader。顶点程序运行在顶点处理器上,片段程序运行在片段处理器上。顶点着色程序从 GPU 前端模块(寄存器)中提取图元信息,如顶点位置、法 向量、纹理坐标等,并完成顶点坐标空间转换、法向量空间转换、光照计算等操作,最后将计算好的数据传送到指定寄存器中;片断着色程序从中获取需要的数据,如纹理坐标、光照信息等,并根据这些信息以及从应用程序传递的纹理信息(如果有的话)进行每个片断的颜色计算,最后将处理后的数据送光栅操作模块。顶点 Shader可以提供更灵活的光照模型计算方法;而像素 Shader 提供了一种灵活的建立真实光照模型和实现很多特殊效果的方法。

作为面向GPU编程的技术,实现Shader可采用三种高级图像语言可选择。分别是微软的HLSL;OEnGLish的GLSL及NVIDIA 的Cg语言。而在Unity开发环境中对Shader编程语言的支持很全面。因此在此我们以Unity引擎开发环境进行讨论。

3 Shader技术在自然景观方面的应用

3.1 遮罩纹理

遮罩纹理的原理是允许保护某些区域使其免于修改。如当使用高光反射应用到模型时通常会将其应用到模型表面所有地方,也就是所有像素都使用相同的高光强度及指数。但有时,当希望表现模型表面某些区域反光强烈些,某些区域弱一些的细腻效果时,就可以使用遮罩纹理来控制光照。

遮罩纹理的处理思想为:通过采样得到遮罩纹理的文素值,然后使用其中某个或某几个通道的值来与某种表面属性进行相乘,当通道值等于0时,可以保护表面不受该属性的影响。这种纹理可以应用在表现草地纹理、石子纹理及表现裸露土地纹理上。

3.2 凹凸纹理

凹凸纹理使用一张纹理来修改模型表面的法线,通过扰动物体表面法向量,同时与每个面片的光照相结合来模拟粗糙物体表面凹凸不平的细节。凹凸纹理映射借助光照模型来实现,通过凹凸纹理映射,能够在一个凹凸纹理中记录影响物体光照外表的详细表面特征,而不用增加物体的几何复杂度,从而达到模拟更多表面细节的效果。进行凹凸纹理映射的方法有两种:一种是使用高度纹理来模拟表面位移,得到一个修改后的法线值;另一种则使用法线纹理直接保存表面法线,因此又被称为法线映射。凹凸纹理在表现石质材质、树木纹理上可以有很好的应用。

3.3 程序纹理

程序纹理是那些由计算机生产的图像,通常使用一些特定的算法来创建个性化图案或非常真实的自然元素。程序纹理可以通过声明程序里的各种参数设置来调节纹理外观,参数的属性即可以是颜色属性,也可以是完全不同类型的图案属性。通过对程序纹理属性的自由调整,程序纹理可以用于产生丰富多样的视觉效果,如木头、石子等的自然元素可以采用程序纹理实现。

4 总结

虚拟现实技术在我国各行业的应用发展如火如荼,特别在旅游景区方面的应用尤为普遍。但画面效果不够逼真,沉浸度不够一直成为该项技术应用的瓶颈。在众多提高画面品质及还原度的研究当中,Shader模型技术作为一款优秀的优化渲染引擎模式一直广受业内欢迎。在提高旅游地自然场景的需求中,如何利用先进的Shader技术,通过其真实表现真实世界的各种光影效果的特点,去应用在各种自然景观的真实感还原效果当中,是十分值得我们探讨的。然而Shader模型技术还有很多,本文只对真实场景当中常见的自然材质可采用的Shader 技术进行了初步讨论。随着技术的发展及研究的不断深入,今后在这方面的研究仍应继续进行。

参考文献:

[1] 费嘉,郭善良.基于shader实现的光线透射效果[J].计算机工程与设计,2007,28(8):1873-1875.

[2] 冯乐乐.Unity Shader入门精要[M].人民邮电出版社,2016.

[3] 刘飞洋.虚拟场景真实感绘制关键技术研究及实现[D].电子科技大学,2011.

[4] 张焱.Shader模型综述[J].计算机时代,2010(1):1-3.

作者简介:

黄筱佟(1981-),女,广西梧州人,硕士,讲师,研究方向:数字媒体技术。