1.OpenGL查询拓展机制是否被支持

gltools函数库:
int gltIsExtSupported(const char *extension)
{
#ifndef OPENGL_ES
GLint nNumExtensions;
glGetIntegerv(GL_NUM_EXTENSIONS, &nNumExtensions); for(GLint i = 0; i < nNumExtensions; i++)
if(strcmp(extension, (const char *)glGetStringi(GL_EXTENSIONS, i)) == 0)
return 1;
#else
GLubyte *extensions = NULL;
const GLubyte *start;
GLubyte *where, *terminator; where = (GLubyte *) strchr(extension, ' ');
if (where || *extension == '\0')
return 0; extensions = (GLubyte *)glGetString(GL_EXTENSIONS); start = extensions;
for (;;)
{
where = (GLubyte *) strstr((const char *) start, extension); if (!where)
break; terminator = where + strlen(extension); if (where == start || *(where - 1) == ' ')
{
if (*terminator == ' ' || *terminator == '\0')
return 1;
}
start = terminator;
}
#endif
return 0;
}

2.基本概念:

1)顶点着色器:处理从客户端输入的数据,应用变换,或者进行其他类型的数学计算来计算光照效果、位移、颜色值等等。

        我们得为顶点着色器提供数据,有三种方法:属性,uniform值和纹理。

2)属性:属性就是一个对每个顶点都要做改变的数据元素。
             属性总是以四维向量的形式进行内部存储的。
             属性包括纹理坐标,颜色值和用于光照计算的表面法线。
             属性会从本地客户机内存中复制到图形硬件中的一个缓冲区上。这些属性只供顶点着色器使用,对于片段着色器而言没有意义。
3)uniform值:uniform变量一个最常用的应用就是在顶点渲染中设置变换矩阵。
                     uniform变量可以存在于顶点着色器和片段着色器中。
                     uniform变量可以是标量类型,矢量类型,也可以是矩阵。
4)纹理:从顶点着色器和片段着色器中都可以对纹理值进行采样和筛选。
 
5)正投影:
               在正投影中,所有在这个空间范围内的所有东西都会被显示在屏幕上,而不存在照相机或者视点坐标系的概念。
 
6)抗锯齿:
               为了消除图元之间的锯齿状边缘,使用混合功能来混合片段的颜色,也就是把像素的目标颜色与周围像素的颜色进行混合。从本质上说,在任何图元的边缘上,
               像素颜色会稍微延伸到相邻的像素。
               开启抗锯齿功能,得首先开启混合功能,并且要设置混合函数。
                    
7)多重采样:
                 当多重采样被启用时,点,直线和多边形的平滑特性(GL_***_SMOOTH)将会被忽略。因此,在使用点,直线和多边形的平滑特性时,需要将多重采样关闭,当
                 绘制实心几何图形时再打开多重采样。
                 使用多重采样之前必须先申请一个多重采样缓冲区,,所有的图元在每个像素上进行多次采样,结果存储在这个缓冲区中。

