OpenGLES
文章平均质量分 76
GameCocos2dx
http://weibo.com/u/2788209115
展开
-
OpenGLES---OpenGL运行原理
{固定管线 1:VertexData 顶点数据 2:model matrix 模型矩阵 3:view matrix 观察矩阵 4:Projection Matrix 投影矩阵 5:Divide byw 标准化设备坐标系 6:Viewport Transform 视口 Object Coordinates 模型坐标系,也叫Local坐标系。例如我们3DMax,Ma原创 2016-05-24 11:16:03 · 2646 阅读 · 0 评论 -
OpenGLES---小窗口
{ 1:创建一个没有数据的纹理 2:把屏幕上的某块拆下来,贴上去 3:三个注意}1:创建一个没有数据的纹理 //创建一个没有数据的纹理 virtual unsigned createTexture(int width,int height){ unsigned texture; //生成纹理索引 glGenTextures(1,&texture); glBi原创 2016-06-01 16:41:34 · 1079 阅读 · 0 评论 -
OpenGLES---混合
{ 1:介绍 2:源因子和目标因子 3:那么混合产生的新颜色可以表示为 4:混合因子}{1:介绍 是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。 混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效原创 2016-06-02 11:50:11 · 1105 阅读 · 0 评论 -
OpenGLES—拾取
本人学的OpenGL ES 都是从http://edu.csdn.net/lecturer/440 地方学的!喜欢的支持一下{拾取 1:给碰撞的物体整个盒子-->包围盒AxisAlignedBox(别名aabb) 2:用射线与盒子相交 ray.intersects(盒子) 3:加过程}1:给碰撞的物体整个盒子-->包围盒AxisAlignedBox(别名aabb)//轴向包围盒原创 2016-06-24 08:46:38 · 2178 阅读 · 0 评论 -
OpenGLES---加载文字
用的是这个https://www.freetype.org/{ 1:加载库文件 2:freetype简单用法}{1:加载库文件 \depends\lib\windows\x86 freetype.lib 库文件 depends\include freetype 文件夹 ft2build.h 头文件}{2:freetype简单用法 1:初始化字体库原创 2016-06-08 09:38:21 · 2220 阅读 · 0 评论 -
OpenGLES—法线贴图
{ 1:法线介绍 2:实例 3:推荐博客}{1:法线介绍 光的强度=光照+法线+法线贴图 模型凹凸纹理效果=基础贴图 X 光的强度 模型有两种贴图 基础贴图 例如一个盒子,盒子是木头纹理,或铁皮纹理 法线贴图 把基础贴图中凹凸的地方生成一个张原纹理大小的贴图 法线 幅法线 切线}{2:实例 { 1:Shader 2:调用原创 2016-06-24 16:08:27 · 1161 阅读 · 0 评论 -
OpenGLES---GLSL学习
{GLSL 0:GLSL介绍 1:常用的数据类型 2:修饰符 3:内置变量 4:表达式 1:操作符 2:数组访问 3:构造函数 4:成分选择 5:控制流 1:循环(for,while,dowhile) 2:条件(if/else) 3:退出片段着色器(discard) 6:函数}{0:GLSL介绍 三大主流高级编程语言 HLSL原创 2016-05-25 10:06:12 · 3202 阅读 · 0 评论 -
OpenGLES—API(gl2.h)
#ifndef __gl2_h_#define __gl2_h_/* $Revision: 10602 $ on $Date:: 2010-03-04 22:35:34 -0800 #$ */#include #ifdef __cplusplusextern "C" {#endif/* * This document is licensed under the SGI Fr原创 2016-06-10 16:04:04 · 3274 阅读 · 0 评论 -
OpenGLES---点精灵
PositionSpriteShader.hpp//varying 关键字 :vs和fs共享数据(建议vs和fs中速写一致)const char *vs={ "precision lowp float;" "uniform mat4 _MVP;" "uniform float _positionSize;" "attribute vec3 _position;\n" /原创 2016-06-06 14:42:11 · 1483 阅读 · 0 评论 -
OpenGLES---Windows窗口
class WinApp{public: WinApp(HINSTANCE hInstance); virtual~WinApp(void); virtual LRESULT onEvent(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); static LRESULT CALLBACK wndProc(HWND hWnd, UINT原创 2016-05-23 14:06:16 · 1048 阅读 · 0 评论 -
OpenGLES---缓冲区
{ 1:顶点缓冲区 GL_ARRAY_BUFFER 2:索引缓冲区 GL_ELEMENT_ARRAY_BUFFER 3:帧缓冲区 GL_FRAMEBUFFER/GL_RENDERBUFFER}{1:顶点缓冲区 GL_ARRAY_BUFFER OpenGL-ES 中 Vertex Arrays/Buffer Objects 在这个阶段发生 struct VX{ fl原创 2016-06-06 11:49:05 · 1864 阅读 · 0 评论 -
OpenGLES---纹理的API
{目录 //关联纹理层(GL_TEXTURE0 ~ GL_TEXTURE31) glActiveTexture (GLenum texture); //生成纹理 glGenTextures (GLsizei n, GLuint* textures); //删除纹理 glDeleteTextures (GLsizei n, const GLuint* textures); //绑定原创 2016-06-01 10:16:00 · 860 阅读 · 0 评论 -
OpenGLES---加载纹理
{ 1:纹理介绍 2:删除纹理 3:两个概念 4:添加代码}{1:纹理介绍 把图像数据应用到几何图源时成为纹理或纹理贴图,纹理图像被加载后,具有和像素图像相同的排列和成分,但此时纹理单元和屏幕上的图像之间很少存在一对一的对应关系 纹理(类型) 一维纹理 sampler1D 二维纹理 sampler2D(常用) 三维纹理 sampler3D ...原创 2016-05-30 15:29:43 · 2237 阅读 · 1 评论 -
OpenGLES---Shader初始化
--- 准备工作 typedef int uniform; typedef int attribute; typedef int location; class ShaderId{ public: ShaderId(){id=-1;}; public: int id; }; class ShaderVeual{//编译vs和fs后保存的id public: S原创 2016-05-26 12:29:35 · 882 阅读 · 0 评论 -
OpenGLES---编译Shader程序
1:创建Shader glCreateShader2:指定Shader源代码 glShaderSource3:编译Shader glCompileShader4:获取shader状态 glGetShaderiv5:如果出错 就 获取shader日志信息 glGetShaderInfoLog顶点Shader和片段Shader 上面的都走一遍(前5点)6:创建程序 glCreatePr原创 2016-05-26 12:32:18 · 1441 阅读 · 0 评论 -
OpenGLES---模型/观察/投影矩阵
#pragma once#include #include #include "CELLMath.hpp"using namespace CELL;float3 g_cubeVertices[] ={ //4个点组成一个面,一共6个面, //前面 float3(-1.0f,-1.0f, 1.0f ),//前面 左下 float3( 1.0f,-1.0f, 1.0f原创 2016-05-27 16:41:38 · 2038 阅读 · 0 评论 -
OpenGLES---平移/旋转/缩放
在画矩形的基础上增加的代码CELL::matrix4 py0;//平移到原点(这个原点是矩形的中心点移动到坐标的(0,0)点)CELL::matrix4 ro;//旋转CELL::matrix4 py1;//平移回当前位置py0.translate(-pyx,-pyy,0);ro.rotateZ(rotatez);py1.translate(pyx,pyy,0);CELL::m原创 2016-05-30 09:33:28 · 2369 阅读 · 0 评论 -
OpenGLES---搭建环境
{1:连接文件项目->配置属性{C/C++ ->常规 附加包含目录../../depends/include}}{2:库文件项目->配置属性{连接器 ->输入->附加依赖项libEGL.lib;libGLESv2.lib;FreeImage.lib;freetype.lib;%(AdditionalDependencies)原创 2016-05-23 14:38:50 · 1338 阅读 · 0 评论 -
OpenGLES---获取设置Shader值 API
{ 引用Shader中的属性(自己在Shader中写的一些需要传值的类型) glGetU/A... 设置Shader数据(Shader什么类型就用什么类型设置内容) glU/V... 附加}{引用Shader中的属性(自己在Shader中写的一些需要传值的类型) glGetU/A... //获取Shader程序中的属性(attribute) glGetAttribLocation原创 2016-05-31 11:01:01 · 1354 阅读 · 0 评论 -
OpenGLES---熟悉全局变量uniform,局部变量attribute,共享变量varying
在绘制矩形的矩形上增加--给矩形四个顶点设置颜色(http://blog.csdn.net/gamecocos2dx/article/details/51490398)shader代码bool shaderInit(){// varying 关键字: vs和fs共享数据(建议vs和fs中速写一致) const char *vs={ "precision lowp float;"原创 2016-05-26 14:54:09 · 1721 阅读 · 0 评论 -
OpenGLES---设置获取Shader程序属性
{目录 引用Shader中的属性(自己在Shader中写的一些需要传值的类型) glGet.... 设置Shader数据(Shader什么类型就用什么类型设置内容) glU/A...}{引用Shader中的属性(自己在Shader中写的一些需要传值的类型) glGet.... typedef int attribute; attribute _position; co原创 2016-05-26 13:02:35 · 1496 阅读 · 0 评论 -
OpenGLES---分离窗口和OpenGLES代码
AppProtocol 协议(初始化,绘制,销毁)AppWin 窗口实现AppDelegate 实现OpenGLES初始化,绘制,销毁-- AppProtocol AppWin 窗口实现 (AppWin.hpp)#pragma once#include #include class AppProtocol{public: virtual bo原创 2016-05-24 09:20:07 · 1115 阅读 · 0 评论 -
OpenGLES---初始化OpenGL-ES环境
{ 1:获取 Display 2:初始化 egl 3:选择 Config 4:创建 Surface 5:创建上下文对象 6:查看 Display Surface Context 是否创建成功 7:绘制 8:销毁 OpenGLES}#include #include #include "freeImage/FreeImage.h"class WinApp {p原创 2016-05-23 14:53:35 · 3376 阅读 · 0 评论 -
OpenGLES---画一个矩形
RectShader RectWin 窗口-- RectShader#include #include typedef int uniform;typedef int attribute;typedef int location; class ShaderId{public: ShaderId(){id=-1;};publi原创 2016-05-24 15:15:23 · 3754 阅读 · 1 评论