opengl 笔记
1.
本函数可以禁用多边形正面或背面上的光照、阴影和颜色计算及操作,消除不必要的渲染计算是因为无论对象如何进行旋转或变换,都不会看到多边形的背面。用GL_CULL_FACE参数调用glEnable和glDisable可以启用或禁用剔除。
glEnalbe(GL_CULL_FACE) 开启剔除操作效果
glDisable(GL_CULL_FACE) 关闭剔除操作效果
2.
当我们需要绘制透明图片时,就需要关闭它
glDisable(GL_DEPTH_TEST);
3. glBlendFunc
http://blog.chinaunix.net/uid-20622737-id-2850251.html
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_ADD);
glp_bt.draw();
glp_up.draw();
4 设置浏览窗口大小
glViewport(0, 0, 800, 600);
5. glBlendEquation

https://blog.csdn.net/flycatdeng/article/details/82664564
6 清空显存数据
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
7. opengl 纹理坐标和 定点坐标
glTexCoord2f( 0.0, 0.0 ); glVertex3f( -1.0, -1.0, 1.0 );
glTexCoord2f( 1.0, 0.0 ); glVertex3f( 1.0, -1.0, 1.0 );
glTexCoord2f( 1.0, 1.0 ); glVertex3f( 1.0, 1.0, 1.0 );
glTexCoord2f( 0.0, 1.0 ); glVertex3f( -1.0, 1.0, 1.0 );
Vertex v0(glm::vec3(-1, 1, 0) , glm::vec2(0, 1));
Vertex v1(glm::vec3(1, 1, 0) , glm::vec2(1, 1));
Vertex v2(glm::vec3(1, -1, 0 ) , glm::vec2(1.0, 0));
Vertex v3(glm::vec3(-1, -1, 0), glm::vec2(0, 0));
8 多线程
OpenGL和多线程基本上是敌人:在任何给定的时刻,只有一个线程可以“拥有渲染上下文”-是的,只要线程切换,您就可以切换GL渲染上下文,但要考虑成本,并考虑从一个OEM驱动程序到下一个,它没有得到很好的支持,可能对某些人而不是其他人有用。唯一的逻辑(也是明智的)选择是将所有OpenGL调用都保留在一个线程中(注意:有一些例外,有些线程可以在gl中调用这些与流数据有关的东西,而无需拥有渲染上下文) 。不幸的是,我们不能像建议的那样简单地在线程周围传递GL上下文,我们必须调用(w)glMakeCurrent,它告诉GL“此调用者线程现在拥有您”,但是无法告诉其他线程...
opengl 笔记的更多相关文章
- opengl笔记——旋转,一段代码的理解
重看:opengl笔记——OpenGL好资料备忘 在找到这段代码,对理解opengl旋转很有帮助 ... glPushMatrix(); // initialze ModelView matrix g ...
- OpenGL 笔记 <2> Compiling and Linking a shader program
Preface 这一节所有的主要内容都在一个OpenGL库文件中<LoadShaders.h> ,只需要用LoadShader()函数进行加载即可.但是由于老是出错,所以自己实现了一下,也 ...
- opengl 笔记(2)
/*- * Opengl Demo Test * * Fredric : 2016-7-10 */ #include <GLUT/GLUT.h> #include <stdlib.h ...
- opengl 笔记(1)
参考<opengl入门教程>.<OpenGL之坐标转换>.<OpenGL绘制管线操作细节>等资料. 复习下留个备忘:) /*- * Opengl Demo Test ...
- opengl笔记—— glMultMatrixf() 区别 glLoadMatrixf()
能找到最好的解释来自:http://www.gamedev.net/topic/489879-glpushmatrixglpopmatrix--glloadmatrixf/ 原理: glPushMat ...
- opengl笔记
GL_ARRAY_BUFFER(表示顶点数据) GL_ELEMENT_ARRAY_BUFFER(表示索引数据) GL_PIXEL_UNPACK_BUFEER( 表示传递给O p e n G L 的像素 ...
- OpenGL笔记(五) 着色器渲染(以Android为例)
一.Android平台上下文环境的创建及初始化 1. 首先实例化Android上下文环境,即EGL的初始化. bool EGLCore::init(EGLContext sharedContext) ...
- OpenGL笔记(四) API参考
常见API glActiveTexture 选择活动纹理单元 glAttachShader 将一个着色器对象绑定到一个程序对象 void glAttachShader(GLuint program, ...
- OpenGL笔记(三) GLSL语法与内建函数
GLSL,OpenGL Shading Language,GLSL中没有指针,并且没有任何类型的字符串或字符. (1)GLSL的修饰符与基本数据类型 const:用于声明非可写的编译时常量变量: at ...
- OpenGL笔记(一) 绘制三角形
GLTools: 一些有用且可复用的函数 GLEW: OpenGL API的一些扩展机制 GLUT: OpenGL Utility toolkit, OpenGL跨平台相关,隐藏平台相关细节 RC代表 ...
随机推荐
- python 简化数据结构的初始化一
写在前面 在it行业混了差不多十年了,懊悔自己开始写博客的时间太晚.有那么一天就开始写了,也不知道自己会不会坚持写下去.不知不觉日子过到了今天,回头看看,也算是坚持写了.现在写博客的感觉好奇怪,一天天 ...
- git notes的用法
1. notes翻译为中文评注 2. notes出现的作用 避免某一次commit的内容修改导致当前以及随后的commit发生变化,相当于在当前的commit后面追加一些信息,如: 某次commit的 ...
- ISO/IEC 9899:2011 条款6.4.2——标识符
6.4.2 标识符 6.4.2.1 通用 语法 1.identifier: identifier-nodigit identifier identifier-nondigit identifie ...
- Ubuntu + Apache2 环境下用C编写 一个简单的cgi脚本
我只学习过c语言,没有学习过prel,网上很多教程都是针对prel的,很少有针对c的.自己在Ubuntu下鼓捣了一下午,也总算是用c成功编写了一个helloworld的cgi,算是cgi入门的第一步. ...
- python面试必备-基础篇
一.python中and, or, and-or语法 1.and 有假先出假 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进 ...
- Ubunut16.04 安装 g++ gcc 降级
1. 查看gcc版本和g++版本 cd /usr/bin ls -l gcc* ls -l g++* 2. 安装gcc和g++ 4.4版本 sudo apt-get install gcc-4.4 g ...
- Mac下给sublime text3配置Nodejs
传送门: http://blog.csdn.net/phil_young/article/details/50950206
- mysql常用命令、非交互式mysql命令看29条
CentOS下mysql数据库常用命令总结1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆mysql服务器 mysql -uroo ...
- Direct2D 学习笔记(3)图层 Layer
利用图层Layer绘制资源网址:https://docs.microsoft.com/zh-cn/windows/win32/direct2d/direct2d-layers-overview 1 ...
- web系统整体优化
关于web系统整体优化提速总结 关于web系统整体优化提速总结 一.背景 随着公司业务的拓展,随之而来就是各种系统横向和纵向的增加,PV.UV也都随之增加,原有的系统架构和模式慢慢遇上了瓶颈,需要 ...