OpenGL完全教程 第六章 纹理贴图

OpenGL完全教程 第六章 纹理贴图
OpenGL完全教程 第六章 纹理贴图

OpenGL完全教程 第六章 纹理贴图

作者:何咏 日期:2006-2-3 20:56:39 点击:4719

如需转载本文,请声明作者及出处。

第六章 纹理贴图

截至目前为止,我们已经能够绘制各种3D物体,并为它们增加光照效果,使它们更具有立体感。但是,在实际运用中,我们不仅仅需要简单地绘制一个物体的轮廓,我们需要绘制蓝天白云、真实的墙壁和物体、人物和树木。要达到这一目的,简单的将模型的轮廓绘制出来时远远不够的。我们需要使用纹理贴图来再现真实的细节。

在计算机硬件高速发展的今天,即使是最低端的显卡也能很快地处理大量的纹理,满足我们的需求。这些条件可以让我们毫无顾虑的使用OpenGL的纹理贴图功能,绘制出形形色色的物体。

本章将是学习OpenGL的最后一个基础章节。本章之后,我们将开始接触一些OpenGL的高级专题

学习本章内容,你将了解:

?什么是纹理贴图

?如何创建纹理图像

?OpenGL中贴图的方式

?使用纹理对象来管理的纹理

?将纹理运用到图元上

?自动生成纹理坐标

?多贴图纹理

6.0 准备工作

由于Delphi为我们所提供的OpenGL头文件是OpenGL1.0版本的,因此里面缺少一些函数的声明,这导致我们不能使用直接调用这些函数。因此我们要手动为OpenGL库添加下面的代码一进行补完:

procedure glBindTexture(target: GLEnum; texture: GLuint); stdcall; external opengl32;

procedure glDeleteTextures(n: GLsizei; textures: PGLuint); stdcall; external opengl32;

procedure glGenTextures(n: GLsizei; textures: PGLuint); stdcall; external opengl32;

function glIsTexture(texture: GLuint): GLboolean; stdcall; external opengl32;

procedure glPolygonOffset(factor, units: GLfloat); stdcall; external opengl32;

function gluBuild2DMipmaps(target: GLEnum; components, width, height: GLint; format, atype: GLEnum;

Data: Pointer): GLint; stdcall; external GLU32;

6.1 什么是纹理贴图

纹理贴图,从本质上讲,是一个位图图像。在程序中,一个纹理图像就是一个一维或二维数组,

存储每一个像素的颜色值(包括R、G、B、A分值,分别存储一个像素的红、绿、蓝、透明度分值)。而运用一个纹理贴图,就是把纹理图像根据纹理坐标对应到图元上。

比如,现在有一个三角形,顶点坐标分别是V1、V2、V3,以及一幅纹理图像,如图6.1-1所示:

图6.1-1

现在,我们可以在绘制三角形之前,为顶点V1、V2、V3指定纹理坐标,使每一个顶点的坐标和它的纹理坐标一一对应,如图6.1-2所示:

图6.1-2 纹理映射

一旦我们建立起这种对应关系,就可以开启纹理贴图功能,让OpenGL根据顶点的贴图坐标渲染出指定的三角形,如图6.1-3那样:

图6.1-3 使用纹理渲染图元

这就是纹理贴图的原理。

6.2 创建纹理图像

正如上一节所提到的那样,纹理贴图其实是一个二维数组。而对于一般程序而言,纹理贴图可以从位图中读取。你可以定义自己的纹理图像格式,然后使用Delphi提供的TFileStream类读取文件中的像素,但在初学OpenGL的阶段,我们暂时从Bmp文件中读取纹理图像,然后使用OpenGL将这幅图像打包成纹理。OpenGL要求纹理的高度和宽度都必须是2的n次方大小,只有满足这个条件,这个纹理图片才是有效的。一旦我们完成了这一步,我们就可以在任意时刻使用这个纹理图像来渲染图形了。

首先,我们创建一个TBitmap类型的对象,用于读取Bmp文件:

var Bit:TBitmap;

begin

Bit:=TBitmap.Create;

Bit.LoadFromFile(FileName);

...

Bit.Free;

end;

接下来,我们可以使用Bitmap对象的ScanLine属性获取这个Bitmap中每一像素的颜色值。有关ScanLine属性的用法,可以参看我早期的一篇文章——《探究Delphi的图形处理 之六 -- 使用ScanLine属性进行高效的图像处理》。这里不再详细讲解。总之,你可以使用下面的代码来获取Bitmap对象中每一点的像素值:

type

TPixels = record

R,G,B:Byte;

end;

TPixelPointer = array of PByteArray;

procedure ReadPixels(Bit : TBitmap; var Pixels : TPixels;

var PixPointer:TPixelPointer);

var PixPtr: PbyteArray;

i, j ,m: Integer;

begin

SetLength(Pixels,Bit.Width,Bit.Height);

Bit.PixelFormat := pf24bit;

Bit.HandleType:=bmDIB;

SetLength(PixPointer,Bit.Height);

for i :=0 to Bit.Height-1 do

begin

PixPtr:=Bit.ScanLine[i];

PixPointer[i] := PixPtr;

for j:= 0 to Bit.Width-1 do

begin

m := j*3;

Pixels[j,i].B := PixPtr[m];

Pixels[j,i].G := PixPtr[m+1];

Pixels[j,i].R := PixPtr[m+2];

end;

end;

end;

在上述过程中,将要获取像素值的Bitmap对象作为Bit参数传给子程序,子程序将返回Pixels和PixPointer。Pixels存储了该位图图像中的每一点的颜色值,而PixPointer则是每一像素点的指针,通过这个指针我们可以修改像素的值。

一旦获取了像素值,我们就可以将这些数据传给OpenGL,让OpenGL生成一个纹理贴图:

glGenTextures(1,@Texture);

glBindTexture(GL_TEXTURE_2D,Texture);

glTexImage2D(GL_TEXTURE_2D,0,3,Bit.Width,Bit.Height,0,GL_RGB,GL_UNSIGNED_BYTE,Pixels );

上面的代码中,glGenTextures和glBindTexture函数用于创建和绑定纹理对象,稍后我们会详细讲解;glTexImage2D函数将Pixels数组中的像素值传给当前绑定的纹理对象,于是便创建了纹理。glTexImage函数的参数分别是纹理的类型,纹理的等级(稍后讲解),每个像素的字节数,纹理图像的宽度和高度,边框大小,像素数据的格式,像素值的数据类型,像素数据。

像素数据的格式可以取下面几种值:

GL_RGB- 像素值为RGB颜色

GL_RGBA- 像素值为RGBA颜色

GL_BGR_EXT- 像素值为BGR颜色(和RGB的区别只是先后顺序的不同)

6.3OpenGL中的贴图方式

OpenGL为我们提供了三种纹理——GL_TEXTURE_1D、GL_TEXTURE_2D和GL_TEXTURE_3D。它们分别表示1维纹理、2维纹理和3维纹理。无论是哪一中纹理,使用方法都是相同的:即先创建一个纹理对象和一个存储纹理数据的n 维数组,在调用glTexImage N D函数来传入相应的纹理数据。除此之外,我们可以一些函数来设置纹理的其他特性。

6.3.1设置贴图模式

OpenGL提供了3种不同的贴图模式:GL_MODULATE,GL_DECAL和GL_BLEND。默认情况下,贴图模式是

GL_MODULATE,在这种模式下,OpenGL会根据当前的光照系统调整物体的色彩和明暗。第二种模式是GL_DECAL,在这种模式下所有的光照效果都是无效的,OpenGL将仅依据纹理贴图来绘制物体的表面。最后是GL_BLEND,这种模式允许我们使用混合纹理。在这种模式下,我们可以把当前纹理同一个颜色混合而得到一个新的纹理。我们可以调用glTexEnvi函数来设置当前贴图模式:

glTexEnvi(GL_TEXTURE_ENV,GL_TEXTURE_ENV_MODE,TextureMode);

其中TextureMode就是想要设置的纹理模式,可以为GL_MODULATE,GL_DECAL和GL_BLEND中的任何一种。

另外,对于GL_BLEND模式,我们可以调用

glTexEnvfv(GL_TEXUTRE_ENV,GL_TEXTURE_ENV_COLOR,@ColorRGBA);

其中,ColorRGBA为一个表示RGBA颜色的4维数组。

6.3.2 纹理滤镜

在纹理映射的过程中,如果图元的大小不等于纹理的大小,OpenGL便会对纹理进行缩放以适应图元的尺寸。我们可以通过设置纹理滤镜来决定OpenGL对某个纹理采用的放大、缩小的算法。

