3d驾驶教室课程考试怎么过视频,3d驾驶教室全部车解锁

首页 > 教育培训 > 作者:YD1662023-10-30 19:59:01

如果不理解其中一些参数的意义,不要担心,我将在本教程的后面部分解释它们!

加载超参数通过以下方式完成:

params = Params(“params_demo.json”) # Access batch size parameter print(params.elevation)

初始化 params 对象后,你还可以使用 params.update('your_other_params.json') 方法使用另一个 .json 文件更新它。

好的,现在我们导入了库并声明了参数,可以加载网格了。

2、加载3D网格

有几种方法可以表示 3D 数据,例如点云、网格或体素 。在本教程中,我们将重点介绍 3D 网格,尽管 PyTorch3D 中的相同过程也适用于点云。

有关 3D 纹理网格的信息通常存储在以下文件中:

在本教程中,我们将使用存储在 data/capsule文件夹中的 3D 胶囊对象。示例文件是从此处托管的公共存储库获得的。为了可视化我们正在使用的网格,我们可以使用 Blender:

3d驾驶教室课程考试怎么过视频,3d驾驶教室全部车解锁(5)

PyTorch3D 包含多个用于加载 .obj 文件的函数,例如 load_obj 或 load_objs_as_meshes。我们将使用第一个,并使用以下语句加载 .obj 文件:

verts, faces, aux = load_obj(filename)

在这里, verts是顶点的 (V, 3) 张量,`faces.verts_idx`是每个面顶点索引的 (F, 3) 张量, aux 存储有关网格的辅助信息,例如 UV 坐标、材质颜色或纹理。然后,我们将这些 verts、 faces.verts_idx和 aux传递到 Meshes 构造函数中,该构造函数创建一个名为 capsule_mesh 的对象:

3d驾驶教室课程考试怎么过视频,3d驾驶教室全部车解锁(6)

最后,第 33 行检查胶囊网格中的面和顶点数。这将返回:

We have 5252 vertices and 10200 faces.

这是我们通过检查 .obj 文件结构所期望的。

如果你想了解更多,可以在这里找到 Meshes对象的官方文档。

3、创建渲染器

这可能是最重要的一步。现在我们成功读取了胶囊网格,我们需要使用 MeshRenderer 类创建一个渲染器。查看 MeshRenderer 的文档 ,我们看到它由 2 个组件组成:

因此,让我们将此任务分解为两个步骤,最后将它们放在一起。

3.1 创建光栅器

栅格化是指采用以多边形或三角形(.obj 文件)描述的图像表示,并将其转换为以像素(.png或.jpg文件)描述的光栅图像。

我们的光栅器是使用一个名为 MeshRasterizer 的类创建的,该类还具有多个子组件,例如 cameras和 raster_setting 参数。基本上,相机负责将3D坐标从世界空间转换为屏幕空间。要初始化相机,我们需要 3 个重要参数。这些是:1) 距离,2) 方位角和 3) 仰角。如果这听起来很多,请不要担心,我将逐步介绍它们。

在我们的 params.json 文件中,我们声明距离为 3,仰角为 0,方位角为 90,因此如果我们渲染此网格,我们应该直接从 3 个单位的距离查看它。

关于栅格设置,最重要的参数是生成的 2D 图像的大小。尺寸越小,图像的像素化程度就越高。

3d驾驶教室课程考试怎么过视频,3d驾驶教室全部车解锁(7)

3.2 创建着色器

PyTorch3D提供多种类型的着色器,包括 SoftPhongShader或 HardPhongShader。在这里,我们将使用预定义的 SoftPhongShader 并传入相机和要初始化默认参数的设备。

最后但并非最不重要的一点是,我们将光栅器和着色器结合起来:

3d驾驶教室课程考试怎么过视频,3d驾驶教室全部车解锁(8)

上一页1234下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.