首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一维固定功能流水线纹理查找表

一维固定功能流水线纹理查找表
EN

Stack Overflow用户
提问于 2018-03-13 17:38:42
回答 1查看 261关注 0票数 1

我想创建一个一维纹理与OpenGL的(旧的)固定功能流水线,其中插值三种颜色。

在线查看后,通常会提到glTexImage1D。我找不到这方面的任何好的简单示例代码,也不知道如何从中返回一个(RGB)值。

OpenGL (固定函数)是否有任何方法来创建一维纹理,并从中返回RGB值?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-13 18:01:35

是的,glTexImage1D() + GL_TEXTURE_1D

代码语言:javascript
复制
#include <GL/glew.h>
#include <GL/glut.h>

GLuint tex = 0;
void display()
{
    glClear( GL_COLOR_BUFFER_BIT );

    glEnable( GL_TEXTURE_1D );
    glBindTexture( GL_TEXTURE_1D, tex );
    glBegin(GL_TRIANGLES);
    glTexCoord1f( 0.0f );
    glVertex2f( -0.5f, -0.5f );
    glTexCoord1f( 0.5f );
    glVertex2f( 0.5f, -0.5f );
    glTexCoord1f( 1.0f );
    glVertex2f( 0.0f, 0.5f );
    glEnd();

    glutSwapBuffers();
}

int main( int argc, char** argv )
{
    glutInit( &argc, argv );
    glutInitDisplayMode( GLUT_RGBA | GLUT_DOUBLE );
    glutInitWindowSize( 400, 400 );
    glutCreateWindow( "GLUT" );
    glewInit();

    glGenTextures( 1, &tex );
    glBindTexture( GL_TEXTURE_1D, tex );
    unsigned char pixels[] =
    {
        255, 0, 0, 255,
        0, 255, 0, 255,
        0, 0, 255, 255,
    };
    glTexImage1D( GL_TEXTURE_1D, 0, GL_RGBA, 3, 0, GL_RGBA, GL_UNSIGNED_BYTE, pixels );
    glTexEnvi( GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_DECAL );
    glTexParameteri( GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE );
    glTexParameteri( GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    glTexParameteri( GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );

    glutDisplayFunc( display );
    glutMainLoop();
    return 0;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49262526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档