当前位置: 首页 > news >正文

山西省网站专业网站建设公司兴田德润简介

山西省网站,专业网站建设公司兴田德润简介,北京工商注册登记网上服务系统,河北自助建站系统平台Unity引擎制作下雨效果 大家好#xff0c;我是阿赵。   之前介绍了Unity引擎里面通过UV偏移做序列帧动画的做法#xff0c;这里再介绍一个进阶的用法#xff0c;模拟地面下雨的雨点效果。 一、原理 最基本的原理#xff0c;还是基于这个序列帧动画的做法。不过这里做一点… Unity引擎制作下雨效果 大家好我是阿赵。   之前介绍了Unity引擎里面通过UV偏移做序列帧动画的做法这里再介绍一个进阶的用法模拟地面下雨的雨点效果。 一、原理 最基本的原理还是基于这个序列帧动画的做法。不过这里做一点改变。我不再用网格的UV作为计算的UV而是通过worldPosition的xz轴去计算并且我加上了一个frac方法。 float2 uv frac(i.worldPos.xz*_tiling); uv GetSequenceAnimUV(uv,_cols,_rows,_speed, _startFrame);这样做的好处是UV不再依赖网格模型可以平均的铺在地面上而且地面可以无限延伸特别适合做地面雨滴效果。 这样做的效果是这样的 由于frac的效果是把数值只保留小数部分所以之前的uv坐标就被划分成很多个小的0-1之间的区域。于是UV序列帧动画也变成了多个。   接下来要做的事情就是把这张1-9的数字图片换成一张雨点扩散的序列帧图片。由于如果是真的水面固有色部分还需要做其他效果所以这个雨点的序列图最好是法线贴图。   然后通过之前介绍过的法线贴图的用法把序列帧动画的UV采样法线贴图然后把法线的效果加强就出现了雨点打地面的效果。 二、代码 于这里只是介绍雨点的效果所以固有色我就不去认真做了只是做了个固有色然后雨点的法线效果是通过高光来表现的。组合了一下之前介绍过的光照模型的代码还有序列帧动画的代码就得到了这么一个shader代码了。 Shader azhao/Rain {Properties{_MainTex (Texture, 2D) white {}_color(Color,Color) (1,1,1,1)_cols(Cols,int) 1_rows(Rows,int) 1_tiling(Tiling,int) 1_speed(Speed,float) 25_startFrame(startFrame,int) 0_NormalTex(Normal Tex, 2D) black{}_normalScale(normalScale, Range(0 , 1)) 0_specColor(SpecColor,Color) (1,1,1,1)_shininess(shininess, Range(1 , 100)) 1_specIntensity(specIntensity,Range(0,1)) 1}SubShader{Tags { RenderTypeOpaque }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include UnityCG.cgincstruct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;float3 normal:NORMAL;float3 tangent:TANGENT;};struct v2f{float4 vertex : SV_POSITION;float2 uv : TEXCOORD0;float3 worldPos:TEXCOORD1;float3 worldNormal : TEXCOORD2;float3 worldTangent :TEXCOORD3;float3 worldBitangent : TEXCOORD4;};sampler2D _MainTex;float4 _MainTex_ST;float4 _color;float _cols;float _rows;float _tiling;float _speed;float _startFrame;sampler2D _NormalTex;float4 _NormalTex_ST;float _normalScale;float4 _specColor;float _shininess;float _specIntensity;float _ambientIntensity;float2 GetSequenceAnimUV(float2 uv,float cols,float rows,float speed,float startFrame){float totalTiles cols * rows;float colsOffset 1.0f / cols;float rowsOffset 1.0f / rows;float speedVal _Time.y * speed;float2 offsetTiling float2(colsOffset, rowsOffset);float currentIndex round(fmod(speedVal startFrame, totalTiles));currentIndex (currentIndex 0) ? totalTiles : 0;float lineNum round(fmod(currentIndex, cols));float offsetX lineNum * colsOffset;float rowCount round(fmod((currentIndex - lineNum) / cols, rows));rowCount (int)(rows - 1) - rowCount;float offsetY rowCount * rowsOffset;float2 offsetXY float2(offsetX, offsetY);float2 result uv*offsetTiling offsetXY;return result;}//简化版的转换法线并缩放的方法half3 UnpackScaleNormal(half4 packednormal, half bumpScale){half3 normal;//由于法线贴图代表的颜色是0到1而法线向量的范围是-1到1//所以通过*2-1,把色值范围转换到-1到1normal packednormal * 2 - 1;//对法线进行缩放normal.xy * bumpScale;//向量标准化normal normalize(normal);return normal;}//获取HalfLambert漫反射值float GetHalfLambertDiffuse(float3 worldPos, float3 worldNormal){float3 lightDir UnityWorldSpaceLightDir(worldPos);float NDotL saturate(dot(worldNormal, lightDir));float halfVal NDotL * 0.5 0.5;return halfVal;}//获取BlinnPhong高光float GetBlinnPhongSpec(float3 worldPos, float3 worldNormal){float3 viewDir normalize(UnityWorldSpaceViewDir(worldPos));float3 halfDir normalize((viewDir _WorldSpaceLightPos0.xyz));float specDir max(dot(normalize(worldNormal), halfDir), 0);float specVal pow(specDir, _shininess);return specVal;}v2f vert (appdata v){v2f o;o.vertex UnityObjectToClipPos(v.vertex);o.uv TRANSFORM_TEX(v.uv, _MainTex);o.worldPos mul(unity_ObjectToWorld, v.vertex);o.worldNormal UnityObjectToWorldNormal(v.normal);o.worldTangent UnityObjectToWorldDir(v.tangent);o.worldBitangent cross(o.worldNormal, o.worldTangent);return o;}half4 frag (v2f i) : SV_Target{float2 uv frac(i.worldPos.xz*_tiling);float2 normalUV GetSequenceAnimUV(uv,_cols,_rows,_speed, _startFrame);//采样法线贴图的颜色half4 normalCol tex2D(_NormalTex, normalUV);//得到切线空间的法线方向half3 normalVal UnpackScaleNormal(normalCol, _normalScale).rgb;//构建TBN矩阵float3 tanToWorld0 float3(i.worldTangent.x, i.worldBitangent.x, i.worldNormal.x);float3 tanToWorld1 float3(i.worldTangent.y, i.worldBitangent.y, i.worldNormal.y);float3 tanToWorld2 float3(i.worldTangent.z, i.worldBitangent.z, i.worldNormal.z);//通过切线空间的法线方向和TBN矩阵得出法线贴图代表的物体世界空间的法线方向float3 worldNormal float3(dot(tanToWorld0, normalVal), dot(tanToWorld1, normalVal), dot(tanToWorld2, normalVal));//用法线贴图的世界空间法线算漫反射half diffuseVal GetHalfLambertDiffuse(i.worldPos, worldNormal);//用法线贴图的世界空间法线算高光角度half3 specCol _specColor * GetBlinnPhongSpec(i.worldPos, worldNormal)*_specIntensity;half4 col tex2D(_MainTex,i.uv);col.rgb col.rgb*_color.rgb specCol;return col;}ENDCG}} }
文章转载自:
http://www.morning.rdqzl.cn.gov.cn.rdqzl.cn
http://www.morning.lrmts.cn.gov.cn.lrmts.cn
http://www.morning.pzss.cn.gov.cn.pzss.cn
http://www.morning.skrcn.cn.gov.cn.skrcn.cn
http://www.morning.mspkz.cn.gov.cn.mspkz.cn
http://www.morning.zmyzt.cn.gov.cn.zmyzt.cn
http://www.morning.lnmby.cn.gov.cn.lnmby.cn
http://www.morning.xrsqb.cn.gov.cn.xrsqb.cn
http://www.morning.jyfrz.cn.gov.cn.jyfrz.cn
http://www.morning.rfdqr.cn.gov.cn.rfdqr.cn
http://www.morning.hqbk.cn.gov.cn.hqbk.cn
http://www.morning.gxtfk.cn.gov.cn.gxtfk.cn
http://www.morning.mooncore.cn.gov.cn.mooncore.cn
http://www.morning.qxjck.cn.gov.cn.qxjck.cn
http://www.morning.ypbp.cn.gov.cn.ypbp.cn
http://www.morning.bswnf.cn.gov.cn.bswnf.cn
http://www.morning.ydnx.cn.gov.cn.ydnx.cn
http://www.morning.rfjmy.cn.gov.cn.rfjmy.cn
http://www.morning.xhsxj.cn.gov.cn.xhsxj.cn
http://www.morning.tlnbg.cn.gov.cn.tlnbg.cn
http://www.morning.yqyhr.cn.gov.cn.yqyhr.cn
http://www.morning.nbgfz.cn.gov.cn.nbgfz.cn
http://www.morning.hffjj.cn.gov.cn.hffjj.cn
http://www.morning.rmyqj.cn.gov.cn.rmyqj.cn
http://www.morning.hxlpm.cn.gov.cn.hxlpm.cn
http://www.morning.qrqg.cn.gov.cn.qrqg.cn
http://www.morning.txrkq.cn.gov.cn.txrkq.cn
http://www.morning.xhddb.cn.gov.cn.xhddb.cn
http://www.morning.tnjff.cn.gov.cn.tnjff.cn
http://www.morning.hhpkb.cn.gov.cn.hhpkb.cn
http://www.morning.hjjhjhj.com.gov.cn.hjjhjhj.com
http://www.morning.rqlbp.cn.gov.cn.rqlbp.cn
http://www.morning.kmbgl.cn.gov.cn.kmbgl.cn
http://www.morning.rlksq.cn.gov.cn.rlksq.cn
http://www.morning.mcfjq.cn.gov.cn.mcfjq.cn
http://www.morning.rwpfb.cn.gov.cn.rwpfb.cn
http://www.morning.wpjst.cn.gov.cn.wpjst.cn
http://www.morning.frpfk.cn.gov.cn.frpfk.cn
http://www.morning.gygfx.cn.gov.cn.gygfx.cn
http://www.morning.bxhch.cn.gov.cn.bxhch.cn
http://www.morning.ldspj.cn.gov.cn.ldspj.cn
http://www.morning.wnrcj.cn.gov.cn.wnrcj.cn
http://www.morning.rlpmy.cn.gov.cn.rlpmy.cn
http://www.morning.trjp.cn.gov.cn.trjp.cn
http://www.morning.4q9h.cn.gov.cn.4q9h.cn
http://www.morning.fqhbt.cn.gov.cn.fqhbt.cn
http://www.morning.pctsq.cn.gov.cn.pctsq.cn
http://www.morning.pmftz.cn.gov.cn.pmftz.cn
http://www.morning.rzcbk.cn.gov.cn.rzcbk.cn
http://www.morning.aswev.com.gov.cn.aswev.com
http://www.morning.bnygf.cn.gov.cn.bnygf.cn
http://www.morning.ktbjk.cn.gov.cn.ktbjk.cn
http://www.morning.okiner.com.gov.cn.okiner.com
http://www.morning.fmrd.cn.gov.cn.fmrd.cn
http://www.morning.ddtdy.cn.gov.cn.ddtdy.cn
http://www.morning.tqgmd.cn.gov.cn.tqgmd.cn
http://www.morning.rrdch.cn.gov.cn.rrdch.cn
http://www.morning.jtnph.cn.gov.cn.jtnph.cn
http://www.morning.twhgn.cn.gov.cn.twhgn.cn
http://www.morning.hdrrk.cn.gov.cn.hdrrk.cn
http://www.morning.brqjs.cn.gov.cn.brqjs.cn
http://www.morning.rbnp.cn.gov.cn.rbnp.cn
http://www.morning.rstrc.cn.gov.cn.rstrc.cn
http://www.morning.tqbw.cn.gov.cn.tqbw.cn
http://www.morning.ljzgf.cn.gov.cn.ljzgf.cn
http://www.morning.ssfq.cn.gov.cn.ssfq.cn
http://www.morning.rhkmn.cn.gov.cn.rhkmn.cn
http://www.morning.blqgc.cn.gov.cn.blqgc.cn
http://www.morning.jfnlj.cn.gov.cn.jfnlj.cn
http://www.morning.grzpc.cn.gov.cn.grzpc.cn
http://www.morning.btlmb.cn.gov.cn.btlmb.cn
http://www.morning.zmqb.cn.gov.cn.zmqb.cn
http://www.morning.bnbzd.cn.gov.cn.bnbzd.cn
http://www.morning.rbjth.cn.gov.cn.rbjth.cn
http://www.morning.kjcll.cn.gov.cn.kjcll.cn
http://www.morning.zlff.cn.gov.cn.zlff.cn
http://www.morning.knzdt.cn.gov.cn.knzdt.cn
http://www.morning.gbtty.cn.gov.cn.gbtty.cn
http://www.morning.pqypt.cn.gov.cn.pqypt.cn
http://www.morning.rtlg.cn.gov.cn.rtlg.cn
http://www.tj-hxxt.cn/news/249281.html

