opengles_C++_基础_学习笔记
文章平均质量分 80
hb707934728
这个作者很懒,什么都没留下…
展开
-
openglesForC++矩形旋转
shader实现类#pragma once#include class ShaderId{public: ShaderId() { _shaderId = -1; } int _shaderId;};/*** 程序*/class ProgramId{public: int _programId; ShaderId原创 2017-05-02 13:42:38 · 727 阅读 · 0 评论 -
opengles之VBO和FBO的结合使用
FBO的理论详见:http://blog.csdn.net/xiajun07061225/article/details/7283929/FBO的创建:class FrameBufferId{public: FrameBufferId() { _width = 0; _height = 0; _FBOID = 0; _DEPTHID = 0;原创 2017-05-17 14:58:36 · 1411 阅读 · 0 评论 -
glsl语言基础
glsl的语言风格和C语言很像,但是变量的命名不能以gl_开始,因为gl_前缀用于glsl内部变量基本类型类型描述void跟C语言的void类似,表示空类型。作为函数的返回类型,表示这个函数不返回值。bool布尔类型,可以是true 和false,以及可以产生布尔型的表达式。int整型 代表至少包含16位的有符号的整数。可原创 2017-05-17 16:41:46 · 1610 阅读 · 0 评论 -
opengles之mipmap纹理
为什么要用mipmap? 在三维世界中,显示一张图片的大小与摄像机的位置有关,近的地方,图片实际像素大一些,远 的地方,图片实际像素就小一些,比如一张64*64的图片在近处, 显示出来可能是50*50,远处可能显示出来就是20*20。 mipmap纹理技术是目前解决纹理分辨率与视点距离关系的最有效途径,它会先将图片压缩成很多逐渐缩小的图片,例如一张64*64的图片,会产生原创 2017-05-09 13:39:37 · 1459 阅读 · 0 评论 -
opengles绘制点精灵
什么是点精灵opengl图形由顶点构成,所谓点精灵就是对点进行纹理映射,简单说就是把一副纹理贴在一个点上原来4个顶点构成一个矩形,现在一个顶点就完成了,典型的如粒子效果,云雾,水流火花都可以用点精灵来实现,这样减少了3个顶点的计算,效率很高。下面看例子 我们把 这个图片贴到4个顶点上面shader实现 virtual void initialize()原创 2017-05-18 10:16:08 · 1077 阅读 · 0 评论 -
opengles之修改已有纹理glTexSubImage2D函数用法
shader实现类:#pragma once#include class ShaderId{public: ShaderId() { _shaderId = -1; } int _shaderId;};/*** 程序*/class ProgramId{public: int _programId; ShaderId原创 2017-05-09 18:27:22 · 8508 阅读 · 0 评论 -
opengles实现简单的粒子系统
效果图shader实现 const char* vs = { "uniform float u_time;" "uniform vec3 u_centerPosition;" "attribute float _lifetime;" "attribute vec3 _startPosition;" "attribute vec3原创 2017-05-18 17:24:13 · 1348 阅读 · 0 评论 -
opengl中的矩阵变换
转自:http://blog.csdn.net/lyx2007825/article/details/8792475Overview几何数据——顶点位置,和标准向量(normal vectors),在OpenGL 管道raterization 处理过程之前可通过顶点操作(Vertex Operation)和基本组合操作改变这些数据。Object Co转载 2017-08-01 10:48:24 · 383 阅读 · 0 评论 -
opengl_shader在线教程
https://thebookofshaders.com/07/?lan=ch opengl入门教程https://learnopengl-cn.github.io/原创 2018-12-20 14:52:33 · 1571 阅读 · 1 评论 -
EGL工作流程
流程(1)Display 是图形显示设备(显示屏)的抽象表示。大部分EGL函数都要带一个 Display 作为参数 (2)Context 是 OpenGL 状态机。Context 与 Surface 可以是一对一、多对一、一对多的关系 (3)Surface 是绘图缓冲,可以是 window、pbuffer、pixmap 三种类型之一 EGL 工作流程为: (1)初始化 (...原创 2018-12-27 16:13:58 · 1071 阅读 · 0 评论 -
openglesForC++绘制带颜色的四边形
shader操作类:#pragma once#include class ShaderId{public: ShaderId() { _shaderId = -1; } int _shaderId;};/*** 程序*/class ProgramId{public: int _programId; ShaderId原创 2017-04-26 14:28:29 · 759 阅读 · 0 评论 -
第一个基于C++的opengles画正方形
#pragma once#include class ShaderId{public:ShaderId(){ _shaderId = -1;} int _shaderId;};//程序class ProgramId{public: int _programId; ShaderId _vertext; ShaderId _fragment;public原创 2017-04-26 11:04:18 · 1257 阅读 · 0 评论 -
opengles实现画中画功能
实现画中画的关键步骤 //画中画功能实现 glBindTexture(GL_TEXTURE_2D, _texDynamic); //从帧缓存区GL_READ_BUFFER读取一块像素矩形,并替换一个现有的纹理数组的一部分或全部. //本例中替换 _texDynamic表示的纹理,从而实现了画中画的功能 glCopyTexSubImage2D(GL_TEXTU原创 2017-05-11 12:05:41 · 1854 阅读 · 1 评论 -
openglesForC++实现两幅图像混合的效果
本例将在一个矩形上加载两幅不同的图片作为纹理,然后采用不同的混合方式呈现不同的效果,并且可以通过改变纹理X,Y坐标,实现移动的效果两幅原始图片:shader实现: /// 初始化函数 virtual bool initialize() { const char* vs = { "precision lowp float; "//指定float精度原创 2017-05-03 15:44:19 · 1082 阅读 · 0 评论 -
openglesForC++绘制草地
shader实现类:#pragma once#include class ShaderId{public: ShaderId() { _shaderId = -1; } int _shaderId;};/*** 程序*/class ProgramId{public: int _programId; ShaderId原创 2017-05-04 17:58:34 · 1529 阅读 · 0 评论 -
opengles中的alpha混合
1-不启用混合操作和深度测试2-启用混合操作不启用深度测试3-启用混合操作和深度测试4-启用混合操作深度测试并shader中丢弃部分片元5-不启用混合操作深度测试只在shader中丢弃片元在shader中丢弃不满足条件的片元 const char* ps = { "precision lowp float;原创 2017-05-15 17:42:39 · 1437 阅读 · 0 评论 -
opengles中使用vbo(顶点缓冲区)
为什么要使用VBO:如果不使用vbo,要绘制物体的顶点信息需要从内存传递到显存,当绘制的模型比较复杂时,频繁的在内存和显存中做数据传递会降低效率。因此使用VBO,可以先把一部分顶点数据缓存起来,绘制的时候直接从缓存中获取,大大降低内存和显存之间数据拷贝的开销,总而言之是为了提高绘制效率。如何使用vbo: //申明顶点数据结构 struct Vertex {原创 2017-05-16 11:17:41 · 609 阅读 · 0 评论 -
什么是OpenGL中的深度、深度缓存、深度测试?
1)直观理解深度其实就是该象素点在3d世界中距离摄象机的距离,深度缓存中存储着每个象素点(绘制在屏幕上的)的深度值!深度测试决定了是否绘制较远的象素点(或较近的象素点),通常选用较近的,而较远优先能实现透视的效果!!!2)Z值(深度值)、Z buffer(深度缓存) 下面先讲讲Z坐标。Z坐标和X、Y坐标一样。在变换、裁减和透视除法后,Z的范围为-1.0~1.0。转载 2017-05-16 13:27:13 · 368 阅读 · 0 评论 -
opengles中VBO和IBO结合使用
VBO:顶点缓冲区 IBO:索引缓冲区VBO的作用:在不使用VBO的情况下,每次调用glDrawArrays或glDrawElements的时候,都要把数据从内存拷贝到显卡,频繁的绘制内存和显卡之间就要频繁的拷贝数据这会增加很多开销,而VBO就是把要绘制的顶点信息直接缓存在显卡内存中,这样就避免了内存和显卡的频繁交互,在绘制复杂模型时可以降低很多开销,提高性能。IBO和VBO原理类似,原创 2017-05-16 15:28:14 · 1246 阅读 · 0 评论 -
EGL接口介绍
转自:http://www.cnitblog.com/zouzheng/archive/2011/05/30/74326.htmlEGL 是 OpenGL ES 和底层 Native 平台视窗系统之间的接口。本章主要讲述 OpenGL ES 的 EGL API ,以及如何用它创建 Context 和绘制Surface 等,并对用于 OpenGL 的其他视窗 API 做了比较分析,比转载 2017-04-25 18:28:45 · 497 阅读 · 0 评论 -
基于OpenGL ES 的深度学习框架编写
本文出自:http://blog.csdn.net/jxt1234and2010/article/details/71056736基于OpenGL ES的深度学习框架编写背景与工程定位背景项目组基于深度学习实现了视频风格化和人像抠图的功能,但这是在PC/服务端上跑的,现在需要移植到移动端,因此需要一个移动端的深度学习的计算框架。同类型的库ca转载 2017-05-08 14:04:25 · 3821 阅读 · 2 评论 -
opengles开发环境搭建
1,vs中建立解决方案,解决方案下添加项目 将 d3dcompiler_43.dll,d3dcompiler_46.dll,FreeImage.dll,libEGL.dll,libGLESv2.dll添加到解决方案的debug或者release目录注意是解决方案的debug或release目录2,在添加的项目中选择属性-配置属性-C/C++-常规选项 附加包含目录中指定 要包含的头文原创 2017-05-27 10:41:08 · 1216 阅读 · 0 评论 -
opengl shader 在线学习文档
https://thebookofshaders.com/?lan=chhttps://thebookofshaders.com/?lan=ch原创 2019-06-10 18:50:01 · 615 阅读 · 0 评论