Hologram Shader
来源:互联网 发布:php技术文章 编辑:程序博客网 时间:2024/05/22 16:50
全息图Shader效果图如下:
全息图是啥,自己百度下吧,(单一光照射。 传统的照片呈现的是真实的物理图像,而全息图则包含了被记录物体的尺寸、形状、亮度和对比度等信息。这些信息储存在一个很微小但却很复杂的干涉模式中。这个干涉模式是由激光产生的)
Shader代码如下:
Shader "Custom/MyHologram" { Properties { _MainTex ("Main Tex ", 2D) = "white" {} //主纹理 _BumpMap("Bumpmap",2D)="bump"{} //法线贴图 _RimColor ("Rim Color", Color) = (0.26,0.7,1.0,0.0) //边缘光颜色 _RimPower ("Rim Power", Range(0.1,8.0)) = 3.0 //边缘光放大倍数 _ClipPower("Clip Power",Range(0.0,301.0))=200.0 //分割强度 参见surfaceshader examples 中Slices via World Space Position例子,值越大条纹越细 _Brightness("Brightness",Range(0.0,3.0))=1.5 //光强 _DiffuseAmount("Diffuse Amount",Range(0.0,1.0))=0.0 //渐变比例值,看后面lerp函数就明白 } SubShader { Tags{ "RenderType"="Transparent" "Queue"="Transparent" "IgnoreProjector"="True" } Pass { ZWrite On // 写入深度缓存的作用就是为ZTest的比较做准备 ColorMask 0 //关闭所有颜色渲染通道, 默认是渲染RGBA通道 } CGPROGRAM #pragma surface surf Lambert alpha noambient nolightmap nodirlightmap novertexlights struct Input{ float2 uv_MainTex; float2 uv_BumpMap; float3 viewDir; float3 worldPos; float4 screenPos; }; sampler2D _MainTex; sampler2D _BumpMap; float4 _RimColor; float _RimPower; float _ClipPower; float _Brightness; float _DiffuseAmount; void surf(Input IN,inout SurfaceOutput o) { //screenPos是一个三维点,但是用齐次坐标的形式表示出来就是(x,y,z,w) //根据齐次坐标的性质。(x,y,z,w)的齐次坐标对应三维点(x/w,y/w,z/w) float2 screenUV=IN.screenPos.xy/IN.screenPos.w; //实际的屏幕xy的UV值。 //frac是取小数的函数,如1.23取出来就是0.23 //clip 如果输入向量中的任何元素小于0,则丢弃当前像素。 if(_ClipPower<=300.0f) clip(frac(screenUV.y*_ClipPower)-0.5); half4 basecol=tex2D(_MainTex,IN.uv_MainTex); //灰度值 half3 graycol=dot(basecol.rgb,float3(0.3,0.59,0.11)); o.Albedo=basecol; //lerp(graycol,basecol,_DiffuseAmount); //法线贴图 o.Normal=UnpackNormal(tex2D(_BumpMap,IN.uv_BumpMap)); //边缘光 half rim=1.0-saturate(dot(normalize(IN.viewDir),o.Normal)); o.Emission=lerp(_RimColor.rgb * pow (rim, _RimPower) * _Brightness,basecol,_DiffuseAmount); o.Alpha = o.Emission; } ENDCG } FallBack "Diffuse"}
另外需要注意的是,在任务模型上挂一个点光源,颜色、强度什么自己看着设就好,不明白的地方,留言交流。。。
0 0
- Hologram Shader
- Hologram的实现
- Hologram 的稳定性
- HoloLens开发手记-全息Hologram
- shader
- shader
- shader
- Shader
- Shader
- shader
- shader
- shader
- Shader
- shader
- Shader
- shader
- Shader
- shader
- NandFlash 坏块
- 朴素贝叶斯分类(Naive Bayes)--检测APP中的僵尸账号
- select选中之后隐藏div
- 大型SpringMVC,Mybatis,Redis,Solr,Nginx,SSM分布式电商项目视频教程
- django配置mysql
- Hologram Shader
- ecshop彻底去版权把信息修改成自己的全教程
- c++作业五
- 针对去掉ActivitionBar下的那条黑色的阴影
- 532. K-diff Pairs in an Array
- 生命的礼物
- chrome F12 开发者工具使用技巧
- crt格式证书转pem格式证书
- PyCharm 2016破解