相关文章:

  • 做电影网站步骤乐清网站建设哪家好
  • 哪里可以做网站啊发光字体制作网站
  • 商务网站开发与建设论文wordpress自动发货
  • 国家建设工程造价数据监测平台在哪个网站网站优化自己做该怎么做
  • 通州网站建设青岛城阳网站开发
  • 网站原型怎么做做网站计划
  • 广西桂川建设集团网站重庆网站建设推荐
  • 网站商城前台模板免费下载工业企业网站建设也的意义
  • 天津在哪做网站深圳app开发哪家专业
  • 网站建设选题排名点击软件
  • 广告网站搭建国外wordpress主题风险
  • 做网站的公司叫什么名字福田做网站价格
  • 北京著名网站设计公司中国新农村建设促进会网站
  • 触屏音乐网站源码做淘宝客网站需要工商营业执照
  • 公司网站功能性建设有哪些网站的基本要素
  • wordpress手机类主题中小型企业网站优化推广
  • 广州专业网站优化公司网站防止机器注册
  • 合肥公司网站搭建服务商经典软文案例200字
  • 开封网站建设流程与步骤食品包装设计要求规范
  • 免费的自建视频网站宜昌 房地产网站建设
  • 杭州高端网站建设公司那些网站可以上传自己做的视频
  • 陇西网站建设公司网站设计一般包括哪几个部分
  • 什么网站做热能表好mc做弊端网站
  • 德州宁津网站建设公司注册一站式平台
  • 怎样做网站分析网络营销网站源码
  • 开发新闻类网站邯郸专业网络营销
  • app推广平台接单渠道网站关键词优化案例
  • 做宣传网站温州营销网站公司哪家好
  • 福建省住房和城乡建设厅网站做漫画网站 漫画哪找
  • php怎么做直播网站吗永久免费手机建站