Unity Shaders and Effects Cook
_Captain
这个作者很懒,什么都没留下…
展开
-
Unity Shaders and Effects Cookbook (1-2)创建自定义漫反射光照模型
创建自定义的光照模型的时候,光照模型的函数名,函数定义 都是有规定的。原创 2016-03-15 23:48:32 · 1775 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (3-6) 创建各向异性高光类型(Anisotropic) 模拟金属拉丝效果
各向异性是模拟物体表面 沟槽方向性的高光反射类型,他会修改或延伸垂直方向上的高光。比如模拟金属拉丝的效果,就可以使用各向异性来模拟。原创 2016-04-16 17:30:04 · 14154 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (7-2) Surface Shader 中实现 顶点动画
使用顶点函数,我们可以访问网格中的每个顶点位置。这使我们在着色器运行的过程中可以动态的改变顶点位置。创造出丰富的效果。原创 2016-05-12 01:14:52 · 11970 阅读 · 1 评论 -
Unity Shaders and Effects Cookbook (7-3) 在地形中使用顶点颜色做混合
在地形中,原本我们应该要有一张图片存储 用来做混合的数据,但是多一张图就需要更多系统资源来处理。既然顶点数据中有color 数据,那么我们在做模型的时候可以把数据刷到顶点颜色中,就省了这一张图。原创 2016-05-13 00:14:14 · 7777 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (4-1)(4-2)静态立方体贴图的创建与使用
立方体贴图,就如同名字所说,在一个立方体上有6张图,就这样认为吧。假想一下 ,在一个艳丽的房间里,有一个表面是镜子的圆球,那这个圆球表面就反射了房间里面的所有东西,就是一个大号的凸镜。原创 2016-04-21 02:10:24 · 5558 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (6-1) 使用 alpha 参数的 半透明着色器
对于游戏项目,透明是很消耗资源的一个操作,在Unity的Profile 中可以很直观的看到透明所消耗的系统资源。在Unity的表面着色器 Surface Shader 中,我们可以很方便的创建一种全透明的效果。如草的表面。这一节学习 通过在 #pragma 语句中添加 alpha 参数 来使用透明功能。原创 2016-05-06 00:56:36 · 4702 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (4-3)遮罩反射
在上一节 创建Cubemap的基础上,添加了一个 ReflMask 遮罩贴图。这个贴图是一个灰度图,根据灰度图中的通道数据的值,来决定 反射。当这个片段 对应 遮罩贴图中是黑色的时候,就进行全反射,当对应白色的时候,就不进行反射。因为黑色是 (255,255,255) ,而白色都是0.原创 2016-04-22 02:00:49 · 6544 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (6-2) 透明裁剪着色器
这一节学习透明裁剪着色器,效果类似于溶解,适合作为怪物死亡的效果。仍然是读取 RGB 通道值,赋值给 alpha,然后指定一个固定值作为标尺,如果 alpha < 标尺,就抛弃这个片段,也就是裁减掉不显示。原创 2016-05-06 14:47:18 · 5234 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (6-3) 修改渲染队列Queue 来 修改渲染顺序
默认情况下,Unity是按照物体与 摄像机 的距离,来决定哪个物体先渲染。远处的物体先渲染,先渲染的物体,就会被都渲染的物体遮挡。但是有的时候,需要让远一点的物体 显示在 近一点的物体的上层,该怎么办?原创 2016-05-06 23:37:02 · 5336 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (4-4)在Cubemap 上使用 法线贴图 (法线贴图与反射)
我们使用法线贴图在低分辨率的模型上 模拟 高分辨率的效果。Unity中 通过 UnpackNormal 函数 来使用法线贴图。原创 2016-04-23 02:33:40 · 6352 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (4-5)Cubemap与菲涅尔反射
当我们站在水中,直直的往下看水面,是看不到反射的太阳光的。而当我们往远处看时,就能看到很强的反光,也就是成语波光粼粼所体现的。这一现象就被命名为 菲涅尔反射。原创 2016-04-24 02:30:47 · 6982 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (4-6)震撼的实时反射 动态立方图系统
昨天逛街的时候看到太平鸟里面摆了个金属的米老鼠,于是职业病犯了,一直在想金属的颜色是什么,这个反射该怎么写,想不出来……今天正好看到动态反射立方图系统这一节,看完觉得很别扭,因为书上介绍的是事先踩点生成Cubemap的方式而不是实时的。于是到官方文档找到实时反射的代码,做了一个比较花俏的场景,运行之后吃了一大惊,实时反射是如此的震撼。。原创 2016-04-25 00:39:47 · 8127 阅读 · 1 评论 -
Unity Shaders and Effects Cookbook (6-4) GUI 和 透明度
手机游戏越来越炫丽了,在各色游戏界面的背后离不开透明 的使用以及 渲染队列 控制。原创 2016-05-10 02:00:34 · 5324 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (D-1) 设置 ZTest 来实现遮挡半透效果
在游戏里面经常看到这样的效果,英雄走到障碍物后面,但是我们能够透过障碍物看到英雄的身体,好像我们有了透视眼一般。原创 2016-07-31 01:18:16 · 2782 阅读 · 1 评论 -
Unity Shaders and Effects Cookbook (D-2) Cull Back背面剔除 -- 模型半边不可见
我们知道物体都有两面,一个立方体盒子,有外面和里面之分,对于我们游戏来说,玩家一般只能看到外面,里面其实是不需要的。所以默认Unity会开启背面剔除,把背对摄像机的面都剔除掉。原创 2016-09-21 22:41:44 · 4475 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (7-1) 在Surface Shader 中 访问 顶点颜色
在OpenGL中,需要顶点着色器和片段着色器的支持才能进行正确的渲染,在顶点着色器中,每一帧 对 场景中物体的每个顶点都要执行一次处理。如果自己使用OpenGL,需要在C++ 代码读取模型数据,将顶点坐标、顶点颜色、UV坐标传递到顶点着色器中。所以在顶点着色器中 ,是可以对顶点数据进行修改的。原创 2016-05-11 01:19:34 · 8332 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (3-4) 使用高光贴图
在学习完上一节之后,已经了解了在Unity 中如何实现一个高光 Shader ,但是会有一个问题,就是效果看起来不切实际,如下面的问题我用一张图片贴到了Cube上面,然后用了一个高光材质,得到了下图的效果。其实这个效果还算可以,但是认真看就会发现,这个结果是不符合自然现象的。这个箱子是木头的,然后有铁皮 作为封条。首先不符合常理的是为什么这个木头箱子会反原创 2016-04-11 02:03:16 · 5933 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (2-6) 在 C# 代码中创建 Texture2D 并赋值给 Shader
有一些需求 ,比如截屏 然后把你的游戏人物头像 印在截屏图片的左上角。这就是要在代码中生成一张图片,然后进行修改。转自http://blog.csdn.net/huutu http://www.thisisgame.com.cnUnity Shader and effect Cookbook 2.6 这一节讲的就是在 C# 代码中创建一个 Texture2D , 并且在 S原创 2016-03-29 02:08:08 · 4282 阅读 · 1 评论 -
Unity Shaders and Effects Cookbook (2-7)实现 Photoshop 色阶效果
看完了这一书上的代码,然后在网上查找 Photoshop 色阶的一些解释,大致理解为:调整色阶就是调整亮度,也就是调整纹理 R、G、B 通道的数值大小。下面是 Photoshop 中的直方图转自http://blog.csdn.net/huutu http://www.thisisgame.com.cnX 轴表示 亮度,也就是 R 通道 值。Y轴表示有多少个像素的颜色 的原创 2016-03-29 21:22:21 · 2524 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (1-3) 创建 Half Lambert 光照模型
Half Lambert 光照模型是 Value 公司提出的,应用在低光照的区域 ,提高材质和物体表面周围的漫反射光照。https://developer.valvesoftware.com/wiki/Half_Lambert转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn来看看 Lambert 和 Half Lam原创 2016-03-18 01:52:18 · 1952 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (3-1) 使用Unity 内置的Specular Lighting - BlinnPhong
转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn一张图来解释下镜面高光左侧是灯泡,灯泡发出光,到达顶点片段,然后被反射出来为 R 。我们站在右侧观察,如果眼睛正好位于 光 的反射 的方向,即 眼睛位于 R 方向上,那么这个时候我们看到的光肯定是最强的。随着眼睛 和 反射光 R 的夹角越大,那我们观原创 2016-04-01 02:11:37 · 2278 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (1-4) 创建 Ramp Texture(渐变纹理)控制漫反射着色
在Shader中根据光照来调节效果,会比较繁琐,所以可以直接用纹理。美术做好图之后,程序直接从纹理上取样,来模拟很多光照设置。有颜色的这两个 Capsule 就是使用了 Ramp Texture的。转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn1、首先来创建一张渐变纹理打开PS CS6,新建一张图片原创 2016-03-20 03:14:33 · 3861 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (1-5)使用2D渐变纹理模拟BRDF(双向反射分布函数)
BRDF,双向反射分布函数,简单理解为 入射光在不透明物体上,同事反射到观察者方向 和 出射光方向。转自 http://blog.csdn.net/huutu http://www.thisisgame.com.cn首先用PS创建一个渐变图片,先用 前景色到背景色渐变 ,然后前景色到透明渐变。上面也说了,BRDF 是入射光 同时反射到 出射光 和 观察者眼睛方向的,原创 2016-03-21 02:33:31 · 2404 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (2-1) 修改 UV 坐标实现纹理贴图的滚动 模拟水流效果
昨天加班晚了,困。刚爬起来翻开书学习这一节。这一节是摘抄自Unity Shader and Effect Cookbook 上面的 2.2 节。这书写的简单易懂,每天花一点时间学习一小节,慢慢来。这一节学的是用 修改UV值来实现纹理贴图的滚动,标题太长,其实就是让一个图片在滚来滚去,来模拟一些水流效果之类的。这个效果其实在逻辑代码中也可以写,就是修改图片的坐标,不过在逻辑代码中的话需要两张原创 2016-03-22 12:24:51 · 3530 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (2-2) 修改 UV 坐标实现 帧动画
在2D游戏中,如果要做动画效果,一般是让美术制作连续帧的动画,然后我们用代码控制图片连续播放,这样就实现了帧动画,在shader中也可以实现这个效果。在上一节中学习了 改变 UV 坐标 然后来实现水流效果,这一节 通过改变UV坐标来实现帧动画效果。文章转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn美术给原创 2016-03-23 02:25:48 · 2194 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (1-1) 基本的表面着色器 (Surface Shader)
在 Shader 中,对指定的 _EmissiveColor 进行了 以 _EmissivePowValue 为指数的求幂。在编辑器中对 EmissiveColor 指定的值是 0-255 范围的,这个值在 Shader 中被 规格化为 0-1 。所以随着 EmissivePowValue 的值越来越大,c=pow(_EmissiveColor,_EmissivePowValue); 这个求的值里面的 RGBA 是越来越小,逼近 0 ,所以慢慢得,方块就变成了黑色。原创 2016-03-15 01:10:30 · 2437 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (3-2) 创建简单的 Phong 高光 光照模型
上一节学习了如何使用 Unity 自带的 BlinnPhong 高光光照模型,这一节手动创建一个 高光光照模型。首先创建 Shader 与 Material ,命名 为 BasicPhongSpecular 。在场景中添加一个 Sphere ,一个 Direction Light 。然后来修改 Shader 。在之前的 3-1 创建基本的Diffus原创 2016-04-07 01:07:12 · 2164 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (3-3) 创建 BlinnPhong 光照模型
BlinnPhong 是另一种估算镜面高光的方式,相比于 上一次学习的 Phong 光照模型,更简单 高效。BlinnPhong 是通过视线方向 和 光线方向 所形成的半角向量 来完成的。Phong 和 BlinnPhong 算法图 对比如下: 可以看出 BlinnPhong 计算过程 比 Phong 简单了很多。而且通过实验结果来说,两种算法得到的效果是差不多的原创 2016-04-08 00:23:18 · 2121 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (2-4) 压缩和混合纹理贴图:使用灰度图存储插值信息
这一节看了几次才慢慢的读懂。首先是这个灰度图,为什么叫灰度图,是因为 这个图片中的 R、G、B 存放的都是同一份数据,打开Unity 来调一下颜色看看 更直观。可以看到,当 R、G、B 三个值相同的时候,图片是只有黑白,而丢失了其它的颜色的,所以我们叫灰度图。什么时候用到灰度图?本文转自http://blog.csdn.net/huutu http://www.原创 2016-03-26 02:32:26 · 3833 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (2-5) 如何使用法线贴图
法线贴图,是用来给 低模 模拟 高模 的效果,这里说的 低模 高模 ,指的是模型的三角形数量。转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn在游戏中所看到的模型,都是一个一个三角形拼起来的,看起来越 圆润 的模型,就用了更多的三角形。第二张图用了 16 个三角形来模拟 一个 园,但是仍然 不原创 2016-03-27 01:00:28 · 2678 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (3-5) 金属软高光
利用菲涅尔准则,当我们的视线刚好正对着物体表面的时候,会帮我们屏蔽高光。原创 2016-04-13 01:15:22 · 3440 阅读 · 0 评论 -
Unity Shaders and Effects Cookbook (5-1)LitSphere lighting model
光照模型我们已经很熟悉了,之前各种漫反射、高光 都自定义过光照模型函数。我以为这一章讲的会是之前说的光照模型函数,然而却不是。看完第一节,给我的感觉是 这讲的好像是教我 怎么去使用烘培出来的图。就是说讲的是如何用一张静态图片来模拟灯光效果。原创 2016-04-26 01:27:20 · 3196 阅读 · 0 评论