0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样在虚幻引擎4中创建3D模型

454398 来源:工程师吴畏 2019-07-31 17:16 次阅读

大家好!我写了一个教程已经有一段时间了。在本文中,我们将研究虚幻引擎4.您可以在此处了解有关Unreal以及如何安装虚幻引擎4的更多信息。我非常喜欢Unreal的图形质量。它的图形质量无与伦比,可以免费使用!那么,让我们开始吧!

您还需要安装VisualStudio(Windows)或XCode(Mac)。这些程序可能在安装时带有Unreal,但如果没有,请确保安装它。

一旦安装了虚幻引擎和VisualStudio或XCode,就可以启动最新版本的Unreal和启动C ++项目。目前,我们不需要担心Blueprint& C ++项目。选择一个基本模板。

这个过程需要一些时间。完成后,它将如下所示。如果选择了C ++项目,则可以在左下角的内容浏览器中看到名为C ++类的文件夹。在左侧,您有模式窗口,您可以从中选择不同的默认3D模型和其他组件。玩它。您的VisualStudio或XCode也必须同时打开。

在Unreal中,所有对象都被视为Actors,输入被视为Pawn等等。由于我们正在制作自己的3D模型,因此我们需要有一个actor类。

右键单击内容窗口,然后选择一个新的C ++类。将其扩展为演示类。

导航到Visual Studio。 (如果您在Blueprint类中创建actor,它将自动打开Visual Studio。)您可以在Solution Explorer窗口中浏览您的类。

我们将使用 UProceduralMeshComponent 来构建网格。网格是用于制作演示或对象的结构。导航到 Build.cs文件并添加以下行。

PublicDependencyModuleNames.AddRange(new string[] { “Core”, “CoreUObject”, “Engine”, “InputCore”, “ProceduralMeshComponent”, “ShaderCore”, “RenderCore” , “RHI”});

注意:如果在任何时候出现错误,您可以随时关闭VisualStudio并转到文件资源管理器中的项目文件夹。右键单击。 uproject 并选择生成项目文件。如果编译器发出错误,我们需要这样做。 (但如果错误是因为‘;’),这无济于事。

现在,再次打开VisualStudio。浏览actor类的头文件(.h)。在底部但在大括号下添加以下代码。

private:

UPROPERTY(VisibleAnywhere, Category = Materials)

class UProceduralMeshComponent* mesh;

可能会显示错误 - 您知道解决方案。

现在在你演示的 .cpp类。包括UProcedural头类。

#include “ProceduralMeshComponent.h”

现在,使用三角形或面生成网格。你可以拿任何物件。在其他情况下,您会注意到它由许多三角形或面组成。

要创建网格,我们需要顶点,三角形(或面),法线,纹理,颜色和切线。您可以在文档中阅读有关它们的所有信息。

现在,您可以想象对象中三角形的数量取决于顶点的数量。如果3有顶点,则将有1个三角形。如果有4个顶点,那么你将有2个三角形。我们也需要牢记这些。

这次我们正在制作一个广场。您可以将此代码添加到A ()函数中的。 cpp文件。

mesh = CreateDefaultSubobject(TEXT(“mesh”));

RootComponent = mesh;

TArray vertices;

vertices.Add(FVector(0, 0, 0)); // 0th vertice

vertices.Add(FVector(0, 100, 0)); // 1th vertice

vertices.Add(FVector(0, 0, 100)); // 2nd vertice

vertices.Add(FVector(0, 100, 100)); // 3rd vertice

TArray Traingle;

//I have created 4 triangle because we need to make sure it is rendered from behind as well. Otherwise, the object will be seen from front only and not from behind.

Traingle.Add(0);

Traingle.Add(1); // for front face - clockwise direction

Triangle.Add(2);

Triangle.Add(1);

Triangle.Add(2); // for front face - clockwise direction

Triangle.Add(3);

Triangle.Add(2);

Triangle.Add(1); // for back face - anti-clockwise direction

Triangle.Add(0);

Triangle.Add(3);

Triangle.Add(2); // for back face - anti-clockwise direction

Triangle.Add(1);

TArray normals;

normals.Add(FVector(1, 0, 0));

normals.Add(FVector(1, 0, 0));

normals.Add(FVector(1, 0, 0)); // you need to calculate the direction of normals, using 3d vectors.

normals.Add(FVector(1, 0, 0));

TArray UV0;

UV0.Add(FVector2D(1, 1));

UV0.Add(FVector2D(0, 1));

UV0.Add(FVector2D(1, 0));

UV0.Add(FVector2D(0, 0));

TArray vertexColors;

vertexColors.Add(FLinearColor(0.75, 0.00, 0.00, 1.0));

vertexColors.Add(FLinearColor(0.75, 0.00, 0.00, 1.0));

vertexColors.Add(FLinearColor(0.75, 0.00, 0.75, 1.0)); // the 4th argument determines alpha value (0,1)

vertexColors.Add(FLinearColor(0.75, 0.00, 0.75, 1.0));

TArray tangents;

tangents.Add(FProcMeshTangent(0, 1, 0));

tangents.Add(FProcMeshTangent(0, 1, 0));

tangents.Add(FProcMeshTangent(0, 1, 0));

tangents.Add(FProcMeshTangent(0, 1, 0));

