gpt4 book ai didi

opengl - Sampler2D 存储什么?

转载 作者:行者123 更新时间:2023-12-03 03:59:01 24 4
gpt4 key购买 nike

我读过 OpenGL 2.1 中的纹理示例。片段着色器如下所示:

#version 120

uniform sampler2D texture;
varying vec2 texcoord;

void main(void)
{
gl_FragColor = texture2D(texture, texcoord);
}

texcoord 从顶点着色器传递。

使用以下C++渲染代码:

void render()
{
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture_id);
glUniform1i(unf_texture, 0);
}

我对一些事情感到困惑。我有一个问题:

  1. 在片段着色器中,纹理传递零值(通过glUniform1i())。值(value)真的为零吗?值(value)还有别的吗?

  2. 真的需要调用glActiveTexture()吗?

  3. 为什么我们要在 glUniform1i() 中传递零值?

最佳答案

sampler2D 绑定(bind)到 texture unitglUniform 调用将其绑定(bind)到纹理单元零。仅当您要使用多个纹理单元时才需要调用 glActiveTexture()(因为 GL_TEXTURE0 无论如何都是默认值)。

关于opengl - Sampler2D 存储什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868958/

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