OpenGL
wangpingfang
这个作者很懒,什么都没留下…
展开
-
生成点法线(Generating Vertex Normals)
计算 生成 顶点 法线 计算 calculate generate vertex normal翻译 2010-12-18 17:34:00 · 4886 阅读 · 0 评论 -
GLSL教程 OpenGL Setup for GLSL 清理
前一小节展示了函数,用于将着色器对象与着色器程序相关联。相对地,也存在一个函数,用于删除着色器对象和着色器程序的关联。 在OpenGL2.0中,该函数是: void glDetachShader(GLuint program, GLuint shader);Parameter: program - The program to detach from. shader - The shader to detach. 在ARB扩展中,该函数如下:void gl翻译 2010-12-27 16:03:00 · 1246 阅读 · 0 评论 -
GLSL教程 OpenGL Setup for GLSL 故障排除:the InfoLog
调试着色器是很困难的。至今还没有printf,可能永远不会有,但是今后可能会出现具有调试能力的开发工具。目前你可以使用一些技巧来调试着色器。OpenGL还提供了更多的函数用于检验你的代码是否编译、链接成功。 在OpenGL2.0中,使用如下函数可以查询编译步骤的状态: void glGetShaderiv(GLuint object, GLenum type, int *param);Parameters: object - 指向对象的句柄. 着色器或者程序 type -翻译 2010-12-27 12:08:00 · 1674 阅读 · 0 评论 -
GLSL教程 OpenGL Setup for GLSL 创建着色器程序
下图展示了创建着色器程序并使之运行的必要步骤: 第一步:创建程序容器对象。用于此目的的函数返回一个指向程序容器对象的句柄。 在OpenGL 2.0中,该函数是: GLuint glCreateProgram(void); 如果使用ARB扩展,该函数是:GLhandleARB glCreateProgramObjectARB(void); 你可以根据自己的需要,创建足够多的着色器程序。一旦开始渲染,你可以在渲染单个帧的过程中,从一个着色器程序切换到另一个另一个着色器程序,你甚至翻译 2010-12-22 17:42:00 · 2520 阅读 · 0 评论 -
GLSL教程 图形管线 片段处理器
片段处理器负责运行片段着色器。顶点着色器负责的操作包括: 为每个像素计算颜色和纹理坐标 纹理应用(应用纹理) 雾计算 计算法线(如果你想对每个像素应用光照) 本单元的输入为之前阶段计算得到的插值如顶点位置,颜色和法线等。 顶点着色器会为每个顶点计算这些值。现在我们在处理图元中的片段,因此需要插值。 和顶点处理器一样,当你编写了一个片段着色器,它将替代对应的所有固定功能。因此让片段着色器执行纹理操作,然后将雾操作留给固定功能管线是不可能的。程序员必须编写应用需要的所有效果。翻译 2010-12-21 17:49:00 · 2037 阅读 · 0 评论 -
GLSL教程 图形管线 顶点处理器
顶点处理器负责运行顶点着色器。顶点着色器的输入为顶点数据,也就是它的位置、颜色和法线等,这取决于OpenGL应用程序的发送。 下面的OpenGL代码为每个顶点向顶点处理器发送了一个颜色和一个顶点位置信息。 glBegin(...); glColor3f(0.2,0.4,0.6); glVertex3f(-1.0,1.0,2.0); glColor3f(0.2,0.4,0.8); glVertex3f(1.0,-1.0,2.0);翻译 2010-12-21 17:24:00 · 1701 阅读 · 0 评论 -
GLSL教程 OpenGL Setup for GLSL 创建着色器
下图展示了创建一个着色器的必要步骤: 第一步:创建着色器容器对象。用于此目的的函数返回一个指向着色器容器对象的句柄。 在OpenGL 2.0中,该函数是: GLuint glCreateShader(GLenum shaderType); Parameter: shaderType - GL_VERTEX_SHADER or GL_FRAGMENT_SHADER. 在ARB扩展中,该函数是:GLhandleARB glCreateShaderObj翻译 2010-12-22 16:54:00 · 1814 阅读 · 1 评论 -
GLSL教程 OpenGL Setup for GLSL 综述
本节OpenGL Setup for GLSL假定你已经有了一个顶点着色器和一个片段着色器,并且你想在OpenGL应用程序中使用它们。如果还不会自己编写着色器,你可以从Internet上得到很多的着色器。不妨访问下橙宝书的站点。着色器开发工具Shader Designer和Render Monkey也有大量的着色器例子。 在OpenGL中设置着色器应用的流程类似于编写一个C程序。每个着色器类似于一个C模块,就像在C语言中一样,每个着色器都必须单独编译。然后,这些将这些编译好的着色器链接到一个程序中。 本翻译 2010-12-22 16:15:00 · 1494 阅读 · 0 评论 -
GLSL教程 图形管线 管线概观
下图是图形管线的一系列处理阶段以及数据在这些处理阶段流动的简化图。虽然非常简单,但是用于展示着色器编程的一些重要概念足够了。本小节展示了OpenGL图形管线的固定功能。注意本管线只是一个抽象,不可能在所有的步骤上都满足任一特定实现。 顶点变换 在这里,顶点是一个属性集合,如它的空间位置、颜色、法线、纹理坐标等等。本阶段的输入是孤立的顶点属性。由本阶段的固定功能执行的操作有: 顶点位置变换 每个顶点的光照计算 纹理坐标生成和变换 图元装配和光栅化 本阶段的输入为经过变换翻译 2010-12-21 07:45:00 · 1318 阅读 · 0 评论 -
生成点法线(Generating Vertex Normal)-应用版
上一篇博文《生成点法线 》首先从理论的角度描述了点法线的含义,接着给出了一个生成点法线的标准算法,最后基于标准算法进行了一些改进。 如果你不喜欢读长篇的理论来了解知识;如果你比较喜欢通过一个Demo来了解知识;如果你对点法线的生成比较感兴趣。那么本文就是为你而写的。 本文组织如下:首先给出生成点法线的步骤;接着给出一个三角网格模型格式;最后基于该网格模型格式,给出一个生成点法线的函数。 点法线生成步骤: 1 生成面法线 2 对顶点数据进行预处理,使得通过给定的顶点就可以索引到其所在的原创 2010-12-18 22:04:00 · 1622 阅读 · 0 评论 -
GLSL教程 介绍
本教程讲授如何使用GLSL进行着色器编程。着色器是一个热门话题,3D游戏表明有效地使用着色器可以取得非凡的效果。本教程的目的就是带领大家走入着色器世界。虽然本教程对规范有所介绍,但是如果你想了解更多权威的知识,我们推荐你阅读OpenGL2.0和GLSL的官方规范。因为理解本教程的某些部分需要OpenGL编程的知识,所以本教程假定你已经熟悉OpenGL编程。GLSL即GL着色语言,简称为gl翻译 2010-12-21 15:21:00 · 2244 阅读 · 0 评论