mesh-》CreateMeshSection_LinearColor(1, vertices, Square, normals, UV0, vertexColors, tangents, false);

我们的网格创建到此结束!您可以保存并编译它。现在,如果你在场景中拖动你的演员,它将编译一个正方形!

您可以尝试评论其他2个三角形并进行编译。一个广场仍然会出现,但试着从后面看到它。你将无法做到。

现在,如果您向其添加任何材质(或图像),如果它被颠倒或以其他方式渲染或光线较低。您需要在Triangle TArray和Normals中调整顶点位置。

您可以尝试制作更复杂的模型或使用obj文件。你需要为obj模型创建一个解析器来获取顶点,法线等。你需要知道一件事,那就是Texures = UV。使用该解析器,您可以填充值并获得这样的模型。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D模型
    +关注

    关注

    1

    文章

    67

    浏览量

    15586
  • 虚幻引擎
    +关注

    关注

    0

    文章

    13

    浏览量

    4015
收藏 人收藏

    评论

    相关推荐

    ad193d模型不显示?

    封装库导入3d模型不显示,但导入3d模型后的封装库生成pcb文件时显示3d模型,这是什么原因导致
    发表于 04-24 13:41

    包含具有多种类型信息的3D模型

    三维视图。事实上,AE可以3D BIM模型元素与时间因素联系起来后创建4D模型,从而更广泛地
    发表于 03-28 17:18

    虚幻引擎技术的再开发助力更高质的虚拟制片

    Unreal Fest Shanghai 2023 虚幻引擎技术开放日将于2023年11月30日(周四)- 12月1日(周五)在上海前滩香格里拉酒店举办!
    的头像 发表于 11-29 10:15 509次阅读

    PADS VX2.7 下载安装及3D模型导入的注意事项

    :https://www.3ds.com/下载相关3D模型*.STP等格式 2.打开PCB 3D视图; 3.选中元件,点击菜单导入
    发表于 11-22 17:54

    88个电子元器件3D模型合集

    整合88个国外网站下载的电子元器件3D模型,省去逐一下载的麻烦。
    发表于 09-25 07:47

    集成ARM Mobile Studio和虚幻引擎1.0版

    每个区域的专门分析部分。 图1-1: 绩效顾问的地区名称 。 此教程描述如何: · 非真实引擎创建基本项目 ·
    发表于 08-28 06:12

    光学3D表面轮廓仪可以测金属吗?

    重建物体的三维模型。这种测量方式具有非接触性、高精度、高速度等优点,非常适合用于金属等材料的表面测量。 光学3D表面轮廓仪可以测量金属的形状、表面缺陷、几何尺寸等多个方面: 1、形状测量。光学3D表面
    发表于 08-21 13:41

    ARM虚幻引擎4优化移动设备指南

    虚幻引擎4是一套用于创建游戏、模拟和电影的工具。你可以用它做任何事情 从小型移动项目到前沿游戏。 虚幻
    发表于 08-08 06:12

    实时3D艺术最佳实践-灯光指南

    的照明技术下看起来更糟。 Unity游戏引擎使灯光工作简单易懂。的手机游戏的表现受到你的照明决定的影响,所以需要使用照明高效。 本指南也可在统一学习课程的格式-手臂和统一呈现:3D艺术 移动应用程序
    发表于 08-02 08:34

    STEP与WRL 3D模型的区别

    “ KiCad 7支持两种格式的3D模型:STEP和WRL。本文简述了STEP与WRL的区别,以及这两种格式在哪些场合应用更合理。 ” 简介 这两种格式本质上是不同的。wrl格式是一种细分的表面
    发表于 06-16 11:26

    用于虚幻引擎的 Omniverse Connector 助力内容创作者节省时间与精力

    通过提升 USD 的兼容性,并新增多项用于优化工作流的增强功能,以实现更快速且高效的自动化工作流。 Epic Games 开放、先进的实时 3D 创作工具—虚幻引擎,现新增更多功能以赋能内容创作者
    的头像 发表于 06-13 20:55 404次阅读
    用于<b class='flag-5'>虚幻</b><b class='flag-5'>引擎</b>的 Omniverse Connector 助力内容创作者节省时间与精力

    求分享8MPLUS-BB的3D cad模型吗?

    以下是我的请求列表, 你能分享 8MPLUS-BB 的 3D cad 模型吗? 我可以请求共享 8MPLUS-BB 的 Altium 设计文件吗? 我们已经采购了 EVM 板,并计划设计一个外壳。
    发表于 06-05 13:37

    3D扫描进度更新,等快递。还有准备3D打印。#3d建模 #3d扫描 #三维扫描 #3d设计 #创客

    3D打印机3D打印
    学习电子知识
    发布于 :2023年05月28日 20:54:11

    视觉处理,2d照片转3d模型

    首先,太阳高度是恒定的。 照片每像素的亮度可求。我们只需要求出太阳与眼睛到物体的夹角就能求出3d模型。 最多就是各种物质的反射率。 英伟达的oir芯片就是做汽车视觉的,大家去取取经。 有时,2-3张位置不同的照片,可以快速生成
    发表于 05-21 17:13

    是否可以获得HVQFN148 SOT2111-1封装的3D STEP模型

    是否可以获得HVQFN148 SOT2111-1封装的3D STEP模型
    发表于 05-12 07:21