gpt4 book ai didi

opengl - 在 OpenGL 3.2 中绘制全屏四边形的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 03:21:26 25 4
gpt4 key购买 nike

我正在片段着色器中进行光线转换。为此,我可以想到几种方法来绘制全屏四边形。要么在投影矩阵设置为单位矩阵的情况下在剪辑空间中绘制一个四边形,要么使用几何着色器将一个点变成一个三角形条。前者使用立即模式,在 OpenGL 3.2 中已弃用。后者我出于新意而使用,但它仍然使用立即模式来绘制一个点。

最佳答案

您可以发送两个三角形来创建一个四边形,它们的顶点属性分别设置为 -1/1。

您不需要将它们与顶点/片段着色器中的任何矩阵相乘。

这是一些代码示例,很简单:)

顶点着色器:

const vec2 madd=vec2(0.5,0.5);
attribute vec2 vertexIn;
varying vec2 textureCoord;
void main() {
textureCoord = vertexIn.xy*madd+madd; // scale vertex attribute to [0-1] range
gl_Position = vec4(vertexIn.xy,0.0,1.0);
}

片段着色器:
varying vec2 textureCoord;
void main() {
vec4 color1 = texture2D(t,textureCoord);
gl_FragColor = color1;
}

关于opengl - 在 OpenGL 3.2 中绘制全屏四边形的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2588875/

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