首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在不使用OpenGL 3.3或更高版本的着色器的情况下将纹理绘制到屏幕上?

在不使用OpenGL 3.3或更高版本的着色器的情况下,可以使用旧版的固定功能管线来将纹理绘制到屏幕上。以下是一种可能的方法:

  1. 初始化OpenGL上下文:使用适当的库或框架初始化OpenGL上下文,确保正确设置窗口和视口。
  2. 加载纹理:使用适当的库或框架加载纹理图像,并将其绑定到OpenGL纹理对象。
  3. 设置纹理参数:设置纹理过滤和重复模式,以控制纹理在绘制过程中的行为。
  4. 准备顶点数据:创建一个包含屏幕四个角的顶点坐标和纹理坐标的顶点缓冲对象(VBO)。
  5. 准备绘制:启用纹理映射和顶点数组,并将纹理对象绑定到纹理单元。
  6. 绘制纹理:使用适当的OpenGL函数(例如glDrawArrays或glDrawElements)绘制顶点缓冲对象中的顶点。

下面是一个示例代码片段,展示了如何在不使用着色器的情况下将纹理绘制到屏幕上:

代码语言:txt
复制
// 初始化OpenGL上下文(使用适当的库或框架)
...

// 加载纹理(使用适当的库或框架)
GLuint textureID = loadTexture("texture.png");

// 准备顶点数据
GLfloat vertices[] = {
    -1.0f, -1.0f, 0.0f, 0.0f, 0.0f,
    1.0f, -1.0f, 0.0f, 1.0f, 0.0f,
    1.0f, 1.0f, 0.0f, 1.0f, 1.0f,
    -1.0f, 1.0f, 0.0f, 0.0f, 1.0f
};

GLuint VBO;
glGenBuffers(1, &VBO);
glBindBuffer(GL_ARRAY_BUFFER, VBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);

// 准备绘制
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, textureID);

glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);

glVertexPointer(3, GL_FLOAT, 5 * sizeof(GLfloat), (void*)0);
glTexCoordPointer(2, GL_FLOAT, 5 * sizeof(GLfloat), (void*)(3 * sizeof(GLfloat)));

// 绘制纹理
glDrawArrays(GL_QUADS, 0, 4);

// 清理
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);

glDisable(GL_TEXTURE_2D);

glDeleteBuffers(1, &VBO);

请注意,这只是一种可能的方法,具体实现可能会因使用的库或框架而有所不同。此外,这种方法是旧版的固定功能管线,不推荐在现代OpenGL应用程序中使用。对于更高级的图形渲染和纹理绘制需求,建议使用着色器和现代OpenGL技术。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

OpenGL学习笔记 (一)- 综述、渲染管线

图元装配 面剔除 光栅化 片段着色器 逐片段操作 帧缓冲 着色器 GLSL 语法 数据类型 输入输出 Uniform 编译与使用 Reference 更新日志 2020-02-17 将渲染管线重写为现代版本...因为在图形绘制中,我们通常会涉及到大量的配置,指望我们每次绘制都提供所有的配置显然十分繁琐,并且多次绘制中这些配置复用的概率是很高的。...顶点数据由用户程序提供,用户程序是运行在CPU上的,而大部分情况下绘制运算都将在图形硬件中进行。因此,OpenGL需要负责将各类数据(除了顶点数据还有纹理数据等等)发送至图形硬件。...,因此此时将主要进行面剔除。 面剔除 经过顶点后处理后,我们已经可以得知图元在屏幕上显示的真实坐标了。因此,我们就可以判断某个面是否朝向屏幕了。这一步可以剔除那些背对屏幕的面,以减轻后续的渲染负担。...这些处理同样也会在之后的文章中进行进一步的阐述。 总而言之,片段操作的结果就是一个个屏幕上显示的像素了。它们将会被送到帧缓冲器中。 帧缓冲 帧缓冲是渲染结果显示到屏幕的内容缓存。

1.7K11

【Android 音视频开发打怪升级:OpenGL渲染视频画面篇】一、初步了解OpenGL ES

