Unity Shader初学
v_xchen_v
这个作者很懒,什么都没留下…
展开
-
【Unity Shader实例】 水体WaterEffect(四) 水的反射
Unity Shader实现水体的镜面反射效果平静的水面会像镜子一样映射出周围的景致(光的反射)。前面我们用视线向量的反射向量对天空盒的CubeMap纹理采样,模拟出了这样反射效果。但这种基于CubeMap反射效果的环境映射,并不是“真”反射,只是“模拟”环境反射,是“假”反射。如果我们改变了环境的天空盒子,物体的纹理并不会跟着改变,且不会反射出环境中的其他物体,只能反射天空盒子。接下...原创 2018-03-26 14:38:50 · 6568 阅读 · 0 评论 -
【Unity Shader实例】 水体WaterEffect(三) 环境映射
Unity Shader实现水体的环境映射平静的水面会像镜子一样映射出周围的景致(光的反射)。此外,水这种透明材质,应该可以透视,我们的眼睛可以透过水面看到水下的环境(光的折射)。效果展示实现在图形学中,立方体纹理(CubeMap)是环境映射(Environment Mapping)的一种实现方法。环境映射可以模拟物体周围IDE环境,而使用了环境映射的物体可以看起来像镀...原创 2018-03-26 00:48:05 · 6167 阅读 · 0 评论 -
【Unity Shader实例】 水体WaterEffect(二) 用贴图和uv动画模拟水效
Unity Shader实现简单水体效果效果展示原理用贴图和uv动画模拟水效实现”假”水。设计找一张水波的贴图,处理它的uv值,让贴图流动起来。这样就用静态纹理和uv动画模拟出了动态水流动的效果。实现要点贴图流动 贴图流动的实质就是uv偏移,图片各个部分的偏移程度有区别(可以借助噪声图让uv偏移程度具有随机性的区别)就实现了扭曲效果。让偏移程度与...原创 2018-03-24 11:44:03 · 8081 阅读 · 0 评论 -
【Unity Shader实例】 水体WaterEffect(一) 设计
Unity Shader 水体效果实现的设计在设计水体效果的实现方案之前,我们先参考一下大神们写好的精彩的例子,比如DCG Water Shader的效果,这也是我们努力的目标。 好!~ 现在开始实现自己的水体shader!环境项目:水体拟真Shader 引擎:Unity3D 编程语言:Unity Shader(ShaderLab + CG language)概述...原创 2018-03-24 11:15:38 · 17692 阅读 · 2 评论 -
【Unity Shader】 Fixed function shader(固定管线着色器)
一、介绍fixed function shader(固定渲染管线shader),是相对于可编程的shader而言的。 所谓固定管线,是说芯片上一组电路已经固定实现了特定的运算功能,程序能做的只是提供场景数据以及微调运算功能的参数。 它适用于所有的显卡,常用于高级Shader在老显卡无法显示时的Fallback。 Unity中的固定管线shader使用ShaderLab语言。 固...原创 2018-02-25 16:34:46 · 1218 阅读 · 0 评论 -
【unityshader小实例】 轮廓外发光(光晕)
发光效果外发光(光晕):在模型轮廓外形成逐渐衰减的光 生成光晕的原理原理并不复杂: 让物体的顶点位置沿着法线方向延伸,然后使用视角法线点积物体法线的方式形成一个中间最亮向四周扩散亮度逐渐衰减的效果,再给物体贴上贴图或者填上色盖住物体内部的光晕,我们就实现了轮廓外发光手写unity shader实现光晕(外发光)// Upgrade NOTE: replace...原创 2017-10-17 17:26:20 · 35870 阅读 · 21 评论 -
【Unity Shader】 Blinn-phong光照模型
Unity Shader Blinn-phong光照模型一、镜面反射简介对于许多物体,漫反射不够真实,比如擦亮的金属、光滑的塑料。要模拟光滑表面,还需要添加镜面高光反射的颜色,。在金属这样的光滑表现上,能模拟出光泽1. 理想镜面反射一束平行光射到平面镜上,入射光严格遵循光的反射定律平行的反射出去,这种反射叫做镜面反射。 2. 非理想镜面反射现实中的物体表面都...原创 2018-03-03 22:08:55 · 3520 阅读 · 0 评论 -
【Unity Shader】 Lambert(兰伯特)光照模型
Unity Shader Lambert光照模型与漫反射一、漫反射简介漫反射的特点二、漫反射光照模型-Lambert(兰伯特)光照模型Lambert 余弦定理三、自定义UnityShader实现漫反射(Diffuse)效果写法效果展示参考Unity Shader Lambert光照模型与漫反射一、漫反射简介一束平行光入射到凹凸不平的表面...原创 2018-03-03 16:37:53 · 8397 阅读 · 0 评论 -
【Unity Shader】 Cull(表面剔除)
介绍UnityShader的表面剔除(表面剪裁)技术ShaderLab Cull命令什么是表面剔除?为什么要进行表面剔除?表面剔除效果测试示例一个Cull的应用实例-物体的外描边代码效果展示介绍UnityShader的表面剔除(表面剪裁)技术ShaderLab Cull命令 shaderLab语句 说明 Cull Off ...原创 2018-03-01 06:25:12 · 11213 阅读 · 1 评论 -
【Unity Shader】 基本代码结构
代码结构演示对比固定管线和可编程shader的基础结构Render Setup语法1. 固定管线shader2. 可编程shaderUnity Shader常用语义代码结构//shader的名字会显示在unity的inspector中选择shader的菜单里面Shader "Shader的路径和名称"{ //属性 [Proper...原创 2018-02-28 22:27:50 · 1989 阅读 · 0 评论 -
【Unity Shader】 CubeMap(立方体贴图)
Unity Shader 立方体贴图一、介绍CubeMapShader中对CubeMap采样Unity中如何制作CubeMap二、Reflect CubeMap(反射立方体纹理用于环境映射)环境映射原理反射方向的计算Unity Shader实现Reflection CubeMap(基于CubeMap的反射效果)反射CubeMap的Shader代码反射效果展示ps:“...原创 2018-03-07 17:22:35 · 48037 阅读 · 6 评论 -
【Unity Shader】 Blend
一、介绍 Blending(混合)是计算机呈现渲染结果的最后阶段,混合操作用于与所有计算已结束且已决定将当前计算结果输出到帧缓冲中,此时,如何将待渲染的像素与G-buffer中已的像素进行作用,是直接替换原来的,还是一加一的混合,这就需要混合命令来告诉GPU混合方式。 二、语法:1. 命令Blend Off:关闭混合(默认)Blend SrcFactor DstF...原创 2018-02-26 22:49:06 · 3917 阅读 · 0 评论 -
【Unity Shader】 Fog
一、介绍FogFog,即雾化。本质是离屏幕越远的物体,就越趋向某种颜色。通常是远处,即离屏幕远的地方,趋向于白色或浅灰色。 二、Unity 灯光的Fog选项1. Color雾的颜色2. Mode线性(Linear): 其中dmax和dmin分别表示受雾影响的起点和终点。一次指数(Exponential): d表示雾的浓度,e=2.71828...原创 2018-02-26 22:19:45 · 2288 阅读 · 0 评论 -
【Unity Shader】 Alpha测试
介绍Alpha测试:符合条件的像素显示出来,不符合的丢掉一、fixed function shader的透明通度测试ShaderLab: Legacy Alpha Testing语法关闭Alpha测试AlphaTest Off渲染所有的像素(默认)或者… 2. 开启Alpha测试AlphaTest comparison AlphaValue...原创 2018-02-26 18:06:15 · 4265 阅读 · 0 评论 -
【Unity Shader】 模板测试
介绍模板测试stencil test是3d渲染管线中介于透明测试alpha test和深度测试depth test之间的测试,目的是根据条件来比较设置的参考值referenceValue和模板缓冲区stencil buff中对应的值stencilBuffValue的大小,如果条件满足就让片段fragment(候选的像素)进入下一测试,即深度测试,条件不满足就过滤掉片段,不把对应材质的片段输出到...原创 2018-02-26 18:03:46 · 2531 阅读 · 0 评论 -
【Unity Shader】 深度测试
介绍在不使用深度测试的时候,如果我们先绘制一个距离较近的物体,再绘制距离较远的物体,则距离远的物体因为后绘制,会把距离近的物体覆盖掉,这样的效果并不是我们所希望的。而有了深度缓冲以后,绘制物体的顺序就不那么重要了,都能按照远近(Z值)正常显示,这很关键。1. 深度深度其实就是该象素点在3d世界中距离摄象机的距离(绘制坐标),深度缓存中存储着每个象素点(绘制在屏幕上的)的深度值! ...原创 2018-02-26 18:00:43 · 3479 阅读 · 0 评论 -
unity shader 学习记录
记录下我学习unity shader的过程,并把我看到过的高质量教程推荐给大家!借助插件shaderforge来熟悉着色的效果,并对照着shaderforge自动生成的shader代码手工优化和实现unity shader代码 推荐书籍《Unity Shader入门精要》冯乐乐《Unity Shaders and Effects Cookbook》 Kenny Lammers...原创 2017-10-17 17:30:49 · 826 阅读 · 0 评论 -
【Unity Shader实例】 水体WaterEffect(五) 水的折射
Unity Shader实现水体的折射效果水是透明物体,站在清澈的水边,我们可以透过水看到水中的物体。且随着水波晃动,水下的景象会随着水波扭曲。前面我们实现了水的环境映射、水的反射效果,现在我们来做水的折射效果。效果展示透明/半透明物体折射效果的实现原理先把透明物体隐藏起来,实时获取摄像机渲染的图像,然后对图像进行扭曲处理,然后再把水的模型显示出来,把处理好...原创 2018-04-01 22:31:03 · 7045 阅读 · 3 评论