使用UProceduralMeshComponent可以自由的用三角星来绘制三维图形

1. 在actor的构造函数中添加UProceduralMeshComponent组件

mesh = CreateDefaultSubobject<UProceduralMeshComponent>(TEXT("mesh"));
Material = LoadObject<UMaterial>(NULL, TEXT("/Game/VertexColorMaterial"), NULL, LOAD_None, NULL);

2. 绘制矩形

void AMyActor::MeshDrawRect(FVector2D Position, FVector2D Size, FLinearColor color)
{TArray<FVector> vertices;vertices.Add(FVector(0, Position.X, Position.Y));vertices.Add(FVector(0, Position.X + Size.X, Position.Y));vertices.Add(FVector(0, Position.X + Size.X, Position.Y + Size.Y));vertices.Add(FVector(0, Position.X, Position.Y));vertices.Add(FVector(0, Position.X + Size.X, Position.Y + Size.Y));vertices.Add(FVector(0, Position.X, Position.Y + Size.Y));TArray<int32> Triangles;for (int i = 0; i < vertices.Num(); i++){ Triangles.Add(i);}TArray<FLinearColor> vertexColors;for (int i = 0; i < vertices.Num(); i++){vertexColors.Add(color);}if (m_bIsRotate){mesh->CreateMeshSection_LinearColor(m_nIndex, MeshRotation(vertices, m_centerRotate, m_degreeRotate), Triangles, normals, UV0, vertexColors, tangents, true);}else{mesh->CreateMeshSection_LinearColor(m_nIndex, vertices, Triangles, normals, UV0, vertexColors, tangents, true);}mesh->SetMaterial(m_nIndex++, Material);
}

3. 绘制圆形

void AMyActor::MeshDrawCircle(FVector2D center, int radius, int NumSegments, FLinearColor color)
{if (NumSegments == 0)NumSegments = 360.0;float SegmentLength = 360.0 / NumSegments;TArray<FVector> vertices;for (float i = 0; i < 360.0; i += SegmentLength){FVector2D PositionA(cos(i * PI / 180.0) * radius + center.X, sin(i * PI / 180.0) * radius + center.Y);FVector2D PositionB(cos((i + SegmentLength) * PI / 180.0) * radius + center.X, sin((i + SegmentLength) * PI / 180.0) * radius + center.Y);vertices.Add(FVector(0, center.X, center.Y));vertices.Add(FVector(0, PositionA.X, PositionA.Y));vertices.Add(FVector(0, PositionB.X, PositionB.Y));}TArray<int32> Triangles;for (int i = 0; i < vertices.Num(); i++){Triangles.Add(i);}TArray<FLinearColor> vertexColors;for (int i = 0; i < vertices.Num(); i++){vertexColors.Add(color);}mesh->CreateMeshSection_LinearColor(m_nIndex, vertices, Triangles, normals, UV0, vertexColors, tangents, true);mesh->SetMaterial(m_nIndex++, Material);
}

UProceduralMeshComponent相关推荐

  1. 在UE中自由绘制基本图元的几种方法

    1. 在UMG中可以使用UWidgetBlueprintLibrary类来绘制, UWidgetBlueprintLibrary类提供了一系列的静态函数可以使用. 但只提供了DrawLine,Draw ...

  2. UE4 在C++ 动态生成几何、BSP体、BRUSH ---- MESH_GENERATION

    http://www.cnblogs.com/linqing/p/5015549.html Posted on 2015-12-03 11:20 林清 阅读(668) 评论(0) 编辑 收藏 截至UE ...

  3. (UE4 4.27)自定义PrimitiveComponent

    前言 在UE4开发中, 通常用到的Mesh有StaticMesh,SkeletalMesh,ProceduralMesh等等, 他们对应都有相应的渲染组件如UStaticMeshComponent, ...

  4. unreal 顶点法线与 面法线

    当前revit 建筑模型软件导出的模型对象 three.js的json文件,都是面法线.(暂时是这样的,是否能导出顶点法线,后续确定,7-9 确定js文件可以标记顶点法线和面法线,同时revit可以通 ...

  5. 2021-08-12【ue4】试图解决procedural mesh创建卡顿

    procedural mesh的源码 UnrealEngine/ProceduralMeshComponent.cpp at c3caf7b6bf12ae4c8e09b606f10a09776b4d1 ...

  6. UE4/UE5 Runtime下的FBX导入

    原创文章,转载请注明出处. 其实我觉得这个部分现在市场上都没有太成熟的方案,Epic商场里面卖的挺贵,下载下来使用功能也是参差不齐.问题较多 1>导入显示Mesh,三角面顶点,正在解决的问题: ...

最新文章

  1. HDU5900 QSC and Master(区间DP + 最小费用最大流)
  2. miui9Android8.0更新,MIUI9 暂停更新工作,或为 MIUI 10 将至?
  3. jdba访问mysql_mysql连接出现问题记录
  4. mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案
  5. “啁啾”看完这篇再不懂,放弃吧……
  6. 力扣111. 二叉树的最小深度(JavaScript)
  7. 【TensorFlow-windows】(一)实现Softmax Regression进行手写数字识别(mnist)
  8. jQuery关于复制(复制隐藏文字+显示文字)跳转,Clipboard
  9. Xcode6 viewDidLoad 中View的subviews 为空
  10. 一次性送出25本北大出版社AI类当当最畅销的25本书!包括~机器学习、深度学习实战、数学基础等...
  11. Oracle-SQL程序优化4
  12. “欣喜”和“郁闷”交织的2006
  13. swift4 label显示html,Swift:在标签或textView中显示HTML数据
  14. 【逆向】Android逆向破解某APP
  15. BIM技术优秀论文14篇
  16. 四元数——概念以及相关数学公式 实现绕坐标轴旋转以及获取旋转角和旋转轴
  17. 数据通信与计算机网络实训报告,数据通信网络实训总结报告.doc
  18. Ubuntu 18.04 firefox浏览器装flash
  19. java鱼雷3的几何_WFP:Geometries几何图形集合--Geometry几何图形(3)
  20. Android窗口Window的创建(悬浮窗)

热门文章

  1. SVN 405错误
  2. 支付宝当面付接口如何计算优惠
  3. 从底层重学 Java 之两大浮点类型 GitChat连接
  4. Java开发神器Lombok使用详解
  5. c语言占用cpu的程序,Windows下用C语言获取进程cpu使用率,内存使用,IO情况
  6. 【算法设计与分析】14 分治算法的一般描述和分析方法
  7. 1. 栈和队列的数组实现
  8. 总结下用Vue.js和webpack遇到的问题
  9. 【HDU1325】Is It A Tree?(并查集基础题)
  10. 第三课 SVM(2)