OpenGL超级宝典第5版&&基础渲染的更多相关文章

  1. 【转载】OpenGL超级宝典笔记——GLSL语言基础

    变量 GLSL的变量命名方式与C语言类似.变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量.当然还有一些 ...

  2. OpenGL超级宝典第5版&&缓冲区

    缓冲区有很多用途:可以保存顶点数据,像素数据,纹理数据,着色器处理的输入,不同着色器阶段的输出. 缓冲区保存在GPU内存中,提供高速有效的访问.   像素缓冲区对象: GLuint pixBuffer ...

  3. OpenGL超级宝典第5版&&glProvokingVertex

    翻译:https://www.opengl.org/sdk/docs/man3/xhtml/glProvokingVertex.xml 方法原型:void glProvokingVertex(GLen ...

  4. OpenGL超级宝典第5版&&GLSL法线变换

    在GLSL中,有一些情况需要把局部坐标系下的向量或点转换到视点坐标系下,如光照计算时,需要把法向转化到视点坐标系.如果是模型上一点p 转化到视点坐标系下,直接(model-view matrix )* ...

  5. OpenGL超级宝典第5版&&开发环境搭建

    参考:http://www.zyh1690.org/build-opengl-super-bible-fifth-edition-development-environment/ 环境搭建的测试环境为 ...

  6. 【极简版】OpenGL 超级宝典(第五版)环境配置 VS2010

    事先声明:该教程仅适用于VS2010环境下超级宝典第五版的配置 第一步:下载示例代码和环境包: 链接:https://pan.baidu.com/s/1llRRQ8ymBgMGuXp5M50pJw 提 ...

  7. OpenGL超级宝典笔记----框架搭建

    自从工作后,总是或多或少的会接触到客户端3d图形渲染,正好自己对于3d图形的渲染也很感兴趣,所以最近打算从学习OpenGL的图形API出发,进而了解3d图形的渲染技术.到网上查了一些资料,OpenGL ...

  8. OpenGL超级宝典visual studio 2013开发环境配置,GLTools

    做三维重建需要用到OpenGL,开始看<OpenGL超级宝典>,新手第一步配置环境就折腾了一天,记录下环境的配置过程. <超级宝典>中的例子使用了GLEW,freeglut以及 ...

  9. 问题解决——OpenGL超级宝典 第四章 4.5.2 关于freeglut.lib问题的解决过程

    看<OpenGL超级宝典(第四版)>的4.5.2节时遇到了一系列问题,经过不懈努力终于解决,现将过程记录在下,以便查找追思. 在第4.5.2节之前,自己写的的代码都没有使用作者的gltoo ...

随机推荐

  1. lintcode: 二叉树的锯齿形层次遍历

    题目 二叉树的锯齿形层次遍历 给出一棵二叉树,返回其节点值的锯齿形层次遍历(先从左往右,下一层再从右往左,层与层之间交替进行) 样例 给出一棵二叉树 {3,9,20,#,#,15,7}, 3 / \ ...

  2. VCL源码分析方法论(以TButton.Caption属性的由来为例)

    最近一段时间似乎流行源码分析:)我也来谈谈在过去一段时间里对VCL源码的分析方法方面的一点体会,本文将不探讨VCL类库的构架和设计模式方面的东本,只是以我们常见的控件属性/方法的实现过程作简单的说明, ...

  3. Android:调试之DDMS

    DDMS 的全称是Dalvik Debug Monitor Service,是 Android 开发环境中的Dalvik虚拟机调试监控服务. 在Eclipse,项目启动了虚拟器后,右上角选择Open ...

  4. Dictionary<Key,Value>的用法

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. android源码编译1

    一.环境说明: 1.liunx系统:Ubuntu12.04 2.jdk:sun-java6-jdk 3.g++4.5 gcc4.5 二.android源码的目录结构 |-- Makefile |-- ...

  6. Android L 使用ART能提高多少性能?

    点击打开链接 刚刚结束的 Google I/O 大会上,Android 下一代操作系统「L」带来不少惊喜.新系统运行更快.更省电. 然而开发者对这个新系统也有颇多疑问,比如新的运行模式 ART 对开发 ...

  7. Android开发之assets文件夹中资源的获取

    assets中的文件都是保持原始的文件格式,需要使用AssetManager以字节流的形式读取出来 步骤: 1. 先在Activity里面调用getAssets() 来获取AssetManager引用 ...

  8. [NYIST16]矩形嵌套(DP,最长上升子序列)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=16 像套娃一样把矩形套起来.先给矩形从小到大排序,然后做最长上升子序列就行 /* ━━━━ ...

  9. [POJ3279]Fliptile(开关问题,枚举)

    题目链接:http://poj.org/problem?id=3279 题解:http://www.cnblogs.com/helenawang/p/5538547.html /* ━━━━━┒ギリギ ...

  10. C# 按拼音/笔划 排序的简单示例(转)

    class Program { static void Main(string[] args) { string[] arr = { "趙(ZHAO)", "錢(QIAN ...