niuge8905的博客

还有什么比it技术更有趣???

Unity3D shader(20)——布料

布料这一块的内容不是很好找,就找到《Unity Shaders and Effects Codebook》里有介绍。 然后,这篇博客再把这里的内容丰富了一下,作者不允许转载,就只能贴个链接地址,方便自己和后面的人查找:http://blog.csdn.net/candycat1992/artic...

2017-09-09 23:33:24

阅读数:904

评论数:0

Unity3D Shader(19)——一个简单的色散

这里放一个简单的色散的效果。Shader "Custom/fresel" { Properties { _FresnelBias("Bias",range(0,1))=0 _FresnelScale("Sca...

2017-09-06 00:25:48

阅读数:317

评论数:0

Unity3D shader(18)——水的折射与反射

有任何shader的问题,直接qq254033230 水的折射与反射原理其实差不多,只是一个用ComputeGrabScreenPos(o.pos)来取得贴图,一个用ComputeScreenPos(o.pos)来取得贴图。另外还需要两个脚本,一个是工具类的脚本,一个是得到反射贴图的脚本。 这...

2017-08-26 01:07:51

阅读数:1093

评论数:0

Unity3D Shader(17)——水的折射

这里引用的是蛮牛的Unity3D Shader的进阶教程里的代码。咨询:qq254033230这里依然用的是vertex 和fragment shader来解决水的反射的问题。首先,准备两个平面,一个平面作为底图,一个平面模拟水的波动。这里要用到抓取底图的通道 GrabPass{}。然后把抓取的通...

2017-08-22 19:34:51

阅读数:666

评论数:0

Unity3D shader(16)——“Queue”、“IgnoreProjector”、"RenderType"、Ztest、Zwrite、cull

经常在Unity3D里的shader里见到这样的Tags{"Queue"="Transparent"  "IgnoreProjector"="True" "RenderType"="Tra...

2017-08-20 17:27:33

阅读数:1758

评论数:0

Unity3D shader(15)——材质(玻璃)

如有更多问题,请qq254033230咨询。 有了前面的基础,就可以随意用Unity Fragement Shader来实现自己想要的效果。 这里就主要以玻璃为例。 首先实现玻璃的透明的特性; 里面的Tags { "Queue" = "Transparent&...

2017-08-19 23:03:09

阅读数:2889

评论数:0

Unity3D Shader(14)——Fragment Shader(遮挡、透明效果)

要形成遮挡透明效果,需要两个pass通道,一个pass通道渲染未遮挡部分,一个pass通道渲染被遮挡部分。这其中比较关键的一点是zwrite、ztest的用法(这个可以看官方文档及自己尝试)。具体代码及效果:Shader "Custom/FG" { SubShader {...

2017-08-13 19:31:28

阅读数:1360

评论数:0

Unity3D shader(13)——Fragment Shader(简单的纹理采样)

Shader的纹理采样千变万化,正真要把所有的计算效果做出来,可以写出厚厚的一本书。这里就仅仅表达一下Fragment Shader的纹理采样的语法。 1)首先在Properties 里声明贴图 2)然后将贴图的纹理的uv坐标传导到v2f结构里 3)最后在fram函数里,计算uv坐标的变化,...

2017-08-13 16:07:27

阅读数:587

评论数:0

Unity3D shader(12)——Fragment Shader(模型颜色变化)

Unity3D 的shader要实现模型的颜色变化,只需要让颜色和坐标关联起来。 这里先举一个vertex shader的例子,看看效果。从例子中,我们可以看到,程序自动对颜色的结果进行了混合,如果想颜色界限分明,那就需要在fragment shader里进行颜色赋值。 Shader "...

2017-08-13 10:48:11

阅读数:480

评论数:0

Unity3D Shader(11)——fragment shader(边缘泛光)

shader问题解答:扣扣 2540,33230 要想实现边缘泛光,只需要将普通的diffuse反射的亮度反过来即可。所以将1减去法向量和视角点乘的值即可。Shader "Custom/FragmentShader" { properties{ _SpecularColor(...

2017-08-12 23:46:59

阅读数:516

评论数:0

Unity3D Shader(10)——Fragment Shader(漫反射、phong效果、blinnPhong效果、阴影、halfLambert、渐变纹理)

Fragment Shader的效果要好于vertex shader,前者基于面,然后逐像素处理对象,后者基于顶点来处理对象,缺点就是前者计算相对复杂,会多耗费一些资源。 首先对应着vertex shader(看之前的博客),来看一下Fragment的漫反射的效果。 Fragment Shader...

2017-08-12 10:20:08

阅读数:176

评论数:0

Unity3D shader(9)——vertex shader(phong光照和BlinnPhong光照)

首先来看一下反射原理:首先通过L和N来求出R的向量,然后求出视角的向量V,最后将V和R点乘,可以求出光照强度。 承接上一篇,具体代码如下: Shader "Custom/Vf Shader" { properties{ _SpecularColor("Spec...

2017-08-11 23:46:40

阅读数:187

评论数:0

Unity3D Shader(8)——Vertex Shader(漫反射)

实现漫反射,首先得需要漫反射的实现原理。 漫反射的光包括物体表面漫反射的光和环境光,即: AmbientLight+Diffuse 另外需要了解光照的反光原理,如图: 最后用一段代码来实现,首先,要有光照模式,以及Unity3D内生的一些函数。关照模式通过标签tags来添加,内生的一些函数通过in...

2017-08-11 13:09:11

阅读数:156

评论数:0

Unity3D shader(7)——Vertex Shader(顶点几何变换)

变换顶点位移,只需要处理位移前,把顶点位移变换一下即可。 这里举一个简单的例子,在一个平面上,离中心距离越近,顶点越高。详见代码: Shader "Custom/Vf Shader" { properties{ _R("R",float)=4.0 } ...

2017-08-10 15:56:03

阅读数:294

评论数:0

Unity3D shader(6)——vertex shader(顶点颜色变换)

Shader的顶点坐标其实和物体网格的局部坐标、世界坐标一致,只是这里需要有一个坐标转换。 首先说一下Unity3D shader的坐标转换。 这里首先需要了解Cg语言的标准函数库,链接地址:https://wenku.baidu.com/view/3a9db318fad6195f312ba675...

2017-08-09 13:49:24

阅读数:2020

评论数:0

Unity3D shader(5)——vertex shader(一)

基于顶点和片面的shader和surface shader还是有很多区别的,其中最基本的是语法区别。surface shader可以理解为是包装好的基于顶点和片面的shader语句。学习基于顶点和片面的shader语句更能理解其中蕴含的逻辑原理。 1、首先看一个简单的点和片面的shader语句: ...

2017-08-06 20:31:06

阅读数:172

评论数:0

Unity Shader(4)——surface shader(三)

接着上篇讲,雾化也是很重要的一种表现效果。(这里根据官方文件整理,后期会补上各种原理) 1、这里的雾化效果是根据物体和屏幕中心相关,离屏幕越近,雾化效果越明显 Shader "Example/Fog via Final Color" { Properties...

2017-08-06 10:59:12

阅读数:172

评论数:0

Unity3D shader(3)——surface shader(二)

接着上篇,(仅仅作学习之用,不作技术参考,具体可以看unity3D官方例子) 1、立方体贴图的效果,这里的立方体贴图依据的是世界坐标。以下是一个最简单的立方体贴图的shader Shader "Example/WorldRefl" { Properties { ...

2017-08-06 00:52:20

阅读数:215

评论数:0

Unity3D shader(2)——surface shader一

这里以Unity3D的官方例子为例。外加一些自己的理解。 surface shader相比于fixed shader,语法有很大的区别。 首先来看一个简单的surface shader。 1、给物体添加一个白色的颜色 其中:"RenderType" = "O...

2017-08-04 21:07:02

阅读数:220

评论数:0

Unity3D shader(1)——fixed shader

之前学了下Unity3D的shader,回头再看的时候,已经忘得七七八八了。索性直接再时间学一下,顺便记一下笔记加上些自己的理解。 Unity3D最简单的渲染管线是固定渲染管线。

2017-08-04 16:34:37

阅读数:233

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