![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android OpenGL
文章平均质量分 89
假装你是大灰狼
移动端工程师
展开
-
Android OpenGL平滑着色
Android OpenGL平滑着色1、平滑着色平滑着色可以平滑地混合一条直线或一个三角形的表面上每个顶点的颜色。(1) 直线混合value = (vertex_0_value * (1 - distance_ratio)) + (vertex_1_value * distance_ratio)(2) 三角混合对于三角形内任何给定的点,从那个点向每个顶点画条直线,生成三原创 2017-08-02 09:10:25 · 1486 阅读 · 0 评论 -
Android OpenGL正交投影
Android OpenGL正交投影1、正交投影在OpenGL里,渲染的一切物体都要映射到x轴和y轴上[-1, 1]的范围内,这个范围的坐标被称为归一化设备坐标,其独立于屏幕实际的尺寸或形状。但在横屏模式下,东西会被压扁。我们一般会先在虚拟坐标空间里工作,通过正交投影把虚拟空间坐标转换回归一化设备坐标2、矩阵矩阵是一个有多个元素的二维数组。在OpenGL里,使用矩阵原创 2017-08-02 16:34:26 · 715 阅读 · 0 评论 -
Android OpenGL透视投影
Android OpenGL透视投影1、透视除法OpenGL会把每个gl_Position的x、y和z分量都除以它的w分量。当w分量用来表示距离的时候,会使得较远处的物体被移动到距离渲染区域中心更近的地方。添加w分量创建三维图private static final int POSITION_COMPONENT_COUNT = 4;float[] tableVertices原创 2017-08-03 09:28:47 · 1341 阅读 · 0 评论 -
Android OpenGL纹理
Android OpenGL纹理1、纹理纹理就是一个图像或照片,它们可以被加载进OpenGL中。每个二维的纹理都有其自己的坐标空间,按照惯例,一个维度叫做S,而另一个叫做T。大多数计算机图像都有一个默认的方法,通常是y轴向下,y随着向图像的底部移动而增加。2、纹理过滤当纹理大小被扩大或缩小时,我们还需要使用纹理过滤。(1) 最近邻过滤这个方式为每个片段选择最原创 2017-08-04 09:59:36 · 1126 阅读 · 0 评论 -
Android OpenGL相机视角
Android OpenGL相机视角1、矩阵层次结构(1) 模型矩阵模型矩阵是用来把物体放在世界控件坐标系的。比如模型初始的中心点都在(0, 0, 0),如果想要移动它们,可以使用一个模型矩阵,把那些顶点与这个矩阵相乘来变换它们。(2) 视图矩阵视图矩阵是出于同模型矩阵一样的原因被使用的,但是它平等地影响场景中的每一个物体。(3) 投影矩阵投影矩阵帮助创建三维幻象,当屏原创 2017-08-04 13:38:17 · 2463 阅读 · 1 评论 -
Android OpenGL动态壁纸
Android OpenGL动态壁纸1、动态壁纸的Service组件WallpaperService提供了基本的动态壁纸的实现。public class GLWallpaperService extends WallpaperService { @Override public Engine onCreateEngine() { return new原创 2017-08-14 15:37:55 · 4686 阅读 · 1 评论 -
Android OpenGL触摸反馈
Android OpenGL触摸反馈1、添加触摸支持通过调用setOnTouchListener方法监听视图的触控事件,然后把触控位置转化为[-1, 1]的归一化设备坐标,最后转发给渲染器。private OpenGLTouchShaderRender mTouchShaderRender;mSurfaceView.setOnTouchListener(new View.OnTou原创 2017-08-07 09:19:33 · 910 阅读 · 0 评论 -
Android OpenGL天空盒
Android OpenGL天空盒天空盒是表达三维全景的一个方法,不管你的头转向哪边,这个全景图在任何方向上都能被看见。1、立方体贴图立方体一共有6个面,需要6个图片资源,按照左、右、下、上、前和后的顺序传递立方体的面。立方体贴图的惯例是:在立方体内部使用左手坐标系统,而在立方体外部使用右手坐标系统。所以前面的纹理贴到z轴的负面,后面的纹理贴到z轴的正面。2、加载图片(原创 2017-08-08 16:28:58 · 1166 阅读 · 1 评论 -
Android OpenGL顶点着色器
Android OpenGL顶点着色器1、OpenGL坐标OpenGL会把屏幕映射到[-1, 1]的范围内。在OpenGL里,只能绘制点、直线以及三角形。三角形一般以逆时针顺序排列顶点。定义一个长方形,可以用两个三角形拼接而成。2、数据存储由于OpenGL运行在本地环境,而android运行在Davik虚拟机上,需要把android中的数据复制到本地内存块。FloatB原创 2017-08-01 15:20:28 · 1156 阅读 · 0 评论 -
Android OpenGL初体验
Android OpenGL初体验1、创建OpenGL应用创建一个新的Activity,定义GLSurfaceView对象,在setContentView中加入GLSurfaceView对象。public class OpenGLHelloWorldActivity extends Activity { private GLSurfaceView mSurfaceView; p原创 2017-08-01 09:13:19 · 388 阅读 · 0 评论 -
Android OpenGL粒子
Android OpenGL粒子粒子就是被画作一组点的简单物体。1、着色器文件(1) 顶点着色器,particle_vertex_shader.glsl文件其中u_Time代表程序运行时间,a_ParticleStartTime代表粒子运行时间。uniform mat4 u_Matrix;uniform float u_Time;attribute vec3 a_Posi原创 2017-08-07 14:24:20 · 2175 阅读 · 1 评论