tutorial_fixed_materials - seraph526/godot-se GitHub Wiki
固定材质 (Fixed Materials)
介绍
固定材质(Fixed materials,原为Fixed Pipeline Materials)是最常用的材质类型,觉见的材质类型可以在3D DCCs中找到(如Maya,3DS Max或Blender)。使用它们最大的优势在于3D艺术家们对此很熟悉。他们可以快速的尝试不同的东西,而不用写shaders代码。固定材质(Fixed Materials)继承自材质(Material),材质有一些设置。如果你还没有读过,建议先阅读Materials教程。
选项 (Options)
下面是所有的关于固定材质的选项列表:
Fixed Flags
这里是一些用于设置材质常见效果的标记.
Use Alpha
如果是透明材质要打开此选项,以便程序知道要混合材质的哪些部分,否则,会显示为固体。除非真的需要,否则不要开启此选项,因为此项会严得影响程序的效率和质量。透明的材质也不会投射阴影(除非包含有固体区域,并且开启opaque pre-pass选项,查看Materials了解更多信息)
使用顶点着色 (Use Vertex Colors)
顶点着色是增加模型细节的常用技术。3D DCCs支持这项技术,其中的一些软件甚至支持烘焙和遮挡剔除。Godot允许在固定材质中使用这些信息,在需要时调节漫反射的颜色。
点尺寸 (Point Size)
点尺寸在渲染点时用于设置点的大小(以像素为单位)。这个功能大多用在工具和HUDs的制作中。
丢弃透明 (Discard Alpha)
当开启alpha选项时(查看上面教程)不可见的像素和它前面的物体发生混合。在(使用透明渲染深度)混合应用中,不可见的像素遮挡其他物体是可能存在的。如果是这种情况,那么开启材质的这个选项。这个选项通常和opaque pre-pass选项联合使用(查看Materials教程获取更多内容)
###属性 (Parameters)
Diffuse, Specular, Emission and Specular Exponent
这些是材质的基础颜色。
- 漫反射颜色负责接收到达材质的光线,然后四处反射。颜色依据光线的角度和距离(这里是聚光灯和泛光灯)而变化。它是最能真实反应材质效果的颜色模式。可以有alpha通道(透明).
- 高光反射贴图是反射光的颜色,它负责光照,高光指数(specular exponent)会影响它的效果。
- 放射(Emission)是反射光和材质相互作用产生的颜色(除非是经过烘焙,否则它不会照亮任何它周围的物体)。这个颜色是恒定的。
- 高光指数(Specular Exponent)(或者在一些3D软件中是"Shininess"/"Intensity")是用来控制光反射的方式的。如果此参数很高,光会被完全反射,否则会是不同的漫反射效果。
下面是它们如何相互影响的例子:
Shader & Shader 参数
通常shader材质允许自定义光照代码。固定材质有4个预定义的类型:
- Lambert:标准的漫反射光,光量大小和光源的角度成正比。
- Warp:Lambert的变化值,光的覆盖范围可以更改。这对许多类型的素材都很有用,如木头,粘土,头发等材质。
- Velvet:和Lambert类似,但在光的边缘增加了散射。它对于皮革和一些金属材质很有用。
- Toon:带范围参数的标准卡通shade.反射组件也被卡通化就。
细节 & 细节混合 (Detail & Detail Mix)
细节是第二个漫反射纹理,可以和第一个进行混合(接下来会讲述更多关于纹理的知识!).细节混合(blender和mix)用于控制效果如何叠加。下面是一个示例用于说明细节纹理的用途:
法线深度 (Normal Depth)
法线深度控制法线贴图的强度。参数1(默认),法线贴图正常显示,参数-1法线贴图反转,参数0没有作用。中间值或更大的值也是可以的。下面是法线贴图的效果:
发光 (Glow)
此值控制有多少颜色会发送到发光缓存。可以是比1大的值以得到更强的效果。要让发光工作,必须有世界环境而且要激活发光(WorldEnvironment)
混合模式 (Blend Mode)
物体通常以Mix的模式混合。其他混合模式(Add和Sub)是为了一些特殊情况存在的(通常是粒子效果,光线等),但材质可以设置:
点大小,线宽度 (Point Size, Line Width)
当绘制点或线,每个材质的尺寸可以通过此参数调整。
纹理 (Textures)
几乎上述的所有参数都可以设置纹理。有4个选项,可以得到UV的坐标。
- UV Coordinates (UV Array):常用的和模型一起导入的UV坐标数组。
- UV x UV XForm:UV坐标乘以UV Xform矩阵.
- UV2 Coordinates:一些导入的模型有第二组UV坐标。这些通常是烘焙灯光纹理的细节纹理
- Sphere:球状坐标(不同于普通的法线,以像素为单位的摄相机法线). 纹理的每个像素点的值乘以原始的参数。如果一个纹理是以漫反射的模式加载的,它将乘以漫反射的颜色参数。其他的模式如相同的算法,除了高光指数是使用的替换方式。