gpt4 book ai didi

performance - 多次渲染同一个模型

转载 作者:行者123 更新时间:2023-12-04 15:34:54 25 4
gpt4 key购买 nike

我想要做的,基本上是有 1 个模型,它被多次渲染,具有不同的平移和旋转。

所以我知道如何使用Array BuffersArray Element Buffers ( Vertex Buffer Objects ),我的问题是。现在,当我将模型加载到 VBO如果我想用不同的平移和旋转多次渲染它,最好的方法是什么。

对于如何做到这一点,我有两种理论。 (虽然我在问什么是最好的方法)。

  • 将模型加载到一个 VBO然后继续调用glDrawArrays并为我要渲染的每个模型应用平移和旋转。
  • 将模型加载到一个 VBO多次。然后,同一个模型会被存储多次,最终会占用大量内存。

  • 额外:当做 1 方式,可以使用四叉树和/或平截头体,这将最小化需要渲染的模型数量。

    如果我想要高 FPS 并且仍然可以节省尽可能多的内存,那么这些方法中的哪一种是最好的,还是有另一种更好的方法?

    只是为了澄清我不是在问如何使用 VBO's 进行渲染或者一般如何渲染,我问的是当你想多次渲染同一个模型时最好的方法是什么。

    测试模型

    这只是测试模型的图像。

    Demo Model

    编辑

    我目前正在使用 OpenGL 4.2.0 版,并且在 Windows 台式计算机上使用它。

    最佳答案

    为了尽量减少抽签和制服转移,您可以使用 glDrawArrayInstanced() .这样,您可以在单个绘图调用中提交任意数量的原始对象实例!您可以将每个实例的矩阵打包到 UBO(统一缓冲区对象)中,并使用 gl_InstanceID 访问每个实例的顶点着色器中的矩阵

    关于performance - 多次渲染同一个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18440607/

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