UProceduralMeshComponent
使用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相关推荐
- 在UE中自由绘制基本图元的几种方法
1. 在UMG中可以使用UWidgetBlueprintLibrary类来绘制, UWidgetBlueprintLibrary类提供了一系列的静态函数可以使用. 但只提供了DrawLine,Draw ...
- UE4 在C++ 动态生成几何、BSP体、BRUSH ---- MESH_GENERATION
http://www.cnblogs.com/linqing/p/5015549.html Posted on 2015-12-03 11:20 林清 阅读(668) 评论(0) 编辑 收藏 截至UE ...
- (UE4 4.27)自定义PrimitiveComponent
前言 在UE4开发中, 通常用到的Mesh有StaticMesh,SkeletalMesh,ProceduralMesh等等, 他们对应都有相应的渲染组件如UStaticMeshComponent, ...
- unreal 顶点法线与 面法线
当前revit 建筑模型软件导出的模型对象 three.js的json文件,都是面法线.(暂时是这样的,是否能导出顶点法线,后续确定,7-9 确定js文件可以标记顶点法线和面法线,同时revit可以通 ...
- 2021-08-12【ue4】试图解决procedural mesh创建卡顿
procedural mesh的源码 UnrealEngine/ProceduralMeshComponent.cpp at c3caf7b6bf12ae4c8e09b606f10a09776b4d1 ...
- UE4/UE5 Runtime下的FBX导入
原创文章,转载请注明出处. 其实我觉得这个部分现在市场上都没有太成熟的方案,Epic商场里面卖的挺贵,下载下来使用功能也是参差不齐.问题较多 1>导入显示Mesh,三角面顶点,正在解决的问题: ...
最新文章
- HDU5900 QSC and Master(区间DP + 最小费用最大流)
- miui9Android8.0更新,MIUI9 暂停更新工作,或为 MIUI 10 将至?
- jdba访问mysql_mysql连接出现问题记录
- mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案
- “啁啾”看完这篇再不懂,放弃吧……
- 力扣111. 二叉树的最小深度(JavaScript)
- 【TensorFlow-windows】(一)实现Softmax Regression进行手写数字识别(mnist)
- jQuery关于复制(复制隐藏文字+显示文字)跳转,Clipboard
- Xcode6 viewDidLoad 中View的subviews 为空
- 一次性送出25本北大出版社AI类当当最畅销的25本书!包括~机器学习、深度学习实战、数学基础等...
- Oracle-SQL程序优化4
- “欣喜”和“郁闷”交织的2006
- swift4 label显示html,Swift:在标签或textView中显示HTML数据
- 【逆向】Android逆向破解某APP
- BIM技术优秀论文14篇
- 四元数——概念以及相关数学公式 实现绕坐标轴旋转以及获取旋转角和旋转轴
- 数据通信与计算机网络实训报告,数据通信网络实训总结报告.doc
- Ubuntu 18.04 firefox浏览器装flash
- java鱼雷3的几何_WFP:Geometries几何图形集合--Geometry几何图形(3)
- Android窗口Window的创建(悬浮窗)