调用glTexParameter来设置纹理滤镜。如:

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILETER, MagFilter);//设置放大滤镜

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, MinFilter); //设置缩小滤镜

上述调用中,第一个参数表明是针对何种纹理进行设置,第二个参数表示要设置放大滤镜还是缩小滤镜。第三个参数表示使用的滤镜。可以为下面的值之一:

表6.3-1 可使用的纹理滤镜

滤镜描述

GL_NEAREST取最邻近像素

GL_LINEAR线性内部插值

GL_NEAREST_MIPMAP_NEARES

T最近多贴图等级的最邻近像素

GL_NEAREST_MIPMAP_LINEAR在最近多贴图等级的内部线性插值

GL_LINEAR_MIPMAP_NEAREST在最近多贴图等级的外部线性插值

GL_LINEAR_MIPMAP_LINEAR 在最近多贴图等级的外部和内部线性插值

有关多贴图的内容,我们稍候将详细讲解。

至此,我们已经可以产生一个纹理,并为它指定各种参数。但我们在绘制图元时必须进行纹理映射,才能将纹理贴在图元表面上。

6.4 纹理映射

6.4.1 纹理坐标

要使用当前的纹理绘制图元,我们必须在绘制每个顶点之前为该顶点指定纹理坐标。只需调用

glTexCoord2d(s:Double;t:Double);

函数即可。其中,s、t是对于2D纹理而言的s、t坐标。对于任何纹理,它的纹理坐标都如同图6.4-1所示的那样:

图6.4-1 纹理坐标

对于任何纹理,无论纹理的真正大小如何,其顶端(左上角)的纹理坐标恒为(0,0),右下角的纹理坐标恒为(1,1 )。也就是说,纹理坐标应是一个介于0到1之间的一个小数。

例如,下面的代码将使用当前纹理绘制一个三角形:

var Tex:GLUInt;

begin

glEnable(GL_TEXTURE_2D);//启用2D纹理

Tex:=LoadTexture;//载入一个纹理

glBindTexture(Tex);

glBegin(GL_TRIANGLES);

glTexCoord2d(0,0);

glVertex3f(-10,-10,0);

glTexCoord2d(0,1);

glVertex3f(-10,10,0);

glTexCoord2d(1,1);

glVertex3f(10,10,0);

glEnd;

...

end;

6.4.2 纹理缠绕

前面提到,纹理坐标应位于0-1之间。那么当纹理坐标大于这个值会出现什么情况呢?

我们可以对OpenGL进行设置,以决定当纹理坐标不位于这一区间时应采取的操作。我们可以指定两种操作:GL_CLAMP和GL_REPEAT。对于GL_CLAMP,超出纹理坐标的区域会使用纹理图像的边界颜色来代替,如图6.4-2所示。

图6.4-2GL_CLAMP 的工作方式

而GL_REPEAT方式则是对纹理坐标进行重置而得到重复的图像。观察图6.4-3,你就能很容易地发现这一点。

图6.4-3GL_REPEAT 的工作方式

可以调用glTexParameter设置缠绕方式:

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_S,WrapMode);//在s方向上的缠绕方式

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_WRAP_T,WrapMode);//在t方向上的缠绕方式

其中,WrapMode可取GL_CLAMP或者GL_REPEAT。

6.5 纹理对象

在前面的小节中,我们一直都在接触纹理对象,这里将详细地说明。

创建和使用文理对象

在OpenGL中,我们使用glGenTextures创建纹理对象:

glGenTextures(Count:Integer;TexObjs:Pointer);

其中,Count是我们要创建的纹理数目,当我们只想创建一个纹理时,只需调用

var Texture:GLUint;

...

glGenTextures(1,@Texture);

这样,Texture变量中就存储了我们创建的纹理的ID号。

创建之后,我们使用glBindTexture将创建的纹理绑定到当前纹理。这样所有的纹理函数都将针对当前纹理。

glBindTexture(Texture:GLUint);

这样,我们就可以调用glTexParameter、glTexImage2D等函数来设置这个纹理对象了。

删除纹理对象

在纹理资源使用完毕后(一般是程序退出或场景转换时),一定要删除纹理对象,释放资源。

调用

glDeleteTextures(Count:Integer;TexObj:Pointer);

来删除纹理对象。例如

glDeleteTextures(1,@Texture);

6.6 多贴图纹理

多贴图纹理(Mip Mapping)为一个纹理对象生成不同尺寸的图像。在需要时,根据绘制图形的大小来决定采用的纹理等级或者在不同的纹理等级之间进行线性内插。使用多贴图纹理的好处在于消除纹理躁动。这种情况在所绘制的景物离观察者较远时常常发生(如图6.6-1和6.6-2)。由于多贴图纹理现在的渲染速度已经很快,以至于和普通纹理没有什么区别,我们现在一般都使用多贴图纹理。

图6.6-1 GL_LINEAR滤镜下的

图6.6-1 使用多纹理贴图的远景

远景

使用多贴图纹理并不麻烦。首先,我们需要创建不同等级(尺寸)的纹理图片。我们需要调用n次glTexImage2D函数,生成不同等级的纹理贴图。例如:

glTexImage2D(GL_TEXTURE_2D,0,3,8,8,0,GL_RGB,GL_UNSIGNED_BYTE,Pixels);

glTexImage2D(GL_TEXTURE_2D,1,3,4,4,0,GL_RGB,GL_UNSIGNED_BYTE,Pixels);

glTexImage2D(GL_TEXTURE_2D,2,3,2,2,0,GL_RGB,GL_UNSIGNED_BYTE,Pixels);

glTexImage2D(GL_TEXTURE_2D,3,3,1,1,0,GL_RGB,GL_UNSIGNED_BYTE,Pixels);

这些函数调用的第二个参数表示当前纹理的等级。0级的分辨率最大。之后,每一级的分辨率是上一级分辨率的

一半。这样的函数调用应一直进行下去,直至图像的高度和宽度都为1。

但有时候,这样做总并不是很方便。我们可以借助一个glu函数帮我们自动生成这些多贴图纹理。只需要把生成纹理图像的函数调用由glTexImage2D改为gluBuild2DMipMaps即可:

gluBuild2DMipMaps(GL_TEXTURE_2D,3,Bit.Width,Bit.Height,0,GL_RGB,GL_UNSIGNED_BYTE,Pixels);

此外,还必须把纹理的滤镜改为MIP_MAP滤镜。例如:

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);

有关滤镜的参数可以参考表6.3-1。

6.7 本章代码综合

由于本章涉及到许多OpenGL的纹理函数,而且从文件创建纹理对象是一个极其复杂的过程,因此我们把本章的函数封装成类。使用这个类,我们可以很轻松地完成纹理的载入和设置。我们的类结构如下:

THyTexture = Class(TObject)

private

FPixels : array of array of TColor4ub; //纹理贴图的像素数据

FTextureID: GLuint; //纹理对象的id号

FHeight: Integer;

FWidth: Integer;

FTransparentColor: THyPixel;

procedure SetHeight(const Value: Integer);

procedure SetWidth(const Value: Integer);

procedure SetTransparentColor(const Value: THyPixel); //将某种颜色设置为透明色

function GetPixel(X, Y: Integer): TColor4ub;

procedure SetPixel(X, Y: Integer; const Value: TColor4ub);

public

constructor Create;

procedure Free;

procedure Bind;

procedure Generate; //创建纹理对象

procedure LoadFromFile(FileName:String); //从文件载入

procedure LoadFromBitmap(Bit:TBitmap); //从位图载入

property Pixels[X,Y:Integer]:TColor4ub read GetPixel write SetPixel;

property TextureID:GLuint read FTextureID;

property Width:Integer read FWidth write SetWidth;

property Height:Integer read FHeight write SetHeight;

property TransparentColor:THyPixel read FTransparentColor

write SetTransparentColor;

end;

这个类使用起来将非常方便:

var Tex:ThyTexture;

...

Tex:=THyTexture.Create;

Tex.LoadFormFile(FileName);//从文件载入

...

Tex.Bind;//绑定纹理

<指定纹理坐标并绘制图形...>

...

Tex.Free;

同时,我们还支持了Alpha通道。以下给出该类的代码。

 

将上面的代码复制下来,保存为一个单元,就可以立即使用了。

6.8 本章示例程序

在这一章中,我们将使用前面的木箱纹理包装第五章中的示例程序。在本章的示例程序中,我们使用了6.7节中所创建的类。阅读这个程序,你就能体会到使用面向对象的编程方法的好处。本章示例程序的截图如图6.8-1所示。

