版权归原作者所有,如有侵权,请联系我们

[科普中国]-实体纹理

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

纹理技术是1计算机图形学的重要组成部分,它对于表现物体的色彩、质感有着关键性的作用。根据生成方法的不同可以把纹理分成表面纹理实体纹理两种。

表面纹理是通过纹理映射的方法生成的,从数学上讲,它是一种从二维图像到空间曲面的映射,即把带有材质纹路特点的平面图像“包裹”到三维物体表面上。纹理映射技术已经发展的很成熟,应用非诚广泛,但是它存在几个难以克服的缺点:一是纹理拼接问题,在边界处难以处理;二是由于平面图像的离散性,放缩时有马赛克现象,需要单独处理。

实体纹理的概念最早是由于Darwyn R Peachey 和Ken Pelin 提出的。它的思路是:定义一个三维纹理空间,在其中对每种纹理的 直接建模,空间任意曲面的纹理就可以通过计算它在纹理空间的颜色来得到,就像雕刻家一样从纹理空间中雕刻出需要的任意形状。为了增强真实性,还用噪声方法对纹理空间进行了扰动,使得纹理更为自然。以木头为例,木纹石一圈圈的年轮形成的。建模时使用一组颜色深浅相间的同心圆柱作为木纹的纹理空间。与表面纹理不同,实体纹理中的纹路不是从平面图像中得到的。而是直接由算法生成的,因此也被称为过程性纹理。

随着实体纹理的技术的发展,新的模型函数越来多,技巧也越来越复杂,做出的物体的纹路和质感栩栩如生,几乎使人难以相信是计算机画出来的。实体纹理的原理虽然简单,但要实现一个效果丰富、易于扩展和编程的实体纹理一般采用光线追踪算法,现有的系统有的非常庞大,实现了许多实体纹理以外的许多复杂的功能;有的采用描述场景的脚本语言作为输入,没有采用所见即所得的交互方式,使用很不方便;有的系统虽然简单,但功能相对弱小。

实体纹理数据结构的组织实体纹理的属性可以按照函数的类型分为下面四中属性。

模型属性:描述模型函数的类型和参数,由于函数的算法已经做到程序中去了,所以模型函数类型可以用一个标识符(ID)来表示它。

变换属性:主要包括平移、方所、旋转参数和扰动参数。此外,如果 还有其他自定义的对空间点的位置进行变换的函数,其参数也属于变换属性。注意,通常都要对点做一系列的连续的变换,并且这些变换是有序的,同样,由于变换函数的算法已经做到程序中,变换类型时也可以用一个ID来描述。

颜色映射属性:颜色映射函数的参数是不定长的。

材质光学属性:真实材质对光的反应主要有三种:漫反射、镜面反射、折射。上面的方法实际上只是得到了实体纹理的固有颜色,而最终的视觉效果是在环境和灯光等因素的综合影响下得到的。因此还需要描述这些光学因素的参数。常见的光学参数有:环境光强度、漫反射亮度、高光曲反射系数、镜面反射光、投射参数、漫反射、镜面反射实际上是描述材质表面的光滑程度的,通过调整可以得到金属、塑料等效果。

数据结构的组织观察基本纹理的属性可以看到,除了材质光学属性是固定长度以外,其他属性都是变长的,因此在数据结构的组织上使用了链表,其中第一个字段是一个标志字段,用于区别不同的纹理类型。目前有三种类型:基本纹、分层纹理和平均纹理

实体纹理系统的实现这是一个面向电视台节目制作的三维软件,主要为演播室制作有高度真实感的背景图像。然后利用视频卡进行视频合成和输出。未了达到广播级的输出质量,其渲染算法采用了基于纹理的钢线追踪算法,其中实体纹理就是按照以上所述的数据结构组成的。系统支持的模型有木纹、大理石、花岗石、玛瑙、斑点、砖块、方格、六角****格等;可以对纹理进行放缩、旋转和平移变换。

由于采用了实体纹理做材质,用户可以通过调整和组合各种参数得到新的纹理,可以制作的纹理几乎是无限的。此外,由于实体纹理只存储参数,与二维贴图图像相比,实体纹理库的存储的开销极小,当然,由于系统采用的是光线追踪算法,渲染速度比较慢,但由于视频系统追求的是图像质量和高度的真实感,渲染速度只是次要因素。从方面使用的角度,一个丰富的,易于扩充的材质库对用户更有吸引力。