OpenGL
skyman_2001
这个作者很懒,什么都没留下…
展开
-
SM3D的OpenGL教程(一):超酷三维汉字特效
??? 大家好,我是Skyman(SM3D),喜欢三维编程,现在正在系统学习OpenGL,DirectX,VR等.我经常到各大论坛上去转转.其中去得最多的地方是NeHe的OpenGL网站(http://nehe.gamedev.net),那是我所见过的最好的学习OpenGL的网站,强烈推荐!!!这是我的第一篇关于OpenGL的文章,写得不是很好,欢迎大家指正.大家知道,在OpenGL中输出原创 2004-05-29 16:01:00 · 4636 阅读 · 0 评论 -
Z坐标、深度缓存和透视投影
如需转载请注明出处:http://blog.csdn.net/skyman_2001这个是3D图形学中很重要的内容,虽然基础,但对理解3D图形世界非常关键。所以了解透彻是很有用处的。下面先讲讲Z坐标。Z坐标和X、Y坐标一样。在变换、裁减和透视除法后,Z的范围为-1.0~1.0。DepthRange映射指定Z坐标的变换,这与用于将X和Y映射到窗口坐标的视口变换类似,但DepthRange映射又与视口原创 2005-10-09 19:51:00 · 4658 阅读 · 1 评论 -
OpenGL中的矩阵存储方式
在OpenGL中,矩阵是以列优先的方式(column-major order)存储的,而一般的数学书上是以行优先的方式(row-major order)存储的。列优先:m0 m4 m8 m12m1 m5 m9 m13m2 m6 m10 m14m3 m7 m11 m15行优先: m0 m1 m2原创 2005-10-26 16:48:00 · 4049 阅读 · 2 评论 -
OpenGL中不用AUX库来加载BMP图片作为纹理
大家在OpenGL中一般是用aux库的auxDIBImageLoad()函数来加载BMP格式的图片来作为纹理,这个确实是比较简单易用,但aux库的性能不佳,经常会出问题,稳定性较差。所以一般最好不要用aux库,可以用glut库,但glut库没有纹理加载函数。而有些程序是直接读取BMP格式来获得图像数据,从而生成纹理的,这种方法虽然很强大,但比较复杂,需要了解BMP的格式,对初学者比较困难。原创 2006-05-28 21:50:00 · 11377 阅读 · 9 评论 -
OpenGL lighting hints for new programmers
Lighting in OpenGL is hard because you have to get light sources, materials, and surface normals all correct. If any one of them is wrong, it doesnt work at all. As always, the key to successful le转载 2006-12-07 22:44:00 · 1856 阅读 · 0 评论 -
Advanced Visual Effects with OpenGL - Inside the GDC 2006(From GameDev.net)
Posted March 23 1:15 PM by Dave Astle Once again, ATI and NVIDIA joined forces to present a full-day tutorial covering the转载 2006-12-07 22:53:00 · 2594 阅读 · 1 评论 -
OpenGL ES API简要介绍
和桌面Windows的3D应用一样,移动设备也需要API的支持。在Windows的发展进程中,有两种互相竞争的API存在,那就是DirectX和OpenGL。而移动设备自从推出以来一直采用的是OpenGL API的派生产物,也就是OpenGL ES。 正如你想象的一样,OpenGL ES继承了很多OpenGL的特色,其具有开放性的优点,让开发者能够更轻松的在移动平台上创建内容转载 2006-12-07 22:48:00 · 4847 阅读 · 1 评论 -
OpenGL通过读取Z Buffer深度值将屏幕2D坐标转化为场景3D坐标(含完整源码)
如需转载请注明出处:http://blog.csdn.net/skyman_2001主要有2种方法来实现屏幕2D坐标转化为场景3D坐标:一种是通过拣选射线,我的《APRG Demo》就是这样做的,有兴趣的可以查看源代码:http://blog.csdn.net/skyman_2001/archive/2005/10/06/495938.aspx;另一种是通过读取Z Buffer深度值。相比较而言后原创 2005-10-16 18:02:00 · 29872 阅读 · 26 评论 -
雾坐标扩展(EXT_fog_coord)
OpenGL标准库中的雾化不支持雾坐标,其雾化因子根据视点到片段中心的距离和雾化方式(GL_LINEAR,GL_EXP,GL_EXP2)得到,也就是说它是per-fragment的,不能更精确地控制物体的雾化显示。 EXT_fog_coord提供了雾坐标支持。雾坐标是一个浮点数或双精度数。它对每个顶点指定一个雾坐标用于雾化计算,而不是使用fragment depth-原创 2005-05-03 19:03:00 · 2755 阅读 · 0 评论 -
Constructive Solid Geometry with the Stencil Buffer
CSG是从简单的实体的逻辑组合来构建复杂的实体的过程。基本的逻辑操作(如合并、相交和补集)用来作为三维实体之间的关系操作。在这些算法中,假设实体由多边形组成的封闭表面来定义。组成体元的多边形以一致的方式定义,这样每个多边形表面的正面均向外。CSG是计算机辅助机械设计过程的一部分,用来创建复杂的实体。CSG可由模板缓存来创建,它可以被认为是一种光线追踪(ray-casting)技术,计数一实体表面的原创 2005-09-04 18:03:00 · 3318 阅读 · 2 评论 -
研究专题1《FSAA(全景反锯齿)技术》
FSAA(Full Scene Anti-Alias)即全景反锯齿技术,与其相对的是Edge AA(边缘反锯齿)技术。现在我开始研究FSAA,因为它对提高渲染的质量很有帮助,等我研究完后我会写篇心得来与大家分享的:)原创 2004-08-25 17:13:00 · 1977 阅读 · 0 评论 -
终于知道怎么做物体的阴影了!
今天看了《OpenGL超级宝典》上的一个例子,终于知道做物体阴影的例子了,下面是经过我修改的程序的截图(其中黄色小点为光源):原创 2004-08-29 17:23:00 · 3096 阅读 · 4 评论 -
纹理对象概述
纹理对象(Texture Object)用来存储纹理数据,并且使它更加容易获得。我们可以控制许多纹理,并且回到先前已经装载进入纹理资源的纹理。使用纹理对象通常是支持纹理的最快的方式,会出现高性能的结果,这是因为它绑定(重新使用)一个现有纹理对象的速度,总是比使用函数glTexImage*D()来重新装载一个纹理图象的速度更快。 另外,一些应用支持一个有限的高性能纹理的工作集(worki原创 2005-01-12 22:34:00 · 2898 阅读 · 1 评论 -
OpenGL的帧缓存
(本文参考的是《OpenGL编程权威指南》,也就是传说中的“红宝书”)一、缓存的分类1. 颜色缓存 指程序员绘图所用的缓存,分为: 左、右缓存——用于立体感视图(必须要有左缓存); 前、后缓存——用于双缓存(必须要有前缓存); 4个辅助缓存——可选择的、不可显示(程序员可以自己定义和使用它们)。2. 深度缓存 用来存储每个象素的深度值,也称为Z缓存。3. 模板缓原创 2005-01-14 19:54:00 · 5981 阅读 · 2 评论 -
Texture Wrapping Mode
在进行纹理帖图时,图象会出现在物体表面的(u,v)位置上,而这些值在[0.0,1.0]范围内。但是,如果超出这个值域,会发生什么情况呢?这由纹理的映射函数来决定。在OpenGL中,这类映射函数称为“Texture Wrapping Mode”;在D3D中,称为“Texture Addressing Mode”。常见的有下面几种: 1. 重复(GL_REPEAT):图象在表面上重复原创 2005-02-20 21:48:00 · 2398 阅读 · 0 评论 -
在OpenGL中实现多纹理混合(Multi-texture Blending)
多纹理混合技术在地形渲染中用得很广泛,用来将非常不同的多个纹理(如石头和草)混合起来,看不出明显的边缘。例如,你可以用3个纹理(石头、草和沙子)来渲染一座山,在山的底部用草和沙子来混合。 在OpenGL中通过ARB_multitexture和ARB_texture_env_combine扩展来实现多纹理混合。分为以下几个步骤: 1. 计算3个纹理各自的贡献,并将它们编码进顶原创 2005-02-21 22:08:00 · 6165 阅读 · 0 评论 -
EXT_framebuffer_object(FBO)扩展现在可用拉(翻译)
原文见OpenGL.org的2005年1月18日的新闻:http://www.opengl.org/about/news/archives/2005_01.htmlEXT_framebuffer_object(FBO)扩展是由ARB的“超级缓存(superbuffers)”工作组开发的渲染到纹理的扩展,经过长时间的等待,现在终于出来拉!它定义了一个简单的接口用于绘制到渲染目标,不同于由窗口系统提供翻译 2005-02-27 16:03:00 · 2571 阅读 · 2 评论 -
OpenGL运行库下载
OpenGL运行库下载可能有些同志遇到过这样的情况:下载的OpenGL程序由于缺少一个或多个dll文件而不能运行,这里是我搜集的常用的OpenGL运行dll库,包括:opengl32.dllglu32.dllglut32.dllglaux.dll opengl.dllglu.dllglut.dll另外,用于Dev C++、C++ Buider和VC的OpenGL开发与运行库下载地址为:http:/原创 2005-08-30 16:22:00 · 16401 阅读 · 3 评论 -
How to debug a GLSL shader?
摘自:http://stackoverflow.com/questions/2508818/how-to-debug-a-glsl-shadervoid main(){ float bug=0.0; vec3 tile=texture2D(colMap, coords.st).xyz; vec4 col=vec4(tile, 1.0); if(something) b转载 2014-03-21 00:42:58 · 4746 阅读 · 0 评论