首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android OpenGL开发实践 - 基于OpenGL ES 2.0的Android相机实时图片涂鸦实现思路

    这篇文章将给大家讲解如何在Android系统上基于OpenGL ES 2.0来实现相机实时图片涂鸦效果,所涂内容跟随人脸出现、消失、移动、旋转及缩放,在这里,我们假设您: 已经搭建好一个相机框架,能够获得相机的预览图像...其中IMAGE_POSITION_VERTEX是纹理图片的位置坐标数组,它的作用是确定要把纹理图片画在屏幕的什么地方,它里面的坐标值是对应世界坐标系中的坐标值,IMAGE_TEXTURE_VERTEX是纹理图片本身的顶点坐标数组...,它的作用是确定要画这个纹理图片的什么部分,如下图所示: ?...然后在onDrawFrame中绘制图片: ? 至此,我们有了一个简单的框架,可以在相机预览界面绘制一个图片了。...为了解决这个问题,这里引入一个概念叫“锚点”,所谓锚点就是纹理图片上用于对准的点,如下图所示: ?

    7.2K130

    OpenGL】九、OpenGL 绘制基础 ( OpenGL 状态机概念 | OpenGL 矩阵概念 )

    文章目录 一、OpenGL 状态机概念 二、OpenGL 矩阵概念 上一篇博客 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为...OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★ 进行了 OpenGL 渲染环境初始化 ; 本篇博客简单介绍 OpenGL 中的一些理论概念 ; 一、OpenGL 状态机概念 ----...OpenGL 是一个状态机 , 其中包含了很多状态 , 简单列举下面的几项 : OpenGL 中的 矩阵 Matrix , 包含了 投影 ( Projection ) 矩阵 , 模型 ( Model...绘制 3D 图形时 , 就会读取当前的状态机参数 , 利用这些状态机进行绘制 , 而我们就在绘制之前设置上述一系列的状态机 , 确保 OpenGL 绘制按照我们设想的进行 ; 在上一篇博客 【OpenGL...】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★ 中Windows 窗口创建完成后

    4.1K00

    OpenGL(五)-- OpenGL中矩阵的变换OpenGL(五)-- OpenGL中矩阵的变换

    OpenGL(五)-- OpenGL中矩阵的变换 前言 照常提出几个问题,希望通过阅读可以找到答案。 对物体3维的2维投影进行位移,有几种方式? 模型视图矩阵代表了什么?...确立透视投影需要的参数: aspect(远/近裁切面的宽高比,它本身也是视口) , near(近裁切面位置) , far(远裁切面位置),投影角度,视口位置 以上图片都出自:_superhuihui-OpenGL...中涉及到的矩阵变换 在OpenGL中矩阵的计算方式 // 矩阵计算 m3dMatrixMultiply44(ModelViewMatrix(模型视图矩阵),ViewMatrix(观察者矩阵), ModelMatrix...如果想要了解具体矩阵是如何计算的:3D数学 矩阵知识 矩阵栈 在计算时会发现这种计算会导致物体唯一无法重置,为了解决这种问题OpenGL提出了矩阵栈的概念。栈这个概念应该是很熟悉了吧!...以上图片出自:凡几多 简单阐述一下过程: 1. 压栈(PUSH操作)一个单元矩阵,初始化之后本身已近就存在一个单元矩阵。 ? 通过Xcode来查看矩阵中的入内,需要变换为4行4列来看。 2.

    2.3K10

    OpenGL入门

    .视频、图形、图片处理 .2D/3D游戏引擎开发 .科学可视化 .医学软件开发 .CAD(计算机辅助技术) .虚拟实境(AR,VR) .AI(人工智能) OpenGL本身并不是一个API,它仅仅是一个由...状态机 OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。...shaderProgram, fragmentShader); glLinkProgram(shaderProgram); glUseProgram(shaderProgram); 纹理 纹理是一个2D图片...首先需要输入生成纹理的数量, 然后把它们储存在unsigned int数组中,就像其他对象一样,我们需要绑定它,让之后任何的纹理指令都可以配置当前绑定的纹理, 纹理绑定之后,我们可以使用前面载入的图片数据生成一个纹理了...这需要使用到一些数学知识,这里可以参考OpenGL官网译文 其他3D术语: 2D+透视 = 3D 纹理贴图:将纹理图片附着到你绘图的图像上 混合:颜色混合效果 渲染:表示计算机从模型创建最终图像的过程

    1.9K40

    OpenGL入门

    .视频、图形、图片处理 .2D/3D游戏引擎开发 .科学可视化 .医学软件开发 .CAD(计算机辅助技术) .虚拟实境(AR,VR) .AI(人工智能) OpenGL本身并不是一个API,它仅仅是一个由...状态机 OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。...shaderProgram, fragmentShader); glLinkProgram(shaderProgram); glUseProgram(shaderProgram); 纹理 纹理是一个2D图片...首先需要输入生成纹理的数量, 然后把它们储存在unsigned int数组中,就像其他对象一样,我们需要绑定它,让之后任何的纹理指令都可以配置当前绑定的纹理, 纹理绑定之后,我们可以使用前面载入的图片数据生成一个纹理了...这需要使用到一些数学知识,这里可以参考OpenGL官网译文 其他3D术语: 2D+透视 = 3D 纹理贴图:将纹理图片附着到你绘图的图像上 混合:颜色混合效果 渲染:表示计算机从模型创建最终图像的过程

    2.4K40

    OpenGL入门

    .视频、图形、图片处理 .2D/3D游戏引擎开发 .科学可视化 .医学软件开发 .CAD(计算机辅助技术) .虚拟实境(AR,VR) .AI(人工智能) OpenGL本身并不是一个API,它仅仅是一个由...状态机 OpenGL自身是一个巨大的状态机(State Machine):一系列的变量描述OpenGL此刻应当如何运行。OpenGL的状态通常被称为OpenGL上下文(Context)。...shaderProgram, fragmentShader); glLinkProgram(shaderProgram); glUseProgram(shaderProgram); 纹理 纹理是一个2D图片...首先需要输入生成纹理的数量, 然后把它们储存在unsigned int数组中,就像其他对象一样,我们需要绑定它,让之后任何的纹理指令都可以配置当前绑定的纹理, 纹理绑定之后,我们可以使用前面载入的图片数据生成一个纹理了...这需要使用到一些数学知识,这里可以参考OpenGL官网译文 其他3D术语: 2D+透视 = 3D 纹理贴图:将纹理图片附着到你绘图的图像上 混合:颜色混合效果 渲染:表示计算机从模型创建最终图像的过程

    1.7K60

    OpenGL ES实践教程(九)OpenGL与视频混合

    前言 前面的实践教程: OpenGL ES实践教程1-Demo01-AVPlayer OpenGL ES实践教程2-Demo02-摄像头采集数据和渲染 OpenGL ES实践教程3-Demo03-...Mirror OpenGL ES实践教程4-Demo04-VR全景视频播放 OpenGL ES实践教程5-Demo05-多重纹理实现图像混合 OpenGL ES实践教程6-Demo06-全景视频获取焦点...OpenGL ES实践教程7-Demo07-多滤镜叠加处理 OpenGL ES实践教程8-Demo08-blend混合与shader混合 其他教程请移步OpenGL ES文集。...核心思路 用AVFoundation处理视频合并的时间轴关系(混合规则),用OpenGL ES处理两个视频图像混合。...OpenGL ES的文集有将近半年没更新,一部分原因是新的工作比较忙碌,一部分原因是觉得需要沉淀一段时间。

    3K70

    OpenGL入门 (一)

    /85262650 7th Edition of OpenGL SuperBible https://github.com/openglsuperbible/sb7code openGL 不错的两个教程...当使用OpenGL的core-profile开发时,OpenGL迫使我们使用最新的技术。...每当我们尝试使用OpenGL的弃用功能时,OpenGL会提示出了一个错误并停止运行 OpenGL的客户端和服务器模式   在一台工作站上,绘图的整个过程不过是把数据从系统的内存中复制到图形卡中,然后绘制出图形...但openGL是按照客户机-服务器模式设计的。我们认为可以将整个OpenGL系统分为两部分,一部分是客户端,它负责发送OpenGL命令。一部分是服务端,它负责接收OpenGL命令并执行相应的操作。...对于个人计算机来说,可以将CPU、内存等硬件,以及用户编写的OpenGL程序看做客户端,而将OpenGL驱动程序、显示设备等看做服务端。

    78920

    OpenGL ES简介

    渲染的基础知识 使用OpenGL ES,一般包括如下几个步骤:   (1)EGL初始化   (2)OpenGL ES初始化   (3)OpenGL ES设置选项&绘制   (4)OpenGL ES资源释放...不同设备的窗口系统千变万化,但是OpenGL ES提供的API却是统一的,所以EGL需要协调当前设备的窗口系统和OpenGL ES。下面EGL初始化的代码我是用C++写的,然后通过jni调用。...ES渲染原理 首先来看一个OpenGL ES2.0的渲染原理图。...,比如:如果一个Opengl ES帧缓冲窗口被其他窗口遮住了,窗口系统将决定被遮住的像素不属于当前Opengl ES的context,因此也就不会被显示。.../1504.html OpenGL ES 2.0可编程管道 http://www.cnblogs.com/listenheart/p/3292672.html OpenGL ES 2.0编程基础 http

    2K70

    OpenGL ES简介

    渲染的基础知识 使用OpenGL ES,一般包括如下几个步骤:   (1)EGL初始化   (2)OpenGL ES初始化   (3)OpenGL ES设置选项&绘制   (4)OpenGL...不同设备的窗口系统千变万化,但是OpenGL ES提供的API却是统一的,所以EGL需要协调当前设备的窗口系统和OpenGL ES。下面EGL初始化的代码我是用C++写的,然后通过jni调用。...ES渲染原理 首先来看一个OpenGL ES2.0的渲染原理图。...,比如:如果一个Opengl ES帧缓冲窗口被其他窗口遮住了,窗口系统将决定被遮住的像素不属于当前Opengl ES的context,因此也就不会被显示。...参考: OpenGL渲染流程 http://www.cnblogs.com/BigFeng/p/5068715.html OpenGL ES 2.0渲染管线 http://codingnow.cn

    1.8K50

    OpenGL投影矩阵

    这是关于OpenGL投影矩阵的一篇译文,原文在这里....概览(Overview) 电脑显示屏是一个2D平面,为了能够在这个2D平面上显示OpenGL渲染的3D场景,我们必须将3D场景当作2D图像投影到这个2D平面(计算机屏幕)上.GL_PROJECTION...这里我们需要注意的一点就是 : GL_PROJECTION 矩阵同时整合了裁剪(视锥体剔除)和标准化设备坐标(NDC)变换的功能(译注:这里不是指 GL_PROJECTION 矩阵本身整合了这些功能,而是指 OpenGL...接着, 如果发生了裁剪, OpenGL 会重新构建发生裁剪的多边形边缘....这里需要注意的是,观察空间是在右手坐标系下(OpenGL 使用右手坐标系)定义的,但是 NDC 却是在左手坐标系下定义的.换句话说就是,观察空间中的摄像机是指向 -Z 轴的,但是在 NDC 中,摄像机指向的却是

    1.8K00
    领券