http://blog.csdn.net/racehorse/article/details/6616256 设置GLSL 这一节讲述在OpenGL中配置GLSL,假设你已经写好了顶点shader和像素shader.如果你还没有准备好,可以从如下网址获得相关内容: http://www.3dshaders.com/home/ http://www.opengl.org/sdk/tools/ShaderDesigner/ http://developer.amd.com/archive/gpu/r…
一.使用 <script> 元素的方式有两种:直接在页面中嵌入 JavaScript 代码和引用外部 JavaScript 文件. 二.使用内嵌方式,一般写法为: <script type="text/javascript"> /*  code   */ </script> 三.引用外部 JavaScript 文件的一般写法为: <script type="text/javascript" src=""&…
http://blog.csdn.net/racehorse/article/details/6634830 引言 一个OpenGL程序可以用多种方式和shader通信.注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存. OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与shader进行通信了.例如一个程序想把光的颜色传给shader,可以直接调用OpenGL接口,就像使用固定功能流水线时做的那样. 不 过,使用OpenGL…
(一) OpenGL  4.3 最新渲染管线图 从OpenGL 2.0 到 OpenGL 3.0变化非常大,但从OpenGL 3.0 到OpenGL 4.0 变化不是太大. 着色器程序直接运行在GPU上,并且是并行的,一个片元着色器可能一次执行所有象素. deprecation model, 在OpenGL3.0 提出,为了保持向后兼容,兼容模式compatibility profile.和核心模式core profile的概念在OpenGL 3.2 中提出. 在Qt 4.7以后版本,可以通过下…
http://blog.csdn.net/hgl868/article/details/7872219 引言 一个OpenGL程序可以用多种方式和shader通信.注意这种通信是单向的,因为shader的输出只能是渲染到某些目标,比如颜色和深度缓存. OpenGL的部分状态可以被shader访问,因此程序改变OpenGL某些状态就可以与shader进行通信了.例如一个程序想把光的颜色传给shader,可以直接调用OpenGL接口,就像使用固定功能流水线时做的那样. 不过,使用OpenGL状态并不…
OpenGL着色语言(OpenGL Shading Language,GLSL)是用来在OpenGL中着色编程的语言,是一种具有C/C++风格的高级过程语言,同样也以main函数开始,只不过执行过程是在GPU上.GLSL使用类型限定符而不是通过读取和写入操作来管理输入和输出.着色器主要分为顶点着色器(Vertex Shader)和片段着色器(Fragment Shader)两部分. 顶点着色器的主要功能是: 顶点法线变换及单位化 纹理坐标变换 光照参数生成 顶点着色器的输入内容包括: 着色器源代…
http://blog.csdn.net/racehorse/article/details/6662540 逐像素的方向光(Directional Light per Pixel) 这一节将把前面的shader代码改为逐像素计算的方向光.我们需要将工作按照两个shader拆分,以确定哪些是需要逐像素操作的. 首先看看每个顶点接收到的信息: •法线 •半向量 •光源方向 我们需要将法线变换到视点空间然后归一化.我们还需要将半向量和光源方向也归一化,不过它们已经位于视点空间中了.这些归一化之后的向…
引言 在OpenGL中有三种类型的光:方向光(directional).点光(point).聚光(spotlight).本教程将从方向光讲起,首先我们将使用GLSL来模仿OpenGL中的光. 我们将向shader中逐渐添加环境光.散射光和高光效果. 后面的教程中我们将使用逐像素光照以获得更好的效果. 接下来我们将实现逐像素的点光和聚光.这些内容与方向光很相近,大部分代码都是通用的. 在卡通着色的教程中我们接触过在GLSL中如何访问OpenGL状态中关于光源的部分,这些数据描述了每个光源的参数.…
http://blog.csdn.net/racehorse/article/details/6641623 引言 卡通着色可能是最简单的非真实模式shader.它使用很少的颜色,通常是几种色调(tone),因此不同色调之间是突变的效果.下图显示的就是我们试图达到的效果: 茶壶上的色调是通过角度的余弦值选择的,这个角度是指光线和面的法线之间的夹角角度.如果法线和光的夹角比较小,我们使用较亮的色调,随着夹角变大,逐步使用更暗的色调.换句话说,角度余弦值将决定色调的强度. 在本教程中,我们先介绍逐顶…
http://blog.csdn.net/racehorse/article/details/6593719 这是一些列来自lighthouse3d的GLSL教程,非常适合入门.我将边学习边翻译该教程的内容,同时记录在这里,方便以后查询. 流水线概述 下图描述了一个简化的图形处理流水线,虽然简略但仍然可以展示着色器编程(shader programming)的一些重要概念. 一个固定流水线包括如下功能: 顶点变换(Vertex Transformation) 这里一个顶点是一个信息集合,包括空间…