Shader "Custom/Atmosphere Glow"
{Properties{//大气层的颜色_AtmoColor("Glow Color", Color) = (1,1,1,1)//大气层反射效果的强化量_InnterRingFactor("Glow Factor", Float) = 5//大气层相对于地表的偏移_Offset("Vertex Offset", Float) = 0}SubShader{Tags{"IgnoreProjector" = "True""Queue" = "Transparent""RenderType" = "Transparent"}Pass{Blend One OneAlphaTest Greater 0.1ColorMask RGBACull Back Lighting Off ZWrite Off Fog{ Color(0,0,0,0) }CGPROGRAM#pragma vertex vert#pragma fragment frag#pragma glsl#pragma target 3.0uniform float _InnterRingFactor;uniform float4 _AtmoColor;uniform float _Offset;struct VertexInput{float4 vertex : POSITION;float3 normal : NORMAL;};struct VertexOutput{float4 pos : SV_POSITION;float4 posWorld : TEXCOORD0;float3 normalDir : TEXCOORD1;};VertexOutput vert(VertexInput v){VertexOutput o;//获得顶点的发现方向o.normalDir = normalize(mul(unity_ObjectToWorld,float4(v.normal, 0)).xyz);//对原来的顶点进行偏移v.vertex.xyz += (_Offset*v.normal);//在世界中的顶点信息o.posWorld = mul(unity_ObjectToWorld, v.vertex);//转换后得到偏移后的顶点信息o.pos = mul(UNITY_MATRIX_MVP, v.vertex);return o;}float4 frag(VertexOutput i) : COLOR{//视角方向float3 viewDirection = normalize(_WorldSpaceCameraPos.xyz - i.posWorld.xyz);//项目里没有使用光源,shader中模拟(0,0,0)点为太阳光照(点光源)float3 lightDirection = normalize((0,0,0) - i.posWorld.xyz);float ndl = dot(i.normalDir, lightDirection);float ndv = dot(i.normalDir, viewDirection);//实现的效果为内侧描边//这里当ndv为正数时,指数越大,效果越小,ndv为负数时1-ndv为大于1的数,指数越大,效果越强float3 innerRing = saturate(_AtmoColor.xyz * pow(1 - ndv,_InnterRingFactor)) ;//光源方向参与到运算中float3 finalColor = saturate(pow(ndl + max(0.2, dot(-lightDirection, viewDirection)), 3)) * (innerRing * 2) ;return float4(finalColor, 1);}ENDCG}}
}

效果对比如下:

UnityShader太空中的大气层效果相关推荐

  1. 人造卫星为什么会绕着地球转而不是停在太空中或者越飞越远.掉进地球的卫星为什么烧不完....

    人造卫星为什么会绕着地球转而不是停在太空中或者越飞越远.掉进地球的卫星为什么烧不完. 卫星被火箭推到太空中之后失去火箭的推动不就停在太空中或者因为惯性越飞越远了吗,为什么会绕着地球在椭圆形的轨道上飞? ...

  2. 用计算机来控制飞船在太空中运行,神舟飞船在太空中靠什么动力运行

    与汽车和飞机都靠发动机的推力前进一样,神舟飞船在太空中运行也是靠发动机推动的.所不同的是汽车和飞机上的发动机是依靠油料与空气中的氧气混合燃烧,产生气体推力,因此,它们都离不开空气中的氧气.而飞船上的发 ...

  3. shadermaterial 实现大气层效果和辉光效果

    1.创建两个球体,一个一小,一个略大的作为他的辉光 2.作为辉光的球体从内到外片元透明度逐渐减小(线性减小或是指数减小都可以) 3.将覆盖原物体的部分丢弃 辉光效果 var vertexShader ...

  4. 使用threejs实现地球辉光和大气层效果

    使用threejs实现地球辉光和大气层效果 使用插件方式 在github上有glow的插件可以使用,效果不错. 地址:https://github.com/jeromeetienne/threex.g ...

  5. 人类登月的幕后英雄,又推出了太空中第一位AI暖男

    人类登月计划中的幕后英雄 也许有敏感的读者朋友已经察觉到,自从迈入2019年以来,有关登月和太空的话题明显增多. 原因其实很简单:距离1969年7月20日人类首次踏足月球,2019年正好是人类登月50 ...

  6. 气泡图在开源监控工具中的应用效果

    气泡图在开源监控工具中的应用 Bubble Chart(气泡图),使用气泡图便于在行.列两个方向同时进行比较.气泡图也清晰地告诉哪里大.哪里小.如图1~图5为你展示几款开源监控工具在使用气泡图时的应用 ...

  7. Android关于绘图中Shader 的效果(中级)

    Android关于绘图中Shader 的效果(中级) 关于绘图中Shader 的效果 本人对API中Shaser的参数理解不够深刻 所以只能测试来看 效果一下就看出来了 Shader mShade=n ...

  8. DevExpress中透明玻璃效果

    Aero玻璃效果 下图左是DevExpress无玻璃效果,图右是Windows自带玻璃效果. Windows Aero 是从 Windows Vista 开始使用的新型用户界面,透明玻璃感让用户一眼贯 ...

  9. 网络营销专员浅析如何判断网络营销中网站优化效果几何?

    对于新老站长来说在网站网络营销推广过程中时常都会针对行业内类似同行网站进行网站优化效果分析,并针对其他网站重点优势取长补短以此来提升自家网站优化水平,大大提升企业网站在搜索引擎中的网站排名和权重指数. ...

最新文章

  1. plotly基于dataframe数据绘制股票蜡烛图(Candlestick)
  2. Python爬虫入门教程石家庄链家租房数据抓取
  3. oracle数据库的诊断目标位置,刚安装的数据库卸载 指定数据库的诊断目标位置不存在...
  4. ajax 与route的区别,浅析vue-router jquery和params传参(接收参数)$router $route的区别
  5. 1.3 使用电脑测试MC20的电话语音功能
  6. excel保存超过15位数据不变科学计数法的方法
  7. 在SQL Server中插入IN-T-SQL语句
  8. 指定复制的数据库或者表
  9. VIM查看空格,换行,TAB键
  10. pandas不显示index_Pandas中文官档 ~ 基础用法1
  11. DELMIA软件弧焊仿真:以零件面与面相交线为焊缝的机器人弧焊焊接
  12. Objective-C 信息传递模型 [ ] 发送消息
  13. 做问卷调查最基本的注意事项
  14. 爱分析·中国采购数字化行业趋势报告
  15. 如何恢复按下Shift + DELETE键永久删除的文件和资料夹?
  16. Scrapped or attached views may not be recycled. isScrap:false isAttached:true android.support.v7.wid
  17. 成功把变砖的RTL9210b硬盘盒救了回来,附量产工具和固件
  18. ABAP-SAP 账号批量创建分配权限程序
  19. 简智音科技:抖音短视频账号限流后的解决方法
  20. Windows Style Builder一些路径分享-2022.8.21(不定期更新)

热门文章

  1. 【路径规划】基于PSO的路径规划问题【Matlab代码#7】
  2. Arthas : 具体问题分析小册子
  3. 考试缴费仅能京东支付?北京发改委:滥用行政权力
  4. 草稿-9206-盒子模型-
  5. 哈佛学生的4年大学生活
  6. 邀请职业培训师到我们公司讲课
  7. 如何利用CAD快速生成断面图
  8. 我在深圳这几年。。。。(四)
  9. 基于大疆EP和Opencv完成人脸跟随项目
  10. 超越时代的天才——图灵 1