UE4 凹多边形渲染

本文探讨UE4中凹多边形的渲染技术,通过向量延长线法将其分解为多个凸多边形,进而应用凸多边形的计算方法进行处理。文章重点在于凹多边形的分割算法和渲染实现。
摘要由CSDN通过智能技术生成

本文思路:在凸多边形的基础上将凹多边形用向量延长线法分割成多个凸多边形,然后按照凸多边形的算法计算。凸多边形比较简单,就不介绍记录了。


几个凹多边形算法的思路:

http://blog.csdn.net/sun_shine_/article/details/18799739   //任意多边形面积计算
http://www.cnblogs.com/wantnon/p/6384771.html   //直线切割凹多边形(不带洞?)
http://blog.csdn.net/heyuchang666/article/details/51382757   //向量法和旋转法切割凹多边形


限制:
1.顶点数组必须是有序(顺时针或者逆时针)。
2.不支持带洞的。
3.需要将Z轴值置0.

思路流程:
1.顶点有序化。(此文暂时不记录)
2.顶点数组转换成对应的方向向量数组。
3.依次利用叉乘查找到第一个凹多边形的凹点。
4 .从这个点开始往后找到这个凹点的向量延长先在之后的向量上的第一个交点。(注意顺序,而不是从数组0开始)
5.以这个交点为界限把凹多边形分为两个多边形。
6.递归这个切分算法,直至不再有凹多边形出现为止。
7.得到的多个多边形都是属于凸多边形,利用凸多边形算法计算。

static TArray<TArray<FVector>> t_polygonDividedArr;
/*从多边形的有序的点数组获取顶点和三角面数据信息(凹凸多边形)
	参数1: 顶点数组
	参数2: 是否是逆时针
	*/
static void GetPolygonDataFromOrderVertexs(TArray<FVector> _points,bool _antiClockwise=true);
void ULcq_BlueprintFunctionLibrary::GetPolygonDataFromOrderV
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值