图6.8-1 纹理加光照效果下的立方体

仔细观察上面的截图,你可能会发现一个问题。这个问题实际上在第五章的示例程序中遗留下来的。那就是这个立方体看起来明暗过度并不自然。有些地方显得较黑,而有些地方显得又太亮。更让人无法忍受的是,当你旋转立方体时,感觉光照的效果几乎没有任何过度,着色起来十分不自然。图6.8-2是第五章示例程序中的一个截图,它很能够说明这个问题。

图6.8-2 第五章示例程序在有些角度下看起来很不自然,此问题同样存在于上面的程序

这是什么原因呢?是OpenGL技术上的问题?当然不是。我们知道,OpenGL处理明暗实际上是根据各个顶点的法线向量来决定该顶点的颜色的。在完成对顶点颜色的计算之后,OpenGL会利用明暗模型

对顶点之间的颜色进行过度。而这样的过度是线性的,很多时候不能表现出逼真的光照效果。因此,

要得到更好的画面,我们就要传入更多的顶点,让OpenGL进行更多的光照运算而不是简单的线性过度。如此以来,我们就能获得高质量的画面。

这好比你要绘制一条曲线,而在计算机绘图函数中,并没有直接提供绘制曲线的功能。这样,我

们便会使用许许多多的较短的线段来逼近真实的曲线。而绘制的线段越多,最终的图形就越接近于真

实的曲线。这样绘制图形的方法叫做图形的镶嵌。

既然如此,我们可以使用下面的代码来绘制立方体的一个面:

