c++ - 从多边形生成纹理 (openGL)

标签 c++ opengl graphics

我有一个四边形,我想使用它产生的渐变作为另一个多边形的纹理。

glPushMatrix();
glTranslatef(250,250,0);
    glBegin(GL_POLYGON);


    glColor3f(255,0,0);
glVertex2f(10,0);
glVertex2f(100,0);
glVertex2f(100,100);
glVertex2f(50,50);
glVertex2f(0,100);

    glEnd(); //End quadrilateral coordinates

    glPopMatrix();
    glBegin(GL_QUADS); //Begin quadrilateral coordinates

    glVertex2f(0,0);
glColor3f(0,255,0);
    glVertex2f(150,0);
    glVertex2f(150,150);
    glColor3f(255,0,0);
    glVertex2f(0,150);


    glEnd(); //End quadrilateral coordinates

我的目标是使 5 个顶点的多边形具有四边形的梯度(也许纹理不是最好的选择) 谢谢

最佳答案

保持简单!

在代码中创建渐变纹理非常简单,例如:

// gradient white -> black
GLubyte gradient[2*3] = { 255,255,255, 0,0,0 };

// WARNING: check documentation, I am not quite sure about syntax and order:
glTexture1D( GL_TEXTURE_1D, 0,3, 2, 0, GL_RGB, GL_UNSIGNED_BYTE, gradient );

// setup texture parameters, draw your polygon etc.

图形硬件和/或 GL 将为您创建从颜色一到颜色二的漂亮渐变(请记住:这是使用硬件加速多边形绘图的基本优势之一,您不必进行插值工作在软件中)。

您的真正问题是:您在 5 顶点多边形上使用哪个纹理坐标。但这不是你的问题……;-)

关于c++ - 从多边形生成纹理 (openGL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2752006/

相关文章:

c++ - 将 OpenBLAS 与 GSL 结合使用

opengl - glGetUniform 有多大用处?

c++ - OpenGL 链接问题

c++ - OpenGL光照问题

javascript - 使用 D3.js 计算带有字母间距的文本长度

c++ - double 到 time 的转换

c++ - 如何在 V4 打印机驱动程序中设置输出文件的固定目录

java - 没有在 main 方法中调用 paint() 如何运行?

C++ 谷歌测试 (gtest) : how to create custom asserts and expects?

math - 计算 LookAt 矩阵