
opengl
文章平均质量分 93
芥末的无奈
这个作者很懒,什么都没留下…
展开
-
LearnOpenGL - Android OpenGL ES 3.0 多线程同步,fence、glWaitSync 和 glClientWaitSync 的运用
本章讨论 OpenGL ES 中多线程技术的运用。首先,说明我们为什么需要这项技术,在 ARM OpenGL ES 教程中提到当我们转向更复杂的图形应用程序时,可能会想要使用多线程(MT)。一个典型的情况是,我们的图形应用程序需要执行大量的数学运算。在这种情况下,可能通过将工作量移至不同于管理图形操作的线程来提高性能。另一个常见的例子是我们想让图形用户界面(GUI)在一个独立的线程中运行。多线程的好处非常重要。MT使得我们的应用程序始终保持响应,并且不只是与应用程序的GUI有关。原创 2024-07-21 22:01:56 · 1668 阅读 · 0 评论 -
LearnOpenGL - Android OpenGL ES 3.0 基础特效实现
本章我们学习下如何来写一个基础特效,本文所有代码你可以在找到本文介绍了 8 中基础特效的实现逻辑,所有代码可以在找到。原创 2024-07-12 10:16:58 · 1499 阅读 · 0 评论 -
LearnOpenGL - Android OpenGL ES 3.0 使用 FBO 进行离屏渲染
利用 FBO(Framebuffer Object),我们可以实现离屏渲染。在前面的章节中,当我们调用 glDrawElements 后,手机屏幕上就会显示出绘制的图像。这意味着 OpenGL 将数据直接渲染到了手机屏幕上。通过使用 FBO,我们可以将数据渲染到纹理上,而不是直接渲染到屏幕,这个过程称为离屏渲染。通过离屏渲染,我们可以在最终显示之前对图像进行复杂的处理。这种方法非常有用,比如在后期处理效果(如模糊、HDR、阴影等)中,或者在渲染多个场景以进行纹理贴图、环境映射等操作时。原创 2024-06-27 18:30:32 · 2174 阅读 · 0 评论 -
LearnOpenGL - Android OpenGL ES 3.0 YUV 渲染
在上一章LearnOpenGL - Android OpenGL ES 3.0 绘制纹理中,我们详细地解释了顶点着色器到片元着色器之间的工作流程,并向你展示了如何绘制一张纹理。本章节我们将讨论如何使用 OpenGL ES 来将一张 YUV 格式的图片转换为 RGB,并渲染在屏幕上。本文所有代码可以在和找到这部分推荐看之前写的YUV 文件读取、显示、缩放、裁剪等操作教程,这次不再赘述。需要重点理解不同 YUV 格式之间的数据排列方式。原创 2024-06-25 21:36:11 · 1422 阅读 · 2 评论 -
LearnOpenGL - Android OpenGL ES 3.0 绘制纹理
在LearnOpenGL - Android OpenGL ES 3.0 绘制三角形中我们学会了如何在 Android 下搭建 GLES 环境,并绘制三角形。本文我们将讨论如何绘制纹理。本文代码在顶点着色器: 执行次数与顶点数量相同,每个顶点执行一次。片元着色器: 执行次数与片元(像素)数量相同,每个片元执行一次。因此,片元着色器的执行次数通常远多于顶点着色器的执行次数,因为片元数量通常大于顶点数量。具体执行次数取决于渲染的几何图形在屏幕上的覆盖范围。原创 2024-06-21 10:05:14 · 1027 阅读 · 0 评论 -
SDL2 简明教程(五):OpenGL 绘制
接下来进行代码示例说明,下面的示例中使用 OpenGL 绘制了一个 三角形。关于 OpenGL 如何使用请参考。原创 2023-02-23 14:21:45 · 3345 阅读 · 0 评论 -
LearnOpenGL - Android OpenGL ES 3.0 绘制三角形
经过一段时间 OpenGL 的学习,我们已经掌握了如何使用 glwf 在桌面端绘制简单图形。现在让我们把目光投向移动端,看看如何在 Android 上使用 OpenGL 绘制图形。本文假设你对 Android 基础有所了解,并使用 Kotlin 编写示例 demo,项目的代码你可以在中找到。本文参考了以下资料Android OpenGL开发——图像绘制详解android平台下OpenGL ES 3.0实例详解顶点缓冲区对象(VBO)和顶点数组对象(VAO)原创 2023-02-21 10:49:19 · 1747 阅读 · 0 评论 -
OpenGL - 如何理解 VAO 与 VBO 之间的关系
在上一章LearnOpenGL 笔记 - 入门 04 你好,三角形中引入了很多很多概念,VBO、VAO、EBO、Shader 等等。密集的知识点向你轰炸而来,让这一章的难度陡然上升。说实话,这一章相当的劝退我。我心中有太多的困惑没有得到解答,文章虽然对 VBO、VAO 等做了解释,但其解释没有能让我这个入门者理解。以至于让阅读者相当的挫败。今天我尝试将本章概念「幼儿园」化,站在入门菜鸟的角度,以伪代码的形式来理解 VAO、VBO 等概念。原创 2023-02-17 21:33:18 · 1639 阅读 · 0 评论 -
LearnOpenGL 笔记 - 入门 04 你好,三角形
你好,三角形本文难度较大,学习曲线突然陡峭了起来。但没有关系,我将以一个初学者的视角来讲述自己的理解,帮助你学习 VAO、VBO、EBO、Shader 等概念。首先,仍然先以知识点列表的形式总结全文。原创 2023-02-10 09:14:35 · 647 阅读 · 0 评论 -
LearnOpenGL 笔记 - 入门 03 你好,窗口
初始化 glfw创建窗口和 OpenGL Context,并设置当前线程的 Context初始化 GLAD在渲染循环(Render Loop)进行图形渲染结束时,释放所有资源。原创 2023-02-09 17:42:27 · 433 阅读 · 0 评论 -
LearnOpenGL 笔记 - 入门 02 创建窗口
在这里,我要介绍一种更加便捷的方式:使用 conan 和 cmake 搭建 glfw 环境。是 C/C++ 包管理工具,它可以加快 C/C++ 工程的开发以及持续集成,配合 cmake 简直神器。5. 接着看 CMakeLists.txt,将 conanbuildinfo.cmake 文件引入 CMakeLists.txt 中,并调用。引入 conan 依赖库,conan 将所有依赖库变量都放在了。依赖库,conan 去下载相关平台的库或者代码;仓库中找到,如果有步骤不清楚,请直接看源码。原创 2023-02-09 17:07:04 · 546 阅读 · 0 评论 -
LearnOpenGL 笔记 - 入门 01 OpenGL
最近需要学习一些 OpenGL 的知识,以便更好的开展工作。此系列文章将纪录学习 OpenGL 过程中产生的笔记。经过一番搜索,网上有非常多 OpenGL 的教程,最终决定按照它有配套的代码,并且代码更新活跃。它有中文翻译。这一点可以提高学习的效率。它几乎涵盖了 OpenGL 所有的知识点,是一个完整的教程。废话不多说,开始第一部分的内容,关于 OpenGL 的介绍。原创 2023-02-07 21:35:06 · 1413 阅读 · 0 评论