![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenGL-ES
文章平均质量分 85
小猪佩奇TONY
求知若渴,虚心若愚
展开
-
OpenGL-ES 学习(6)---- 立方体绘制
顶点的坐标体系如下图所示,三维坐标的中心原点位于立方体的中心,但是要特别注意的是,前后方向表示的是Z轴,上下方向表示的是Y轴。会得到经过插值后的每个片元的颜色,并将这个颜色设置为最终的显示,实现的是一个渐变色的效果,数组中表示不同顶点的绘制顺序,每三个顶点构成一个三角形,最后由。这里为立方体的每个顶点定义不同的颜色,同时在。实现了对顶点内容和顶点Index的缓冲。个面,所以绘制立方体本质上就是绘制这。实现了旋转的效果,同时使用。Note: 这里还使用了。原创 2024-06-23 16:40:11 · 425 阅读 · 0 评论 -
OpenGL-ES 学习(6)---- Ubuntu OES 环境搭建
创建窗口并设置上下文,将创建的窗口用于opengl-es上下文,此时opengl-es和系统的窗口系统相关联 , 创建着色器,编译着色器,最近将其链接到一个程序对象。Note: 上面的环境中同时安装了 x11 和 glfw,实际上只需要安装一个自己需要的即可, x11 和 glfw 都是为 OES 环境对接到窗口系统中,在程序主循环中,还添加了计时相关的代码逻辑,在glfw 的模式下,主循环也是跟屏幕刷新率相同也是60Hz, 可以看到每次循环体的执行间隔都是 16.6ms。GLFW初始化和窗口创建。原创 2024-06-10 11:28:32 · 451 阅读 · 0 评论 -
OpenGL-ES 学习(5)---- GPU 基础知识
以绘制地球月球为例子,CPU 把绘制的 Shader、Buffer、贴图以及 Attachment 准备好,所有需要的数据写入显存,然后发送了两个 Draw Call D1, D2。GPU 几何处理调用 Vertex_Shader S1,计算出顶点位置,像素处理调用 Pixel Shader S2 对每一个像素进行着色。Shader S1, S2 和 Vertex Buffer B1 是复用的,但是传的参数不同,贴图 T1, T2 不同,所以绘制出来的东西也不同。原创 2024-02-25 10:02:24 · 966 阅读 · 0 评论 -
OpenGL-ES 学习(4)---- OpenGL-ES 坐标体系
从 [l,r] 到 [-1, 1] 的x坐标范围,从 [b,t] 到 [-1,1 ]的y坐标范围和 [-n,-f] 到[-1, 1] 的 z 的坐标范围。透视除法是一种将 3D 坐标变换到 2D 屏幕上的方法,它可以将3D空间中的任意点投影到一个正方体的六个面上,然后去掉那些不在正方体内部的点,得到最终可以显示在屏幕上的点。观察空间(View Space)也被称为 OpenGL-ES 相机空间(定义了相机所在的位置),即从摄像机的角度观察到的空间,它将对象的世界空间的坐标转换为观察者视野前面的坐标。原创 2024-02-11 13:27:29 · 1263 阅读 · 0 评论 -
OpenGL-ES 学习(3)---- StencilTest
实际原理就是用实际物体的大小作为模版缓冲区,略微放大一下物体,此时比原物体大的部分作为后面的轮廓,再使用模版测试,将模版值不为 1 的地方进行渲染,就可以得到物体的轮廓。,也就是每个Pixel 都会和模板缓冲区的值比较,决定是否要绘制,模板缓冲区保存的是每个像素是否要被更新的标志位。dpfail:如果模板测试通过,但是深度测试失败时将如何更新模板值;dppass:如果深度测试和模板测试都通过,将如何更新模板值。sfail:如果模板测试失败将如何更新模板值;,模版测试发生在深度测试之前。原创 2024-02-11 11:07:42 · 786 阅读 · 0 评论 -
OpenGL-ES 学习(2)---- DepthTest
深度测试中,深度冲突现象需要值得注意。原理: 绘制了两张图片,并且设置投影矩阵,使其都绕着 Y 轴旋转,注意这两张图片的初始化的 Z 轴坐标是不一致的,所以会出现不同的深度,此时的深度可以理解为 Camera。开启深度测试后,如果片段通过深度测试,OpenGL-ES 自动在深度缓冲区存储片段的 gl_FragCoord.z 值,如果深度测试失败,那么相应地丢弃该片段。深度缓冲区中包含深度值介于 0.0 和 1.0 之间,物体接近近平面的时候,深度值接近 0.0 ,物体接近远平面时,深度接近 1.0。原创 2024-02-11 10:35:22 · 1377 阅读 · 0 评论 -
OpenGL-ES 学习(1)---- AlphaBlend
我们也可以通过 glBlendEquation 自定义两个颜色之间的操作符:GL_FUNC_ADD:默认的,彼此元素相加:Cresult=CSrc+ CDst;GL_FUNC_SUBTRACT:彼此元素相减:Cresult=CSrc− CDst;GL_FUNC_REVERSE_SUBTRACT:彼此元素相减,但顺序相反:Cresult=CDst- CSrc;GL_MIN:混合结果的 4 个通道值分别取 2 元素中 4 个通道较小的值;原创 2024-02-11 09:45:42 · 1367 阅读 · 0 评论