http://www.lai18.com/content/506918.html

1.自生要求是很重要的,当然不是什么强迫工作之类的,而是自己有限的能力上不断的扩展兴趣上的内容。

2.用生活的眼光去发现shader的存在形式,许多灵感都来自于大自然,比如 火苗的动态抖动 像 frac/fract(time)函数,甚至小草被风吹也像frac/fract(time).

http://www.glslsandbox.com/e#24095.1

3.千万不要有压力,而是动力,每次调颜色和参数都有不经意的收获,多次尝试是产生意外之一,感觉会油然而生,当然要抓住它它它它它它它它。。。

转载请出处地址 http://www.lai18.com/content/506918.html 恬纳微晰

如果写效果头疼,那么

1.这这这,不就是透射的感觉么?

折射率改变

散色率的改变

透射颜色改变

如果看效果眼睛疼,那么

后期屏幕特效-HDR之亮度映射效果

后期屏幕特效-HDR之色调映射效果

后期屏幕特效-模拟gamma效果

什马效果

当然除了以上效果,还有bloom,glow,streak,ghost,blur,flare,次表面散色等等效果,你直接wiki和Nvida官网上得到相关资料。当然搭配得好才是,,,不然耗了硬件又耗了审美观。。

慢慢来,不要强求一下子完美

反射

物理上我们常常学到的是环境中的光线入射到介质里,产生了折射变化。而对于一个unity游戏引擎来说光是非常宝贵的,unity5.x中的GI全局光照什马的采用so easy版光线追踪,什马的ray_cast、ray_track、ray_march等等,我们常用到的还是ray-cast…….

于是我们可以用视线投射出光线,逆着光路查询颜色。

当然至于查询颜色,像这种360度无死角反射,让你会毫不犹豫的想到它(?????)

对!!!就是它了,cubemap,当然你也要先samplerCUBE采样器采样。

那散色与折射呢?

亦夫如是,不过要下点功夫而已,什么是散射,它和折射到底是父子关系还是夫妻关系?(这个嘛!属于物理,可以wiki百科啊、、)

那怎么用shader写出散色,如果知道rgb通道,那么做做手脚也是不错的选择。(三原色,哈哈哈!!!)

fresnel(菲涅尔)好高大上的样子

OK!!!就是这么着,这是我简版菲涅尔。

其实它就是我们可以认为的边缘光照(

),有可以用它做为描边效果,而我用它做做差值反射与折射效果,这个pow()嘛!你懂得!

用用后期效果试试

我实在是不行了,快来救救我,于是

对,没有猜错,这就是so easy版camera与shader打交道的方式之一

这是传递camera图像的,a图片传给shader(gpu),b图片就是shader渲染完的图片给camera显示啊。你当然可以看看 unity 自带的 API说明就是了。

后期shader


就是Ta,一个又是自己写的shader,,,其实自己写shader才放心,还能变花样,还能优化!当然也有人怀疑自己弄得太神,哈哈哈哈哈哈,天朝gpu编程有多大的历史啊,有好多靠wiki学习,再说这么点代码,太美妙了。

亮度(Luminance)

用用Luminance是个不错的选择

对亮度合理的分配。

色调映射(toneMapping)

http://en.wikipedia.org/wiki/Tone_mapping这是Tonemapping的wiki解释

对!就它了,图中圈出的so easy版tonemapping 过滤器。。。。

当然,还有更好的tonemapping过滤器,你可以自己去发明或看看理论。

gamma

一个so easy gamma版本

更叼的算法和特效,你说呢?

那是不会放出来的,有的埋在土里,有的就在wiki中,作为一个博客,为了不让别人把重要的东西复制走了,你除了水印就是代码替换,保护自己的著作版权。。。

视觉一览通

我认为雕像可以的样子

背景-全景图cubemap来自wiki百科下载,特效渲染归 恬纳微晰所有

有空把 曲面细分 拿来说说,把 sun shader拿来说说,还有好多多…………

