Actor和几何体

所有可以放入关卡的对象都是 Actor,Actor支持三维变换,例如平移、旋转和缩放。你可以通过游戏逻辑代码(C++或蓝图)创建(生成)或销毁Actor。

放置actor

有三种方式放置actor
1、在左侧的actor托盘拖动放置
在这里插入图片描述请添加图片描述

2、底部的资产拖动放置

在这里插入图片描述
3、从类查看器中放置actor
在工具菜单打开类查看器,然后拖动想要的actor
请添加图片描述

替换actor

要替换actor,要在关卡中选中多个actor,然后鼠标右击替换

在这里插入图片描述

选择actor

shift连选顺序
ctrl多个单选

在顶视视角框选

在这里插入图片描述

左键单击并框选 + 按 Ctrl + Alt 从当前选择中删除框中的Actor。
左键单击并框选+ Shift 将框中包含的Actor添加到当前所选内容中
左键单击并框选 将当前所选内容替换为框中包含的Actor。

选择菜单

在一些复杂的actor上使用select菜单比较有用
在这里插入图片描述
对整个关卡里面也有选择菜单

在这里插入图片描述

变换actor

世界坐标系

这里的原点就是世界坐标原点
在这里插入图片描述
单个actor这里是局部坐标系
在这里插入图片描述

单击旋转移动

键盘WER可以更换移动,旋转和拉伸
可以使用鼠标进行拉伸移动旋转
在这里插入图片描述
也可以在右侧设置
在这里插入图片描述
可以看到当前是世界坐标模式,xyz的轴向以世界为准
在这里插入图片描述
同理,切换到局部坐标系后就是以自身作为轴向

在这里插入图片描述
小工具,在缩放,调角度时候进行设置对齐网格
在这里插入图片描述

快捷键

W选择移动工具
E选择旋转工具
R选择缩放工具
V(使用平移小工具时按住)切换顶点对齐。
左键单击并拖动(在变换小工具上)移动、旋转或缩放选定的Actor,具体取决于当前活动的变换小工具
中键单击并拖动(在枢轴点上)移动选定Actor的枢轴点
Ctrl + D(在Actor上)将选定的Actor复制到原始Actor所在的相同坐标处
Alt + 左键单击并拖动(在平移小工具上)复制选定的Actor
H(在Actor上)隐藏选定的Actor
Ctrl + H显示所有隐藏的Actor
Shift + E(在Actor上)选择关卡中与所选Actor类型相同的所有匹配Actor
Ctrl + 左键单击(在Actor上)将该Actor添加到当前Actor选择中

Actor移動性

在这里插入图片描述

移動性有三种
1 靜態
静态相当于提前据算好阴影,游戏中就不会便
2固定
固定移动性是为在游戏过程中可以改变但不能移动的Actor保留的。
3可移動
移动性设置为“可移动”的Actor投射完全动态的阴影,该阴影不会将预先计算的阴影投射到光照贴图中。

Actor 分组

要将多个Actor分成一组,你需要首先确保启用了 允许组选择(Allow Group Selection)。此选项位于 主工具栏(Main Toolbar) 上的 设置(Settings) 菜单中。你还可以使用 Ctrl + Shift + G 键盘快捷方式切换此选项。

在这里插入图片描述

Actor对齐

在这里插入图片描述

表面对齐
网格对齐
顶点对齐

合并Actor

在 虚幻引擎 中,可通过 Actor合并 操作将两个或更多 静态网格体Actor 结合为新的单个Actor。这样可以减少绘制调用,有助于项目优化。

合并类型

在这里插入图片描述

在这里插入图片描述

1、合并
该方式会合并全部选中的静态网格体Actor,为每个材质创建一个网格体分段。可以指定要使用的 LOD 级别。绘制调用数量等于 材质 数量。这种方式保留UV。

2、简化
该合并方式将全部选中的静态网格体Actor合并成一个单一网格体,它被称为 代理网格体(Proxy Mesh)。它使用选定每个网格体的最少细节LOD,并根据设置简化网格体形状。顶点数量也会减少。
其结果是单一绘制调用。它为整个网格体烘焙单一材质,且 不 保留UV。将针对整个网格体进行遮挡剔除。

3、批量
该方式将基于相同的静态网格体组件创建实例化静态网格体组件。它保留UV,且不影响遮挡剔除。
批处理
4、近似
这是 虚幻引擎5 的新功能,与“简化(Simplify)”合并方式相似。两者区别在于“近似(Approximate)”可以处理更复杂的源网格体(例如Nanite网格体),而“简化(Simplify)”在简化或纹理烘焙步骤中都会失败。

合并设置

Actor参考

3D文本Actor

你可以使用基于几何体的 文本3D(Text 3D) Actor将高分辨率 3D文本 添加到关卡中
在插件中找到3D文本插件
在这里插入图片描述
安装好插件后可以在放置Actor面板选中text 3d
在这里插入图片描述
拖动后就会显示
在这里插入图片描述