3、 OpenGL ES版本 目前主要版本有1.0/1.1/2.0/3.0/3.1 1.0:Android 1.0和更高的版本支持这个API规范 2.0:不兼容 OpenGL ES 1.x。...OpenGL ES纹理坐标 纹理坐标,其实就是屏幕坐标,标准的纹理坐标原点是在屏幕的左下方,而Android系统坐标系的原点是在左上方的。这是Android使用OpenGL需要注意的一个地方。...简单理解:其实就是对应了以上两个坐标系:顶点着色器对应世界坐标,片元着色器对应纹理坐标。 画面上的每个点,都会执行一次顶点和片元着色器中的程序片段,并且是并行执行,最后渲染到屏幕上。...通过以上步骤,就可以在屏幕上看到一个红色的三角形了。 ? 三角形 可能有人就有疑问了:绘制三角形的时候只是直接设置了像素点的颜色值,并没有用到纹理,纹理到底有什么用呢?...,绑定纹理ID,配置纹理过滤模式和环绕方式 绑定纹理(如将bitmap绑定给纹理) 启动绘制 以上基本是一个通用的流程,当然渲染图片和渲染视频稍有不同,以及第5点,都将在下一篇说到。

2K51
  • 20分钟让你了解OpenGL ——OpenGL全流程详细解读

    本文介绍的OpenGL版本是基于OpenGLES 3.0的。这也是目前覆盖率最高的OpenGL版本,被广泛运用在各种终端设备上。...开发者可以选择设定函数指针,在调用绘制方法的时候,直接由内存传入顶点数据,也就是说这部分数据之前是存储在内存当中的,被称为顶点数组。而性能更高的做法是,提前分配一块显存,将顶点数据预先传入到显存当中。...一般默认的程序是将离屏幕较近的像素保留,而将离屏幕较远的像素丢弃。如果像素最终被渲染到画布上,根据设定好的OpenGL深度覆写状态,可能会更新帧缓冲区上深度附着的值,方便进行下一次的比较。...实际上,若机器的分辨率已经相当高,激活抖动操作根本就没有任何意义。默认情况下,抖动是激活的。 ? 9  渲染到纹理 有些OpenGL程序并不希望渲染出来的图像立即显示在屏幕上,而是需要多次渲染。...10  渲染上屏/交换缓冲区(SwapBuffer) 前面已经提过,渲染缓冲区一般映射的是系统的资源比如窗口。如果将图像直接渲染到窗口对应的渲染缓冲区,则可以将图像显示到屏幕上。

    8.1K44

    OpenGL ES编程指南(四)

    此功能允许使用高级渲染算法,如延迟着色,其中您的应用首先渲染一组纹理以存储几何数据,然后执行一次或多次从这些纹理读取的着色过程,并执行光照计算以输出最终图片。...由于此方法会预先计算照明计算的输入,因此将大量灯光添加到场景的增量性能成本要小得多。延迟着色算法需要多个渲染目标支持,如下图所示,以实现合理的性能。否则,渲染到多个纹理需要为每个纹理单独绘制通过。...如果您的应用程序在多个上下文之间共享OpenGL ES对象(如顶点缓冲区或纹理),则应该调用glFlush函数来同步对这些资源的访问。...通过使用专用的设置或关闭例程避免设置超过必要的状态,而不是将这些调用放入绘图循环中。设置和关闭例程对于打开和关闭实现特定视觉效果的功能也很有用 - 例如,在纹理多边形周围绘制线框轮廓时。...为了获得一致的性能,您可以“预热”您在安装例程期间计划使用的每个状态集: 启用您打算使用的状态配置或着色器。 使用该状态配置绘制一小堆顶点。 刷新OpenGL ES上下文,以便不显示此预热阶段的绘图。

    2K20

    TRTCSDK自定义采集Texture2D视频通话

    ,确定好顶点位置和图形颜色,将顶点和颜色数据转换为OpenGl使用的数据格式 加载顶点着色器和片段着色器用来修改图形的颜色,纹理,坐标等属性 创建程式(Program),连接顶点着色器片段着色器。...使用此方法作为主要执行点用于绘制(和重新绘制)的图形对象。 系统调用此方法时的GLSurfaceView几何形状的变化,包括尺寸变化GLSurfaceView或设备屏幕的取向。...//负责将图像绘制到屏幕上 screenFilter = new ScreenFilter(glRenderView.getContext()); //获取OpenGL上下文对象...中 ScreenFilter:负责将图像绘制到屏幕上(加完滤镜美颜等效果,也是用这个类进行展示的) CameraFilter的顶点着色器。...OpenGL默认情况下,在GLSurfaceView中绘制的结果是显示到屏幕上的,但是实际情况中大部分时候都不需要渲染到屏幕中去,这个FBO就是来实现这个需求的,FBO可以让不渲染到屏幕当中去,而是渲染到离屏的

    1.7K60

    Android OpenGL开发实践 - GLSurfaceView对摄像头数据的再处理

    纹理参数传递时,需要先绑定某个纹理单元,将纹理输入绑定到纹理单元的目标对象上,然后调用glUniform1i设置其参数为该纹理单元。 至此,我们的着色器程序已准备好,所有参数也已设置完毕。...对摄像头数据的再处理 前面我们已经拿到了摄像头纹理并显示在屏幕上,但我们显示到屏幕上的是摄像头原始数据纹理,中间没有做任何其他处理。...如果我们想将摄像头原始纹理做一些处理,比如把彩色图变成黑白图像,然后再显示到屏幕上,应该怎么做呢?其实和我们前面将相机纹理渲染到屏幕的过程是一样的!还记得我们前面的片段着色器吗?...我们在前面处理摄像头纹理的着色器渲染完成后,暂时保存输出纹理,然后再用上面灰度图的着色器程序将此输出纹理作为输入,再渲染到屏幕上,即可在屏幕上看到对原始彩色纹理处理后生成灰度图纹理的效果,这其实就是我们对摄像头数据的再处理步骤...下面我们来看看如何生成一个中间FBO并绑定到一个纹理图像,这样第一个着色器程序的输出并不直接渲染到屏幕,而是渲染到此FBO绑定的纹理上,然后此纹理再作为灰度图着色器程序的输入,最终渲染到屏幕FBO上。

    13.1K124

    TRTCSDK自定义采集Texture2D视频通话

    ) 创建图形类,确定好顶点位置和图形颜色,将顶点和颜色数据转换为OpenGl使用的数据格式 加载顶点着色器和片段着色器用来修改图形的颜色,纹理,坐标等属性 创建程式(Program),连接顶点着色器片段着色器...使用此方法作为主要执行点用于绘制(和重新绘制)的图形对象。 系统调用此方法时的GLSurfaceView几何形状的变化,包括尺寸变化GLSurfaceView或设备屏幕的取向。...//负责将图像绘制到屏幕上 screenFilter = new ScreenFilter(glRenderView.getContext()); //获取OpenGL上下文对象...中 ScreenFilter:负责将图像绘制到屏幕上(加完滤镜美颜等效果,也是用这个类进行展示的) CameraFilter的顶点着色器。...OpenGL默认情况下,在GLSurfaceView中绘制的结果是显示到屏幕上的,但是实际情况中大部分时候都不需要渲染到屏幕中去,这个FBO就是来实现这个需求的,FBO可以让不渲染到屏幕当中去,而是渲染到离屏的

    1.3K40

    TRTCSDK自定义采集Texture2D视频通话

    ,确定好顶点位置和图形颜色,将顶点和颜色数据转换为OpenGl使用的数据格式 加载顶点着色器和片段着色器用来修改图形的颜色,纹理,坐标等属性 创建程式(Program),连接顶点着色器片段着色器。...使用此方法作为主要执行点用于绘制(和重新绘制)的图形对象。 系统调用此方法时的GLSurfaceView几何形状的变化,包括尺寸变化GLSurfaceView或设备屏幕的取向。...//负责将图像绘制到屏幕上 screenFilter = new ScreenFilter(glRenderView.getContext()); //获取OpenGL上下文对象...中 ScreenFilter:负责将图像绘制到屏幕上(加完滤镜美颜等效果,也是用这个类进行展示的) CameraFilter的顶点着色器。...OpenGL默认情况下,在GLSurfaceView中绘制的结果是显示到屏幕上的,但是实际情况中大部分时候都不需要渲染到屏幕中去,这个FBO就是来实现这个需求的,FBO可以让不渲染到屏幕当中去,而是渲染到离屏的

    1.4K41

    OpenGL ES 3.0 简介

    OpenGL ES 3.0 是从 OpenGL 3.3规范 衍生而来。...统一变量(uniform)一一顶点(或者片段)着色器使用的不变数据。 采样器一一代表顶点着色器使用纹理的特殊统一变量类型。 下图是顶点着色器的输入输出模型。...对于每个图元,会抛弃图元不在 视锥体(屏幕可见的区域)内的部分,在视锥体内的区域的部分经过裁剪之后,将顶点位置转换为屏幕坐标。然后传递到管线的下一阶段 —— 光栅化阶段。...光栅化 光栅化阶段 会绘制对应的 图元。 光栅化 是将 图元 转化为 二维片段 的过程,然后这些片段再由 片段着色器 处理。这些二维片段代表可在屏幕上绘制的像素。...采样器——代表片段着色器所用纹理的特殊统一变量类型。 片段着色器可以抛弃片段,也可以生成一个或多个颜色值作为输出。

    1.4K20

    OpenGL入门

    实际的OpenGL库的开发者通常是显卡的生产商。你购买的显卡所支持的OpenGL版本都为这个系列的显卡专门开发的。当你使用Apple系统的时候,OpenGL库是由Apple自身维护的。...OpenGL不是简单地把所有的3D坐标变换为屏幕上的2D像素;OpenGL仅当3D坐标在3个轴(x、y和z)上都为-1.0到1.0的范围内时才处理它。...Stage),这里它会把图元映射为最终屏幕上相应的像素,生成供片段着色器(Fragment Shader)使用的片段(Fragment)。...当链接着色器至一个程式的时候,它会把每个着色器的输出链接到下个着色器的输入。当输出和输入不匹配的时候,你会得到一个连接错误。...这需要使用到一些数学知识,这里可以参考OpenGL官网译文 其他3D术语: 2D+透视 = 3D 纹理贴图:将纹理图片附着到你绘图的图像上 混合:颜色混合效果 渲染:表示计算机从模型创建最终图像的过程

    2.4K40

    OpenGL入门

    实际的OpenGL库的开发者通常是显卡的生产商。你购买的显卡所支持的OpenGL版本都为这个系列的显卡专门开发的。当你使用Apple系统的时候,OpenGL库是由Apple自身维护的。...OpenGL不是简单地把所有的3D坐标变换为屏幕上的2D像素;OpenGL仅当3D坐标在3个轴(x、y和z)上都为-1.0到1.0的范围内时才处理它。...当链接着色器至一个程式的时候,它会把每个着色器的输出链接到下个着色器的输入。当输出和输入不匹配的时候,你会得到一个连接错误。...1.0f // 上中 }; 和之前生成的OpenGL上下文对象一样,纹理也是使用ID引用的。...这需要使用到一些数学知识,这里可以参考OpenGL官网译文 其他3D术语: 2D+透视 = 3D 纹理贴图:将纹理图片附着到你绘图的图像上 混合:颜色混合效果 渲染:表示计算机从模型创建最终图像的过程

    2K40

    干货 | 移动应用中使用OpenGL生成转场特效

    3.1.1 OpenGL渲染流程 在使用OpenGL进行绘制时,我们主要关注的是顶点着色器和片元着色器。顶点着色器用来确定绘制图形的顶点位置,片元着色器负责给图形添加颜色。...没有经过测试的片段会被丢弃,不需要进行混合阶段,经过测试的片段会进入混合阶段。 经过以上几个步骤,OpenGL就能将最终的图形显示到屏幕上。...Fragment Shader会输出我们屏幕上看到的最终颜色值。...现在我们就利用刚刚介绍的一些知识点,通过OpenGL程序将图片绘制到屏幕上,这也是制作图片轮播转场特效的前提。..., v_texCoord);//2D纹理采样,将颜色赋值给OpenGL的内置变量gl_FragColor} 再给出Android端使用这两个着色器绘制一个图片纹理的代码: class SimpleImageRender

    1.8K10

    OpenGL与OpenGL在移动端的应用

    OpenGL不是简单地把所有的3D坐标变换为屏幕上的2D像素;OpenGL仅当3D坐标在3个轴(x、y和z)上都为-1.0到1.0的范围内时才处理它。...然后将这些标准化设备坐标传入光栅器(Rasterizer),再将他们转换为屏幕上的二维坐标或像素。...顶点着色器(Vertex Shader) 在 openGL 编程中顶点着色器是必须的,顶点着色器的功能如下: 1.使用模型视图矩阵和投影矩阵进行顶点位置变换 2.法线变换,法线工规范化 3.纹理坐标生成和变换...在光栅化阶段,基本图元被转换为二维的片元(fragment),fragment 表示可以被渲染到屏幕上的像素,它包含位置,颜色,纹理坐标等信息,这些值是由图元的顶点信息进行插值计算得到的。...7).Framebuffer:这是流水线的最后一个阶段,Framebuffer 中存储这可以用于渲染到屏幕或纹理中的像素值。

    2.7K30

    OpenGL ES for Android 世界

    上篇文章 《使用 MediaExtractor 及 MediaCodec 解码音视频》介绍过对音视频进行解码,但是我们并没有将解码后的数据在屏幕上展示,如果需要渲染到屏幕上我们就需要了解下 OpenGL...如果要搞清楚这个问题,我们就需要知道 OpenGL 的渲染管线,如下图: 渲染管线是指图形数据经过一系列处理过程,最终输出到屏幕上,这个过程就像一个输送管道,或者一个处理流水线,它有着固定的处理顺序。...光栅化 (Resterization Stage): 光栅化阶段会将图元形状映射为最终屏幕上显示的像素,然后生成供片元着色器使用的 "片元",然后将每个片元输入片元着色器。...; 我们知道 uniform 属性值由应用程序赋值, /** 生成一个纹理id,texutes 用以接收纹理句柄id */ 如果要把改纹理绘制到屏幕上,还需指定纹理的映射关系,通常我们需要指定顶点坐标...将上述纹理映射到三角形上 06 OpenGL 绘制纹理 现在我们已经有一个纹理图片了,现在我们就把这张图片绘制到屏幕上,对以上内容做个整合,首先,准备顶点和片元着色器代码: 顶点着色器: private

    1.2K10

    OpenGL入门

    实际的OpenGL库的开发者通常是显卡的生产商。你购买的显卡所支持的OpenGL版本都为这个系列的显卡专门开发的。当你使用Apple系统的时候,OpenGL库是由Apple自身维护的。...OpenGL不是简单地把所有的3D坐标变换为屏幕上的2D像素;OpenGL仅当3D坐标在3个轴(x、y和z)上都为-1.0到1.0的范围内时才处理它。...Stage),这里它会把图元映射为最终屏幕上相应的像素,生成供片段着色器(Fragment Shader)使用的片段(Fragment)。...当链接着色器至一个程式的时候,它会把每个着色器的输出链接到下个着色器的输入。当输出和输入不匹配的时候,你会得到一个连接错误。...这需要使用到一些数学知识,这里可以参考OpenGL官网译文 其他3D术语: 2D+透视 = 3D 纹理贴图:将纹理图片附着到你绘图的图像上 混合:颜色混合效果 渲染:表示计算机从模型创建最终图像的过程

    1.7K60

    OpenGLES讲解稿

    OpenGL不是简单地把所有的3D坐标变换为屏幕上的2D像素;OpenGL仅当3D坐标在3个轴(即x、y和z)上都为-1.0到1.0的范围内时才处理它。...然后将这些标准化设备坐标传入光栅器(Rasterizer),再将他们转换为屏幕上的二维坐标或像素展示出来。...在 openGL 编程中顶点着色器是必须的,我们开始没用是因为我们还没绘制图形呢,顶点着色器的功能有: 1.使用矩阵进行顶点位置变换 2.法线变换,法线工规范化 3.纹理坐标生成和变换 4.计算每个顶点的光照...在光栅化阶段,基本图元被转换为二维的片元(fragment),fragment 表示可以被渲染到屏幕上的像素,它包含位置,颜色,纹理坐标等信息,这些值是由图元的顶点信息进行插值计算得到的。...7).Framebuffer:这是流水线的最后一个阶段,Framebuffer 中存储这可以用于渲染到屏幕或纹理中的像素值。

    1.1K20

    Android OpenGL开发实践 - 基于OpenGL ES 2.0的Android相机实时图片涂鸦实现思路

    基础知识一:OpenGL的坐标系 为方便讲解,以下只讲解二维的情况,在OpenGL使用中,我们主要会涉及到以下三个坐标系: 屏幕坐标系 屏幕坐标系就是我们手机屏幕的坐标系,以像素为单位,左上角是坐标系原点...OpenGL在把点绘到屏幕上之前,点会依次经过顶点着色器和片元着色器的处理。...绘制方法将之前涂鸦的内容绘制到相机预览帧上,否则在新的帧上就看不见之前涂的内容,示意图如下: ?...因为OpenGL默认是渲染到屏幕的,我们往画布上画东西并不希望马上显示出来,因为画布还要贴到脸上,之后再显示出来。 坐标变换 有了涂鸦画布之后,下一步就是如何将涂鸦的内容画到画布上。...现在可以将手指在屏幕上触摸时在onTouchEvent()回调中所得到的触摸坐标正确地转换成涂鸦画布中的坐标了,那么如何在对应的坐标点画涂鸦图案呢?

    7.3K130

    【iOS】OpenGL入门资料整理

    开发者可以选择设定函数指针,在调用绘制方法的时候,直接由内存传入顶点数据,也是说这部分数据之前是存储在内存当中的,被称为顶点数组。而性能更高的做法是,提前分配一块显存,将顶点数据预先传入到显存中。...光栅化过程产生的是片元 把物体的数学描述以及与物体相关的颜色信息转换为屏幕上用于对应位置的像素及用于填充像素的颜色,这个过程称为光栅化,这是一个将模拟信号转化为离散信号的过程 2.12、纹理 纹理可以理解为图片...2.14、变换矩阵(Transformation) 例如图形想发生平移,缩放,旋转变换.就需要使用变换矩阵 2.15、投影矩阵(Projection) 用于将3D坐标转换为二维屏幕坐标,实际线条也将在二维坐标下进行绘制...如果将图像直接渲染到窗口对应的渲染缓冲区,则可以将图像显示到屏幕上。 但是,值得注意的是,如果每个窗口只有一个缓冲区,那么在绘制过程中屏幕进行了刷新,窗口可能显示出不完整的图像。...在一个缓冲区渲染完成之后,通过将屏幕缓冲区和离屏缓冲区交换,实现图像在屏幕上的显示。

    1.5K10

    OpenGL ES简介

    :顶点着色器使用的常量数据,不能被着色器修改,一般用于对同一组顶点组成的单个3D物体中所有顶点都相同的变量,如当前光源的位置。...光栅化是将图元转化为一组二维片段的过程,然后,这些片段由片段着色器处理(片段着色器的输入)。这些二维片段代表着可在屏幕上绘制的像素。...注意,此时的像素并不是屏幕上的像素,是不带有颜色的。接下来的片段着色器完成上色的工作。总之,光栅化阶段把图元转换成片元集合,之后会提交给片元着色器处理,这些片元集合表示可以被绘制到屏幕的像素。...片段着色器为片段(像素)上的操作实现了通用的可编程方法,光栅化输出的每个片段都执行一遍片段着色器,对光栅化阶段生成每个片段执行这个着色器,生成一个或多个(多重渲染)颜色值作为输出。...Uniforms:片元着色器使用的常量数据 Samplers:一种特殊的uniforms,表示片元着色器使用的纹理。

    2K70

    Qt5 和 OpenCV4 计算机视觉项目:6~9

    版本; 正如我们提到的,我们使用的是新样式的 API,该 API 是在 V4.0 中引入的,并已反向移植到 V3.3,因此,这里至少应使用 V3.3。...像顶点着色器阶段一样,OpenGL 在此阶段不提供默认的着色器程序,因此我们应该自己编写一个。 混合:此阶段在屏幕或帧缓冲区上渲染 2D 图形。...这些类的使用也非常方便,但与最新版本的 OpenGL 相比可能会(或将会)落后一些。 使用 OpenGL 过滤图像 到目前为止,我们已经学习了如何在 OpenGL 中绘制一个简单的三角形。...,这里我们向glBindTexture添加了一个新函数调用,以将新创建​​的纹理绑定到当前 OpenGL 上下文,并使用6作为glDrawArrays函数的第三个参数, 因为我们要绘制两个三角形。...在片段着色器中过滤图像 在前面的小节中,我们使用 OpenGL 绘制了图像。 绘制图像时,我们从片段着色器的纹理(与原始图像具有相同的数据)中选择了颜色。

    3.3K30
    领券