Unity shader(CG) 写一个 散色、折射、反射、菲涅尔、gamma、简单后期屏幕特效的更多相关文章

  1. CG之菲涅尔效果简单实现

    菲涅尔效果,指当光到达两种材质的接触面时,一些光在接触面的表面被反射出去,而另一部分光将发生折射穿过接触面. 现在要用shader来实现这种效果,如果要精确地描述这种底层的物理,其计算公式是非常复杂的 ...

  2. [Unity] Shader - CG语言 和 HLSL语言

    CG 跟 HLSL几乎是一摸一样的. (HLSL官方参考,包含语法格式,函数库,关键字,在这个地方: http://msdn.microsoft.com/en-us/library/bb509638( ...

  3. [Unity] Shader - CG语言 流程控制语句

    CG语言中: 不支持 switch 语句(可以写,但不能很好的执行.) 循环语句中, 循环次数不能大于 1024 ,否则会报错. If...ELSE 条件判断语句: if (true) { } els ...

  4. unity, Shader.Find的一个坑

    所以对于没有被任何东西引用,只靠在游戏运行时使用Shader.Find换上去的shader,为了双保险,可以首先放到resources文件夹里,另外,再在ProjectSettings->Gra ...

  5. 写一个Python 1、通过select实现的最简单的web框架2、通过wsgiref实现的web框架

    #!/usr/bin/env python # -*- coding: utf- -*- import socket import select class MyRequest: "&quo ...

  6. Unity Shader 菲涅尔环境反射

    菲涅尔反射描述了一种光学现象,当光照到物体表面时,一部分发生反射,另一部分则进入物体内部,发生折射或散射:相比直接的反射和折射计算,菲涅尔反射更接近真实情况. 可用下面的等式近似计算这种反射效果: F ...

  7. Unity Shader入门精要学习笔记 - 第10章 高级纹理

    转载自 冯乐乐的 <Unity Shader入门精要> 立方体纹理 在图形学中,立方体纹理是环境映射的一种实现方法.环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了层 ...

  8. Unity Shader入门精要学习笔记 - 第9章 更复杂的光照

    转载自 冯乐乐的<Unity Shader入门精要> Unity 的渲染路径 在Unity里,渲染路径决定了光照是如何应该到Unity Shader 中的.因此,如果要和光源打交道,我们需 ...

  9. Unity Shader入门精要学习笔记 - 第3章 Unity Shader 基础

    来源作者:candycat   http://blog.csdn.net/candycat1992/article/ 概述 总体来说,在Unity中我们需要配合使用材质和Unity Shader才能达 ...

随机推荐

  1. Maven仓库的理解及配置

    什么是Maven仓库 在不用Maven的时候,比如说以前我们用Ant构建项目,在项目目录下,往往会看到一个名为/lib的子目录,那里存放着各类第三方依赖jar文 件,如log4j.jar,junit. ...

  2. 使用Windows安装的最高版本IE内核加载内嵌页(转载)

    客户端程序内嵌Webbrowser控件时,默认情况都是使用IE7兼容模式打开网页的.但是IE7有很多新的特性不支持,导致无法正常显示出来,所以需要强制使用高版本的IE内核来加载.渲染. void Ch ...

  3. SqlSever基础 Upper函数 返回字符串的大写形式

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  4. 向sql server 导入数据库

    在sql server 中选择数据库.右键,还原数据库 选择源设备,点击添加,选中相应的数据库文件. 在目标数据库栏选择相应的数据库名称 点击下一步.

  5. CP,SCP 命令(包括windows与linux用xshell互传)

    linux之cp/scp命令+scp命令详解 名称:cp 使用权限:所有使用者 使用方式: cp [options] source dest cp [options] source... direct ...

  6. php中一个"异类"语法: $a && $b = $c;

    php中一个"异类"语法: $a && $b = $c;     $a = 1;$b = 2;$c = 3;$a && $b = $c;echo & ...

  7. 图解SQL 2008数据库复制

    为了达到数据及时备份,一般采用完整备份+差异备份即可,或者再加上日志备份,本文介绍使用数据库复制技术同步数据: PS:文章以图片为主,图片更能直观的看出操作步骤和配置方法! 1.首先创建一个测试的数据 ...

  8. C#:常规属性和自动实现的属性

    根据属性的实现方式,属性可分为自动实现的属性和常规属性. 常规属性需要具体的人为的实现get访问器或者set访问器,而且一般需要有一个字段与之相对应:而自动实现的属性的get和set访问器的实现部分被 ...

  9. 第二篇,MVC框架

    MVC : 模型(model)---视图(view)---控制器(caontreller)的缩写 MVC是一个设计模式,他强制性的使应用程序的输入,处理,输出 分开 模型(Model):程序员编写程序 ...

  10. 领域驱动设计系列文章——浅析VO、DTO、DO、PO的概念、区别和用处

    本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: ...