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

成都模板网站建设浙江自己如何做网站

成都模板网站建设,浙江自己如何做网站,专业做影评的网站,石家庄网站推广专家上一篇讲的阴影shader是通过两个pass来渲染出的#xff0c;第一个pass渲染要投影的物体本体#xff0c;第二个pass渲染物体的阴影#xff0c;也就是说阴影的渲染是在物体的shader中而不是地面的shader。下面要讲的球体阴影的shader是放在要接受阴影的地面上。 原理如下图第一个pass渲染要投影的物体本体第二个pass渲染物体的阴影也就是说阴影的渲染是在物体的shader中而不是地面的shader。下面要讲的球体阴影的shader是放在要接受阴影的地面上。 原理如下图 1.根据点的入射光矢量和点到球体的矢量计算【点积】求出【角度】。 2.通过【角度】的sin值求出【对边】并与【球体半径】进行比较。 3.所求【对边的长度】大于【半径】说明该点被光照反之该点是阴影点。 // shader放在需要接受阴影的对象上 Shader Study/9_SphereShadow {Properties{_spPos(Sphere pos, vector) (0,0,0,1)_spR(radius, float) 1_Intensity(Intensity, range(0,1)) 0.5}SubShader{Pass{Tags{ LightMode ForwardBase }CGPROGRAM #pragma vertex vert #pragma fragment frag #include UnityCG.cgincfloat4 _spPos; // 球体位置float _spR; // 球体半径float _Intensity; // 阴影浓度float4 _LightColor0; // 颜色struct v2f {float4 pos:SV_POSITION;float3 litDir:TEXCOORD0;// 世界坐标中灯光方向矢量float3 spDir:TEXCOORD1; // 在世界坐标中投影球体方向矢量float4 vc:TEXCOORD2; // 逐顶点计算的光照};v2f vert(appdata_base v){v2f o;o.pos mul(UNITY_MATRIX_MVP, v.vertex);// 获取顶点视图位置o.litDir WorldSpaceLightDir(v.vertex);// 获取世界坐标中灯光对顶点的方向矢量o.spDir (_spPos - mul(_Object2World, v.vertex)).xyz;//世界坐标中该顶点到投影球体的矢量// 顶点的光照计算。该顶点在对象坐标中的光照方向矢量float3 ldir ObjSpaceLightDir(v.vertex);ldir normalize(ldir);o.vc _LightColor0 * max(0, dot(ldir, v.normal));//根据顶点的入射光线和法线角度求该顶点光照return o;}float4 frag(v2f i) :COLOR{float3 litDir normalize(i.litDir);//获取点的入射线单位向量float3 spDir i.spDir; // 获取该点到投影球体的矢量float spDistance length(spDir); //该点到球体的距离spDir normalize(spDir); //该点到投影球体的单位向量float cosV dot(spDir, litDir);// 该点到球体 与 该点到入射线的夹角float sinV sin(acos(max(0, cosV)));// 拿到余弦值大于0的角度求正弦float D sinV * spDistance; // 解三角形,求对边float shadow step(_spR, D); // 如果对边小于半径返回0该点为阴影点float c lerp(1 - _Intensity, 1, shadow);// shadow由0到1return i.vc * c; // 为0的时候是阴影点}ENDCG}} }这个脚本也放在需要接受阴影的对象上using UnityEngine; using System.Collections;public class ReceiveShadow : MonoBehaviour {public GameObject sphere;void Start () {Vector3 pos sphere.transform.localPosition;GetComponentRenderer().sharedMaterial.SetVector(_spPos, new Vector4(pos.x, pos.y, pos.z, 1f));GetComponentRenderer().sharedMaterial.SetFloat(_spR, sphere.transform.localScale.x / 2);}}
http://www.huolong8.cn/news/68619/

相关文章:

  • 青岛网站开发公司电话网站建设找什么工作室
  • 做电商网站搭建就业岗位免费引流推广工具
  • 自己做网站要不要租服务器dw做网站怎么上线
  • 湘潭做网站 z磐石网络专业开发小程序的公司
  • 专业的移动网站建设wordpress 可视化编辑
  • 西安网站排名推广wordpress的安装
  • 上网站 ftp服装销售 网站建设论文
  • 亚洲杯篮球直播在什么网站甲流其实就是新冠
  • 怎么做淘宝优惠券的网站潍坊关键词优化排名
  • 领手工在家做的网站在线做任务的网站
  • 哈尔滨市建设安全网站网络营销渠道和传统营销渠道的区别
  • 郑州网站设计制作软件界面设计工具下载
  • 网站的栏目和版块设计的原则网站积分商城该怎么建立
  • 网站开发技术三大件欧莱雅采用了哪些网络营销方式
  • 百度蜘蛛站长服务平台搜索引擎推广策略
  • 网站开发工程师获奖中国拟在建项目网官网
  • 淘宝网站建设的目标是什么文案转行做网站编辑
  • 网站推广做招商加盟前端官网模板
  • 高淳做网站价格广州微网站建设平台
  • 医疗网站建设及优化国内最新新闻大事
  • 网站后台制作表格谷歌优化师
  • 做电子章网站php多用户商城双端app
  • 重庆泡笋制作seo报名在线咨询
  • 阳江市住房和城乡规划建设局网站wordpress插件汉化下载
  • 网站群建设调研报告建设个人购物网站
  • 莆田网站制作软件短网址源码wordpress
  • 建设网站需要的配置链接怎么做
  • 买一个软件大概多少钱网站运营优化建议
  • 北京网站的网站建设公司seo网站关键词排名优化
  • 建设网站的目标和作用织梦单页面网站模板