gpt4 book ai didi

如果场景中有两个模型,OpenGL 为什么只发送一个模型矩阵?

转载 作者:行者123 更新时间:2023-12-03 19:45:28 25 4
gpt4 key购买 nike

我看到我必须向垂直着色器发送 1 个 MVP 矩阵,但是如果我的场景中有超过 1 个模型,我是否不需要发送多个模型矩阵?

例如,如果我有 2 个茶壶,每个茶壶都有一个不同的模型矩阵,该矩阵的平移、旋转和缩放与另一个茶壶不同。如果我只能发送1个茶壶的模型矩阵,将MVP矩阵中的M的一部分发送给着色器,那么当我的VAO顶点数据输入到顶点着色器时,两个茶壶都会根据1个模型进行变换我选择发送到着色器的矩阵。

最佳答案

假设您要渲染两个具有不同变换的茶壶。有两种选择:

  • 通过制服传递变换。 您必须设置制服,渲染一个茶壶,更新制服并再次渲染茶壶。
  • 通过顶点属性传递变换。 您创建一个实例化顶点属性(两个 vec4 如果您使用偏移量 + 四元数对其进行编码就可以了)并使用实例化绘制命令渲染两个茶壶。

  • 第一种是通常在教程中教授的“简单”方法。但是,当您渲染同一对象的多个实例时,第二种方法可能会有所帮助。

    因此,如您所见,您可以同时将多个模型矩阵传递给 GPU。

    关于如果场景中有两个模型,OpenGL 为什么只发送一个模型矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39819840/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com