procedure DrawSurface(X1, Y1, X2, Y2: Single;

s,t:Single; //单位纹理坐标

Tess: Integer //镶嵌度);

var DeltaX,DeltaY:Single;

i,j:Integer;

x,y,yy:Single;

begin

DeltaX := (X2-X1)/Tess;

DeltaY := (Y2-Y1)/Tess;

for i := 0 to Tess-1 do

begin

glBegin(GL_TRIANGLE_STRIP);

Y:=i*DeltaY+Y1;

yy:=Y+DeltaY;

for j := 0 to Tess do

begin

glNormal3f(0,0,1);

x:=j*DeltaX+X1;

glTexCoord2d(s*j,t*i);

glVertex2d(x,y);

glTexCoord2d(s*j,t*(i+1));

glVertex2d(x,yy);

end;

glEnd;

end;

end;

借助矩阵变换,我们可以用下面的代码来绘制立方体:procedure TfrmMain.DrawCube;

begin

glPushMatrix;

glTranslate(0,-10,0);

glRotate(90,1,0,0);

DrawSurface(-10,-10,10,10,0.025,0.025,40);

glPopMatrix;

glPushMatrix;

glTranslate(0,10,0);

glRotate(-90,1,0,0);

DrawSurface(-10,-10,10,10,0.025,0.025,40);

glPopMatrix;

glPushMatrix;

glTranslate(0,0,10);

DrawSurface(-10,-10,10,10,0.025,0.025,40);

glPopMatrix;

glPushMatrix;

glTranslate(0,0,-10);

glRotate(180,0,1,0);

DrawSurface(-10,-10,10,10,0.025,0.025,40);

glPopMatrix;

glPushMatrix;

glTranslate(-10,0,0);

glRotate(-90,0,1,0);

DrawSurface(-10,-10,10,10,0.025,0.025,40);

glPopMatrix;

glPushMatrix;

glTranslate(10,0,0);

glRotate(90,0,1,0);

DrawSurface(-10,-10,10,10,0.025,0.025,40);

glPopMatrix;

end;

由此,我们得到了更好的画面。图6.8-3显示了这个立方体在聚光灯的照射下明暗过度自然的渲染结果。

图6.8-2 自然的明暗过度

三维模型贴图材质制作的秘籍与技巧

三维模型贴图材质制作的秘籍和技巧 本教程主要目的是为读者提供一些秘籍和技巧,帮助读者制作更好看的材质。作者总共总结出十项制作贴图材质的顶级方案与大家分享。。这些技巧都是别人教给我和我自己发现的。这些技巧虽不是解决材质问题的唯一方法,但是在这几年里我觉得是最好的方法。 图1 1.什么是材料? 我经常使用“材料”这个词。通常会看到有人给一个模型上了很难看的材质,可是当你看到材质图的时候会觉得更糟糕。实际上材质图看上去好看还是不好看并不重要,只要放到模型上好看就行了。 然而,检查材质比较好的方法是看材质图,看看能不能认出是什么材质(例如金属,石头,橡胶等);或者认出是模型的哪一部份被展开了。

图2 当在处理最新的和次世代材料的时候(比如奇异的贴图和效果),这种方法就显得有些吃力了。不管怎么说,只要你能认出那些材质,那么几乎可以说放到模型上也会好看。要是认不出,那么你认为的所谓金属效果实际上只是一堆混乱的颜色和像素。(使用纯照片素材很容易引起这些问题,后面会进一步解释。) 除了一张好的漫反射贴图以外,一张高光图也起很大的作用。有些工具能帮你制作高光贴图,不过可以控制的选项很少,特别是用多种材料制作一种材质贴图或发光文字的时候。 要是你想制作高光贴图,Photoshop是最好的选折。 你可以用蒙板来隔离保留区域。如果材质包含白色的文字,你可以很方便地使用蒙板来调整效果。 上面的图用混凝土和金属这两种简单的材料来制作出高光效果。分别进行了色阶(level)调整。你也可以用亮度(brightness)和对比度(contrast)来调整,不过色阶(level)具有更多的选项。

怎样用ps做出金属光泽的效果

手绘 南京-大脚瘦子(81716267) 17:58:10 保留质感强烈部分 南京-大脚瘦子(81716267) 17:58:16 必要的时候做些纹理 吸取该部分的主体色,用画笔20-30透明度涂抹 与原始的相比肯定有区别,你把它想象成3D做的模型,明暗面光线注意,纹路也要做的 必要的时候还要找素材做纹路 京-大脚瘦子(81716267) 18:07:29 比如这样的钢板纹路 南京-大脚瘦子(81716267) 18:07:38 南京-大脚瘦子(81716267) 18:07:58 https://www.360docs.net/doc/bd9293518.html,/architecture/mx_diwen/jinshuguangze/image_b6 367e7ffce9f3dc.htm 东莞-剑鬼(763838425) 18:08:22 哦,明白了,像是用3D材质那样对吧 南京-大脚瘦子(81716267) 18:08:32 还有这样的 南京-大脚瘦子(81716267) 18:08:28 南京-大脚瘦子(81716267) 18:08:34 都可以

只要你能想到,就一定可以做到 南京-大脚瘦子(81716267) 18:10:19 图层改为明度 南京-大脚瘦子(81716267) 18:10:30 这个杂色太多 东莞-剑鬼(763838425) 18:11:56 哦,是版本的问题,我CS的 南京-大脚瘦子(81716267) 18:12:09 都有 巧用滤镜制作金属质感的枫叶[2008-5-17] 来源:天极作者:王伟光 本教程介绍金属质感图形的制作方法。思路:先使用滤镜效果制作出金属质感的大图。使用到的滤镜效果比较多。然后把自己想要的图形画出选区,然后把多余的部分删除,再整体调整下,效果 就出来了! 最终效果

3D常见材质的制作方法

3D MAX中常见材质的制作方法 、普通玻璃 首先选择一个材质球,并命名为普通玻璃,明暗器基本参数中设为Blinn,然后在Blinn基本参数中调整漫反射的颜色为淡蓝色(即玻璃的颜色);在透明度中调整数值为60;在反射高光中,高光级别设为56,光泽度设为25;在贴图面板中选择反射,打开光线跟踪,单击横排工具栏上的转到父集,反射参数设为15。 2、磨砂玻璃 首先选择一个材质球,并命名为磨砂玻璃,明暗器基本参数中设为Blinn,然后在Blinn基本参数中调整漫反射的颜色为淡蓝色(即玻璃的颜色);在不透明度中调整数值为80;高光级别20,光泽度为10,在贴图中将反射设为薄壁折射,将模糊值设为50,在贴图的凹 凸中打开噪波,大小设为。 3、金属 首先选择一个材质球,并命名为金属或不锈钢,明暗器基本参数中设为金属,然后在基本参数中的漫反射中调出金属的颜色,高光级别为197,光泽度为74;贴图面板中,打开反射中的光线跟踪,反射值为 50(金属越亮,反射值越大)。 4、假金属 首先选择一个材质球,并命名为金属或不锈钢,明暗器基本参数中设为多层,然后在基本参数中的漫反射中调出金属的颜色或打开一张金

属贴图,第一高光反射层:级别163,光泽度为71,第二高光反射层:级别54,光泽度35。贴图面板中,打开反射中的光线跟踪,反射值为30。折射中打开光线跟踪,折射值为20。 5、镜子 首先选择一个材质球,并命名为镜子,明暗器基本参数中设为金属,然后在基本参数中的漫反射中调出颜色,高光级别为89,光泽度为67;贴图面板中,打开反射中光线跟踪,反射值为100。 ~ 6、自发光 首先选择一个材质球,并命名为自发光,明暗器基本参数中设为Blinn,然后在基本参数中的自发光面板中勾选颜色,将颜色设为白 色。 7、织物或布匹 首先选择一个材质球,并命名为织布,明暗器基本参数中设为“Oren—Nayar—Blinn”,然后在基本参数中的漫反射中调出织布的颜色或打开一张贴图,设置粗糙度参数(根据布匹的纹理或粗糙程 度),其他参数不变。 8、皮革 首先选择一个材质球,并命名为皮革,明暗器基本参数中设为各向异性,然后在基本参数中的漫反射中调出皮革的颜色或打开一张皮革贴图,设置高光级别为39,光泽度为15,各向异性为50,方向为5(根

材质处理及贴图方法

材质处理及贴图方法 材质处理: 我们在做配景楼时,模型的面要求控制很少但要做出逼真的效果,这就要求在材质上下功夫。下面我把从材质到贴图的方法介绍给大家,这里的材质处理不是很到位,希望你们做的更好。在制作中要求一张材质去为一栋楼或一群楼服务,这就要*虑到所有用到的材质在一张贴图 上的分配,我通常是楼顶的面积要给的多如左图 因为配景楼通常都用在像鸟瞰等一些大的场景内,房顶在画面中比重要大,也可以看个人习惯,材质贴得漂亮为标准。 (图一)

(图二) 贴图的材质最好找现成的来修改,这是网上下载的(图一)很好用改后如(图二) 还不能直接用还的进一步修改。处理的地方主要是立面与房顶交接的地方过度自然如 (图三) (图三) 在处理房顶的材质时我习惯也是简便的方法,在3DMAX的TOP视图把房顶的平面抓下来,在PHOTOSHOP中裁剪,如(图四)

(图四) 目的为了在MAX中贴图容易对位,接下来我我们选择要处理的边缘,红色为选择范围如(图五) (图五) 上图是处理边缘LAYERS的工作图层,做阴影一般用MULTIPLY,把边缘加重,再加个MASK

是很好用的,熟悉PHOTOSHOPD的同事应该了解。 (图六) 房顶的材质基本上出来了(图六)右(红线圈选的),左图(红线圈选的)是为丰富暗面加些物件,使整体有层次,房顶的部分基本上出来了。(上面的还不够丰富) 剩下立面的部分就比较容易,要注意的是窗户之间保持平行,不然在3DMAX里贴图会扭曲。立面的上部与下部要做出明暗的变化,最后还要统一调性。 贴图方法: 在PHOTOSHOP里做完贴图接下来在3DMAX里调整材质,工作较烦琐你有耐心。将材质赋给物体如下图,并在UVW MAP中勾选FACE。 但有些不规则的面会出现如下(图七)左(红线圈选的)破面,选择该面给UVW MAP勾选PLANAR(图七)右,接下来开始下面的工作。

金属材质绘制

金属材质绘制 金属不同质感: 从上面这些图例来看金属材质是非常多样的,但金属材质无非是纹理上的差别、污渍上的差别和高光上的差别。知道了这一点绘制金属材质的时候就不会无从下手了。那么下面就来通过一个实例来具体介绍一下金属材质的制作流程和技巧。 下面就是最后制作后在M A Y A中实时显示的最终效果: 不带有n o r m a l m a p和s p e c u l a r m a p的效果

带有n o r m a l m a p和s p e c u l a r m a p的效果 绘制贴图前一般我们会拿到一个简模,有的模型是会带有高模烘好的l i g h t m a p和n o r m a l m a p两张图。这个模型没有l i g h t m a p和n o r m a l m a p 需要我们来自己制作。一般游戏都是有c o n c e p t的,不过有的会很简单,是要靠自己根据游戏的风格来发挥的。这个实例没有c o n c e p t,请参考上面的最终完成图进行绘制。 简模 在绘制贴图前我们要检查一下U V是否分的合理,如果有不合理的地方在允许的情况下要进行调整。U V是绘制一个好的贴图的基础,U V分的合理我们才能更加顺手的完成绘制。分配U V要最大限度地利用空间,一个物体的不同的面尽量要保证U V大小一致。还要尽量保证U V很平竖直,如果贴图尺寸太小要考虑共用U V。 UVmap

※ 绘制贴图可以简单的分成以下五个步骤: 1、绘制D I F F U S E M A P的颜色 2、为D I F F U S E M A P添加纹理 3、绘制D I F F U S E M A P的污渍 4、用D I F F U S E M A P制作S P E C U L A R M A P 5、用D I F F U S E M A P转换N O R M A L M A P DIFFUSEMAP的制作: D i f f u s e m a p是最重要的贴图,n o r m a l m a p和s p e c u l a r m a p都是基于这个贴图而来的。我们要画一张1024×1024的贴图。首先,在M A Y A中导出一个1024×1024的UVmap,再在P h o t o s h o p中新建一个名为m e t a l b o x的1024×1024的空白图(图1)。然后选择将导出的UVmap按住shift 拖拽到这个图中(按住shift键拖拽,可拖拽到另外一张图的同等位置。),在图层样式中将UV图层设置为“滤色”。(图2) (图1) (图2)根据UV和模型大体区分出不同物体的颜色。(图3、4) (图3) (图4) 下面我们绘制l i g h t m a p(图5)。l i g h t m a p是要将模型没有表现出来的结构绘制出来,绘制视情况而定,如果时间允许可以绘制更加多的细节来丰富所做的物体。(l i g h t m a p的具体制作可以参考枪的教程)

金属质感表现-金属材质教程

图文]3DMAX打造金属质感 (2010-05-13 17:41:12) 转载 分类:3D动画与CG教学 标签: 游戏 先看最终效果。 其实还有很多地方有问题,比如刀把的细节不够,到刃没表现出来~本来想找时间改改~最后实在是懒的不行了,就这样吧,个人认为金属的质感已 经表现出来了。

看一眼就觉得刀上的花纹很复杂,制作起来不是那么容易,其实相当简单,下面就来看看是怎么达到这样的效果的。 首先将模型的UV分好,这个模型分uv很简单,给刀身一个平面坐标,单击修改面版下的Modifier List下拉列表,选择Unwrap UVW。选择Parameters卷栏下的Edit…按钮弹出Edit UVWs面板,然后在修改面板下选择Unwrap UVW下的Select Face,选择刀身的面给一个Planar Map。刀的背部也是一样的。给刀柄一个圆柱坐标,选择Modifier List下拉列表下的Mesh Select,选择Polygon然后选中刀柄部分的面,在加入一个Modifier List下UVW Mapping 给Cylinder坐标,点一下Fit。然后调整下,基本上就可以了。然后在photoshop里对着uv 线来绘制贴图。贴图很简单,就是拿几张照片合成下就行。 这把刀一共用了2张贴图,一张是表现表面的纹理,还有一张是凹凸贴图。

下面就把绘制好的贴图指定给物体,打开max的材质编辑器,设置如下。

在这里有必要说一下,在制作刀的时候我们的diffuse(固有色)和Bump(凹凸)用的是2张贴图,那是因为刀的表面有特定的凹凸,而现在制作的地面可以直接用一张贴图,这样地面会看上去凹凸不平,增加真实的感觉。 Max灯光的参数不多,不值得一讲,但是一幅好的作品灯光是非常重要的,也可以说“光”是一副好作品的灵魂。在打灯光之前先确定场景的基调和气氛,表达出怎样的感情,是否有特殊光照的效果。为了产生真实的3D图象布光是很重要的,在我们的现实生活中所有的物体都会有反射光,每个物体受光后都会吸收一部分光线而将另外一部分光线反射出去,在max里面我们要手动去模拟。使用彩色的光线也是很重要的,所有的光线都有一个颜色,并非纯白。 好了,下面再来看看灯光是如何设置的。

室内效果图材质设置与制作思路

室内效果图材质设置与制作思路 前言:3ds Max系统的材质在Vray渲染器中的兼容性也是非常好的(3ds Max下贴图除了Raytrace、Reflection/Refraction会跳出3ds Max系统以外,其他的参数均可以正常使用),而Vray自带的材质只是为用户提供品质更高的选择。这里我们要阐明一个重要的概念:要想编辑好一个材质,必须要知道该材质在物理世界里究竟具有那些物理属性,就是要从物理的角度去理解参数值。一些初学者在论坛里套用别人的参数,这其实是极为错误的,虽然别人的参数值可以作为一种参考,但它不一定就适合你当前的场景。大家要物理的理解参数的真正含义,一个参数不可能满足所有场景要求,所以最好的办法是去透彻的理解它,这样在应用的过程才会得心应手。下面内容我们从室内效果图制作过程中应用到的主要几大类材质入手,去分析材质的基本特性。 一、乳胶漆有如下几个特征: ?颜色(在自然界里是这样定义白色和黑色的:完全反光的物体,它的颜色是白色的;完全吸光的物体,它的颜色才是黑色。所以真实状态下没有纯白或纯黑的物体。) ?表面凹凸(表面有点粗糙、有划痕、有凹凸,这是使用刷子留下的痕迹。) ?高光(任何材质都有高光,只是多少的问题。越光滑的物体高光越小,反射越强,越粗糙的物体高光越大,反射越弱。由于乳胶漆材质表面比较粗糙,所以该材质的高光面积比较的大,大概参数在0.25左右)

总结:1、黑色白色不能调成0或255,纯白或纯黑的东西会计算出错误的结果。带色的乳胶漆可以按设计要求调个色就可以。

2、有反射的真实材质必定会有高光,所以VRAY的物体高光强度是由反射值来控制的。 当我们增强反射值的时由于乳胶漆不具有反射的属性,要在Options选项中将物体的反射属性关闭(Trace reflections),但是物体的高光是存在的。 3、真实的乳胶漆离远看的时候比较平整和干净的,我们利用这一点一般不会乳胶漆中 加入凹凸。更重要的是有时给材质加了凹凸后,会使材质看上去不够干净,而且也会因为凹凸增加不必要的渲染时间。 二、木质材质: 原木材质有如下几个特征; ?纹理贴图(需要用不同的木纹贴图来表现真实的材质纹理,同时为了让贴图更清晰,把Blur 的值该为0.01。) ?表面凹凸(真实木纹的凹凸效果。)

网友原创教程:使用材质贴图通道

网友原创教程:使用材质贴图通道 最近网友教程模块得到了广大网友的积极响应,又有朋友提供了新的教程,该教程是关于材质设置的,该网友仅使用了一个标准材质就使皮夹具有了皮革、金属、缝线等多种对象的质感属性,并且具有不同的凹凸、反射等特性,这些都是通过设置贴图通道的贴图来实现的。大部分的贴图通道通过灰度模式来控制材质的某种属性,例如凹凸贴图通道使用的贴图白色的位置有突出感,黑色的位置有凹陷感;不透明度通道使用的贴图白色部分为完全不透明,黑色部分为完全透明等。利用这一特性,可以使一种材质具有不同的质感。这一方法在游戏行业应用较为广泛,因为游戏行业的特殊要求,建模不能过于复杂,所以只能从材质方面来完善模型。 对于一个初学者来说,想要能够熟练使用材质贴图通道设置材质,尤其是这种比较复杂的材质,首先必须对材质非常地了解,知道每种贴图通道用于控制哪种属性,能够实现怎样的效果;还需要掌握PS等图形图像处理软件,因为材质的设置是非常灵活的,不可能每次都找到合适的贴图,很多时候需要自己来制作;还要有一定的统筹和规划能力,善于思考,这类的材质往往很复杂,每一步的设置都和最后的效果息息相关,必须有清晰的思路,才能把材质完成。所以基础知识的学习是相当重要的。 该网友上次发了制作字符画的教程,这一次的教程较上一次有了很大的进步,不管在叙述、分类还是知识点方面都有所提高,看来这位朋友很善于采纳别人的意见,并有很强的理解能力和动手能力。夸奖的话就不多说了,这个教程很不错,希望继续努力。 最后对教程提一些意见,首先那个烫金的效果不太好,很像一个100%自发光的效果,这也不能怪你设置得不好,主要是方法问题,因为使用材质贴图通道设置材质还是有很大的限制,不管怎样应用通道,明暗模式等基本属性不会变的,只是程度有所差别而已,所以不太适合设置两种质感差别过大的材质。设置这类的材质还是使用复合材质类型比较好。例如混合、合成等都可以实现这一类的效果,而且操作更为简单。 光源有些偏暗,布光对材质的影响很大的,所以如果能把光源完善一点就更好了。 3ds max 2011新增了板岩材质编辑器,该编辑器使材质的设置更为直观,有兴趣的朋友可以尝试使用一下,对于这种自己设计的材质,板岩材质编辑器设置起来更方便一点。 上个实例好像没提什么意见啊,这个提了意见并不是说着个实例不好,其实恰恰相反,因为上一个太简单了,没什么好点评的,这个涉及到这么多知识点,肯定有可讨论的地方。希望大家能够更积极地参与进来,毕竟学会一个实例和自己写一个实例需要掌握的知识量肯定是不同,在这个过程中,自己也会巩固所学知识,对软件有更深刻的理解。 这次给大家带来的是3d max材质篇相关内容(皮夹子材质赋予),以后会逐渐给大家分享经验,促进交流!亲手写教程是一个知识巩固的过程,所以我是来和大家一起学习的,很多地方写的并不是参数怎么怎么多少,更多的是我制作时的时候是怎么想的!希望大家学完之后,有所收获!也希望大家一起来参与与大家分享自己经验!感谢腾龙学习平台!

材质制作与贴图技巧

对于一些新手来讲工作中常常会遇到一些材质参数的问题,还有一些常识,以下给大家工作中常用的材质参数材质都有不同的表现)和一些注意事项(比如VR渲染器下不能用光线跟踪等等)! 常用材质材质的设置不是一成不变的,也不是毫无规律,这里给出的是个大概的参数值,具体的还要配合场还有其它很多种调法,这里只介绍VR的调法,希望能起到抛砖引玉的作用。 我们生活中最常用的不外乎以下几种:石材、玻璃、布料、金属、木材、壁纸、油漆涂料、塑料、皮革。 一、石材材质分析: 石材有镜面、柔面、凹凸面三种; 1、镜面石材:表面较光滑,有反射,高光较小; Diffuse (漫反射)- 石材纹理贴图; Reflect(反射)- 40; Hilight glossiness - 0.9 ; Glossiness(光泽度、平滑度)- 1; Subdivs(细分) - 9。 2、柔面:表面较光滑,有模糊,高光较小; Diffuse (漫反射)- 石材纹理贴图; Reflect(反射) - 40; Hilight glossiness-关闭; Glossiness(光泽度、平滑度)-0.85; Subdivs(细分) -25。 3、凹凸面:表面较光滑,有凹凸,高光较小; Diffuse (漫反射)- 石材纹理贴图; Reflect(反射) - 40; Hilight glossiness-关闭; Glossiness(光泽度、平滑度)- 1; Subdivs(细分) -9; Bump(凹凸贴图) - 15%同漫反射贴图相关联。 4、大理石材质 Diffuse (漫反射)- 石材纹理贴图; Reflect(反射) -衰减 - 1; Hilight glossiness - 0.9; Glossiness(光泽度、平滑度)- 0.955、 5、瓷质材质:表面光滑带有反射,有很亮的高光; Diffuse (漫反射)- 瓷质贴图(白瓷250); Reflect(反射) -衰减(也可直接设为133,要打开菲涅尔,也有只给40左右); Hilight glossiness - 0.85; Glossiness(光泽度、平滑度)- 0.95(反射给40只改这里为0.85);

