美文网首页
Unity中spotlight是如何实现的?疑惑点解析

Unity中spotlight是如何实现的?疑惑点解析

作者: 大其心宏其量扩其识 | 来源:发表于2021-01-31 14:05 被阅读0次

我们以x分量为例,x * m_CotanHalfSpotAngle/(2 * z) + 0.5其实是把点的tan值除以半张角的tan值(即等于乘以cot值m_CotanHalfSpotAngle),由此得到张角比值,再通过缩放和平移,把张角的判断范围归一到[0, 1],如下图所示:


d36cf0dd029f8addf4c9643884878ddf_720w[1].jpg

数学基础太差,一直不明白这句话什么意思?今天终于想明白一点了,记录下,要是不应该这样理解,非常欢迎指正。


spotlight.png

因为:
tan\alpha'=x'/z
tan\alpha=x/z
tan\alpha'/tan\alpha=\frac{x'}{z} / \frac{x}{z}=\frac{x'}{z} * \frac{z}{x}=\frac{x'}{x}

cot \alpha=\frac{z}{x}
x' * cot\alpha = x' * \frac{z}{x} * \frac{1}{z} = \frac{x'}{x}
这里多出的\frac{1}{z}我理解是为了约去z

再缩放加偏移
\frac{x'}{x}* \frac{1}{2} + 0.5,(-1\leq \frac{x'}{x}\leq1)

最终将 -1到1之间的值转换成0到1之间的值

参考链接:https://www.zhihu.com/question/51060429

相关文章

  • Unity中spotlight是如何实现的?疑惑点解析

    我们以x分量为例,x * m_CotanHalfSpotAngle/(2 * z) + 0.5其实是把点的tan值...

  • JsonUtility解析字典

    介绍 使用Unity自身的JsonUtility解析字典 字典类型实现接口ISerializationCallba...

  • iOS中实现unity的方法

    说明 iOS中实现unity的方法,是指unity中申明了一个方法,在iOS端实现其方法例如,在unity中申明了...

  • Unity调用摄像头画面翻转问题

    如何在Unity实现AR中的现实背景效果 竖屏实现过程中发现画面翻转有问题,下面是调整: 调整image中Rota...

  • iOS 中 spotlight 功能实现

    spotlight 功能就是指在 iPhone 内搜索应用程序中内容的功能。通俗的说法就是,若是某些界面的一些...

  • 记录一些好的网站

    在Unity中实现屏幕空间阴影(1)在Unity中实现屏幕空间阴影(2)游戏里的动态阴影-ShadowMap实现原...

  • Unity 3D 音效实现

    引子 最近项目有用到场景音效稍微研究了下在Unity中该如何实现3D音效的效果 前提 基于 Unity3d 5.4...

  • unity 中是如何实现游戏人物换装的

    现在的游戏,如果没有换装功能的话,可能会让人觉得非常以外:这个游戏连换装都没有?还能玩吗?真的,不知道大家有没有注...

  • 将android移植到unity上

    将android项目移植到unity上,可实现android与unity的通信。本文主要介绍如何将android ...

  • ViewPager源码解惑

    带着疑惑去源码中寻找答案。 1.ViewPager实现思想。 2.Fragment事务是如何管理的。 3.Frag...

网友评论

      本文标题:Unity中spotlight是如何实现的?疑惑点解析

      本文链接:https://www.haomeiwen.com/subject/wsuktltx.html