Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/forms/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Geometry 从纹理创建多边形_Geometry_Game Engine_Game Physics_Computational Geometry - Fatal编程技术网

Geometry 从纹理创建多边形

Geometry 从纹理创建多边形,geometry,game-engine,game-physics,computational-geometry,Geometry,Game Engine,Game Physics,Computational Geometry,假设我有一个rgba纹理和一个多边形类,它的构造函数接受垂直坐标的向量数组。 是否有某种方法可以创建此纹理的多边形,例如,使用纹理的alpha通道。。。? 在2d中,绝对可以做到。容易吗?没有。我也没有看到任何游戏/几何引擎能帮你解决太多问题。如果你自己做的话,最大的问题就是生成一个简化的网格。每像素一个四边形将很快生成大量几何体。如果要跟踪边并随后进行三角剖分,则几何体中的孔可能是一个问题。还有一个问题是决定什么是进什么是出。Alpha是一个明显的候选对象,但除非您考虑完全打开或完全关闭,否则

假设我有一个rgba纹理和一个多边形类,它的构造函数接受垂直坐标的向量数组。 是否有某种方法可以创建此纹理的多边形,例如,使用纹理的alpha通道。。。?
在2d中,绝对可以做到。容易吗?没有。我也没有看到任何游戏/几何引擎能帮你解决太多问题。如果你自己做的话,最大的问题就是生成一个简化的网格。每像素一个四边形将很快生成大量几何体。如果要跟踪边并随后进行三角剖分,则几何体中的孔可能是一个问题。还有一个问题是决定什么是进什么是出。Alpha是一个明显的候选对象,但除非您考虑完全打开或完全关闭,否则您可能会考虑漂亮的平滑边缘。这将很难得到正确的结果,可能需要在插值的alpha上进行一些行进的正方形。因此,虽然这不是不可能的,但需要做很多工作


编辑:如下所述,Unity确实提供了一种从精灵a的alpha生成多边形的方法。在for it中,它提到了
pathCount
变量,该变量描述了它包含的多边形数量,其中描述了哪些索引对
GetPath
方法有效。所以这个方法可以用来从alpha生成多边形。然而,它确实依赖于使用统一。但由于sprite alpha用于控制绘制内容,而collider用于控制与其他对象的交点,因此它涵盖了许多用例。这并不意味着它适合您的应用程序。

unity3d可以做到这一点。将碰撞器添加到对象时,它会自动生成其形状。这是一个填充操作。填充多边形时,不是为像素指定恒定颜色,而是从纹理贴图在相同坐标处获取颜色值。实现这一点的方法在很大程度上取决于您使用的图形框架。