在使用Opengl的过程中,会经常禁用或开启一些功能,这里经过一些查阅,整理一些对常用的一些功能的理解。后续会不断的补充。

1. glShadeModel

  glShadeModel是设置opengl中绘制指定两点间其他点颜色的过渡模式。一般分为两种模式:GL_SMOOTH(默认)、GL_FLAT。

GL_SMOOTH: 以插值的方式,过渡两个点之间的颜色,两点颜色相同,则中间的点颜色也保持一致,效果如下:

GL_FLAT: 以指定的某一点的单一色绘制其他所有点:,如果两点颜色相同,效果就和GL_SMOOTH相同。

2. glPixelStorei

  glPixelStorei的第一个参数可以是ALIGNMENT、ROW_LENGTH、IMAGE_HEIGHT和UNPACK、PACK两种版本组合的参数。

glPixelStorei(GL_UNPACK_ALIGNMENT, 4): 表示控制所读取数据的对齐方式为4个字节。包括cpu向gpu传输时以4个字节表示一个点。那么如果原数据的RGB格式的话,如果以4个自己读取的话,如果一行数据的总量不是4的整数倍就会出现读取越界的情况。如果侥幸是4的整数倍,出来的图像也不是想要的结果。
按照4自己对齐来读取一定程度的上可以提高读取效率,如果是1个字节读取的话,效率上会有所下降。

3. glEnable、glDisable

  开启或关闭某项功能,这里主要总结这些功能枚举:

GL_DEPTH_TEST::深度缓冲测试,默认关闭。开启后,Opengl在绘制时会检查当前像素之前是否有别的像素,如果有,就不会绘制当前像素。绘制3D立方体图像场景时会开启。
GL_TEXTURE_2D:纹理映射,开启后,支持纹理映射。
GL_CULL_FACE:剔除操作效果。剔除操作函数glCullFace()参数包括GL_FRONT和GL_BACK。表示禁用多边形正面或者背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算。
GL_COLOR_MATERIAL:颜色材质。打开后,可以用颜色来贴物体。同时glColor3f(r,g,b)会生效,具体后续使用到会再做详细总结。
GL_LIGHTING:灯源。

Opengl的一些常用功能理解相关推荐

  1. OpenGL多重纹理使用与理解

    函数 对于opengl 扩展函数必须在初始化窗口结束后才能使用 wglGetProcAddress 获得 Opengl 没有重载函数,对于功能相同但参数类型和数量不同的函数加上后缀,最长可达4个,第一 ...

  2. nginx常用功能介绍

    一.什么是nginx? nginx是一款轻量级的Web 服务器 .反向代理服务器及电子邮件(IMAP/POP3)代理服务器.主要有反向代理,负载均衡的功能. 官方网站为:http://nginx.or ...

  3. linux系统输入指令,详解linux系统输入输出管理和vim的常用功能

    ####系统中输入输出的管理#### 1.理解系统的输入输出重定向 输入重定向是指把文件导入到命令中,而输出重定向则是把原本要输出到屏幕的数据信息写入到指定文件中. 2.管理输入输出的符号 ##输出重 ...

  4. Nginx实战部署常用功能演示(超详细版),绝对给力~~~

    前言 上次分享了一些开发过程中常用的功能,但如果到真实环境中,其实还需要一些额外的配置,比如说跨域.缓存.配置SSL证书.高可用等,老规矩,还是挑几个平时比较常用的进行演示分享.上篇详见Nginx超详 ...

  5. OpenGL入门教程之 深入理解

    一.OpenGL简介 OpenGL是一种用于渲染2D.3D矢量图形的跨语言.跨平台的应用程序编程规范. OpenGL包含一系列可以操作图形和图像的函数,但OpenGL没有实现这些函数,OpenGL仅规 ...

  6. 微信小程序云开发——常用功能2:操作云数据库一键批量导入数据(导入json文件)

    微信小程序云开发--常用功能2:操作云数据库一键批量导入数据(导入json文件) 今天我们要添加100条数据.下面的过程是先创建一条记录,然后导出这条数据看json文件中是如何编辑字段的,然后仿照这个 ...

  7. unity2d游戏开发系列教程:二、新建工程并熟悉Unity编辑器常用功能

    目录 unity2d游戏开发系列教程:一.环境安装 第一步.打开项目 耐心等待一小会 工程界面 第二步.创建第一个场景(第一关)进行试玩 点击图中标号1的运行按钮,即可简单试玩感受,操作如下 移动A, ...

  8. Android开发常用功能 https://www.2cto.com/kf/201611/561847.html

    Android开发常用功能 2016-11-03 09:43:58          来源:EvanJames的专栏 收藏   我要投稿 1.定时器的实现 (1)采用Handler的postDelay ...

  9. GitHub仓库的常用功能

    本文所有截图以Linux-C-CPP-Collection项目为例 https://github.com/CodeAllen999/Linux-C-CPP-Collection Watch.Star. ...

最新文章

  1. java触发器如何创建表_在java 中执行触发器代码、创表语句
  2. NFS: Mac OS X (server) and Mac OS X (clients)实现思路
  3. Android多线程:这是一份全面 详细的线程池(ThreadPool)讲解教程
  4. javascript:闭包的总结
  5. 什么是神经网络在object detection的应用?cascade classifier,卷积神经网络,迁移学习
  6. [Hadoop]-YARN-伪分布式部署-hadoop-2.6.0-cdh5.7.0
  7. java linkedlist源码分析_LinkedList源码分析(基于Java8)
  8. GFW Rule list
  9. UE4之插件打包提示安装vs2017
  10. mysql用foreach遍历,ForEach-Object循环遍历MySql DataTable第一行空白
  11. 总结之lowagie.text合并PDF文件
  12. 在线答题助手c语言源码,很早之前发的逆水寒答题助手,开源!!自己可以修改成任何答题器源码!~~...
  13. 黄金分割法求解局部最小值——python实现
  14. 好看动漫+电影+电视剧分享
  15. Window操作系统基本知识
  16. matlab 变分贝叶斯,变分法和变分贝叶斯推断
  17. voxelmorph中的STN网络
  18. LMK04828时钟芯片配置——配置理解
  19. 100之内含有7与7的倍数的数
  20. 拼多多为什么不显示评论

热门文章

  1. 2001年《Derivative Dynamic Time Warping》Eamonn J K Michael J P
  2. Condition 是什么?怎么用?
  3. 牛人总结的开关电源电路图,必须收藏
  4. 相机 - 01 基本元件
  5. JAVA毕业设计辅导员班级量化管理系统计算机源码+lw文档+系统+调试部署+数据库
  6. 游戏策划入门(3)——二次创意的价值和如何写故事?
  7. cocoa pods的配置
  8. 年纪轻轻,身体也好,有必要买重大疾病保险吗?
  9. 微信公众号测试号本地服务的搭建——Java
  10. 时间序列 | pandas时间序列基础