gpt4 book ai didi

opengl - 使用几何着色器进行实例化

转载 作者:行者123 更新时间:2023-12-04 17:46:34 24 4
gpt4 key购买 nike

所以我想画很多四边形(甚至立方体),偶然发现了这个可爱的东西,叫做几何着色器。

我现在有点明白它是如何工作的,我可能会操纵它为顶点缓冲区中的每个顶点绘制一个立方体,但我不确定这是否是正确的方法。几何着色器发生在顶点着色器和片段着色器之间,因此它适用于 中的顶点。屏幕空间 .但我需要它们在世界空间中进行转换。

那么,是否可以让我的顶点着色器简单地将输入通过管道传输到几何着色器,并在创建图元后让几何着色器乘以 modelviewproj 矩阵?统一着色器架构应该没问题,但是让顶点着色器变得多余我还是觉得恶心。

有替代品吗?或者这真的是“正确”的做法吗?

最佳答案

完全没问题。

除此之外,考虑使用实例渲染( glDrawArraysInstancedglDrawElementsInstanced )和顶点属性除数( glVertexAttribDivisor )。这样你就可以在完全没有几何着色器的情况下完成相同的任务。

例如,您可以有一个规则的立方体几何边界。然后,您有一个特殊的顶点属性,其中包含每个实例所需的立方体位置。您应该将它与除数 = 1 绑定(bind),这将使它为每个绘制的实例推进。然后使用 glDraw*Instanced 绘制立方体,指定实例数。

您还可以使用 gl_VertexID 从纹理中采样输入数据。或 gl_InstanceID为坐标。

关于opengl - 使用几何着色器进行实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4995928/

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