【问题标题】:Directx9 Index Buffers & Multiple StreamsDirectx9 索引缓冲区和多个流
【发布时间】:2010-02-21 07:21:55
【问题描述】:

我正在尝试编写一个 3DS 加载器,它具有 OpenGL 渲染实现,可用于我的通用渲染系统。

这里的问题是我将顶点索引到一个数组,并将纹理坐标索引到另一个数组。我不想通过检查每个顶点坐标和纹理坐标的组合来生成一组新的索引和原始顶点,那么如何在directx中优化指定缓冲区中的两个数组呢?

我想要的是 3 个顶点缓冲区,一个用于顶点,一个用于纹理坐标,一个用于顶点法线。然后我将拥有所有三个的索引缓冲区。我不知道该怎么做。

我正在使用 directx9 和 C++

【问题讨论】:

    标签: c++ directx


    【解决方案1】:

    就显卡而言,如果 2 个顶点具有相同的位置和不同的 tex 坐标(或不同的任何顶点元素),那么它们是不同的顶点。它们将存储在卡上,无论您在 OpenGL 下做什么,位置/tex 坐标都会重复(驱动程序只会隐式扩展顶点)。 DirectX 强制您这样做。

    Multiple Streams 略有不同,但扩展为相同的东西。即两个流中只有一个索引值。

    因此,最佳情况下,您需要将两个列表扩展为一个大列表,并适当地设置单个索引列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-11
      • 1970-01-01
      • 1970-01-01
      • 2018-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-05
      相关资源
      最近更新 更多