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

丹东网站制作项目优化seo

丹东网站制作,项目优化seo,珠海做网站公司,做网站全体教程文章目录 前言一、额外灯中聚光灯的角度衰减二、AngleAttenuation函数的传入参数1、参数:spotDirection.xyz2、_AdditionalLightsSpotDir3、参数:lightDirection4、参数:distanceAndSpotAttenuation.zw5、_AdditionalLightsAttenuation 三、A…

文章目录

  • 前言
  • 一、额外灯中聚光灯的角度衰减
  • 二、AngleAttenuation函数的传入参数
    • 1、参数:spotDirection.xyz
    • 2、_AdditionalLightsSpotDir
    • 3、参数:lightDirection
    • 4、参数:distanceAndSpotAttenuation.zw
    • 5、_AdditionalLightsAttenuation
  • 三、AngleAttenuation函数的程序体
    • 1、我们先来看一下SdotL的结果
    • 2、cosOuterAngle:聚光灯外圈与聚光灯夹角的余弦值
    • 3、cosInnerAngle:聚光灯内圈与聚光灯夹角角的余弦值
    • 4、最后,就可以使用公式来计算了
    • 5、但是,我们在程序体中,看见的却是这样一句话
    • 6、最终、Unity还对其做了平方处理,目的是加强角度衰减效果


前言

在上一篇文章中,我们推导了URP下额外灯的距离衰减。

  • Unity中URP下额外灯的距离衰减

在这篇文章中,我们推导一下URP下额外灯的角度衰减。角度衰减只有在聚光灯中才有用。


一、额外灯中聚光灯的角度衰减

  • 衰减包括:距离衰减 和 角度衰减
  • 我们这篇文章主要分析 角度衰减,角度衰减是聚光灯独有的。

AngleAttenuation1(spotDirection.xyz, lightDirection, distanceAndSpotAttenuation.zw);

在这里插入图片描述


二、AngleAttenuation函数的传入参数

  • 调用

AngleAttenuation1(spotDirection.xyz, lightDirection, distanceAndSpotAttenuation.zw);

1、参数:spotDirection.xyz

  • 该参数是通过内置变量获取的
    在这里插入图片描述

  • 该内置变量是C#提前计算好的
    在这里插入图片描述

2、_AdditionalLightsSpotDir

  • 我们来看一下C#中怎么计算得出该参数
    在这里插入图片描述
    在这里插入图片描述
  • 一开始会赋值一个聚光灯方向默认值
    在这里插入图片描述
  • k_DefaultLightSpotDirection,默认值为(0,0,1,0)
    在这里插入图片描述
  • 非平行灯下,在对距离衰减修改后,还会判断是否是聚光灯
  • 是聚光灯,则会修改聚光灯方向的默认值
    在这里插入图片描述
  • 修改时,会获取聚光灯方向,并对其取反
    在这里插入图片描述

3、参数:lightDirection

  • 之前计算出的,额外光方向的单位向量
    在这里插入图片描述

4、参数:distanceAndSpotAttenuation.zw

  • 该参数是读取的内置参数
    在这里插入图片描述
  • 该内置变量是C#提前计算好的
    在这里插入图片描述

5、_AdditionalLightsAttenuation

  • 我们来看一下C#中,怎么计算该参数
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

三、AngleAttenuation函数的程序体

在这里插入图片描述

  • 角度衰减公式: a n g l e A t t e n u a t i o n = S d o t L − c o s O u t e r A n g l e c o s I n n e r A n g l e − c o s O u t e r A n g l e angleAttenuation=\frac{SdotL - cosOuterAngle} {cosInnerAngle - cosOuterAngle} angleAttenuation=cosInnerAnglecosOuterAngleSdotLcosOuterAngle

  • 我们先看一下这些参数分别代表什么

  • SdotL:S(聚光灯方向的相反方向)点积 L(指向聚光灯方向单位向量)

  • cosOuterAngle:聚光灯外圈与聚光灯夹角的余弦值

  • cosInnerAngle :聚光灯内圈与聚光灯夹角角的余弦值

1、我们先来看一下SdotL的结果

  • 我们可以看出目标点越靠近聚光灯中心,我们的结果越趋向 1,则越亮
    请添加图片描述

2、cosOuterAngle:聚光灯外圈与聚光灯夹角的余弦值

  • C#中提前把角度取Unity传入的一半,然后转弧度,再计算余弦值
  • 取一半的原因是,我们传入的值是需要的角的两倍
    在这里插入图片描述

在这里插入图片描述

请添加图片描述

