OpenGL

《OpenGL ES 3.x 游戏开发》之颜色混合和使用

学习笔记内容摘录

避免图片丢失,建议阅读微信原文:

https://mp.weixin.qq.com/s/40ss1fbLh3Qr5X4o76GTjA

在 Android 中有一个类 PorterDuffXfermode ,它是用来设置颜色混合方式的,也就是在已有颜色的基础上再绘制一笔颜色,这两个颜色是如何进行混合的,是新绘制的颜色覆盖了原有颜色,还是新绘制的颜色和原有颜色混合组成另一种颜色呢。

在 OpenGL 中同样有这样颜色混合的问题。

[阅读全文]
OpenGL 

《OpenGL ES 3.x 游戏开发》之利用 Alpha 透明度进行测试

学习笔记内容摘录

在前面的博客文章中有提到 OpenGL 裁剪测试及注意点,并且裁剪测试只能裁剪一个矩形区域,相当于就是把整个内容都绘制上去了,但是透过一个小矩形区域来看绘制的物体。

除了透过矩形区域,还可以实现透过任意形状区域来观察物体,这就是要用到 OpenGL 的 Alpha 透明度测试。

关于 Alpha 透明度测试,在 用 OpenGL 对视频帧内容进行替换 也用实践用到过。

[阅读全文]
OpenGL 

OpenGL ES 学习资源分享

学习了一段时间的 OpenGL ES,并在公司的项目中得到了运用,也算是有了一些积累,现在分享一些当初学习的资源,大家一起来学习,共同交流进步。

[阅读全文]
OpenGL 

OpenGL 的 glDrawElements 绘制方法

避免图片丢失,建议阅读微信原文:

https://mp.weixin.qq.com/s/WcWdYE5j8Ycw2dtJYS-Cxg

在之前的绘制中,我们都是通过 glDrawArrays 方法来实现的,它会按照我们传入的顶点顺序和指定的绘制方式进行绘制。

回顾一下之前提到的绘制类型:

绘制类型 绘制方式
GL_POINTS 将传入的顶点坐标作为单独的点绘制
GL_LINES 将传入的坐标作为单独线条绘制,ABCDEFG六个顶点,绘制AB、CD、EF三条线
GL_LINE_STRIP 将传入的顶点作为折线绘制,ABCD四个顶点,绘制AB、BC、CD三条线
GL_LINE_LOOP 将传入的顶点作为闭合折线绘制,ABCD四个顶点,绘制AB、BC、CD、DA四条线。
GL_TRIANGLES 将传入的顶点作为单独的三角形绘制,ABCDEF绘制ABC,DEF两个三角形
GL_TRIANGLE_STRIP 将传入的顶点作为三角条带绘制,ABCDEF绘制ABC,BCD,CDE,DEF四个三角形
GL_TRIANGLE_FAN 将传入的顶点作为扇面绘制,ABCDEF绘制ABC、ACD、ADE、AEF四个三角形
[阅读全文]
OpenGL 

OpenGL 学习系列---观察矩阵

避免图片丢失,建议阅读微信原文:

https://mp.weixin.qq.com/s/0cWh3IF_7wa5PHoGsh8ZcQ

OpenGL 投影矩阵 这篇文章中,讲述了 OpenGL 坐标系统中的投影矩阵,有两种类型的投影矩阵,分别是正交投影和透视投影。

这两种投影实质上是两种类型的裁剪空间,分别创建对应视景体对物体坐标进行裁剪,位于裁剪空间内的才会被映射到屏幕上,如下图所示:(图片来源:https://glumpy.github.io/modern-gl.html

当定义裁剪空间视景体时,我们都需要提供近平面和远平面的距离,这里的近和远都是指相对于视点的,视点也就是我们这篇文章要讲到的摄像机。

[阅读全文]

OpenGL 学习系列---投影矩阵

避免图片丢失,建议阅读微信原文:

https://mp.weixin.qq.com/s/AVyNmsO7s6rGPZw3WH5kcA

OpenGL 坐标系统 文章中,根据点的坐标变换得出了如下的公式:

这个公式每左乘一个矩阵,都代表了一种坐标系的变换。

转化为着色器脚本语言如下:

attribute vec4 a_Position;
uniform mat4 u_ModelMatrix;
uniform mat4 u_ProjectionMatrix;
uniform mat4 u_ViewMatrix;
void main()
{
    gl_Position  = u_ProjectionMatrix * u_ViewMatrix * u_ModelMatrix * a_Position;
}

本篇文章就主要是对投影矩阵来分析的。

[阅读全文]
OpenGL