最近TS3.0为了支持android.真是叫人难受呀. 由于 es 和 标准opengl 的差异.

就在今年一个 "废话" 降生了.opengl 4.1.

这套函数.和opengl es 2.0 意义上说 API是一样的.

所以就因为这个.决定使用 ABO VBO 的形式来重新写 openglRenderModel.

一开始写真是一波三折呀..不想抱怨遇到什么 弱智问题.只想说说 什么情况 如何 把原来没有shader 或者有shader+VBO的代码.如何平稳的移植到 ABO+VBO上面去.

其实并不是十分的复杂.

1.首先 需要创建 Program.这个Program需要和vs和fs绑起来.

2.之后需要创建一个 ABO.之后bind到程序中.

3.之后就是注册 Program的VBO变量了. 首先需要定义一些 Localion变量.这些变量 会与 一个 "名字相关". 这些 "相关的名字".就是 shader中使用的.

4.当然我们使用ABO之后 shader中就不会出现 gl_vertex这种"全局 shader变量". 一切都要自己动手丰衣足食..最起码需要把 vertex注册到 ABO..要不然我们拿什么渲染呢?

5.还需要一些 矩阵. 投影矩阵当然是不能少的啦.

6.还需要一个 纹理的 Location... 这个东东 设置个0 就好啦..以后就会使用 纹理bind的那个纹理 参与 shader 流程.

实际上使用VBO就是这样的一个东东.如果纯用opengl 4.1的 函数来弄..一切都变的非常容易控制. 当然一切都要自己写.矩阵没学好.解析几何不行.的同学就比较麻烦了..就拿投影矩阵来说..我们需要很多.例如 位置的变换. 投影矩阵的变换. 当然 矩阵这个 神奇的东东. 是可以用乘法来解决 复合操作...就看您的心情是把 这个计算放到 shader里还是放到 程序里了.

之前的VBO写法.

genbuffer之后 就可以enable 然后设置 pointer就可以画了.

ABO+VBO也差不多. enable和pointer都换了个样子..

首先. 我们是要先 把 顶点数据 注册一个名字的.

而传统的 则不需要.因为有已经定义好的 gl_vertex.

这就是区别.

关于移植:

知道区别了.移植就很好办了.. 重点就是把 顶点数据 通过 program注册到 ABO. 其他的例如UV也是一个道理.

之后需要自己把什么 投影矩阵算出来一个 float matiex[16] 扔到一个 uniform里面.之后用 vetex乘一下就好啦.

纹理那边.需要一个uniform来表示一个 bind的纹理.之后就可以在fs上面写了.

其他的就没什么好说的了.

没明白的可以找我私聊.哈哈.

