如何在DirectX 9中进行LOD?

丹尼

我知道在DirectX 11中可以为LOD使用超棒的细分功能,但是知道DirectX 9没有此功能时,我将如何在3D应用程序/游戏中为模型创建LOD来加快速度?

我听说在DirectX 10或11出现之前的过去,人们曾经创建许多相同类型的模型,但具有不同的多边形数(即:对于远处的对象,多边形数很少,而对于较高的对象,多边形数很高。非常接近的物体)。

但是这样做意味着将游戏中模型的大小加倍甚至增加三倍,对吗?在DirectX 9中是否还有其他方法可以实现LOD?或者,这真的是DirectX 9最好的选择吗?至少有人可以为我指出这个问题的正确方向,让我至少可以走开并对此做更多研究吗?

谢谢

特里利亚人

使用网格简化算法(或手动)生成多个LOD网格可能不会像您在内存消耗方面所想的那样糟糕。就像在mipmap中一样,由于简化的网格的顶点要少得多,因此它们不应是游戏中模型的三倍。而且,如果您打算暂时不使用高分辨率网格,则不必将它们保留在视频内存中。

节省内存的另一种方法是通过仅丢弃顶点来简化网格。这样,您可以使用单个顶点缓冲区,并为每个LOD使用不同的索引缓冲区。您可能会得到质量稍低的LOD网格,但是将它们全部保留在内存中的内存开销会小得多。

如果我没有记错的话,细分是用于细分的,因此,如果您想要更粗的网格,无论如何它都无济于事(尽管它可能可以帮助在LOD之间进行插值。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在directx 9中切割对象

来自分类Dev

如何在DirectX 11中导入.obj文件

来自分类Dev

您如何在DirectX 12中绘制文本?

来自分类Dev

如何在MingW中编译DirectX教程示例

来自分类Dev

如何在5.2中进行验证?

来自分类Dev

在DirectX 9中如何在没有D3DX9的情况下绘制线条和字体?

来自分类Dev

如何在DirectX11中正确创建聚光灯?

来自分类Dev

如何在Angular 2中进行API调用?

来自分类Dev

我如何在Postgres 9.5中进行某种upsert

来自分类Dev

如何在angular 2中进行身份验证

来自分类Dev

如何在JavaFX 2中的FXML中进行绑定?

来自分类Dev

如何在yii2中进行ajax调用?

来自分类Dev

如何在JSF 2中进行分页

来自分类Dev

我如何在Dart中的then语句中进行测试

来自分类Dev

如何在构建目录中的src目录中进行制作?

来自分类Dev

如何在python中进行图像处理中的OR遮罩操作?

来自分类Dev

如何在laravel 5.5中进行多次插入?

来自分类Dev

如何在TYPO3中进行缓存预热

来自分类Dev

如何在WooCommerce 3中进行调试

来自分类Dev

如何在xpages中的FT搜索中进行精确匹配

来自分类Dev

如何在symfony1.4中进行分页

来自分类Dev

如何在PHP的Base 12中进行计算

来自分类Dev

如何在C ++ Builder 2010中进行双缓冲?

来自分类Dev

如何在Java中的k-map中进行分组?

来自分类Dev

如何在Django中的“多对多”字段中进行搜索?

来自分类Dev

如何在VBA中而不是Matlab中进行排序?

来自分类Dev

如何在Java的sqlite中从多个表中进行选择?

来自分类Dev

如何在Ext 4.2.1中进行路由

来自分类Dev

如何在Symfony Oauth 2.0中进行范围设置?