OpenGL
文章平均质量分 84
OpenGL使用示例
sino lee
作品《Android图形显示系统》
展开
-
OpenGL系列(六)摄像机
在开发过程中,首先要确定射线机的类型,以确定是创建OrthographicCamera对象还是PerspectiveCamera对象,摄像机对象创建好以后,一般不会修改投影矩阵,但是经过修改摄像机的观察角度,通过对Camera的mPosition、mRight和mUp可以改变观察的角度。观察矩阵和投影矩阵主要针对观察者而已,这两个变换决定了观察者以怎样的视角观察世界,可以把观察者比作一台摄像机,摄像机拍摄景象的角度由观察矩阵和投影矩阵决定。类定义完后,接下来实现返回观察矩阵和投影矩阵。原创 2024-06-28 22:31:17 · 1383 阅读 · 0 评论 -
OpenGL系列(五)纹理贴图
OpenGL纹理是一种在三维图形中应用纹理映射的技术。纹理是一张图像,可以应用到三维模型的表面上,从而使得模型看起来更加真实和具有细节。通过纹理映射,可以将图像的像素值与三维模型的顶点进行匹配,从而为模型的表面增加细节和图案。OpenGL提供了一套用于加载、创建和使用纹理的API,使得纹理映射变得简单和高效。在OpenGL中,纹理被存储在纹理缓冲区中,并通过纹理坐标来进行访问。纹理坐标是一个二维向量,范围在[0,1]之间,用于映射纹理的像素值。原创 2024-06-06 23:18:05 · 1636 阅读 · 0 评论 -
OpenGL系列(四)Shader
通过VBO和VAO准备好数据后,接下来要指示GPU如何通过这些数据绘制图形。类似CPU可以通过执行程序来完成特定的任务,GPU也可以执行特定的程序来完成绘制任务,GPU执行的程序称为Shader,也叫着色器。GPU绘制图形分为不同的处理阶段,在顶点处理和片元OpenGL的着色器使用GLSL语言编写。原创 2024-06-03 23:32:52 · 861 阅读 · 0 评论 -
OpenGL系列(三)VBO、VAO
这里涉及一个问题,将数据传递到GPU是一个耗时的过程,每次绘制之前都执行数据的传递操作势必会影响整体性能,为了解决这个问题,引入了VBO,VBO是Vertex Buffer Object(顶点缓冲对象)的缩写,用于表示显存中的一个缓冲,该缓冲的数据可以被GPU访问,只要把数据存放到该缓冲中,就不必每次绘制前都执行传递数据的操作了。上面定义的数组存放在内存中,可以被CPU访问,但是GPU访问不了,绘制图形是由GPU执行的,为了能让GPU访问到顶点数据,需要把它们从内存传递到显存中。原创 2024-06-03 23:31:22 · 519 阅读 · 0 评论 -
OpenGL系列(二)EGL
EGL是OpenGL ES 和本地窗口系统(Native Window System)之间的通信接口。OpenGL ES的平台无关性正是借助 EGL 实现的,EGL屏蔽了不同平台的差异。初始化完成后,即可调用OpenGL的API了,如glViewport设置视口的大小。在三角形示例中,以上的接口都封装到了EglManager中,初始化过程如下。绘制完成后,调用swapBuffer交换图形缓冲,绘制的内容才能显示出来。中用到了EGL的接口,本文主要介绍这部分内容。原创 2024-05-30 09:11:35 · 219 阅读 · 0 评论 -
OpenGL系列(一)三角形
本系统主要介绍OpenGL的使用示例,通过示例学习OpenGL API的使用方法。本文先从简单的绘制三角形例子开始,介绍如何在Native层使用OpengGL绘制一个三角形,创建Native工程的示例可参考。原创 2024-05-21 23:25:49 · 654 阅读 · 0 评论