首页 / 行业
怎样在虚幻引擎4中创建3D模型
2019-07-31 17:16:00

大家好!我写了一个教程已经有一段时间了。在本文中,我们将研究虚幻引擎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。使用该解析器,您可以填充值并获得这样的模型。
最新内容
手机 |
相关内容
什么是互感器,互感器的组成、特点、
什么是互感器,互感器的组成、特点、原理、分类、操作规程及发展趋势,发展趋势,分类,输入,计量,用于,信号,AD574AKD互感器是一种用于变频器与电动机使用中需要了解的常
变频器与电动机使用中需要了解的常识,常识,变频器,转速,安装,调节,选择,BAT54S-7-F变频器与电动机是现代工业中常见的设备,常用于调一文了解PTC热敏电阻(贴片式)
一文了解PTC热敏电阻(贴片式),容量,布局,安装,超过,温度,响应,PTC热敏电阻(Positive Temperature Coefficient Thermistor)是一种热敏高精度3D视觉技术,助力工业机器人实
高精度3D视觉技术,助力工业机器人实现汽车零部件高效上下料,工业机器人,助力,视觉,高精度,3D,算法,高精度3D视觉技术在工业机器人上振弦传感器智能化:电子标签模块
振弦传感器智能化:电子标签模块,模块,传感器,操作,连接,安装,控制,mbrs360t3g振弦传感器是一种常用的测量设备,用于检测物体的振动。可穿戴传感器能够实现准确的实时检
可穿戴传感器能够实现准确的实时检测,检测,实时,传感器,可穿戴,高精度,数据传输,可穿戴传感器(Wearable Sensors)是一种集成在人体上探秘英伟达显卡的制造之路 | 英伟
探秘英伟达显卡的制造之路 | 英伟达断供GPU,中国大模型何去何从?,英伟达,模型,中国大,显卡,方案,能力,英伟达(NVIDIA)是全球领先的图形工业物联网模块应用之砂芯库桁架机
工业物联网模块应用之砂芯库桁架机器人远程无线控制,模块,物联网,控制,操作,安全性,无线通信,砂芯库桁架机器人是一种用于制造业中