首页 > 编程语言 >UE | Procedural Mesh 程序化网格体

UE | Procedural Mesh 程序化网格体

时间:2024-09-03 12:15:41浏览次数:5  
标签:模型 Cap Mesh copyComponent UE 程序化 Procedural

UE | Slice Procedural Mesh 实现动态切割模型

Procedural Mesh 程序化网格体

Create Mesh Section 生成模型网格体

  • SectionIndex :创建或者替换的面的id,默认为0
  • Vertices: 三角形的顶点,排列顺序会影响Triangles数组中的索引
  • Triangles :组成三角形的顶点索引,一般情况下为顺时针
  • Normals: 顶点的法线信息,与第二个参数顺序一致,数组大小一致(可不填)
  • UV0 UV1 UV2 :顶点的UV信息,与第二个参数顺序一致,数组大小一致(可不填)
  • VertexColors :顶点的颜色信息(可不填)
  • Tangents :顶点的切线信息(可不填)
  • bCreateCollision:是否创建碰撞信息(注意:此处的碰撞是复杂碰撞信息)

Copy ProceduralMesh From StaticMeshComponent 复制模型数据

SliceProceduralMesh 切割程序化模型

  • Plane Position:世界坐标系下该平面的中心位置
  • Plane Normal:世界坐标系下该平面的发现
  • Create Other Half: 是否将切下来的那一块模型独立出来
  • Cap Option: 切面状态
    • No Cap: 切面不缝合,模型中空
    • Create New Section for Cap: 切面缝合,使用自定义的材质
    • Use Last Section for Cap: 切面缝合,使用与模型一样的材质
  • Cap Material: 如果Cap Option是Create New Section for Cap时自定义的材质

代码实现

b Allow CPU Access

开启bAllowCPUAccess,才能动态切割模型

AActor* actor = SpawnSkirtingLine->Create();
if (actor == nullptr) {
	return;
}
UStaticMeshComponent* component = Cast<UStaticMeshComponent>(actor->GetRootComponent());
if (!component->GetStaticMesh()->bAllowCPUAccess) {
	PrintStr("SkirtingLine not bAllowCPUAccess");
	return;
}

Procedural Mesh Component

新建程序化模型组件copyComponent,通过Copy ProceduralMesh From StaticMeshComponent函数复制ActorStaticMesh数据到程序化模型ProceduralMesh

UProceduralMeshComponent* copyComponent = NewObject<UProceduralMeshComponent>(actor, *("copy" + FString::FromInt(index++)));
copyComponent->SetupAttachment(component);
copyComponent->RegisterComponent();
copyComponent->SetCollisionEnabled(ECollisionEnabled::NoCollision);

UKismetProceduralMeshLibrary::CopyProceduralMeshFromStaticMeshComponent(component, 0, copyComponent, true);
copyComponent->SetWorldLocation((x + z) / 2);
copyComponent->SetWorldRotation(normal.Rotation() + FRotator(0, -90, 0));

Slice Procedural Mesh

切割模型

FVector sliceStart = y;	//裁剪开始点
UProceduralMeshComponent* cutComponent = nullptr;
EProcMeshSliceCapOption capOption = EProcMeshSliceCapOption::UseLastSectionForCap;   //Cap Option
FVector sliceNormal = y - z;	//裁剪平面的法向量

UKismetProceduralMeshLibrary::SliceProceduralMesh(copyComponent, sliceStart, sliceNormal, false, cutComponent, capOption, nullptr);

标签:模型,Cap,Mesh,copyComponent,UE,程序化,Procedural
From: https://www.cnblogs.com/Dreammoon/p/18394289

相关文章

  • ssm家政公司服务平台的设计与实现+vue
    文章目录目录文章目录论文目录项目介绍开发环境系统实现论文参考论文目录目  录1绪论1.1 选题背景1.2选题意义1.3研究内容2 系统开发技术2.1MySQL数据库2.2IDEA简介2.3SSM框架2.4Vue框架3系统分析3.1可行性研究3.1.1经济可行......
  • ssm基于web的电影购票系统+vue
    文章目录目录文章目录论文目录项目介绍开发环境系统实现论文参考论文目录摘 要Abstract第1章 绪论1.1 课题背景1.2课题意义1.3研究内容第2章 开发环境与技术2.1Java语言2.2 MYSQL数据库2.3IDEA开发工具2.4SSM框架第3章 系统分析......
  • #基于JavaWeb开发的Java+SpringBoot+vue实现图书借阅销售商城
    基于JavaWeb开发的Java+SpringBoot+vue实现图书借阅销售商城......
  • 基于ssm+vue基于高校疫情防控管理系统【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景近年来,全球范围内疫情频发,对高校的正常教学秩序和师生健康安全构成了严峻挑战。面对复杂的疫情防控形势,传统的人工管理模式已难以满足高效、精准、全......
  • 基于ssm+vue基于技术的儿童线上学习系统的设计与实现【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,教育领域正经历着前所未有的变革。特别是在后疫情时代,线上学习成为了儿童教育的重要组成部分。传统的线下教育模式受限于空间......
  • 基于ssm+vue基于B_S结构的服装网站【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代商业活动不可或缺的一部分,深刻改变了人们的消费习惯与购物方式。在时尚产业中,服装作为最具代表性的消费......
  • 基于ssm+vue基于Android的考研咨询APP的设计与实现【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育的普及和就业竞争的日益激烈,越来越多的学生选择继续深造,其中考研成为了众多学子的首选之路。然而,考研之路并非坦途,它要求考生具备扎实的......
  • 基于ssm+vue基于技术的汽车4S店管理系统的设计与实现前端【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着汽车产业的蓬勃发展,汽车保有量持续增长,汽车售后服务市场日益扩大。传统的汽车4S店管理模式面临着效率低下、信息孤岛、服务响应慢等挑战。特别是......
  • 基于ssm+vue基于技术的汽车4S店管理系统的设计与实现后端【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着汽车工业的飞速发展,汽车保有量急剧增加,汽车4S店作为集汽车销售、售后服务、零部件供应及信息反馈于一体的综合性服务机构,其管理效率与服务质量直......
  • 基于ssm+vue基于SpringBoot框架的C2B卖车微信小程序系统【开题+程序+论文】
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,微信小程序作为一种轻量级、即用即走的应用形态,已深入人们的日常生活。在汽车销售领域,传统的C2C(消费者对消费者)模式虽......