Unity Shader Fresnel 菲涅尔反射
效果图
- 黄色的漫反射
- 天空盒镜面反射
资源
- 天空盒 https://assetstore.unity.com/packages/2d/textures-materials/sky/free-hdr-sky-61217
代码
Shader "DC/Lighting/Fresnel"
{Properties{_MainTex ("Texture", 2D) = "white" {}_FresnelScale("FresnelScale", float) = 0.5_Environment("Envionment", Cube) = "defaulttexture" {}_SurfaceCol("SurfaceCol", Color) = (1,1,1,1)}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#include "Lighting.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;float3 normal : NORMAL;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;float3 worldViewDir : TEXCOORD1;float3 worldNormal : NORMAL;float3 worldRefl: TEXCOORD2;};sampler2D _MainTex;float4 _MainTex_ST;samplerCUBE _Environment;float _FresnelScale;fixed4 _SurfaceCol;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = TRANSFORM_TEX(v.uv, _MainTex);o.worldViewDir = normalize(UnityWorldSpaceViewDir(mul(unity_ObjectToWorld, v.vertex).xyz));o.worldNormal = normalize(mul(unity_ObjectToWorld, v.normal));o.worldRefl = reflect(-o.worldViewDir, o.worldNormal);return o;}fixed4 frag (v2f i) : SV_Target{/*菲涅尔反射指物体表面镜面反射和漫反射同时以一定比例发生的现象菲涅尔反射formularfresnel = fresnelScale + (1 - fresnelScale) * pow(1 - dot(worldViewDir, worldNormal), 5)finalCol = lerp(diffuseCol, reflectionCol, saturate(fresnel))*/float fresnel = _FresnelScale + (1 - _FresnelScale) * pow(1 - dot(i.worldViewDir, i.worldNormal), 5);float3 lDir = normalize(UnityWorldSpaceLightDir(_WorldSpaceLightPos0.xyz));fixed3 diffuseCol = _LightColor0 * saturate(dot(i.worldNormal, lDir)) * _SurfaceCol.rgb;fixed3 reflectionCol = texCUBE(_Environment, i.worldRefl).rgb;fixed3 col = lerp(diffuseCol, reflectionCol, fresnel);return fixed4(col,1);}ENDCG}}
}
Unity Shader Fresnel 菲涅尔反射相关推荐
- Unity Shader - The Fresnel Effect 菲涅尔效应
目录:Unity Shader - 知识点目录(先占位,后续持续更新) 原文:The Fresnel Effect 版本:2019.1 The Fresnel Effect 在现实世界中,物体的一个重 ...
- 【Unity Shader】 CubeMap(立方体贴图)
Unity Shader 立方体贴图 一.介绍CubeMap Shader中对CubeMap采样 Unity中如何制作CubeMap 二.Reflect CubeMap(反射立方体纹理用于环境映射) ...
- 【Unity Shader】用Cubemap实现天空盒和环境映射
1 关于Cubemap Cubemap在实时渲染中有很多应用,最常见的就是实现天空盒(Skybox)和环境映射(Environment Mapping). 2 实现天空盒 2.1 实现原理 天空盒不陌 ...
- Unity Shader总结(十)——Cubemap、镜子、玻璃、程序纹理
文章目录 天空盒 创建立方体纹理 环境映射 反射 折射 菲涅尔反射 渲染纹理(RenderTexture) 镜子效果 玻璃效果 渲染纹理和GrabPass的不同 程序纹理 程序材质 Cubemap是环 ...
- Unity Shader 实现透明护盾效果
这是大致的效果图,图片压得有点糊.我参考了本篇博客 Unity shader护盾特效. 这是原博客展示的图片: 本例采用了特殊的模型与贴图,原博客里有视频链接的教程,从模型到贴图. 以下是代码 // ...
- 【我的书】Unity Shader的书 — 目录(2016.5.19最后一次更新)
写在前面 感谢所有点进来看的朋友.没错,我目前打算写一本关于Unity Shader的书. 出书的目的有下面几个: 总结我接触Unity Shader以来的历程,给其他人一个借鉴.我非常明白学Shad ...
- 【我的书】Unity Shader的书 — 文件夹(2015.12.21更新)
写在前面 感谢全部点进来看的朋友.没错.我眼下打算写一本关于Unity Shader的书. 出书的目的有以下几个: 总结我接触Unity Shader以来的历程,给其它人一个借鉴.我非常明确学Shad ...
- Unity Shader 水多种元素的实现(反射、折射、菲涅尔、深浅、浪花/泡沫、水波、可交互)
综合效果 经过各元素叠加 和 程序的审美调参 后的综合效果 交互的水波与边缘浪花的合并需要优化一下 反射 两种方案: cubeMap 以水面对称设一个摄像机 cubeMap 实现:反射探针生成Cube ...
- 【unity shader】高级光照 --- 薄膜干涉
-光照模型是shader编程的核心与基础. 一般的光照模型–不管是lambert还是phong–其实都是对现实光照的模拟. 但是现实中的光照效果要复杂得多.但就光的反射而言, 薄膜干涉就是一种非常常见 ...
最新文章
- 独家|OpenCV 1.6 改变图像的对比度和亮度!
- 【IT基础】常见的开发文档
- 路由器+摄像头:Netgear在国内怎么走?
- 04-String——课后作业1:字串加密
- Linux下运行jar程序
- 《MySQL必知必会》[01] 基本查询
- less is more,so 只记 less
- python考试搜题-大学mooc用Python玩转数据章节考试答案
- Spring MVC 自定义验证器示例
- linux vi 中s 替换方法
- Java 程序员都该懂的 volatile 关键字
- DBN(深度置信网络)
- jsp案例分析(二)-聊天室-2-逆向建模
- Tampermonkey油猴插件——安装与使用教程
- dos命令远程重启计算机,简单DOS命令实现局域网Windows远程关机
- YunCharging充电桩系统开源源码,配套设备+小程序直接商用落地
- 报错 proxyconnect tcp: tls: first record does not look like a TLS handshake
- Julia Computing获得 2400 万美元融资,前 Snowflake CEO 加入董事会
- U盘制作ubuntu18.04.6系统安装盘
- SQLserver基础--语句、存储过程(七)
热门文章
- 配置网件公司的三层交换机的方法,以及两台linux pc之间用交换机连接,可以ping通
- echarts导出图片(.png和.jpg)
- 离职后不想住房公积金断缴?你还可以这样缴存住房公积金……
- 探访树图研究院:一群年轻人,欲用中国自己的区块链改变世界
- python sleep函数什么意思_Python sleep()函数用法:线程睡眠
- ThinkPad X1 carbon BIOS设置U盘装系统
- 【Rust开荒】数组避坑分享
- #652 (Div. 2)C. RationalLee(贪心)
- HDU 5598:GTW likes czf 敲了一天的数位DP
- String长度分析?