Unity3D ShaderLab立方体图的法线渲染 某些情况下,我们希望立方体图的材质球上产生法线效果,来更多的表现细节,比如菱形花纹的玻璃,冰块的表面. 在帧数的协调下,我们可以通过input结构体的另一个内置参数来传递我们的法线贴图.下面 我们就一步步实现. 首先,新建Shader,在新建材质球,准备立方体图,法线贴图.双击shader进入脚本编辑. 本次的代码修改依然是和之前的立方体图的反射遮罩差不多,所以就直接看完成的代码吧. code start ------------------…
Unity3D ShaderLab 立方体图的菲涅尔反射 菲涅尔反射是反射类型中比较常见的一种类型,当我们的视线正对物体表面,那么反射量会明显增加, 我们几乎可以在任何支持反射类型的物体表面看到这种情况,我们接下来就来实现这种反射效果过. 还是先创建Shader和 Material,沿用上一节的立方体图.代码变动较少,直接看下面的完成代码: code start -------------------------------------------------------------------…
Unity3D ShaderLab 立方体图的反射遮罩 上一篇,简单的介绍了立方体图的反射,那么我们能不能使用一张纹理对其进行指定遮罩呢?这样美工可以更好的控制图像的效果. 我们接着使用上一篇的shader代码,新建一个材质球,本次修改也是数行代码而已,所以 直接看完成代码. 如果没有立方体图可以使用天空盒暂代,或者通过Unity的Camera相机渲染到一个立方贴图,具体的创建方法,参见api: http://www.unitymanual.com/m/Script/Camera.RenderT…
原帖网址http://www.u3dpro.com/read.php?tid=207  感谢jdk900网友的辛苦编写 我们都知道,一个三维场景的画面的好坏,百分之四十取决于模型,百分之六十取决于贴图,可见贴图在画面中所占的重要性.在这里我将列举一些贴图,并且初步阐述其概念,理解原理的基础上制作贴图,也就顺手多了. 我在这里主要列举几种UNITY3D中常用的贴图,与大家分享,希望对大家有帮助.01 首先不得不说的是漫反射贴图: 漫反射贴图diffuse map  漫反射贴图在游戏中表现出物体表面…
Unity3D ShaderLab 简单的立方体图反射 反射是着色器模拟现实环境的一个关键因素,它能使我们的着色器渲染效果更加具备视觉冲击,因为他利用了我们周围的环境, 让着色器反射外界的场景信息并将他们反射到材质表面来模拟外部环境,所以我们会使用立方图[CubeMap]的6张纹理来模拟环境的色彩情况. 首先,创建Shader,创建材质球,准备立方图,双击Shader,进入代码编辑器. 如果没有立方体图可以使用天空盒暂代,或者通过Unity的Camera相机渲染到一个立方贴图,具体的创建方法,参…
Unity3D ShaderLab法线贴图 说到法线贴图,应该算是我们最常使用的一种增强视觉效果的贴图.将法线贴图的各个像素点座位模型的法线,这样我们的光照可以模拟出高分辨率的效果, 同时也保持较低的多边形数.法线贴图通常存储在一个普通的rgb图片,他的rgb分量分别对应了曲面法线的xyz坐标. 在Unity中,会通过UnpackNormals()函数来使用法线贴图,这使得在表面着色范围内为我们的着色器添加使用法线的过程变得更容易. 首先,创建一个shader和材质球.我们开始修改shader代…
Unity3D ShaderLab 修改渲染队列进行深度排序 为了更深刻的理解透明度,我们还需要学习一下深度排序,简单来说就是物体被渲染的先后顺序. Unity允许我们通过代码来控制某个特定物体渲染到屏幕的顺序.这个做法类似于photoshop中图层的概念. 开始之前,准备工作还是新建Shader Material,准备测试场景.为了对比 是需要使用2个材质球的. 打开我们的shader,稍微编辑一下即可看到效果.过程简单如下: Shader "91YGame/DepthSort" {…
Unity3D ShaderLab 静态贴图光照模型 其实在unity的光照模型中,我们可以把光照讯息烘培进入一个2D贴图,来实现着色器的光照效果. 下面是在unity中关闭灯光和打开灯光的对比效果.所以这类着色器的缺点就是不会随着光源变化效果. 接下来,我们开始创建,首先通过软件MaCrea来制作我们的2D光照贴图,MaCrea软件 通过该软件可以快速制作一个完整的发光球体平面图. 软件地址:http://pan.baidu.com/s/1bnD7wkv 软件视频教学地址:http://pan…
Unity3D 创建动态的立方体图系统 这一篇主要是利用上一篇的Shader,通过脚本来完成一个动态的立方体图变化系统. 准备工作如下: 创建一个新的场景.一个球体.提供给场景一个平行光,准备2个立方体图. 添加两个空对象,并分别命名为Empty1和Empty2,给他们分配不同的位置. 给球体添加一个新的材质,并使用FresnelReflection Shader(上一篇). 最后,创建一个脚本,并命名为CubeDynamic.cs,把它赋给球体. A:下面开始编写脚本: //2个立方体图; p…
Unity3D ShaderLab 使用贴图对模型的高光进行遮罩 前面研究了高光效果的实现,再说说现很多游戏用到的高光贴图技术,因为它可以让3D美工更容易控制最终的视觉效果. 这也就为我们提供了另外的方式,我们可以在同一个着色器上实现垫型表面和光亮表面,也可以使用贴图来控制镜面高光的范围或者高光强度, 以实现一个表面是广泛的镜面高光而另一面确是细小的高光. 新建一个shader,一个材质球.老规矩双击shader脚本,在编辑器中编写代码吧. 1.Properties: Properties {…