gpt4 book ai didi

c++ - 什么 OpenGL 函数在顶点着色器之前修改顶点位置?

转载 作者:行者123 更新时间:2023-11-30 02:15:23 25 4
gpt4 key购买 nike

假设有一个颜色渲染纹理,宽 1000 像素,高 500 像素。我在四个角 (-1, -1, 0), (1, -1, 0), (-1 , 1, 0), (1, 1, 0) 到它而不在顶点着色器中进行任何转换。

假设在调用此唯一绘制命令之前没有其他 GL 函数被调用,这是否会默认覆盖整个纹理表面?

哪些 OpenGL 函数(修改顶点位置)可能导致此四边形不再填满屏幕?

(我试图了解在顶点着色器之前顶点是如何被弄乱的,所以我可以避免或使用正确的函数来始终映射它们,以便 NDC (-1, -1)(1, 1) 表示整个表面)。

编辑: 如果位置没有改变,那么我也想知道如何在顶点着色器之前修改它们到渲染缓冲区的映射。例如,(-1, -1, 0) 会可靠地引用渲染缓冲区左下角的片段,(0, 0, 0) 会中间,(1, 1, 0) 到右上角?

最佳答案

“在顶点着色器之前”的顶点数据没有任何变化。它不会发生任何事情,因为 OpenGL 不知道顶点属性是什么意思。它不知道属性 2 指的是什么;它不知道什么是位置、法线、纹理坐标或任何东西。就 OpenGL 而言,它只是数据。赋予该数据意义的是您的顶点着色器。并且仅以您的顶点着色器定义的方式。

根据您的 VAO 指定的格式从缓冲区对象中读取数据,并将其提供给处理这些顶点的顶点着色器调用。

关于c++ - 什么 OpenGL 函数在顶点着色器之前修改顶点位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56245620/

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