关于 opengl3.3 - 4.1 ABO 的感触. 传统 VBO往 ABO+VBO的 代码移植相关推荐

  1. 小白的OpenGL3.3自学之路(3)OpenGL3.3之如何绘制一个三角形

    老规矩,先上代码 //顶点缓冲绘制三角形 #include <glad/glad.h> #include <GLFW/glfw3.h> #include <iostrea ...

  2. All about OpenGL ES 2.x – (part 2/3)(转载)

    来源: http://db-in.com/blog/2011/02/all-about-opengl-es-2-x-part-23/ Very welcome back, my friends! No ...

  3. 使用OpenGL一年后

    之前上学时使用了一段时间OpenGL,后来就没用了,现在在这公司有开始使用OpenGL了,使用了一年多,也真是感触良多啊,今天随笔记下来,说两句,思路也可能有点乱,别介意. 先推荐基本书,OpenGL ...

  4. java 气泡聊天消息_CSS3 巧妙实现聊天气泡

    前一阵子敢玩的 Mobile 页改版完成了,就之前的页面风格更加扁平化,从暗色系为主背景转到亮色背景,去掉更多的阴影,给用户简约的体验风格,哈哈我不是设计师不过多评价啦.感兴趣的朋友可以直接去 ida ...

  5. Java校招面试经验汇总,最终入职阿里

    一面 自我介绍 项目中的监控:那个监控指标常见的有哪些? 微服务涉及到的技术以及需要注意的问题有哪些? 注册中心你了解了哪些? consul 的可靠性你了解吗? consul 的机制你有没有具体深入过 ...

  6. 【Modern OpenGL】第一个三角形

    >说明:跟着learnopengl的内容学习,不是纯翻译,只是自己整理记录.>强烈推荐原文,无论是内容还是排版. [原文链接](http://learnopengl.com/#!Getti ...

  7. “零代码”时代已来!程序员真的要去送外卖了?

    作者:流水不争先  编辑:Emma 来源| 技术领导力(ID:jishulingdaoli) "零代码"和"低代码"的概念是同时提出的,二者经历的背景都一致,所 ...

  8. wxPython + PyOpenGL 打造三维数据分析的利器!| CSDN 博文精选

    作者 | 天元浪子 责编 | 伍杏玲 出品 | CSDN博客 在三维显示领域,OpenGL 是神一样的存在,其地位就像编程语言里面的 C 一样.基于 OpenGL 衍生出来的分支.派系,林林总总. P ...

  9. 会计中阿拉伯数字变数字繁体大写

    //注释:本文非原著是通过网上的代码修改大约10%而成的,忘了出处了,所以暂时不标明出处 //转化的工具类 using System; using System.Collections.Generic ...

  10. SD卡学习(SDIO和SPI模式)

    SD卡学习(SDIO和SPI模式) ** SD卡的操作模式:SD卡模式(SDIO).SPI模式(默认为SD模式). 其中SD卡模式的信号线有:CLK.CMD.DAT0-DAT3,6根线. SPI模式的 ...

最新文章

  1. mysql用户ip登录失败怎么办_MySQL使用IP地址登录 ERROR 1045 (28000) Access denied for use...
  2. 今日 Paper | 协作蒸馏;人脸反欺骗;人脸表示;3D-CariGAN等
  3. 人工智能热门技术研究课题
  4. 1.15 实例内部类
  5. 大道至简第一章阅读笔记
  6. html怎样设置图片的位置不变,CSS 如何定位图片保持位置不变?
  7. 出现ESXi系统无法连接FreeNAS的情况?90%以上的人都做错了!
  8. 在 Ubuntu 和 Linux Mint 上释放空间的9种简单方法
  9. python 全部缩进一行_Python成为专业人士笔记–程序行空白及tab缩进的作用
  10. python编译安装没有c扩展_pybind11—python C/C++扩展编译
  11. 一个屌丝程序猿的人生(三十九)
  12. usb摄像头做教学直播实现pc和手机都可以在线观看教程
  13. Easyx-----c语言实现烟花表白程序
  14. 用 Python 分析某医院药品销售案例!
  15. 33. secure world对smc请求的处理------invoke command操作在OP-TEE中的实现
  16. 基于SpringBoot的乡村医疗管理系统
  17. 【毕业设计】深度学习卫星遥感图像检测与识别 -opencv python 目标检测
  18. [SCOI2009]windy数
  19. 断层成像CT和ET重建算法
  20. 记一次SPA项目打包优化的过程

热门文章

  1. B站视频下载器,可以下载到电脑后保存,畅享视频下载
  2. 2019年IT行业的十大热门岗位
  3. 机器学习入门概念--心血总结--史上最强--入门必读--回味无穷
  4. stm32L151低功耗学习——Alarm闹钟周期唤醒(10s/10min/10h)
  5. Python为什么这些年在编程语言排行榜上一直上升?告诉你11个原因
  6. 《费曼学习法》读书笔记
  7. 益智休闲手游源码《贪吃蛇大战方块》源码H5+安卓+IOS三端源码
  8. 积木报表VS睿思BI报表
  9. java正态分布随机数产生方法
  10. html导航栏分割线如何,网页导航栏用图片做的分割线,第一个分割线怎么取消...