gpt4 book ai didi

c# - 缩放平面以适应视锥体或网格单元

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:05 24 4
gpt4 key购买 nike

我正在尝试创建一个函数,它在 3d 空间中获取一个平面,并返回一个完全适合屏幕上网格的一部分的平面。

屏幕上的网格是固定的,由 X 和 Y 中的部分或屏幕上的一组线定义。

原始平面在屏幕上可以是任何大小或方向,但它永远不会占据整个屏幕。

我在使用 C# 的 Unity3.5.2f2 中工作。我已经在 SO 上发布了这个,因为它非常基于数学,而不仅仅是 Unity 常识。理想情况下,解决方案不会使用外部库,尽管这是可能的。

我想到了一些方法,如果有任何意见,我将不胜感激;

  1. 将平面投影到屏幕空间,获取网格的最小/最大 x 和 y 值,(边界框),使用它来计算比例 xform(使用网格的高度/长度与一个屏幕分区)。在将网格的两条边捕捉到选定的分区后,重新投影到世界空间。

  2. 由于划分本质上是矩形的,因此创建多个视锥体,并想出一些在 3d 空间中缩放/平移平面以适应视锥体的方法。

函数原型(prototype)为;

Plane adjustPlaneToFitScreens(Plane _plane)

有什么想法吗?

最佳答案

我使用上面的方法 01 解决了这个问题。 Unity 提供了几个方便的函数,使数学变得简单,并且在像素/屏幕空间中计算缩放和平移比在 3d 空间中容易得多,同时必须考虑视角/FOV。

缩放后重新投影到世界中存在问题,但是这个特定的应用程序在查看缩放后的对象时没有移动相机,所以这个问题在黑盒子中实际上并不明显

关于c# - 缩放平面以适应视锥体或网格单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15499624/

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