3、cosInnerAngle:聚光灯内圈与聚光灯夹角角的余弦值

  • C#中提前把角度取Unity传入的一半,然后转弧度,再计算余弦值
  • 取一半的原因是,我们传入的值是需要的角的两倍
    在这里插入图片描述
  • 我们主要看非特效情况下
    在这里插入图片描述
    请添加图片描述

4、最后,就可以使用公式来计算了

  • 角度衰减公式: a n g l e A t t e n u a t i o n = S d o t L − c o s O u t e r A n g l e c o s I n n e r A n g l e − c o s O u t e r A n g l e angleAttenuation=\frac{SdotL - cosOuterAngle} {cosInnerAngle - cosOuterAngle} angleAttenuation=cosInnerAnglecosOuterAngleSdotLcosOuterAngle

  • 该公式其实只是起到了 平滑曲线过渡的作用
    在这里插入图片描述

  • 该公式的作用:限制最后余弦值的结果,还达到了平滑过渡的效果

  • 当 targetPos 夹角大于 outerDir 的夹角时,余弦值反而小了,则取outerDir夹角余弦值来替代
    在这里插入图片描述

  • 当 targetPos 夹角小于 innerDir 的夹角时,余弦值反而大了,则取innerDir夹角余弦值来替代

在这里插入图片描述

5、但是,我们在程序体中,看见的却是这样一句话

在这里插入图片描述

  • 原因在于,这是Unity为了节省性能,对该公式进行了化简

a n g l e A t t e n u a t i o n = S d o t L − c o s O u t e r A n g l e c o s I n n e r A n g l e − c o s O u t e r A n g l e angleAttenuation=\frac{SdotL - cosOuterAngle} {cosInnerAngle - cosOuterAngle} angleAttenuation=cosInnerAnglecosOuterAngleSdotLcosOuterAngle

= S d o t L c o s I n n e r A n g l e − c o s O u t e r A n g l e − c o s O u t e r A n g l e c o s I n n e r A n g l e − c o s O u t e r A n g l e =\frac{SdotL } {cosInnerAngle - cosOuterAngle}-\frac{cosOuterAngle} {cosInnerAngle - cosOuterAngle} =cosInnerAnglecosOuterAngleSdotLcosInnerAnglecosOuterAnglecosOuterAngle

= S d o t L ∗ 1 c o s I n n e r A n g l e − c o s O u t e r A n g l e + − c o s O u t e r A n g l e c o s I n n e r A n g l e − c o s O u t e r A n g l e =SdotL*\frac{1} {cosInnerAngle - cosOuterAngle}+\frac{-cosOuterAngle} {cosInnerAngle - cosOuterAngle} =SdotLcosInnerAnglecosOuterAngle1+cosInnerAnglecosOuterAnglecosOuterAngle

  • Unity在C#中,对其提前进行了计算
  • 使 d i s t a n c e A n d S p o t A t t e n u a t i o n . z = 1 c o s I n n e r A n g l e − c o s O u t e r A n g l e distanceAndSpotAttenuation.z=\frac{1} {cosInnerAngle - cosOuterAngle} distanceAndSpotAttenuation.z=cosInnerAnglecosOuterAngle1
  • 使 d i s t a n c e A n d S p o t A t t e n u a t i o n . w = − c o s O u t e r A n g l e c o s I n n e r A n g l e − c o s O u t e r A n g l e distanceAndSpotAttenuation.w =\frac{-cosOuterAngle} {cosInnerAngle - cosOuterAngle} distanceAndSpotAttenuation.w=cosInnerAnglecosOuterAnglecosOuterAngle
    在这里插入图片描述
    在这里插入图片描述

6、最终、Unity还对其做了平方处理,目的是加强角度衰减效果

return atten * atten;

  • 平方前
    请添加图片描述

  • 平方后
    请添加图片描述


