PositionSpriteShader.hpp

//varying 关键字 :vs和fs共享数据(建议vs和fs中速写一致)
const char *vs={"precision lowp float;""uniform   mat4 _MVP;""uniform   float _positionSize;""attribute vec3 _position;\n"  //点大小"attribute vec4 _color;\n"     //外边出入的颜色"varying   vec4 _outColor;\n"  //共享颜色"void main(){\n"" vec4   pos  = vec4(_position.x,_position.y,_position.z,1);\n""   _outColor   = _color;\n""    gl_Position = _MVP * pos;\n""    gl_PointSize = _positionSize;\n""}"
};
const char *fs={"precision lowp float;""varying vec4      _outColor;""uniform   sampler2D  _tId;"     //纹理id"void main(){""   vec4  tColor = texture2D(_tId,gl_PointCoord);""  gl_FragColor= _outColor * tColor;""}"
};shaderValue=createP(vs,fs);
_MVP      = glGetUniformLocation(shaderValue.pID,"_MVP");
_color    = glGetAttribLocation(shaderValue.pID,"_color");
_position = glGetAttribLocation(shaderValue.pID,"_position");
_positionSize=glGetUniformLocation(shaderValue.pID,"_positionSize");_tId    = glGetUniformLocation(shaderValue.pID,"_tId");

vec2  gl_PointCoord  点精灵的二维空间坐标范围在(0.0, 0.0)到(1.0, 1.0)之间,仅用于点图元和点精灵开启的情况下

PositionSpriteWin.hpp

//清楚缓冲
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//设置视口的大小
glViewport(0,0,_width,_height);struct Vertex{CELL::float3 pos;CELL::float2 uvpos;CELL::float4 rgba;
};float x=150,y=100,z=-1;
float   w   =   100;
float   h   =   100;
float rept=100;Vertex rood[]={CELL::float3(x,y,z),    CELL::float2(0,0),          CELL::float4(1,1,1,1),CELL::float3(x,y+h,z),   CELL::float2(0,rept),       CELL::float4(1,1,1,1),CELL::float3(x+w,y,z),   CELL::float2(rept,0),       CELL::float4(1,1,1,1),CELL::float3(x+w,y+h,z),CELL::float2(rept,rept),    CELL::float4(1,1,1,1),
};CELL::matrix4 project=CELL::ortho<float>(0,(float)_width,(float)_height,0,-100,100);shader.begin();/** 给Uniform变量赋值* @param location 变量* @param count 值数量(当前数据里面有几个值 1,2,3,4)* @param transpose 是否转置(true,false)* @param value 赋值数据*/glUniformMatrix4fv(shader._MVP,1,false,project.data());glBindTexture(GL_TEXTURE_2D,textureId);glUniform1i(shader._tId,0);glUniform1f(shader._positionSize,54);/** 设置顶点属性* @param indx 属性id* @param size 值数量(2,3,4) * @param type 数据类型 (GL_UNSIGNED_BYTE,GL_FLOAT...)* @param normalized  规格化(false,true)* @param stride 偏移量(数据的偏移量)* @param ptr  数据*/glVertexAttribPointer(shader._color,4,GL_FLOAT,false,sizeof(Vertex),&rood[0].rgba);glVertexAttribPointer(shader._position,3,GL_FLOAT,false,sizeof(Vertex),&rood[0].pos);glDrawArrays(GL_POINTS,0,sizeof(rood)/sizeof(rood[0]));shader.end();

源码地址

http://pan.baidu.com/s/1geVargZ    OpenGL_ES(6.6).zip

画了4个点(点精灵不要传uv坐标)

