APP下载

面向美术设计师的着色器技术应用

2014-07-13刘娜

电脑知识与技术 2014年5期
关键词:着色器应用

摘要:在游戏制作中,着色器是实时处理图形效果的小程序,文章重点介绍了针对美术设计师的着色器技术应用。

关键词:着色器;美术设计师;应用

中图分类号:TP37 文献标识码:A 文章编号:1009-3044(2014)05-1038-02

着色器是一个充满概念和技术要求的庞大而复杂的话题。每个游戏引擎和游戏项目都有自身流程和着色器处理上的微妙差别。着色处理的最常见的应用是为美术设计师提供各种各样的表面材料,不仅包括金属、塑料和天然材料的表面,还有像水、雾、熔岩以及其它的动态表面。

1 着色器的分类

在游戏制作中,着色器是实时处理图形效果的小程序。在现代图形处理器(GPUs)上有两种主要类型的着色器:像素和顶点着色器。

顶点着色器是一组指令代码,这组指令代码在顶点被渲染时执行,同一时间内,只能激活一个顶点着色器。顶点着色器可以提高渲染场景速度,可以做布类仿真,高级别动画,实时修改透视效果(比如水底效果),高级光亮(需要像素着色器支持)。

像素着色器的编写、使用和顶点着色器大同小异,像素着色器是对每个像素进行光栅化处理期间在图形卡的GPU上执行的程序,可以实时处理像素,创建各种图形效果。

实时处理像素的能力使着色器变得强大。着色器可用于许多复杂材质外观和图像效果:头发、火、阴影、水、反射等等。它很灵活,几乎是无止境的,着色器程序员可以编写几乎任何你能想象的效果。

2 着色器工作原理

着色器,从美术设计师的角度来看,往往有点儿像黑匣子。美术设计师的作用主要是创建输入和判断着色器的输出,即设置参数或指定贴图,生成预先存在的着色器,然后查看最终的结果。在某些情况下,着色器代码是由美术设计师编写或编辑的,但在Max和Maya中,大多数较新的着色器创建工具更像是材质系统,没有要求编程知识。

图 1 显示从美术设计师的角度来看材料着色器的工作原理示意图。

图1

这是着色器如何工作的简单流程。在游戏世界窗户本身是黑的,我们可以使用着色器告诉游戏引擎基于灰度图像的哪些部分变亮,哪些部分变暗。你可以看到框架是暗的而玻璃是亮的。图像的右边是黑的和亮着的窗户的特写。

3 着色器的应用

着色器通常需要使用二维资产作为输入,并且美术设计师的任务通常不只创建这些资产,而且在某种程度上还需要深入了解、创建和执行着色器。所以,尽管着色器可以替代美术设计师做许多工作,但同时也会增加我们的工作量。目前,在游戏中对美术设计师有影响的不再是画一个独立的实体的贴图,而是创建一系列为获得所需效果必须共同作用的贴图。使用着色器需要更多的规划、不同的艺术创作思维方式和更多的组织。美术设计师需要学习着色器工具、组织更多资产 (可能会彼此链接,因此着色器到位后,它们的移动性更严格),并且还要具备这样的心理素质,那就是创建资产并不是最终结果而是最终结果的组成部分。

我们习惯了在Photoshop中绘制那些没有实时显示某些属性的贴图,但实际上是需要从平面创建贴图,构建一个复杂图像和效果的组织树去创建最终表面(很像我们在3D 程序已经做的以及部分贴图生成工具工作的)。因此美术设计师要了解光影基础或发展技能去观察场景背后所有污物、反射和其他表面属性的基础材质。例如,不要在 Photoshop 中绘制铬表面反射高光——既要让高光点看起来不错,但又不要太明显—— 你现在要离开Photoshop,给材质指定一个着色器,这样将会实时准确模拟铬的高光点(图2)。尽管着色器在某些方面可以让我们的工作更容易,而且肯定可以使我们的游戏看起来更好,但它们可能在理解上有点复杂,需要更大程度的组织。

图2

在上面示图中,在顶行的窗户玻璃很假,高光点是不动的。中间行的图像的高光点会随着你移动,像真实的反映效果 (看最底行窗玻璃的亮点)。示图的底部是非常明显的铬黄效果,同它旁边质朴贴图的相同模型相比较,你可以更容易看到光点在表面移动。

图像着色器可以将任何基础图像转换为三维拼贴马赛克,如图3所示。

图3

在转换过程中,图像可以自由动画和重新渲染,速度相当快。无论是地板拼贴或复杂的暗视觉,图像处理可以给出几乎任何游戏的图像或呈现独特的声音和情感;如果你能想像用一系列步骤去更改图像,那它就是着色器。

将一个场景分解成基本贴图的能力有足够的挑战性,但将一个贴图分解成其基本组件的能力则是更深层的挑战。当游戏中艺术变成贴图、滤鏡和程序的复杂结合体时,美术设计师将变得更加重要和更具挑战性。有人预言着色器将会替代美术设计师,但我认为不会发生,总会有需求要美术设计师做出的东西看上去更好、更独特(至少我们可以更改着色器的默认设置)。

记住,着色器仅是美术设计师使用的另一个工具。

参考文献:

[1] 3D Game Textures ,luke Ahearn, Focal Press,2006.

猜你喜欢

着色器应用
基于UE4 实时射线追踪技术的研究与探讨
基于Unity Shader石油泄漏现象模拟的研究
基于IMx6的opengl图形着色器开发研究
基于Unity3D的水面波浪模拟
一种基于GPU的气象站点填图绘制方法
多媒体技术在小学语文教学中的应用研究
分析膜技术及其在电厂水处理中的应用
GM(1,1)白化微分优化方程预测模型建模过程应用分析
煤矿井下坑道钻机人机工程学应用分析
气体分离提纯应用变压吸附技术的分析