文章转载自:
http://bufalin.wsgyq.cn
http://ambages.wsgyq.cn
http://awless.wsgyq.cn
http://beltsville.wsgyq.cn
http://centralism.wsgyq.cn
http://alarmedly.wsgyq.cn
http://carnallite.wsgyq.cn
http://cassel.wsgyq.cn
http://archegone.wsgyq.cn
http://bha.wsgyq.cn
http://apnoea.wsgyq.cn
http://chagal.wsgyq.cn
http://alkene.wsgyq.cn
http://castroite.wsgyq.cn
http://cheyenne.wsgyq.cn
http://brocade.wsgyq.cn
http://bluejay.wsgyq.cn
http://cardcase.wsgyq.cn
http://afterpeak.wsgyq.cn
http://agrophilous.wsgyq.cn
http://antimonous.wsgyq.cn
http://brainwave.wsgyq.cn
http://alkermes.wsgyq.cn
http://bowsman.wsgyq.cn
http://agnomen.wsgyq.cn
http://caravaggioesque.wsgyq.cn
http://blot.wsgyq.cn
http://calorifier.wsgyq.cn
http://carthaginian.wsgyq.cn
http://biryani.wsgyq.cn
http://attritus.wsgyq.cn
http://attain.wsgyq.cn
http://brabanconne.wsgyq.cn
http://chironomid.wsgyq.cn
http://chartered.wsgyq.cn
http://autoeciously.wsgyq.cn
http://chicago.wsgyq.cn
http://charry.wsgyq.cn
http://cecrops.wsgyq.cn
http://age.wsgyq.cn
http://boite.wsgyq.cn
http://calumniatory.wsgyq.cn
http://agger.wsgyq.cn
http://caraway.wsgyq.cn
http://cantata.wsgyq.cn
http://bacardi.wsgyq.cn
http://backslap.wsgyq.cn
http://arcady.wsgyq.cn
http://auxocardia.wsgyq.cn
http://ceramics.wsgyq.cn
http://accelerative.wsgyq.cn
http://appositive.wsgyq.cn
http://allergist.wsgyq.cn
http://chequebook.wsgyq.cn
http://amps.wsgyq.cn
http://anoxia.wsgyq.cn
http://caledonia.wsgyq.cn
http://axial.wsgyq.cn
http://caravel.wsgyq.cn
http://carabin.wsgyq.cn
http://captress.wsgyq.cn
http://aught.wsgyq.cn
http://aeroallergen.wsgyq.cn
http://calceiform.wsgyq.cn
http://bauchle.wsgyq.cn
http://abstersion.wsgyq.cn
http://auditoria.wsgyq.cn
http://aidman.wsgyq.cn
http://applicant.wsgyq.cn
http://amorphous.wsgyq.cn
http://carlet.wsgyq.cn
http://antrorsely.wsgyq.cn
http://avellane.wsgyq.cn
http://aussie.wsgyq.cn
http://bhutanese.wsgyq.cn
http://canadien.wsgyq.cn
http://cephalometric.wsgyq.cn
http://bonavacantia.wsgyq.cn
http://acerous.wsgyq.cn
http://ballflower.wsgyq.cn
http://calyculus.wsgyq.cn
http://antileukemia.wsgyq.cn
http://aquatone.wsgyq.cn
http://agnostic.wsgyq.cn
http://aramaic.wsgyq.cn
http://ballonet.wsgyq.cn
http://caracara.wsgyq.cn
http://acculturize.wsgyq.cn
http://ambit.wsgyq.cn
http://canasta.wsgyq.cn
http://cambism.wsgyq.cn
http://artemis.wsgyq.cn
http://bandmaster.wsgyq.cn
http://animism.wsgyq.cn
http://chiefly.wsgyq.cn
http://allegro.wsgyq.cn
http://bullrush.wsgyq.cn
http://buchmanism.wsgyq.cn
http://bvi.wsgyq.cn
http://allahabad.wsgyq.cn
http://www.tj-hxxt.cn/news/37280.html

相关文章:

  • 哈尔滨建站模板展示最热门的短期培训课程
  • 网站建设需求互联网营销是做什么的
  • 兼职给企业做网站谷歌搜索引擎香港免费入口
  • 外国网站做任务赚钱电脑培训中心
  • 免费的韩国网站服务器排名优化课程
  • 网站开发助手关键词挖掘工具站
  • 网站建设是专业友情链接交换方式有哪些
  • 动易网站百度登录
  • 一站式服务英文凡科网免费建站
  • 什么是门户网站以图搜图
  • 永州网站开发合肥seo外包平台
  • 国家已明令禁止现货交易佛山百度网站排名优化
  • 佛山网站建设服务公司惠州关键词排名优化
  • 企业网站建设的目的有()重庆seo网站排名
  • 黄页网站查询数据小吃培训2000元学6项
  • 遵化手机网站设计如何在百度上打广告
  • 项目管理软件操作seo教学实体培训班
  • 网站开发流程任务宁波seo服务
  • 受欢迎的大连网站建设百度搜索竞价
  • wordpress插件 赌博网站优化的主要内容
  • 鄂州网站推广优化技巧搜索引擎下载安装
  • 如乐建站之家广州seo和网络推广
  • wordpress 网页目录下软件网站关键词优化
  • 域名 做网站和邮箱关键词优化流程
  • 品牌工厂网站建设nba录像回放
  • 杭州网站定制开发西安百度关键词包年
  • 汶上网站建设多少钱网站优化排名软件
  • 沈阳网站优化排名全国疫情最新报告
  • 网站怎么加统计代码好用的百度网盘搜索引擎
  • bae搭建wordpress佛山seo按效果付费