OPENGL/GLSL
文章平均质量分 73
mike_zw
这个作者很懒,什么都没留下…
展开
-
一个简单的GLSL
<br />//////////////////////////////////////////////////////////////////////////<br />/*<br /> * my first glsl program, hello - glsl<br /> * now, go!<br /> *<br /> */<br /><br />#define GLUT_DISABLE_ATEXIT_HACK<br /><br />#include <windows.h><br />#include转载 2010-10-19 16:37:00 · 2161 阅读 · 0 评论 -
GLSL实现多重纹理映射(例子取自glsl橙皮书第10章)
我们使用GLSL来模拟从太空角度来观测地球,该例子取自GLSL橙色书第10章。我们可以直接使用一副从太空拍摄的地球纹理贴图来实现地球的模拟,但是这样做会有一些“不真实”的地方:(1)我们知道地球上是有一些人为manmade的光源(比如各大城市所发出的光芒),当夜晚来临的时候,即使从太空中看地球,各大城市也会发出明显的光芒。所以我们得判断地表上的每一处是白天或黑夜,这个可以通过灯光和法向量的夹角值来判断。当地表某点处于白天时,我们使用一副daytime的纹理位图并作一些相关的纹理计算,而当处于夜晚时,我们不进原创 2010-11-17 17:31:00 · 6586 阅读 · 0 评论 -
OpenGL FrameBuffer Object 101
<br />原文:http://blog.csdn.net/huawenguang/archive/2007/06/18/1656369.aspx<br />Frame Buffer Object(FBO)扩展,被推荐用于把数据渲染到纹理对像。相对于其它同类技术,如数据拷贝或交换缓冲区等,使用FBO技术会更高效并且更容易实现。<br />在这篇文章中,我将会快速地讲解一下如何来使用这一扩展,同时会介绍一些在使用过程中我们要注意的地方。学会该技术后,你便可以把一些渲染到纹理(render to texture转载 2010-12-29 14:40:00 · 886 阅读 · 0 评论 -
Simple Shadow Mapping Tutorial with OpenGL
Simple Shadow Mapping Tutorial with OpenGL<br />Jie Tan<br />DALABIntroduction<br />Shadow mapping is a classical but widely-used technique to render shadows. It is introduced by Lance Williams in 1978 in “Casting curved shadows on curved surfaces”. Nowada转载 2010-12-27 14:13:00 · 2664 阅读 · 0 评论 -
[翻译]Opengl Shader Example ——brick Shader(第一节)
Brick Shader Overview砖块Shader概要One approach to writing shaders is to come up with a description of the effect that you're trying to achieve and then decide which parts of the shader need to be implemented in the vertex shader, which need to be implemented翻译 2010-11-03 17:32:00 · 1818 阅读 · 0 评论 -
GLSL光照运用
1、在GLSL中运用光照,首先需考虑的是光照强度,有了光强,有就明暗和层次感,那么光照强度如何判断?我们可以通过计算顶点的法线向量与光照向量的夹角余弦值(cosine值)来得到。所以,当法线离光照方向很接近的情况下,将会出现亮的色调;当光照方向与法线方向的夹角很大时,渲染的地方就会很暗,换句话而言就是,夹角的cosine值影响色调的强度,Cosine值的计算可以利用下面这个公式,也即是点积公式: cos(lightDir,normal) = lightDir . normal / ( |lightD原创 2010-10-31 15:35:00 · 4505 阅读 · 3 评论 -
GLSL语言内置变量
<br />GLSL语言内置的变量,包括内置的顶点属性(attribute)、一致变量(uniform)、易变变量(varying)以及常量(const),一方面加深印象,另一方面今天的文章可以为以后的编程做查询之用。<br />顶点属性——指顶点的信息,OpenGL据此绘制各个图元,对于传统的顶点属性包括坐标、纹理坐标、颜色等GLSL都会设置一个内置变量与之对应,以便在需要时可以在顶点或片元着色器中直接引用,这也体现了GLSL与HLSL的一个最大的不同,HLSL里顶点的属性是通过语义来定义的,而GLSL充原创 2010-10-28 10:15:00 · 10654 阅读 · 2 评论 -
GL中基于顶点的操作及在GLSL中的应用
<br />在GL的固定管线流程中,顶点数据在经过求值器操作(可选)后将进行“基于顶点的操作”,在这一步中,顶点数据将进行“视图变换”、“模型变换”、“投影变换”以及“视口变换”四步。这4个步骤实质上类似于用摄像机进行拍照的过程,即<br />第一步:架设摄像机,使相机对准场景。(视图变换)<br />第二步:移动场景中的物体,比如苹果、香蕉、模特,摆出合适的满意的造型。(模型变换)<br />第三步:调整相机的镜头,拉近拉远、聚焦放焦等。(投影变换)<br />第四步:确定最终照片的大小,比如我们可能想将原创 2010-10-28 16:40:00 · 1390 阅读 · 0 评论 -
如何学习GLSL
1.看一看GLSL的介绍http://nehe.gamedev.net/data/articles/article.asp?article=21文章的结尾有一些不错的推荐教程链接,也有一些建议值得看一看。2.阅读OpenGL Shading languae网上可以搜索到电子书, 是英文的,看起来比较慢,建议找本中文的节省时间。不过感觉这本书对于基本概念讲的比较清楚,但是实践性不强。相关的源代码网上应该能搜索的到的。http://www.3dshaders.com/home/3.提高http://www.li原创 2010-10-28 10:45:00 · 3522 阅读 · 2 评论 -
基于可编程图形处理器的骨骼动画算法及其比较
<br />2009-10-19 <br />作者: 季卓尔 张景峤 <br />来源: 万方数据 关键字: 骨骼动画 可编程图形处理器 计算机图形 蒙皮网格 统一 骨骼动画相对于之前的动画方法具有占用空间小的优点,但是其代价是计算量的增加,从而导致绘制效率的降低。另一方面,近年来可编程图形处理器技术在计算机图形处理领域已得到广泛研究。因此,提出了基于可编程图形处理器实现骨骼动画的方法,采用了最先进的可编程处理管线。使用多种不同的方法在可编程图形处理器中实现了骨骼动画,并对其性能进行了分析与比较。该方法借转载 2010-10-25 10:46:00 · 3685 阅读 · 0 评论 -
GLSL教程(1)
1 管线(pipeline)简介上图中一个顶点(Vertex )是一组属性,包括位置,颜色,纹理坐标等。1.1顶点转换模块(Vertex Transformation)在此模块实现功能:顶点位置转换为每个顶点计算光照纹理坐标的生成与转换1.2图元安装和光栅化处理模块(Primitive Assembly and Rasterization)此阶段的输入是转换后的数据和连接信息。连接信息告诉管线顶点是如何连接为图元的。光栅化决定了片断和像素位置。片断是一组用于更新桢缓存中像素的数据。片断包括颜色,纹理坐标等。转载 2010-10-19 11:24:00 · 2677 阅读 · 0 评论 -
GLSL教程2
7 变量类型着色程序中常用的变量是uniform,attribute变量。uniform的值只能被图元修改,不能在glBegin / glEnd 间被修改。这意味着uniform不能用作顶点属性,uniform适用于在图元, 桢, 或整个scene都不变的量。uniform变量能在顶点和片断着色器中读。attribute可以为顶点赋值。attribute在任何时候都可以被更新。只能用于用于顶点着色器,不能用于片断着色器。7.1 uniform变量的应用:下面是着色器中的定义的变量: unifor转载 2010-10-19 11:40:00 · 3681 阅读 · 0 评论 -
Cube Mapping Example
1.有一种称为“环境映射”(environment mapping)的技术可以不依赖ray-trace而实现复杂环境我反射,这种技术使用一个或多个纹理来模拟外部环境的反射,这种技术最适合于应用到具有高亮镜面的物体。2.有多种方法来实现环境纹理映射,包括球面纹理映射( SPHERE MAPPING )和立方体纹理映射( CUBE MAPPING ),这两者在标准的OPENGL中的都是支持的。本例我们使用GLSL的CUBE MAPPING 方法来实现环境纹理,我们假设(注意是假设assume)在物体的表层有一层原创 2010-11-18 16:58:00 · 2164 阅读 · 0 评论