alonealice

个人博客

Android OpenGL的简单使用(4):深度测试

深度和深度测试 深度其实就是该像素点在3d世界中距离摄象机的距离 , 深度值越大,则离摄像机越远。摄像机可能放在坐标系的任何位置,不能简单地说像素的z坐标越大或越小就是越靠近摄像机。 在不使用深度测试的时候,如果我们先绘制一个距离较近的物体,再绘制距离较远的物体,则距离远的物体因为后绘制,会把距离近的物体覆盖掉,这样的效果并不是我们所希望的。比如下图中的A、B,先绘制A,再绘制B,A就有一部......

Android OpenGL的简单使用(3):常用API

缓冲区 OpenGL ES 中存在着三种缓冲区 123颜色缓冲区(COLOR_BUFFER) ————也叫帧缓冲区(FRAME_BUFFER),包含了颜色索引或者RGBA颜色数据- 深度缓冲区(DEPTH_BUFFER) ————存储每个像素的深度值,当启动深度测试时,片段像素深度值和深度缓冲区深度值进行比较,决定片段哪些像素点数据可以替换到颜色缓冲区中- 模板缓冲区 (STENCIL_BU......

Android OpenGL的简单使用(2):点的绘制

使用OpenGL在屏幕上绘制一个点: 首先是需要创建一个GLSurfaceView.Renderer: 1class PointRenderer implements GLSurfaceView.Renderer 然后是需要有一个点的左边: 12//顶点数组private float[] mArray = {0f, 0f, 0f}; 同时根据这点的坐标创建一个浮点的缓冲数......

Android OpenGL的简单使用(1):GlSurface的搭建

OpenGL ES 的主要使用流程,可以概括如下: 在 Android 中,使用 OpenGL 最简单的办法便是使用官方提供的 GLSurfaceView 组件。其功能主要有: 管理一个 surface,这个 surface 就是一块特殊的内存,能直接排版到 android 的视图 view 上。 管理一个 EGL display,它能让 opengl 把内容渲染到上述的 surface......

OpenGL ES 和 EGL 介绍

OpenGL ES OpenGL ES 是 OpenGL 三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计,OpenGL 的结构可以从逻辑上划分为下面 3 个部分:图元、缓冲区、光栅化。 图元 在 OpenGL 的世界里,我们只能画点、线、三角形这三种基本图形,而其它复杂的图形都可以通过三角形来组成。所以这里的图元指的就是这三种基础图形: 点:点存在于三维空间,坐标用(x......

WebRtc 入门

WebRTC,即web实时通信技术,是一个由Google发起的实时通讯解决方案,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。它支持跨平台,包括linux、windows、mac、android等。 WebRTC连接过程 1.连接双方(Peer)通过第三方服务器来交换(Signalling)各自的SessionDescriptio......

Android Media 实战三:图片和视频的转换

使用mediacodec可以将图片和视频进行相互的转换,将图片合成视频,获取将视频中截取出图片: 图片合成视频 1234567891011private void createImages() { Bitmap bitmap1 = BitmapFactory.decodeResource(getResources(), R.drawable.bg4); Bitmap b......

Android Media 实战二:音视频的录制(二)

预览 在页面中添加SurfaceView,同时添加SurfaceHolder.Callback: 123mSurfaceView = (SurfaceView) findViewById(R.id.surface_view);mSurfaceHolder = mSurfaceView.getHolder();mSurfaceHolder.addCallback(mSurfaceCallbac......

Android Media 实战一:音视频的录制(一)

相机预览 创建一个CameraGLSurfaceView并继承自GLSurfaceView,同时在构造方法中初始化openGl环境。 123456789101112131415161718192021public CameraGLSurfaceView(Context context) { super(context); init(context);}publ......

音频管理AudioManager使用

AudioManager主要是用来控制声音的音量和响铃模式。 获取音量 获取AudioManager: 12//获取系统的Audio管理者AudioManager mAudioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 可以调节音量的声音分类: STREAM_VOICE_CALL:通话声音 STREAM......