3DMAX材质与贴图

3DMAX材质与贴图 3DMAX材质与贴图世界上任何物体都有各自的表面特征,如玻璃、木头、大理石、花草、水或云,怎样成功地表现它们不同的质感、颜色、属性是三维建模领域的一个难点。3D Studio MAX 3 的材质编辑功能地非常强大,不仅继承了3D Studio MAX 1 、2 的所有特性,同时材质编辑器中新增了多种复合材质,结合M o r p h e r 编辑器还可对材质进行变形。为了适应变化,用户界面也做了适当的安排。材质编辑器增加了多种贴图的类型,包括Swirl Map (旋涡)、Paint Map (画笔)、(Bricks Map )砖墙等。特别是3D Studio MAX 3 增加了在打开所有贴图文件时可以预览的新功能,使材质贴图制作更加直观快捷。 所谓材质,就是指定物体的表面或数个面的特性,它决定这些平面在着色时以特定的方式出现,如C o l o r (颜色)、S h i n i n e s s (光亮程度)、S e l f - I l l u m i n a t i o n (自发光度)及O p a c i t y(不透明度)等。指定到材质上的图形称为贴图(M a p s )。用多种方法贴图能把最简单的模型变成丰富的场景画面。在3D Studio MAX 3 .中巧用贴图的技术还能节省许多不必要的建模时间,以达到事半功倍的效果。 Material Editor (材质编辑器)是3D Studio MAX 3 中功能强大的模块,是制作材质、赋予贴图及生成多种特技的地方。虽然材质的制作可在材质编辑器中完成,但必须指定到特定场景中的物体上才起作用。我们可以对构成材质的大部分元素指定贴图,例如可将A m b i e n t 、D i ff u s e 和S p e c u l a r 用贴图来替换,也可以用贴图来影响物体的透明度,用贴图来影响物体的自体发光品质等。本章从介绍材质编辑器入手,由浅至深,逐步讲解基本材质、基本贴图材质、贴图类型与贴图坐标及复合材质等问题。 4.1 材质编辑器 如果说学习掌握3D Studio MAX 的建模只是时间的问题,那么对于材质贴图来说要真下功夫才行。因为3 DStudio MAX 3 的材质编辑器不仅功能强大,它的界面命令和层出不穷的卷展栏也让人望而却步。不过别担心,只要耐心细致地学习,工夫不负有心人,一旦你能熟练运用材质编辑器,就会发现原来很多精美真实的材质做起来并不难。另外一定要树立材质树的概念。因为好的材质,都是具有材质树特点的多层材质,既材质中有材质,贴图中套贴图。材质树的概念在材质贴图制作上是体现深度的关键所在,也是学习材质编辑器必须理解的概念。 4.1.1 视窗区 单击主工具栏中的材质编辑器按钮,弹出材质编辑器的默认界面,如图4 - 1 所示。材质编辑器分为两部分,上半部分为固定不变的视窗区,视窗区提供了显示材质的示例球以及一些控制显示属性,层级切换等常用工具,它们的操作绝大多数对材质没有影响。视窗区包括六个样本视窗、水平工具行、垂直工

