凹凸贴图、法线贴图、置换贴图
- 格式:doc
- 大小:41.50 KB
- 文档页数:7
3D游戏常⽤技巧NormalMapping(法线贴图)原理解析——基础篇1、法线贴图基本概念 在制作3D游戏时,常常遇到这样⼀个问题:⼀个平⾯,这个平⾯在现实中并不是⼀个“平”⾯,例如砖墙的表⾯带有⽯质浮雕等等。
这种情况下如果只是简单的做⼀个平⾯,则让⼈感觉严重失真,如图1所⽰;⽽如果⽤很密集的三⾓形去表⽰这类略有凹凸的表⾯,则性能上⼤⼤下降。
研究⼈员发现,⼈眼对物体的凹凸感觉,很⼤程度上取决于表⾯的光照明暗变化,如果能通过⼀张贴图在⼀个平⾯上表现出由凹凸造成的明暗变化,则可以让⼈眼感觉这个平⾯是凹凸不平的(虽然这个平⾯还是平的)。
法线贴图正是为了这个⽬的⽽产⽣的。
图1 不同细节程度的蜡烛 准确的说,法线贴图是Bump Mapping(凹凸贴图)的其中⼀种。
第⼀个Bump Mapping由Blinn在1978年提出,⽬的是以低代价给予计算机⼏何体以更丰富的表⾯信息。
30年来,这项技术不断延展,尤其是计算机图形学成熟以后,相继出现了不少算法变体,法线贴图就是其中很重要的⼀种。
研究⼈员对法线贴图进⼀步改进,出现了Parallax Mapping(视差贴图), Relief Mapping等技术,实现了更逼真的效果。
本⽂仅针对法线贴图进⾏介绍。
⼀条法线是⼀个三维向量,⼀个三维向量由x, y, z等3个分量组成,在法线贴图中,把(x, y, z)当作RGB3个颜⾊的值存储(如图2),并将其每个分量映射到[-1, 1]。
例如,对于x, y, z各有8位的纹理,[0, 128, 255]表⽰法向量(-1, 0, 1)。
图2 利⽤彩⾊通道存储法线贴图2、切线空间 法线贴图中存储的法线最初是定义在世界空间中,但在实际中,这种⽅式很少见,因为只要物体移动,法线贴图则不再有效。
另⼀种⽅式就是将法线存储在物体的局部空间中,物体可以进⾏刚体变换(平移,旋转,缩放),法线贴图依旧有效,但是这种⽅法并不能应对任何⽅式的变换,并且法线贴图不能在不同物体进⾏复⽤,增加了美⼯的负担。
纹理surface 基础概念"纹理"(Texture)和"表面"(Surface)是计算机图形学中常用的两个概念,它们在图形渲染和计算中有着不同的含义。
纹理(Texture):纹理是一种二维图像,通常被应用到三维模型的表面以模拟真实世界的外观。
纹理可以包含颜色信息、法线信息、透明度信息等。
在计算机图形学中,纹理经常用于增加模型的表面细节和真实感。
常见的纹理类型包括:-漫反射贴图(Diffuse Map):包含物体的基本颜色信息。
-法线贴图(Normal Map):用于模拟表面的凹凸。
-镜面反射贴图(Specular Map):用于模拟表面的光泽度。
-置换贴图(Displacement Map):用于改变表面的形状。
在计算机图形编程中,纹理由像素组成,每个像素包含一个或多个颜色分量。
图形渲染引擎会使用纹理映射到三维模型的表面,以显示出模型的细节和颜色。
表面(Surface):表面通常指的是在计算机图形学中描述物体的外观和属性的数据结构。
表面可以包含几何信息(如顶点坐标)、材质信息(如漫反射颜色、镜面反射等)、法线信息等。
表面可以与纹理结合使用,从而获得更为复杂和真实的外观。
例如,一个三维模型的表面可能由一个包含几何信息的表面数据结构和一个包含纹理信息的纹理对象组成。
在一些图形编程接口中,表面的概念可能会被更具体地表示为"表面"对象(Surface Object)或"绘制表面"(Render Target)。
这些表面对象通常用于指定图形渲染的目标,如渲染到纹理、渲染到帧缓冲等。
总的来说,纹理和表面都是在计算机图形学中用于描述和渲染物体外观的关键概念。
它们通常一起使用,以创建逼真的图形效果。
探索Blender的模型修饰和细节添加技巧Blender是一款功能强大的3D建模和动画软件,它为用户提供了各种各样的工具和功能,使得模型的修饰和细节添加变得更加容易和便捷。
无论您是初学者还是有经验的用户,本文将为您介绍一些Blender 中常用的模型修饰和细节添加技巧。
1. 使用顶点、边缘和面的修饰工具在Blender中,您可以使用顶点、边缘和面的修饰工具来改变模型的形状和细节。
通过选择相应的模式(编辑模式),您可以对模型进行编辑和修改。
- 顶点修饰工具:选择顶点模式,然后使用移动、旋转和缩放工具来改变顶点的位置和属性。
您还可以使用顶点选项卡中的Smooth和Subdivide功能来使模型表面更加平滑和细致。
- 边缘修饰工具:在边缘模式下,您可以使用Bevel、Loop Cut和Slide等工具来改变模型的边缘形状和细节。
这些工具可以让您轻松地添加或修改模型的边缘,从而获得更多的细节和效果。
- 面修饰工具:在面模式下,您可以使用Inset、Extrude和Bridge等工具来改变模型的面的形状和细节。
这些工具能够让您快速地添加或修改模型的面,以实现更多的效果和细节。
2. 使用模型修饰器和材质Blender中的模型修饰器(Modifier)是一种非常强大的工具,它可以通过应用一系列的修饰器来改变模型的形状和细节。
模型修饰器的使用不仅可以减少手工修饰的工作量,还可以实现更加复杂和高级的效果。
常用的模型修饰器包括:Subdivision Surface、Mirror、Array和Boolean等。
您可以根据需要选择合适的修饰器,并根据需求进行设置和调整。
这些修饰器可以帮助您快速地改变模型的形状和细节,从而达到更好的效果。
除了模型修饰器,Blender中的材质也是添加细节的重要工具。
通过创建和调整材质,您可以为模型表面添加纹理、颜色和光照效果,从而增加模型的真实感和细节。
3. 使用雕刻工具进行细节添加除了使用修饰工具和模型修饰器之外,您还可以使用Blender中的雕刻工具进行模型的细节添加。
3ds Max常用贴图通道介绍材质表面的各种纹理都是通过贴图产生的,使用时不仅可以像贴图一样进行简单的纹理涂绘,还可以按各种不同的材质属性进行贴图。
下面就介绍一些比较常用的贴图通道。
一、漫反射颜色贴图通道,用于表现材质的纹理效果,例如为墙壁指定砖墙的纹理图案,就可以产生砖墙的效果,如图1所示。
图1二、高光颜色贴图通道,高光颜色贴图是在物体的高光处显示出贴图效果,常在制作扫光的时候大显身手,如图2所示。
图2三、高光级别贴图通道,主要通过位图或程序贴图来改变物体高光部分的强度,贴图中白色的像素产生完全的高光区域,而黑色的像素则将高光部分彻底移除,处于两者之间的颜色不同程度地削弱高光强度。
通常情况下,为达到最佳的效果,高光级别贴图通道与光泽度贴图通道经常同时使用相同的贴图,如图3所示。
图3四、光泽度贴图通道,主要通过位图或者程序贴图来影响高光出现的位置。
根据贴图颜色的强度决定整个表面上哪个部分更有光泽,哪个部分光泽度低些。
贴图中黑色的像素产生完全的光泽,白色像素则将光泽度彻底移除,两者之间的颜色不同程度地减少高光区域面积,如图4所示。
图4五、自发光贴图通道,将贴图以一种自发光的形式贴在物体表面,图像中纯黑色的区域不会对材质产生任何影响,其他的区域将会根据自身的灰度值产生不同的发光效果。
自发光意味着发光区域不受场景中灯光的影响,如图5所示。
图5六、过滤色贴图通道,此贴图基于贴图像素的强度应用透明颜色效果,可以将贴图过滤色与体积照明结合起来创建像有色光线穿过脏玻璃窗口的效果,透明对象投射的光线跟踪阴影由过滤色进行染色,如图6所示。
图6七、各向异性贴图通道,贴图控制各向异性高光的形状,大致位于光泽度参数指定的区域内,黑色值和白色值具有一定影响,具有大量灰度值的贴图(如噪波或衰减)可能非常有效。
各向异性贴图的效果并不十分明显,除非高光度非常高,而光泽度非常低。
减少各向异性贴图的“数量”会降低该贴图的效果,同时提高“基本参数”卷展栏上“各向异性”值的效果。
高级渲染技巧:Blender材质贴图解析Blender是一款强大的开源3D建模和渲染软件。
在Blender中,材质贴图是创建逼真场景的重要组成部分之一。
本文将介绍一些高级的渲染技巧,以帮助您掌握Blender材质贴图的使用。
一、理解Blender材质贴图在Blender中,材质贴图可以用于模拟物体表面的外观和纹理。
它可以给模型增加颜色、纹理、反射或折射效果。
贴图有多种类型,包括漫反射贴图、法线贴图、光照贴图等。
1. 漫反射贴图:漫反射贴图是最基本的材质贴图类型之一。
它决定了物体的颜色和表面的反射率。
使用漫反射贴图,可以为模型添加具有细节和变化的纹理效果。
2. 法线贴图:法线贴图用于模拟物体表面的凹凸细节。
通过改变顶点的法向量,可以在表面上形成凹凸的效果,使物体更加真实。
3. 光照贴图:光照贴图用于模拟环境光对物体的影响。
通过在模型表面应用光照纹理,可以增强逼真性和阴影效果。
二、使用Blender材质贴图在Blender中使用材质贴图可以通过以下步骤实现:1. 导入贴图:首先要将贴图文件导入到Blender中。
在Blender的材质界面中,选择“纹理”选项卡,然后点击“新建纹理”。
在弹出的对话框中,选择贴图文件并导入。
2. 分配材质:将贴图应用到模型上需要先为模型创建材质。
在Blender的编辑界面中,选择模型并进入编辑模式。
然后,在材质界面中选择“新建材质”按钮,并选择合适的材质类型。
3. 贴图映射:一旦材质创建完成,可以开始将贴图映射到模型上。
在材质界面的纹理选项卡中,选择导入的贴图,并在“映射”选项中选择适当的贴图投影方式,如UV、球形或盒形投影。
4. 贴图调整:根据模型的需求,可以在材质界面中调整贴图的参数。
例如,可以调整贴图的缩放、平铺或旋转,以适应模型的尺寸和比例。
5. 预览和渲染:在完成贴图设置后,可以在Blender的渲染视图中预览模型的外观。
可以通过调整光照、摄像机角度和材质参数等来改善渲染效果。
制作逼真金属效果的Blender技巧在Blender中,制作逼真的金属效果可以为您的三维作品增添细节和真实感。
以下是一些使用Blender软件的技巧,帮助您制作逼真的金属效果。
1. 使用PBR材质:PBR(Physically Based Rendering)技术可以模拟真实世界中材质的物理特性。
在Blender中,您可以使用Cycles渲染引擎,使用PBR材质节点来创建逼真的金属效果。
首先,在材质面板中选择“Principled BSDF”节点。
然后调整基色、粗糙度、金属度和法线等属性,以实现金属的外观。
2. 使用环境贴图:环境贴图能够模拟出周围环境中的光照和反射,增强金属效果的逼真感。
在Blender中,您可以通过添加HDR贴图来模拟不同环境中的光照效果。
选择材质节点中的“环境贴图”选项,并导入所需的HDR图像。
调整强度和旋转等属性,以使贴图与物体的形状和光照一致。
3. 使用法线贴图和凹凸贴图:法线贴图和凹凸贴图能够在表面上模拟出微小的凹凸和细节,使金属效果看起来更逼真。
在Blender中,您可以在材质节点中选择“法线贴图”和“凹凸贴图”选项,并导入相应的贴图文件。
调整强度和置换值等属性,以实现所需的效果。
4. 使用高光和反射:高光能够模拟出金属表面上的明亮区域,反射则能够反映出周围环境的图像。
在Blender中,您可以调整材质节点中的高光和反射属性,以增强金属效果的真实感。
适量的高光和反射能够使金属看起来更加光滑和闪亮。
5. 调整环境光和强度:环境光和强度的调整是制作逼真金属效果的关键。
在Blender中,您可以通过调整灯光和环境光的位置、强度和颜色等属性,达到所需的效果。
合理的环境光和强度设置能够使金属表面产生逼真的阴影和高光效果。
6. 使用粒子系统:粒子系统在创造金属物体时能够增添细节和真实感。
在Blender中,您可以使用粒子系统模拟出金属表面上的尘埃、氧化物或刮痕等效果。
选择物体并在属性面板中选择“粒子系统”。
Unity3D美术方面贴图我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性。
在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了。
我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助。
01首先不得不说的是漫反射贴图:漫反射贴图diffuse map漫反射贴图在游戏中表现出物体表面的反射和表面颜色。
换句话说,它可以表现出物体被光照射到而显出的颜色和强度。
我们通过颜色和明暗来绘制一幅漫反射贴图,在这张贴图中,墙的砖缝中因为吸收了比较多的光线,所以比较暗,而墙砖的表面因为反射比较强,所以吸收的光线比较少。
上面的这张图可以看出砖块本身是灰色的,而砖块之间的裂缝几乎是黑色的。
刨去那些杂糅的东西,我们只谈明显的,漫反射贴图表现了什么?列举一下,物体的固有色以及纹理,贴图上的光影。
前面的固有色和纹理我们很容易理解,至于后面的光影,我们再绘制漫反射贴图的时候需要区别对待,比如我们做一堵墙,每一块砖都是用模型做出来的,那么我们就没有必要绘制砖缝,因为这个可以通过打灯光来实现。
可是我们如果用模型只做了一面墙,上面的砖块是用贴图来实现,那么就得绘制出砖缝了。
从美术的角度,砖缝出了事一条单独的材质带外,还有就是砖缝也是承接投影的,所以在漫反射图上,绘制出投影也是很有必要的,如下图:没有什么物体能够反射出跟照到它身上相同强度的光。
因此,让你的漫反射贴图暗一些是一个不错的想法。
通常,光滑的面只有很少的光会散射,所以你的漫反射贴图可以亮一些。
漫反射贴图应用到材质中去是直接通过DiffuseMap的。
再命名规范上它通常是再文件的末尾加上“_d”来标记它是漫反射贴图。
凹凸贴图Bump maps凸凹贴图可以给贴图增加立体感。
它其实并不能改变模型的形状,而是通过影响模型表面的影子来达到凸凹效果的。
再游戏中有两种不同类型的凸凹贴图,法线贴图(normalmap)和高度贴图(highmap)。
在这个教程中我将讲述在Cinema 4D中如何生成和使用法线贴图(Normal Maps)。
法线贴图现在已经在主流三维平台上被广泛应用。
Cinema 4D R9.5版本开始支持法线贴图的功能。
使用法线贴图可以在不增加多边形面数的情况下增加模型细节,这样做的好处是可以节省系统资源并且渲染速度快(相对于使用置换贴图(Displacement Maps))。
法线贴图与置换贴图有一些区别,但是它和凹凸贴图(Bump Maps)有点类似。
凹凸贴图(Bump Maps)只能影响物体表面细节,而法线贴图(Normal Maps)则不同,它只有一件事做不了,就是不能改变物体的轮廓(Silhouette),那只有置换贴图(Displacement Maps)才能做到。
通常情况下我们会联合使用法线贴图(Normal Maps)和置换贴图(Displacement Maps),也就是先使用置换贴图(Displacement Maps)改变物体的实际轮廓再使用高分辨率的法线贴图(Normal Maps)为物体添加更多的细节。
据我所知,Weta工作室在电影《指环王》中应用了这种技术,在影片《The Cave Troll》中法线贴图技术展现了令人惊叹的细节。
如今,这项技术已经广泛应用于游戏行业,如Doom 3和半条命(Halflife)2。
生成法线贴图(Normal Maps)的过程本质上是一个艺术创作的过程。
比如说你需要生成一个法线贴图(Normal Maps)来创作一个高分辨率模型的过程。
一般情况下,我们通常先制作一个低分辨率模型,然后对它应用法线贴图(Normal Maps)。
更多的三维艺术家使用Zbrush来制作高分辨率模型,因为它拥有强大的雕刻工具,并能轻易地处理上百万的多边形。
我不用Zbrush,因为用其它的方法也能获得高模物体。
在这个教程中我将叙述如何生成法线贴图(Normal Maps)并会给大家一些应用实例。
置换贴图DisplacementMapping视差贴图和法线贴图都是使⽤特定的⼿段来达到欺骗视觉的⽬的,让⼈以为物体的表⾯是凹凸起伏的。
⽽置换贴图却是真的将模型的顶点进⾏偏移,在原本的平⾯上创造出凹凸的效果。
既然是对顶点进⾏偏移,那么就需要模型有⾜够多的顶点数量,否则达不到⽐较好的效果。
为了达到⾜以置换的顶点数量,⼀般会使⽤ Tessellation 技术来增加低模的⾯数。
查阅了相关资料,Tessellation 是 DirectX11 才有的技术,OpenGL 要到 4.0 才能使⽤。
对于 Tessellation 知道的并不多,再加上移动平台根本⽆法使⽤,就没有去看这部分的内容,这⾥也不会涉及到。
其实⽬前来看 Tessellation 技术并不是⾮⽤不可,很多情况下还是光照和贴图起到更⼤的作⽤。
看下要实现的效果,是⼀个转动的地球。
地球的表⾯并不是平坦的,每⼀块陆地都是有凸起的,并且可以看到凸起的陆地上⼭脉和沟壑。
球模型本⾝是 1200 ⾯。
置换前效果置换后效果置换后效果⾸先是在顶点阶段采样⾼度纹理,将采样到的颜⾊作为⾼度数据偏移顶点坐标(在顶点阶段采样纹理是sm3.0才⽀持的,我记得看到过什么资料上说 sm3.0 还是 2.0 是 DirectX 的叫法,和 OpenGL 没关系,不知道对不对。
编译选项需要加上 #pragma glsl,让编译器把 cg 代码直接编译成 glsl,⽽不是中间代码,否则会报错)。
可以看到如下效果。
// vertex shadero.wnormal = mul (i.normal, (float3x3)_World2Object);float dispValue = tex2D (_DisplacementMap, i.texcoord.xy).r * _DisplacementAmount;o.wpos = mul(_Object2World, i.vertex);o.wpos.xyz += o.wnormal * dispValue;o.pos = mul(UNITY_MATRIX_VP, o.wpos);地形表⾯已经有了凸起效果了。
快速优化模型贴图:Blender的纹理映射技巧在使用Blender软件进行建模和渲染时,纹理映射是非常重要的一步。
通过合理地使用纹理映射技巧,可以使模型的外观更加逼真,同时也能有效减少材质贴图的大小,提高渲染效率。
本文将介绍一些Blender中快速优化模型贴图的技巧,以帮助读者更好地使用此软件。
1. UV展开优化:在进行纹理映射前,首先需要对模型进行UV展开。
为了减少模型的顶点数量,可以尝试使用Blender的自动展开功能,或者手动调整UV布局以减小纹理的拉伸。
同时要尽量避免重叠的UV面,以免导致绘制时的混乱。
2. 纹理尺寸优化:在贴图制作时,使用合适的纹理尺寸可以有效减少文件大小并提高渲染效率。
对于小尺寸和低细节的模型,可以考虑使用较小的纹理尺寸,如512x512或256x256。
对于大尺寸和高细节的模型,可以选择更高分辨率的纹理,如2048x2048或4096x4096。
3. 压缩纹理贴图:在导出贴图之前,可以尝试使用Blender内置的压缩功能对纹理进行压缩。
选择合适的压缩格式,如JPEG、PNG或DDS,可以有效减小贴图文件的大小,同时保持良好的视觉效果。
注意,压缩质量过高可能会导致细节损失,因此需要根据模型和纹理的需求进行权衡。
4. 纹理图层混合:当一个物体有多个纹理图层时,可以使用Blender的纹理混合功能进行优化。
通过将多个纹理图层的效果进行混合,可以减少渲染时的纹理计算量。
使用混合模式,如叠加、正片叠底或亮度混合,可以实现不同纹理图层之间的精细细节和色彩融合。
5. 纹理平铺和偏移:为了在纹理上实现更多的细节和变化,可以尝试使用纹理的平铺和偏移功能。
在Blender中,可以通过调整纹理的重复次数和偏移量来使纹理在模型上更加自然和连续。
通过合理地利用平铺和偏移,可以减少纹理映射的拉伸和压缩,并增加表面细节的丰富度。
6. 贴图烘焙:当模型有复杂的凹凸纹理时,可以使用贴图烘焙功能来提高渲染效果和减少计算量。
VRay材质属性全面解析介绍VRay是一款常用于3D渲染的软件,拥有丰富的材质属性,可以为模型赋予逼真的纹理和光照效果。
本文将全面解析VRay材质属性,帮助您了解如何使用和调整这些属性。
属性解析1. 颜色属性- Diffuse(漫反射):影响模型表面的基本颜色。
- Reflection(反射):控制模型表面的反射强度和颜色。
- Refraction(折射):模拟透明物体的折射效果。
- Glossiness(光泽度):调整模型表面的光滑程度。
2. 纹理属性- Bump map(凹凸贴图):给模型表面添加凹凸感,增加真实感。
- Displacement map(置换贴图):通过修改模型几何细节来增强真实感。
- Normal map(法线贴图):用于创建模型表面的凹凸感。
3. 光照属性- Emissive(自发光):模拟发光的物体。
- Global Illumination(全局光照):考虑光线在场景中的传播和反射,增强真实感。
- Caustics(焦散效果):模拟光线在透明物体中产生的聚焦效果。
4. 其他属性- Fresnel reflection(菲涅尔反射):模拟物体表面不同视角下的反射变化。
- Subsurface scattering(次表面散射):模拟光在半透明物体中的穿透和散射效果。
- Opacity(不透明度):控制材质的透明度。
使用技巧- 调整光泽度可以使材质表面看起来更光滑或更粗糙,控制物体的光感。
- 给模型添加凹凸贴图可以增加细节和真实感。
- 利用法线贴图可以在不修改模型几何的情况下创建出凹凸质感。
- 调整反射和折射属性可以实现不同材质的效果,如玻璃、金属等。
- 利用全局光照和焦散效果可以增强场景的真实感。
希望本文的解析对您理解和使用VRay材质属性有所帮助,让您的渲染效果更加逼真。
如果需要更深入的了解,建议参考VRay 的官方文档和教程。
先自我介绍……你要是说这是自我炒作我也认了。
首先说明,FXCarl是一个对3D美术一窍不同的家伙。
虽然很想往技术美工方向发展了。
因为是学程序出身,眼下能做的也就是写写Shaders。
等到手上的项目做完,会公开始用的实时光照模型……不过那是后话了。
现在只是想配合一下这两天大家讨论的热火朝天的Normal Map,在这里和占大多数的美术人员从另外一个角度来谈谈“凹凸贴图技术”首先我想说,对于凹凸贴图在计算机图形领域中的研究,最早开始于70年代末,至今已经有接近30年历史了。
Normal Map只是一种目前很流行的凹凸贴图技术,而这里将会介绍一些目前游戏和在XBOX360和PlayStation3这种新世代主机上将会运用的凹凸贴图技术。
1.Bump Mapping做过CG的朋友一定比FXCarl还要更早的认识Bump Map。
这种贴图是一种灰度图,用表面上灰度的变化来描述目标表面的凹凸,因此这种贴图是黑白的,如果节省空间的画,甚至可以把贴图的Alpha通道征用来用作Bump。
值得注意的是,这种贴图表面上存储的东西是高度域--即每个点和原始表面的高度差,记住,每个点的颜色不是色彩,是高度,一个数值!因此,对这个贴图做任何的操作都会影响到这个物体3D的外观质感。
不能凭感觉用事。
在游戏中,所使用的算法确切的说应该叫做fake bump mapping ,假凹凸贴图。
因为在游戏中Bump Map并没有改变物体的表面而只是影响光照的结果,欺骗眼睛而已。
最简单的做法是,直接把Bump Map叠加在已经渲染好的表面上,造成亮度上的扰动,从而让人以为是凹凸的--这个很容易理解,把一面白色的墙面有技巧的部分划成灰色就会变成蚀痕,这些诸位会比小的更擅长。
而计算复杂度是基本加减法。
这个所谓的Fake Bump Mapping 从Geforce2就开始硬件支持,但是从来没有大范围的应用过。
不过有趣的是,Bump Map这个东西却从未过时,在后来的渲染算法中,其储存表面高度域的特性仍然发挥着巨大的作用。
置换贴图使用置换贴图来改变曲面位移贴图可以使曲面的几何体产生位移。
它的效果与使用置换修改器相类似。
与凹凸贴图不同,置换贴图实际上更改了曲面的几何体或面片细分。
位移贴图应用贴图的灰度来生成位移。
在 2D 图像中,较亮的颜色比较暗的颜色更多的向外突出,导致几何体的 3D 置换。
警告置换贴图会在每个曲面上生成许多个三角形面,有时生成的面会超过1M。
但置换贴图可以创建好的效果,不过会耗费大量的时间和内存。
对于包含面片或曲面的对象,位移量会被测量为边界框对角线的百分比。
这使置换效果对于对象中的所有曲面来说都是一致的,并且也意味着在缩放对象时,位移也会同样缩放。
可以将位移贴图直接应用到以下种类的对象中:∙Bezier 面片∙可编辑网格∙可编辑多边形∙NURBS 曲面对于其他各种几何体,例如基本体、扩展基本体、复合对象等等,不可以直接应用位移贴图。
要对这些种类的对象使用位移贴图,可以应用置换近似修改器。
这使得对象的曲面可以产生位移。
“置换近似”可以处理任何能转换成可编辑网格的对象。
位移贴图在视口中不可见,除非应用修改器。
∙对于 NURBS 曲面,可以使用位移 NURBS世界空间修改器,来使位移贴图在视口中可见,并作为一个网格对象而具有可编辑性。
∙对于可编辑网格和应用了“置换近似”的对象,使用位移网格修改器可以达到同样的效果。
注意如果将UVW 贴图修改器应用到曲面,那么除位移贴图外,所有其他的贴图都从修改器上获取它们的坐标,而位移贴图总是从初始曲面或“置换近似”修改器上获取它的坐标。
在某些情况下,如当基本网格非常简单时,可编辑网格的置换贴图可能会因为细分基本网格的方式而产生问题。
(在将位移贴图应用到 NURBS 曲面上时不会发生这些问题。
)当发生这种问题时,平滑将不能正常工作,并且可以在曲面本身中看到基本线框网格。
要更正这个问题,使用这些技术:∙避免将置换贴图应用到单一颜色的大片区域。
映射漫反射颜色的贴图,并在用作漫反射颜色的贴图中使用少量的变化,诸如微量的噪波。
3d美术英语专业词汇英文回答:3D Art Terminology for English Majors.3D Modeling: The process of creating three-dimensional objects using digital tools.Animation: Adding movement to objects or characters.Baking: Process of merging multiple layers or mapsinto a single texture.Bevel: To add a sloped or rounded edge to an object.Bounding Box: A box that defines the spatial dimensions of an object.Bump Map: A texture map that adds the illusion of depth to a surface.Cinematic: Relating to the techniques and conventions of filmmaking.Diffuse Map: A texture map that determines the color of an object.Displacement Map: A texture map that modifies the geometry of an object.Dystopian: A genre characterized by a dark, pessimistic future.Edge Loop: A series of vertices and edges that form a loop around an object.Extrusion: The process of creating a new shape by extending part of an existing object.Facet: A flat surface on a 3D object.Game Engine: A software program that allows users tocreate and run 3D games.Hard Surface Modeling: Creating objects with sharp, defined edges, such as cars or weapons.LOD (Level of Detail): Reducing the level of detail of objects based on their distance from the camera.Material: A set of properties that define the surface characteristics of an object.Mesh: A collection of vertices, edges, and faces that form a 3D object.Normal Map: A texture map that stores information about the surface orientation of an object.Orthographic: A projection method that displays objects from a parallel angle.PBR (Physically Based Rendering): A rendering technique that simulates the physical properties of lightand materials.Polygon: A shape with three or more straight sides, forming one face of a 3D object.Quads: Polygons with four sides.Ray Tracing: A rendering technique that traces thepath of light to accurately calculate shadows and reflections.Rigging: The process of creating a skeleton for an object, allowing it to be animated.Shader: A program that defines how an object's surface is rendered.Subdivision Surface: A technique that creates a smooth, organic surface from a low-polygon mesh.Texture: A 2D image applied to a 3D object to add details and realism.Transform: The process of moving, rotating, or scaling an object.UV Mapping: Assigning 2D coordinates to a 3D model to allow textures to be applied correctly.Vertex: A point in space that defines the shape of a 3D object.Voxel: A 3D pixel that represents a point in space.中文回答:3D美术英语专业词汇。
enscape皮革材质参数
Enscape是一款用于实时渲染和虚拟现实的软件,它不提供直接编辑材质参数的功能。
然而,在Enscape中,您可以使用其他软件(如SketchUp、Revit等)的材质编辑器来设置皮革材质的参数。
下面是一些常见的皮革材质参数,您可以在编辑器中进行调整:
1. Diffuse(漫反射):控制皮革表面的颜色。
2. Specular(镜面反射):控制反射光的强度和亮度。
3. Glossiness(光泽度):控制表面的光滑程度。
4. Bump(凹凸贴图):用于模拟皮革纹理的凹凸感。
5. Normal Map(法线贴图):用于增强皮革纹理的立体感。
6. Reflection(反射):控制环境中物体的反射在皮革表面的表现。
7. Translucency(半透明度):用于模拟皮革的半透明效果。
8. Displacement(位移):用于在渲染中改变皮革表面形状的参数。
这些参数通常是根据您的具体需求进行调整的,您可以根据自己的场景和要求来设置皮革材质的参数。
凹凸图和法线图的区别1 前言翻译这篇教程的目的是为了帮助那些对图形渲染技术有兴趣却又苦于找不到免费中文学习资料的人。
在我的身边没有任何一位从事计算机专业的前辈,从刚学会WINDOWS 的基本操作到现在,我的计算机技术完全都是一步步自学过来的,算算学编程的历史也近5 年时间了。
我往往要花一半以上的学习时间用来查学习资料(记得我学GIF 图像压缩解压算法时,用了近2 个星期时间才编出了显示GIF图片的程序,主要原因就是资料不够,只看一两篇短篇幅的教程来写程序,其中多数时间花在调试代码和猜格式上)。
所以我对那些不是从事计算机专业,身边又没有计算机高手的学习者深有同感--查一堆堆资料是自学中最痛苦的过程。
这几天我也正在学BU MPMAPPIN G算法,在看完一篇简单的E 文教程后,我觉得自己也确实应该为中国的教程事业做出一点我微薄的贡献。
我并不是个3D高手,也只是个初学OpenGL 的新手,所以只能先做翻译了。
我也希望我的翻译小样能够抛砖引玉,看到中国越来越多的高手能够真正写点自己的东西,拿出来与大家分享。
由于本人水平有限,翻译难免有错误和不妥之处,请多加指正。
为了尊重原作者,同时也是为了读者能够对照原文,在此贴出原文地址:2 具体实现2.1BME M技术(凹凸映射BumpMapping)BMEM技术通过一张叫做高度图(Heightmap)的灰度图来储存每一点的高度信息然后直接由A PI 处理。
凹凸映射和纹理映射非常相似。
然而,纹理映射是把颜色加到多边形上,而凹凸映射是把粗糙信息加到多边形上。
这在多边形的视觉上会产生很吸引人的效果。
我们只需要添加一点信息到本来需要使用大量多边形的物体上。
需要注意的是这个物体是平的,但是它看起来却是粗糙不平的。
让我们来看看上边的那个立方体。
如果你很近地观察它时,你会发现它上面的很多细节。
它看起来好像是由成千上万个多边形构成的,其实它只是由6 个矩形构成。
你或许会问:"这和纹理映射有什么不同?"它们的不同之处在于--凹凸映射是一种负责光方向的纹理映射。
凹凸贴图、法线贴图、置换贴图Warband 的模型相对于1.011又前进了一步,现在大多的服装都加上了法线贴图,看起来细腻了很多而原先我们只能在墙壁、树皮上看到一点法线贴图的效果....所以下一轮的模型设计,这个元素是热点..... 先转这篇文章过来谈谈概念,二楼讲如何制作。
其实我本人对模型制作、3D之类完全外行,转这个只是想抛砖引玉,欢迎大家讨论,灌水顶贴就不必了。
首先我想说,对于凹凸贴图在计算机图形领域中的研究,最早开始于70年代末,至今已经有接近30年历史了。
NormalMap只是一种目前很流行的凹凸贴图技术,而这里将会介绍一些目前游戏和在XBOX360和 PlayStation3这种新世代主机上将会运用的凹凸贴图技术。
BumpMapping 凹凸贴图做过CG的朋友一定比 FXCarl还要更早的认识BumpMap。
这种贴图是一种灰度图,用表面上灰度的变化来描述目标表面的凹凸,因此这种贴图是黑白的,如果节省空间的画,甚至可以把贴图的Alpha通道征用来用作Bump。
值得注意的是,这种贴图表面上存储的东西是高度域--即每个点和原始表面的高度差,记住,每个点的颜色不是色彩,是高度,一个数值!因此,对这个贴图做任何的操作都会影响到这个物体3D的外观质感。
不能凭感觉用事。
在游戏中,所使用的算法确切的说应该叫做fake bump mapping ,假凹凸贴图。
因为在游戏中BumpMap并没有改变物体的表面而只是影响光照的结果,欺骗眼睛而已。
最简单的做法是,直接把BumpMap叠加在已经渲染好的表面上,造成亮度上的扰动,从而让人以为是凹凸的--这个很容易理解,把一面白色的墙面有技巧的部分划成灰色就会变成蚀痕,这些诸位会比小的更擅长。
而计算复杂度是基本加减法。
这个所谓的 FakeBumpMapping 从Geforce2就开始硬件支持,但是从来没有大范围的应用过。
不过有趣的是,BumpMap这个东西却从未过时,在后来的渲染算法中,其储存表面高度域的特性仍然发挥着巨大的作用。
我们后文再提NormalMapping 法线贴图NormalMapping在游戏领域中的实践是一个非常值得记住的时期--Geforce3上市,GPU概念出现,硬件可编程流水线的出现(Shaders),NormalMapping是一种凹凸贴图技术,它的另外一个名字叫做Dot3 bump mapping。
用于实现它的控制纹理是一张叫做NormalMap的纹理,也是目前大家在讨论如何之作的那种。
我们先说说这张叫做NormalMap的图。
这张图中存储的东西是每个原始表面法线的迭代,说起来有点复杂,但是不难理解。
举例说我们的说面,一般在游戏的3D模型上,表面法线就像是一根站立于桌面的钢笔,垂直向上。
而NormalMap中存储的东西就是我们这支表示表面法线方向的钢笔所“应该”指向的方向--比如说朝左边倾斜15度。
NormalMap有两种主要形式,一种叫做世界空间的NormalMap,一种叫做切空间的NormalMap。
第一种在游戏中没有实用价值,我们说第二种,也就是大家最常见的一种。
那么,为什么我们看到的NormalMap会有这么奇怪的颜色呢?其实NormalMap和BumpMap一样,即它显示出来的颜色和它所起的作用是没有直接联系的。
大家一定对空间坐标的概念非常熟悉了。
在NormalMap的定义中,有一个事先的约定,这个约定就是--原本表面的垂直方向,我们称为Z轴;而表面的UV坐标两个方向,分别对应X轴和Y轴。
(确切的说,应该是称作切线和负法线,但是这两个东西和大家熟悉的UV坐标刚好重叠,所以就用大家更习惯的说法了)然后我们知道如果我们在XYZ轴上各取一个点,这个点的取值位置在-1到1之间,那么我们就可以得到一个指向任何方向的法线方向(不用多解释,大家知道法线是一个向量,向量有方向和长度两个概念,但是对法线来说,长度是不需要的)。
但是,请大家注意,我们在描述色彩的时候,RGB三个通道的取值范围都是从零开始的。
可是当我们尝试把一个任意的法线保存在一张纹理中的时候,会面临取负值的问题。
因此我们要把法线做压缩。
方法很简单,把XYZ 每个轴上的法线投影长度进行N+1/2的运算。
这样就把所有的法线压缩到了0和1的范围里。
然后我们把XYZ的方向分别存储在RGB三个通道中。
似乎我们还没有说到关于为什么NormalMap 会是蓝兮兮的原因是吧。
那么现在就是公布结果的时候了!首先,我们知道如果在一个物体表面,法线垂直向上,那么它的 XYZ坐标是多少?是0,0,1对不对?然后我们把这个数字按照我们前面所说的压缩方法进行压缩,每个数字加1然后再除以2,那么我们得到的是 0.5,0.5,1对不对?好我们把它代入到RGB中,那么我们会得到128,128,255对不对?好了,试试看在调色板里的颜色吧!P.S.现在FXCarl和你猜个谜,看看FXCarl说的对不对。
现在我们在NormalMap上看见一个颜色,这个颜色是219,128,219。
那么这个表面的法线方向是垂直向右偏45度。
大家用MAX做一个NormalMap看看FXCarl说的对不对?如果你还没有理解NormalMap的意思,或者说你有兴趣再深入了解一些,那么FXCarl再和你说的深入一些。
不知道大家对于切空间的理解是什么?我们来个实验,找三支笔。
然后其中两只笔在桌面放成互相成90度,笔尾接笔尾。
最后我们把第三支笔,笔尖向上,笔尾和那两只桌面上的笔的笔尾叠在一个点上。
注意看我们的三支笔!这三支笔就是这张桌面上这个点的切空间坐标了!大家一定想到了原来我们的NormalMap中存储的表面法线方向原来就是一个切空间向量啊,恩没错,就是切空间向量。
但是似乎看起来切空间没什么作用是不是?呵呵,我们不妨把桌面换成一个篮球。
记住,保持三支笔的互相关系,然后用三支笔并在一起的笔尾去接触篮球的表面。
呵呵,发现了没有?切空间的优势在于,在任意表面上,切空间中的坐标都是有效的!也就是说始用切空间中的数据就可以做到和 3D模型的复杂度无关!你可以用在任意的表面,甚至这个表面一直在动也不会影响到NormalMap发挥作用,你说这个切空间是不是很有用呢?让我们回到开头,大家就会发现,如果使用世界空间的NormalMap会有什么样的结果呢?嘿嘿那样会造成一个很尴尬的结果,比如说我们做了一个人物身上的 NormalMap,可是我们的场景中有两个一样的人物,但是他们的姿势和面对的角度都不一样。
那么……My God ~肯定有一个人物的NormalMap是没法适用的!而用切空间的NormalMap就没有问题了。
恩,不过这个大家可以放心,MAX或者Maya做出来的NormalMap都是切空间的NormalMap,证明的方法很简单……看看这张贴图是不是主要由蓝色构成的……OK,下面是重头戏,告诉大家NormalMap是如何发生作用的。
使用NormalMap的先决条件--逐像素著色。
先来说一下传统著色,传统游戏使用的是一个Phong光照模型的简化版,甚至有游戏使用Ground模型。
这两种算法的方式都是只对物体3D 模型的顶点计算光照,而3D表面上的大面积区域则使用差值填充。
逐像素著色是到了Shaders 出现之后才有的,因此NormalMapping也是一个Shaders必须的算法。
计算一个物体表面漫反射光照的公式是很简单的NdotL--什么是NdotL,就是物体表面的法线和光照方向的点积。
点积是一个线性代数的问题,美术朋友们可以不用深究,写成程序也很容易:Diffuse = saturate(Mul(Normal,Light));。
想要简单的理解就是--光线的方向矢量在法线矢量上的投影,然后这个投影的结果变成黑白中间的一个值。
我们同样举个简单的例子,用两支笔放在桌面上,然后一支笔不动,令一支笔笔尾和第一支笔的笔尾相连,不动,然后以共同的笔尾做为圆心,移动笔。
这时如果我们从一支笔尖往另外一支笔的笔杆上垂直拉一条线(一条垂线)就会看到这时移动后的一支笔在原本的笔杆所投影的长度(就是一支笔的笔尖连垂线到另一支笔的笔杆上的位置,这个位置沿着笔杆到共同笔尾的长度)会越来越短,当两支笔垂直的时候,投影的结果就是零--没有光照贡献了。
这个容易理解,当光线的方向和一个表面绝对平行的时候,这个表面就会再也接受不到光线了。
现在我们引入NormalMap。
这时我们的光照计算和以往有点不同,我们把表面的法线用NormalMap中存储的法线来替代。
这样当我们在计算表面光照情况的时候,就会因为法线不断的变化而产生比原来丰富的多的明暗变化。
至于为什么会感觉出凹凸来这个就是人的眼睛自己骗自己了……其实那里本没有凹凸的,但是我们人眼睛太多管闲事了。
就像Windows的按钮哪个纯平面的东西我们还以为是凸出来的呢。
NormalMap 看来可以增加细节,但是它的缺点也很明显。
不过在说缺点之前,要提前说一句--NormalMap带来的优势是远远大于它的缺点的。
因此仍然是个极好的东西,不要对它有偏见,特别是在我们后面介绍的更牛的技术前面,千万不要。
最大的也是最明显的缺点应该就是它的视角问题。
因为NormalMap只是改变的表面上的光照结果,并没有改变表面上的形状。
因此,表面上看来,似乎只要是不接近水平,NormalMap就不会有视角问题。
其实不然,NormalMap 因为不能实现自身内部的遮挡,因此不能表现平面上凹凸起伏比较大的场合。
比如说我们一个桌面上突出一块,然后在突出的这块东西边上放一支牙签。
如果用NormalMap表现,会发现。
根据经验,这个凸起会很轻易的挡住我们的视线,让我们看不见那支牙签。
可是NormalMap却不会这么做。
因此我们一直能看见障碍物背后的东西,这一点是个问题--也就是说只有在垂直于平面的时候NormalMap才会发挥最好的作用。
这样一来,NormalMap只能用在大家对遮挡关系不敏感的场合,比如场景等,不是不能用于人物,而是用NormalMap的人物不太经得起特写,放大了,角度刁钻了都容易穿帮。
虽然NormalMap有个不能平视的巨大问题,但是依然是好处远大于小障碍,因此还是非常值得推广的。
后面的几种新兴算法其实都是由NormalMapping发展起来的,因此做为基础的东西,也还是最有理解价值的。
P.S. 关于NormalMap的一点秘籍。
注意理解……NormalMap其实并不是从低模的表面凸出高模的细节的,而是把高模中比最高点的位置低的地方凹进去的!因此低模要比高模大一点点才会很准。
大家可以想像成我们是用一个比高模稍微大一点点尺寸的低模石膏模型来把高模雕刻出来的。
P.S.2.关于 NormalMap的做法,其实早期发明NormalMap的时候还没有MAX这种这么方便生成NormalMap的方法,NormalMap都是从 BumpMap计算得到的,因此其实通过很简单的算法就可以从BumpMap算出NormalMap的,甚至可以On The Fly(就是让游戏引擎直接读BumpMap 然后转换成NormalMap)。