OpenGLES---点精灵相关推荐

  1. opengles 2.0 点精灵 多边形偏移等备忘

    opengles 2.0 点精灵 多边形偏移等备忘 opengl es 2.0只支持三种绘画单元:     三角形,直线和点精灵.         GL_TRIANGLES     GL_TRIANG ...

  2. opengles绘制点精灵

    什么是点精灵 opengl图形由顶点构成,所谓点精灵就是对点进行纹理映射,简单说就是把一副纹理贴在一个点上 原来4个顶点构成一个矩形,现在一个顶点就完成了,典型的如粒子效果,云雾,水流火花都可以用点精 ...

  3. 视频教程-OpenGLES萌谷手册(iOS2018版)-其他

    OpenGLES萌谷手册(iOS2018版) 在大学期间系统的学习了opengl.计算机图形学.计算机视觉的算法,与2013年加入4399,任职暗黑战神项目组主程,2015年3月底离职创业,创办了战火 ...

  4. genesis cam 最新版_触屏精灵下载_触屏精灵最新版下载[其他行业]

          触屏精灵最新版是一款实用的触摸屏自助查询软件,触屏精灵最新版拥有丰富的UI控件,触屏精灵最新版广泛应用于政府机构.检察院.景区.银行.大型企业展厅展馆.软件可以支持视频.Word.Pdf. ...

  5. 用OpenGLES实现yuv420p视频播放界面

    背景 例子TFLive这个项目里,是我按着ijkPlayer写的直播播放器,要运行需要编译ffmpeg的库,网盘里存了一份, 提取码:vjce.OpenGL ES播放相关的在在OpenGLES的文件夹 ...

  6. 代码简介:向圣诞老人和他的精灵学习Google Analytics(分析)

    Here are three stories we published this week that are worth your time: 这是我们本周发布的三个值得您关注的故事: Learn G ...

  7. cocos2dx 3.x(动态改变精灵的背景图片)

    //更换精灵CCSprite的图片有两种方式. //直接通过图片更换 //使用setTexture(CCTexture2D*)函数,可以重新设置精灵类的纹理图片. // auto bg = Sprit ...

  8. SpriteBuilder中如何平均拉伸精灵帧动画的距离

    首先要在Timeline中选中所有的精灵帧,可以通过如下2种的任意一种办法达成: 1按下Shift键的同时鼠标单击它们 2鼠标在Timeline空白区拖拽直到拉出的矩形包围住所有精灵帧方块后放开鼠标. ...

  9. 阿里AI labs发布两大天猫精灵新品,将与平头哥共同定制智能语音芯片

    作者 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 2019 年,去年刮起的一阵智能音箱热浪似乎稍微冷却下来,新产品不再像雨后春笋一样层出不穷,挺过市场洗礼的产品更是凤毛麟角,这些产 ...

  10. android x86 按键精灵,界面版按键精灵的使用【包含内置浏览器、打开程序的方法】...

    包含界面的脚本.....................................................自己拖拽包,根据这里的控件名命名,然后自己拖拽 '打开九阴真经 Event Fo ...

最新文章

  1. ajax校验用户名可用吗,基于jQuery实现Ajax验证用户名是否可用实例
  2. 风变编程python第一关脸黑怪我喽_风变编程:Python适合编程初学者学习吗?
  3. Sql Server 2005的1433端口打开和进行远程连接
  4. 【DIY】废物利用,最简单粗暴便宜的DIY定时器方法,没有之一
  5. git 怎么读_python3中开源代码怎么读?
  6. eclipse的下载JDK的安装与配置
  7. CF626F. Bear and Fair Set
  8. 开始我的blog之旅
  9. JavaScript——模块化的历史进程梳理
  10. Python Project Euler 013:100个50位数和
  11. 几种常用的视频接口(端子)
  12. 漏桶算法和令牌桶算法
  13. Keil MDK 5安装了GD32 pack包工程里却找不到
  14. java怎么实现事务_java实现简单的事务
  15. 【24计算机考研】备考前必须了解的避坑小知识,建议收藏
  16. python numpy dtype object_python – 创建numpy数组时dtype = object意味着什么?
  17. 如何用Java写一个企业晨报?我来教你!
  18. 夏日当空心深如深渊——雨桐花
  19. Apache Dubbo(概念篇)
  20. scite for php,SCITE配置系列

热门文章

  1. 山东建筑大学java期末_2020尔雅通识课移动通信(山东建筑大学)考试期末答案
  2. SourceTree安装使用
  3. KCNA考试 第二章:Cloud Native Architecture
  4. Fiddler win10 突然无法 抓包 解决方法
  5. 档案的逻辑 | 档案价值鉴定
  6. FPGA中除法是怎么实现的?
  7. 2021-4-8 考研复旦大学 计算机 复试通过 经验回顾
  8. python数据分析之云雨图(箱型图+分布图+散点图)
  9. 工业互联网安全建设发展趋势
  10. 计算机性能安全性,第一章 计算机安全与性能 — 计算机性能评价