国外制作的Maya材质教程_做旧金属

导言 这是一部国外制作的经典教程,虽然有点久,但一直收藏着,今天拿出来和大家分享一下,相信对大家能够有所帮助。 使用NURBS建模。(图01) 图01 贴图(图02) 图02 按下图方式创建一2D placement node模式贴图。我们使用如上材质设置color和bump。(图03)

图03 得到如下效果。(图04) 图04 设置材质属性(图05)

图05 接下来我将在Specular Color属性上连接贴图,在这个材质网络中,将File纹理复制,这样我只需要一个纹理置换节点,然后我将复制出来的File纹理关联到Specular Color属性。(图06) 现在高光看起来更好了一些,接下来,我将在高光颜色上加入一些变化,加入这种变化是通过在连接到Specular Color属性上的File纹理的Color Remap属性上加入Ramp节点实现的。(图07)

图07 在关联到Specular Color属性上的File纹理的Effects标签下,点击Color Remap后面的Insert按钮。(图08) 图08 这就是最终的这个管子的材质网络,剩下的就是不断的调节Ramp节点,以便得到你期望的结果。使用实时渲染,可以很容易核对不同的设置得到的结果,现在就可以调节Ramp 节点,测试不同的结果,下面的结果就是调节Ramp节点得到的效果。(图09)

图09 通过调整ramp后所得到的不同效果。(图10) 图10 继续调整ramp(图11、图12)

图11 图12 OK,到这里就结束了,方法很简单但是效果很好。

3dmax贴图教程:教你如何制作一个真实的金属材质

3dmax贴图教程:教你如何制作一个真实的金属材质 我们利用3dmax贴图制作金属材质,有一部分需要ps处理,最后的效果见下图。 首先,建模,给它一个贴图坐标器。 然后,贴图展开的修改器,赋予它一个网格材质。网格材质容易看出扭曲来,可以通过手调他的重复次数来使它有合适的贴图比例。打开在视图中显示贴图的选项是很有帮助的,对于这个物体我需要的是1.3和1的重复次数,所以比率是1.3:1。然后用texporter的展开贴图弄一个快照,并且保存为tif格式。(tga也不错,我们必须要确定的是得到一个alpha通道)。我需要的是高度为800象素的图片,因此呢我的宽度是800*1.3=1040。 其实也没有必要弄得这么准确,但是我做这个事情主要是避免它在某个方向上有扭曲现象。好多时候你也可以根据texport来估计贴图的比率。 下面是展开图的网格物体,我们准备在他的上面绘制贴图。在ps中我复制alpha通道到一个新的图层然后修改模式为multiply。这中方法黑色的线框将要显示,但是所有的白色的物体将要是透明的,这可以让你轻松的看到你所绘制的东西。这一层是在最顶端的它总是阻止以外的绘制出现。

我然后放置了一层黄色的油漆和绿色的油漆,我是利用了一些有文理的照片,然后在它上面绘制颜色。 图为铜锈贴图

图为铜锈贴图 它在ps中的状况如图: 在网格物体的指导下我们可以绘制油漆脱落的部分,我们需要重新建立一层在他上面用黑和白色涂料的图层,我们用印章工具绘制出高对比度的图象,还有在需要的地方小心手绘。

图为ps绘图

图为ps绘图效果 材质基本上完成了,让我们给他做旧一点。另外建立了一层,并且设置为multiply,用很大的,柔软的笔用一个棕色的颜色来绘制污迹。特别关注的是一些角落和拐角处,那些地方聚集了很多的灰尘。保持他的柔软度调整他的硬度也可以得到很难看的材质。 现在是给表面加罩的时候了,这需要沿着边也要很大的表面就象中间的材质一样用一个大的刷子来进行。

Photoshop材质制作技巧

本文的作者Leigh van dar Byl是一位在好莱坞视觉特效行业工作的CG艺术家,她非常擅长材质技法,本文中收集了许多非常好的Photoshop材质表现技法。 用Photoshop图层创建材质 成为一个好的材质艺术家需要学会有目的性的使用Photoshop的图层系统来完成无损材质的创建。使用许多图层也能够确保各种不同材质混合在一起时最终效果的统一、协调。 无损材质的创建方式意味着你需要为以后可能修改的细节单开图层来保护其中的内容。所以,最好的办法就是使用大量的图层。尽管大量的图层会导致PSD文件大小的增加且占有大量的系统内存,但是这意味着你将获得更流水化更高效的工作方法。 过去的经验常常告诉我们,绘制不同的细节在不同的层上。比如,你在为生物绘制皮肤材质时想在上面画一些皱纹。这时最好是新起一个图层,然后在这个图层里绘制这些皱纹。为什么要这么麻烦? 这很简单。如果你直接在皮肤层上画这些皱纹,过了一会,很有可能你想要修改或者擦除不合适的地方。那时光修复皮肤图层的工作就足够你烦的。相反,之前要是建立了相应的图层,你可以很轻松删除或是擦掉不需要的细节。 使用分层的方法还可以让你充分的利用Photoshop强大的混合模式。 创作技巧:千万记得为你的图层命名。当你在公司里商业流水线工作时,有时你不得不把文件传给你的同事来实现协同工作。有逻辑的命名有助于其他人理解你工作的思路,这也有利于帮助他们也包括你自己迅速的找到相应的图层。相信我,这个世界上没有什么会在比超过一百多的层且都没有命名的psd文件里找所需图层更可怕的事情。所以,避免你我他都头疼的问题,养成命名图层好习惯。 用Photoshop的调节层创建材质 调节层(Adjustment Layers)是Photoshop中最优秀的合成工具之一。它的工作方式和图像菜单下的那些调节命令是一样的。调节层的功能强大的可怕,它在图层面板窗口中生成一个控制层并影响它下面所有的图层。除此之外,它一样保留着层属性,这就意味着不同的混合模式、遮罩以及透明度的相关设置都是有效的。 要创建调节层,先点击图层面板底部的图标。绝大部分的Photoshop调节命令都可以通过调节层来实现,选择你想使用的命令就可以创建调节层了。 创建的调节层旁边会有一个半黑半百的图标示意,并且会自动弹出调节对话框供你做更进一步的调整。 日后要修改参数,只要双击图层名旁边的小图标即可。你也可以通过点击图层名旁的小白框来切换遮罩模式。在遮罩里使用灰色或是黑色将会减弱或是擦除对相应区域的调节效果。记住,调节层是影响它下面的所有图层,除非它是在自己的图层组中(注:不知道是不是版本的问题,我按照Leigh的方法去尝试是失败的,调节层还是会影响到它下面的所有图层。我自己常规的方法是把调节层放到图层上,然后用ALT键点选两个调节层与图层的中间,让图层成为调节层的遮罩。这样就不会影响到其他图层了。)关于图层组这个稍候讨论。 和其他层一样,你一样可以修改调节层的透明度、混合模式等来实现不同的效果。同样,在图层面板中,上下拖拽的方式也能改变他们的层级关系进而改变调节层对作用图层的具体范围。 无损材质工作流涉及到调节层的另外一点便是可以使用调节层一次性的调节大量的图层。这样一是避免了大量的手动修改二也避免了对素材的破坏性修改。 对于图层的色彩调节(色彩平衡,色相/饱和度)明暗度调节(色阶,亮度/对比度,曲线)这类的调整工作,调节层不破坏原有素材的特性是有绝对帮助意义的。在材质的绘制过程中我们经常会做一些反复的细微调整。比如在绘制皮肤材质的时候觉得整体太黄了偏点蓝色可能会更好一些,或者是凹凸贴图对比度再高那么一点点可能带出更多的细节。使用调节层将会尽可能的避免对你辛苦工作的潜在破坏。 用Photoshop的图层组创建材质 图层组(Layer Groups)在图层面板里面就像文件夹一样,能够对图层进行有效管理、组织。 点击图层面板右上角的图标选择新建组或从图层新建组来创建图层组。图层组在图层面板的列表中用一个小文件夹图标表示。通过点击图层组对应的眼睛图标可开启或关闭整个图层组的可见属性。点击图层组图标旁的箭头可展开或收起图层组。