3D动画

官方提供了文字的3D效果方法

在这里插入图片描述
蓝图界面中添加组件
在这里插入图片描述
保存后,将蓝图拖动到关卡中
可以看到此时多了transform组件
在这里插入图片描述
添加关卡序列
在这里插入图片描述
把刚刚的蓝图添加到关卡序列中
在这里插入图片描述
将transform组件添加到动画
在这里插入图片描述
添加需要改变的参数
在这里插入图片描述
添加关键帧
在这里插入图片描述
在关键帧处修改参数
在这里插入图片描述
运行效果如下
请添加图片描述

在运行界面点击~键会弹出调试窗口

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 答:VTK渲染Actor的代码可以使用vtkActor类的SetMapper()和SetProperty()方法来实现,下面是一个示例:vtkActor *actor = vtkActor::New();actor->SetMapper(mapper);actor->SetProperty(property); ### 回答2: VTK是一个强大的三维数据可视化工具,通过使用VTK的库和类,我们可以在计算机界面上实现各种三维数据的渲染和可视化。其中,最基本的操作之一就是渲染一个Actor。在VTK中,Actor是一个可以包含在场景中的可视化对象,它可以代表任何类型的几何体,比如点、线、面等。 要渲染一个Actor,我们首先需要创建一个vtkActor对象,并为其指定几何体数据。可以通过vtkSphereSource、vtkCylinderSource或vtkCubeSource等等类来生成几何体数据。例如,如果我们想要渲染一个球体,可以使用vtkSphereSource来创建一个球体的几何体数据。 接下来,我们需要创建一个vtkPolyDataMapper对象,并将几何体数据传递给它。vtkPolyDataMapper负责将几何体数据转换为可供VTK渲染的内部格式。 然后,我们需要创建一个vtkRenderer对象,并将Actor添加到其中。vtkRenderer是VTK中负责渲染和显示的对象。 接着,我们创建一个vtkRenderWindow对象,将Renderer设置为其渲染器,并设置Render窗口的大小和标题。 最后,我们调用RenderWindow的Start()方法来启动渲染窗口的事件循环,使得Actor可以在窗口中显示出来。 这只是一个简单的示例,演示了如何渲染一个Actor。在实际应用中,还可以对渲染进行更复杂的调整和设置,比如添加光照效果、设置透明度、调整材质属性等等。VTK提供了丰富的类和接口,使得我们可以通过编程来实现各种复杂的渲染效果。 总之,VTK是一个非常强大的渲染库,它可以帮助我们实现各种三维数据的可视化和渲染。通过合理地使用VTK的库和类,我们可以轻松地实现各种复杂的渲染效果,并将结果展示在计算机界面上。 ### 回答3: vtk渲染Actor代码用于创建和渲染3D场景中的可见对象,即Actor对象。以下是一个示例代码: ```cpp #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL2) VTK_MODULE_INIT(vtkInteractionStyle) #include <vtkActor.h> #include <vtkRenderWindow.h> #include <vtkRenderer.h> #include <vtkRenderWindowInteractor.h> #include <vtkPolyDataMapper.h> #include <vtkSphereSource.h> int main() { // 创建一个球体数据源 vtkSmartPointer<vtkSphereSource> sphereSource = vtkSmartPointer<vtkSphereSource>::New(); sphereSource->SetRadius(1.0); sphereSource->Update(); // 创建一个Mapper将数据源连接到Actor vtkSmartPointer<vtkPolyDataMapper> mapper = vtkSmartPointer<vtkPolyDataMapper>::New(); mapper->SetInputConnection(sphereSource->GetOutputPort()); // 创建一个Actor并将Mapper连接到Actor vtkSmartPointer<vtkActor> actor = vtkSmartPointer<vtkActor>::New(); actor->SetMapper(mapper); // 创建渲染器并将Actor添加到渲染器中 vtkSmartPointer<vtkRenderer> renderer = vtkSmartPointer<vtkRenderer>::New(); renderer->AddActor(actor); // 创建一个渲染窗口,并将渲染器添加到窗口中 vtkSmartPointer<vtkRenderWindow> renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); renderWindow->AddRenderer(renderer); // 创建一个交互器并将渲染窗口设置给交互器 vtkSmartPointer<vtkRenderWindowInteractor> interactor = vtkSmartPointer<vtkRenderWindowInteractor>::New(); interactor->SetRenderWindow(renderWindow); // 启动交互器事件循环 interactor->Start(); return 0; } ``` 这段代码首先创建了一个球体数据源(vtkSphereSource),然后通过vtkPolyDataMapper将数据源连接到vtkActor。创建其他必要的对象,如渲染器(vtkRenderer)、渲染窗口(vtkRenderWindow)和交互器(vtkRenderWindowInteractor)。最后,将渲染器添加到渲染窗口中,并将渲染窗口设置给交互器,启动交互器事件循环,从而渲染和显示场景中的Actor对象。当运行代码时,将会显示一个球体。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值