【前言】

模型建立好了以后,通常都要赋予材质,这意味着给这个模型对象(这些模型本质就是一个由面组成的空壳)赋予了表面的属性,用于计算模拟真实的物理效果。

听说过“三分模型七分贴图”的说法吗?模型制作的再好(当然它是基础),如果没有纹理贴图,那它也缺少表面的细节,更缺少“灵气”和“神韵”不是吗?也就是大家所说,没有质感。

质感是什么?光线照射物体所表现出来的视觉效果。在三维软件中是通过设定材质、灯光、阴影和环境等要素,由渲染器调用不同的着色器进行渲染(模拟计算),对视觉形态的再现的过程。

说到渲染(Render)涉及很多要素,这里为了将来学习纹理绘制打基础,所以简单谈谈材质、重点研究学习贴图原理和应用。下面我以CG人能理解的方式进行研究,尽量回避数学算法。(太深了,我也不会,嘿嘿)

【研究】

一、明确几个概念:

**1、 渲染 Render:**使用软件从模型生成图像的过程。说白了就是把三维场景特殊数据格式计算,转化为位图图像或图像序列的过程。(XYZ到XY,从三维到二维)。

**2、渲染器(renderer) :**渲染工作是通过渲染器完成的。是实现渲染的特定算法(mental ray ,vray,Arnold)。主要两类:一个光线跟踪,一个是光能传递。每个独立渲染器都有适合自己的材质和灯光,当然它也支持它所依赖的三维环境的标准灯光和材质,但效果没有它自己的好。

**3、着色器(shader)**是一组提供计算机图形资源在执行渲染时使用的指令,负责计算目标颜色。分为定点着色器,几何着色器,像素着色器等,应用于GPU流水线的。在一般情况下,着色器是可以直接在图形处理单元(GPU)上运行的程序。换句话说,着色器类似一个汇编程序。你可以通过使用汇编编程的CPU,你也可以使用顶点和像素着色器的GPU编程。

糊涂了吧? 说白了Shader(着色器)实际上就是一小段程序,它负责将输入的Mesh(网格模型)以指定的方式和输入的贴图或者颜色等组合作用,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader的特定的参数设置,将这些内容(Shader及输入参数)打包存储在一起,得到的就是一个Material(材质)。所以说Shader并没有什么特别神奇的,它只是一段规定好输入(颜色,贴图等)和输出(渲染器能够读懂的点和颜色的对应关系)的程序。而Shader开发者要做的就是根据输入,进行计算变换,产生输出而已。C4D中已经由官方开发好了的Shader为你服务,等你调用。如果你对渲染效果不满意,总想渲染出自己想要的风格,而这些现成的Shade又满足不了你,怎么办?有能力自己写一个吧!

二、C4D材质