制作材质贴图的10个诀窍介绍

摘要: 制作材质贴图的10个诀窍介绍 导言: 本教程主要目的是为读者提供一些提示和秘籍,帮助读者制作更好看的材质。作者总共总结出10项制作贴图材质的顶级方案与大家分享。这些技巧都是别人教给作者和作者亲自发现的,虽不是解决材质问题的唯一方法,但也是在这几年里作者觉得最好的方法。 1、什么是材质? 我经常使用“材质”这个词。通常会看到有人给一个模型上了很难看的材质,这样当你看到材质图的时候就会觉得更糟糕。有些人认为材质图看上去好看还是不好看并不重要,只要放到模型上好看就行了。然而,检查材质比较好的方法还是看材质图,看看能不能认出是什么材质(例如金属、石头、橡胶等);或者认出是模型的哪一部份被展开了。(图01)

图01 当在处理最新的和次世代材料的时候(比如奇异的贴图和效果),这种方法就显得有些吃力了。不管怎么说,只要你能认出那些材质,那么几乎可以说放到模型上也会好看。要是认不出,那么你认为的所谓金属效果实际上只是一堆混乱的颜色和像素。(使用纯照片素材很容易引起这些问题,后面会进一步解释。) 除了一张好的漫反射贴图以外,一张高光图也起到了很大的作用。有些工具能帮你制作高光贴图,不过可以控制的选项很少,特别是用多种材料制作一种材质贴图或发光文字的时候。要是你想制作高光贴图,Photoshop是最好的选择。你可以用蒙板来隔离保留区域。如果材质包含白色的文字,你可以很方便地使用蒙板来调整效果。上面的图用混凝土和金属这两种简单的材料来制作出高光效果。分别进行了色阶(Level)调整。你也可以用亮度(Brightness)和对比度(Contrast)来调整,不过色阶(Level)则具有更多的选项。(图02)

vrayforsketchup渲染教程②--材质篇

vray for sketchup渲染教程②--材质篇不 上一篇教程《参数篇》就在我的上一篇日志 前一篇的教程是关于渲染参数的设定方法,我已经尽量浓缩了~很少用到的参数我就不提及了,毕竟我们不需要制作商业化效果图,若是全部解析便会沉冗、没有意义。本篇也一样,我将会重点讲解建筑中常用材质的设定方法以及重要材质 参数的讲解。 还是那句话,大家看到有什么不对就提出来~~我会认真修正! 先允许我吐槽一下vray for sketchup,咳咳,以前我一直用3dsmax,这个暑假才开始接触su和VFS,个人感觉VFS局限性较大,好多操作的非常的不便。首先是点击渲染后等待场 景载入的那段时间实在是太长了,就算是最新的 1.6beta版本提速了,个人感觉只是小场景的载入速度提升了而已,而max中,那是瞬间的事。材质编辑十分不方便,在视口中只能 预览漫反射贴图在模型上的平铺状态,反射折射凹凸通道就不能显示,只能靠反复猜反复测试,而且每次调材质都要手动点击预览才能更新至最新的状态,也不能清晰的看见材质个个 图层的层级关系,只能靠记忆力。。。。。置换贴图在模型转角处会炸裂开...而在max中可以用平滑组或者vraydisplacement3d模式的“保持连续性”来解决问题,不知道有没有大 神知道解决办法....球形的对象贴贴图各种麻烦,没有包裹模型等等等........啊啊啊啊啊!吐槽完了,抱歉!

首先允许我啰嗦一下,让我简单地阐述一下材质的作用,希望大家耐心的看完这一小段。通常当建好模以后,就会按照之前设想给模型贴上材质,相信很多初学者都有这样的经验,贴完材质以后渲染出来就像一个玩具,而不像一个建筑,尤其是模型较为简单的情况下,感觉会更加突兀。个人觉得是场景的“复杂”程度影响了整体的真实性,这个“复杂”不单是指模型形体有多丰富,这个“复杂”包含了模型的复杂程度和材质、灯光的复杂程度,整体越是“复杂”的场景,就越是能干扰人的判断,只要能把握住人对现实世界的印象的捕捉规律,就能创造出所 谓“真实”。假如是一个非常复杂的城市模型,也许随便给些材质就能渲出不错的感觉来,但要是只给你一堵墙,也就是一个长方体,如何处理它的材质,如何做 出一堵墙的感觉来,是有一定学问的。在模型简单的情况下,就应该提升材质的细节程度,把握材质的特征,这就需要我们对材质的理解、丰富的想象能力和对软件的灵活运用。 下面是我用3dsmax制作的一个场景,可见建筑的模型非常简单。 要是只简单地根据自己的意愿往上贴贴图而没有思考应有的细节,就很有可能渲染出下图那样拙劣的效果【我是故意做得特别挫,以增强前后的对比,咳咳】

3DMAX贴图制作教程

3DMAX贴图制作教程 贴图是物体材质表面的纹理,利用贴图可以不用增加模型的复杂程度就可突出表现对象细节,并且可以创建反射,折射,凹凸,镂空等多种效果。比基本材质更精细更真实。通过贴图可以增中模型的质感,完善模型的造型,使你创建的三维场景更接近现实。 3D Studio MAX中最简单的是Bitmap 在材质的同一层极赋予多个贴图,还可以通过层极的方式使用复合贴图来混合材质。 6.3.1 贴图的类型 3D Studio MAX的所有贴图都可以在Material/Map Browser材质/贴图浏览器中找到。不同的贴图组成在不同的目录下,如图6-43所示。 图6-43 贴图清单 2D Maps二维贴图:二维平面图像,用于环境贴图创建场景背景或映射在几何体表面。最常用也是最简单的二维贴图是Bitmap。其它二维贴图都是由程序生成的。

3D Maps三维贴图:是程序生成的三维模板,如Wood木头,在赋予对象的内部同样有纹理。被赋予这种材质的物体切面纹理与外部纹理是相匹配的。它们都是由同一程序生成。三维贴图不需要贴图坐标。 Compositors复合贴图:以一定的方式混合其它颜色和贴图。 Color Modifier颜色修改器:改变材质像素的颜色。 Other Map其它贴图:是用于特殊效果的贴图,如反射、折射。 以上介绍的几种类型的贴图都将被应用到材质贴图中。进入材质编辑器,在Map 卷展栏中材质选择贴图。卷展栏中色彩直接与材质的基本参数相关。只要单击None按钮就会弹出贴图浏览器,可以选择任何一种类型的贴图作为材质贴图,如图6-44所示。 图6-44 贴图卷展栏 6.3.2 贴图的坐标 如果赋予物体的材质中包含任何一种二维贴图时,物体就必须具有贴图坐标。这个坐标就是确定二维的贴图以何种方式映射在物体上。它不同于场景中的XYZ 坐标系,而使用的是UV或UVW坐标系。每个物体自身属性中都有Generate Mapping Coordiantes生成 我们可以通过UVW Map修改器为物体调整二维贴图坐标。不同的对象要选择不同的贴图投影方式。在UVW MAP修改器的参数卷栏中可以选择以下几种坐标。 · Planar平面:平面映射方式,贴图从一个平面被投下,这种贴图方式在物体只需要一个面有贴图时使用,如图6-45所示。

