gpt4 book ai didi

c# - 计算阴影的大小

转载 作者:行者123 更新时间:2023-11-30 13:54:19 26 4
gpt4 key购买 nike

我创建了一个 Unity3d 项目,并在物体后面使用了一些聚光灯来获得它们的阴影。一旦反射到地板上,我试图获得阴影的真实大小(使用我的比例)。有没有办法做到这一点?

最佳答案

我相信您的问题主要属于 Mathematics Stack Exchange但我希望这里有一种方法可以引导您走向正确的方向。

我在这里做出的假设是:

  • 当 scale = 1 时你知道你的物体高度
  • 你的对象在它的顶部不是太大(或者你必须将它的一半宽度包括在数学中)
  • 你的对象枢轴被放置在它的底部(在人身上:在它的脚下)
  • 你的物体被放置在地板上(因此不是在空中:否则计算起来会有点复杂,但想法是一样的)

这是一个快速的情况示意图: enter image description here

现在您可以使用如下方法计算阴影的大小:

Vector3 topPoint = YOUR_OBJECT.transform.position + YOUR_OBJECT.transform.lossyScale.y * YOUR_OBJECT_HEIGHT;
Vector3 lightFlatPoint = new Vector3(YOUR_LIGHT.transform.position.x, topPoint.y, YOUR_LIGHT.transform.position.z);

float lightDeltaY = YOUR_LIGHT.transform.position.y - topPoint.y;
float lightFlatToTopPointDistance = Vector3.Distance(lightFlatPoint, topPoint);

float shadowSize = ((YOUR_OBJECT.transform.lossyScale.y * YOUR_OBJECT_HEIGHT) / lightDeltaY) * lightFlatToTopPointDistance;

希望这对您有所帮助,

关于c# - 计算阴影的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43653184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com