Photoshop教程制作材质贴图技巧

在Photoshop中创作材质贴图不是在白纸上画画这么简单,它更需要艺术家眼手协调地处理好色彩,混合,自定义笔刷及大量的素材元素。 这篇文章中收集了许多实际有效的Photoshop材质技法。 图层 成为一个好的材质艺术家需要学会有目的性的使用Photoshop的图层系统来完成无损材质的创建。使用许多图层也能够确保各种不同材质混合在一起时最终效果的统一、协调。 无损材质的创建方式意味着你需要为以后可能修改的细节单开图层来保护其中的内容。所以,最好的办法就是使用大量的图层。尽管大量的图层会导致PSD文件大小的增加且占有大量的系统内存,但是这意味着你将获得更流水化更高效的工作方法。 过去的经验常常告诉我们,绘制不同的细节在不同的层上。比如,你在为生物绘制皮肤材质时想在上面画一些皱纹。这个时候,最好是新起一个图层,然后在这个图层里绘制这些皱纹。为什么要这么麻烦?这很简单。如果你直接在皮肤层上画这些皱纹,过了一会,很有可能你想要修改或者擦除不合适的地方。那时,光修复皮肤图层的工作就足够你烦的。相反,之前要是建立了相应的图层,你可以很轻松删除或是擦掉不需要的细节。 使用分层的方法还可以让你充分的利用Photoshop强大的混合模式,这个稍候再详细讨论。 创作技巧:千万记得为你的图层命名。当你在公司里商业流水线工作时,有时你不得不把文件传给你的同事来实现协同工作。有逻辑的命名有助于其他人理解你工作的思路,这也有利于帮助他们也包括你自己迅速的找到相应的图层。相信我,这个世界上没有什

么会在比超过一百多的层且都没有命名的psd文件里找所需图层更可怕的事情。所以,避免你我他都头疼的问题,养成命名图层好习惯。 图1 调节层 调节层(Adjustment Layers)是Photoshop中最优秀的合成工具之一。它的工作方式和图像菜单下的那些调节命令是一样的。调节层的功能强大的可怕,它在图层面板窗口中生成一个控制层并影响它下面所有的图层。除此之外,它一样保留着层属性,这就意味着不同的混合模式、遮罩以及透明度的相关设置都是有效的。 要创建调节层,先点击图层面板底部的图标。绝大部分的Photoshop调节命令都可以通过调节层来实现,选择你想使用的命令就可以创建调节层了。 创建的调节层旁边会有一个半黑半百的图标示意,并且会自动弹出调节对话框供你做更进一步的调整。

《BTS高级角色纹理贴图教程》面部贴图技术要点阐述解析

《BTS高级角色纹理贴图教程》面部贴图技术要点阐述解析 一:漫反射贴图 1:素材的选择 原则是选择大尺寸,高像素,尽量少的高光和阴影。原教程上是他们自己照的。 2:素材的调整 在ps里调整要投影的素材照片,画布大小调整成方形。作用是防止图片拉伸(图1)(个人感觉:如果对照片进行调色如调整“对比度”“色阶”等,建议把用到的几张照片拉到一张图片里集体调,这样能避免一些重复劳动和素材的颜色统一的问题。) 3:zbrush投影大师映射贴图 步骤流程: 1:三维软件(MAX ,MAYA等)导出OBJ格式文件。ZB导入模型后,调整与要映射的照片一样的角度。这时可以细分模型使其看起来比较光滑。 2:创建纸张和更改显示模式为FAST,以便于观察(图2.图3) 3:进入投影大师模式,导入图片(image plane为插件)用缩放,移动,使图片与模型大小对齐,鼠标左键点选图片部分进行微调对齐。图4,5,6,7 4:退出投影大师,并且上下翻转贴图并输出保存。图8 5:再次投影其它角度。这时候会出现一个问题就是载入图片的时候,会载入上一张,这个时候应该点“texture”里的Import导入想要投影的照片。图9 “图2

图3 图4

图五 图6

图7 图8

9

4:PS里的平拼接 这个无非是拼接和对称什么的,要做成什么样子,大家大概也都知道,就是把投影出来个各个角度的图片在PS里拼合成一张,不要有明显反而缝隙和脏痕非常值得注意的是尽量少用或者不用图章工具,用多了会贴出来的效果会很脏,且丢失细节,最好的是选择相近的皮肤去覆盖后擦除边缘。个人发现了一个简单的对称方法,(图10)还有新手最好不要用橡皮擦去擦除多余的部分,万一擦过了没有办法后悔,最好是用“蒙板”用黑笔刷画,画多了可以换成白笔刷刷回来。(图11)

金属的贴图和设置

很多人因为金属的贴图和设置方面有很多不明白的地方。特别是不锈钢类的材质。这里谈一点体会。 金属的外观工作原理: 金属是一种具有大量自由电子的的物质。这样在金属的表面游离着一层不会逃逸的自由电子,自由电子的多少和受金属原子的大小限制也很大,其中金属键的强弱起很大的作用。这样,各种不同的金属具有自己不同的光泽和色彩。所以,在MAX中,有一个材质shader 是专门用来模拟金属物体的,从重金属到轻金属,任何金属物体都能模拟。如果你模拟不出来,那么请打一下自己的耳光,检查一下自己是否把MAX搞明白了,是否知道了物体的表面特性的实际知识。 金属分有色金属和黑金属两重。比如黄金属于有色金属。铝、铁等是黑金属。有色金属的diffuse色彩就调成金属的固有色。如果使用standard材质就要根据反射贴图的强弱调整,(diffuse的亮度÷2.55)+反射数值=100为真实情况。如果需要增强贴图来减少真实灯光布置的工作量,那么这个树脂可以高于100。黑金属则把diffuse调整为黑色或灰色,如果你想成为高手,请把它调整为黑色。因为黑色的DIFFUSE才是最真实的。 有些金属表面有生锈、污渍等东西。必须使用混合贴图和一层一层的蒙板来完成。这里不予讨论。这里要讨论的是解决光洁的金属表面。如果使用raytrace材质,那么就用考虑“(diffuse 的亮度÷2.55)+反射数值=100”,因为计算机自动把raytrace设置成真实的物理计算。反射提高,diffuse就降低。如果有折射存在的话,先反射后折射最后剩下的就是DIFFUSE的作用了。如果不是必要,请不要使用raytrace材质。虽然它调整起来工作量小,但是它需要较真实的环境和大量的渲染计算量。 金属的高光决定了金属的色泽(重金属和轻金属)。金属的颜色决定了是否为有色金属和黑色金属。如此之外,金属最强烈的视觉效果就是反射。如果你的场景足够真实,灯光足够丰富,并且能够有充足的时间来计算和渲染你的场景,那么请使用raytrace贴图做反射。(standard材质)否则,这里就要用另一种方法来模拟。 另一种模拟就是贴图模拟。可以在reflection中使用一张贴图,并模糊掉。这个技术在很早以前就存在了,并一直存在与MAX自带的材质库中。你们可以去看看。 但是这个技术有一个问题,用于曲面光滑的物体效果很不错。用于平面如BOX物体就根本不象不锈钢。 发生这个问题的原因是因为那张贴图太小了,内容过于稀少。而且现实中很少有非常平的面。如果能够看到非常平的金属表面,它实际上表现的更象一面镜子。只不过,平金属表面常有加工的痕迹,一般都是圆周型的,所以你可以在上面看见扇形的高光,类似于光碟的扇形色彩。如果一要模拟平面的金属,那么你需要一张非常大的非常丰富的而且有一定要求的图片。 非常大的,丰富的图片,最好的就应该是一张360全景照片。并使用圆柱或者球形的环境贴图坐标。使用360全景照片,仍然不能满足一些要求,比如天空,在真实情况中,天空具有及其强烈的照明效果。这样,当这张图片反射在物体表面的时候,仍然会有所失真。因为亮度需要高的地方无法达到要求。毕竟一张图片最亮的地方才255。这样,就需要在output的选项中调整各项数值,让MAX能够模拟出高亮度动态信息图片。这就是很久以前传说中的

相关文档
最新文档