OPENGL中3DMAX模型的应用 OPENGL中3DMAX模型的应用方 斌(贵航集团飞机设计所,贵州 安顺 561000)摘 要:阐述如何在OPENGL三维编程中实现3DMAX数据模型的程序控制,成果可用于飞机飞行的运动模拟和飞行实时监控等领域中。 OPENGL;3DMAX;ASE文件;投影和变换中图分类号:TP391.72;TH311.52 文献标识码:B 0 前 言OPENGL是一个硬件和图
我需要努力 来一个热门3D渲染技术名词解释主要是这几个ShadowVolume,NormalMap,VolumeFog,HighDynamicRange,DynamicLighting,质点-弹簧物理模型,ShaderModel3.0 目前至少有两种广泛采用的实时阴影发生技术。一种是ShadowVolume,还有一种就是ShadowMap。 ShadowVolume基于的是几何体算法,
使用模板缓冲区时需要注意的几个问题 使用模板模板缓冲时需要注意的几个问题-----作者: 熊 斌 2007.12.30 xiongbincsu@yahoo.com.cn 也许你使用过模板缓冲区,但是你真正懂得它的正确用法吗? 本人根据实践总结出下面几个问题,希望对大家能有所帮助: 1. 使用模板缓冲区的步骤 2.glStencilFunc中的参数意义,及如何选
OpenGL中的Alpha测试,深度测试,模板测试,裁减测试 大家好。现在因为参加工作的关系,又是长时间没有更新。趁着国庆的空闲,总算是又写出了一课。我感觉入门的知识已经快要介绍完毕,这课之后再有一课,就可以告一段落了。以后我可能会写一些自己在这方面的体会,做一份进阶课程。现在即将放出的是第十二课的内容。首先还是以前课程的连接:第一课,编写第一个OpenGL程序第二课,绘制几何图形第三课,绘制几何图形的一些细节问题第四课,颜色的选择第五课,三维的空间变换第六
如何投影一个纹理 (转 by 叶蔚 Azure) 纹理投影技术在实时渲染中应用很广泛, 特别是一些特效的创建(投影机效果, 反射)要向任意一个方向投影纹理一般有下面几个步骤:首先我们定义S,T,R,Q平面GLfloat SPlane[]={1, 0, 0, 0};GLfloat TPlane[]={0, 1, 0, 0};GLfloat RPlane[]={0, 0, 1, 0};GLfloat QPlane[]={0, 0, 0,
如何计算阴影贴图中的投影纹理坐标 如何计算阴影贴图中的投影纹理坐标-----作者: 熊 斌 2007.12.26 xiongbincsu@yahoo.com.cn 如需转载,请注明作者 在蓝宝书的第18章中给出了一个阴影贴图的例子,对于其中阴影透视的部分曾经让我百思不得其解,主要疑惑在于 1.一幅平面的纹理怎么样投影到
如何投影一个纹理 (翻译:心蓝 潘李亮) 如何投影一个纹理 原文出处:SGI OpenGL 教程翻译:心蓝 潘李亮。 Email: Xheartblue@etang.com 译者前言: 影子有两种经典的实现方法:一是Shadow Volume 。二是Shad
OpenGL自动计算纹理坐标( By 董士崇 jerrydong@tom.com) OpenGL中有两种方法为顶点(Vertex)指定纹理坐标:1.由人工给每个顶点分配坐标。可以通过函数glTexCord*()来完成。2.由OpenGL自动为每个顶点分配坐标。这个任务由函数glTexGen*()来完成。一开始,我对glTexGen*()这个函数并不是十分的理解,不知道OpenGL到底是怎样自动生成纹理坐标的。查阅了相关的资料,才开始有一点明白:要完成自动纹理坐标的生成,首先要指定
混合的高级教程 By Aurora_Mylove 混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。要使用OpenGL的混合
OpenGL选择模式中的问题 ---------作者 熊斌 OpenGL中的交互功能中最重要的一个是拾取(或者叫选择),但是我们经常会碰到开启了选择模式,但是确在屏幕上选不到物体,或者是点屏幕上任何地方都有物体被选中的情况.... 这是为什么呢? 看看使用选择模式的过程是怎么样的: 1.在绘图函数中给图元命名 2.在鼠标响应中调用你的选择处理函数 3. 在处理函数中
本Blog收藏了大量OpenGL文章,请到右侧"文章"列表查看 本Blog收藏了大量OpenGL文章,请到右侧"文章"列表查看 ,每个分类里面有相应的文章.包括:【帮】OpenGL管线【我】OpenGL光照【点】OpenGL交互【左】OpenGL矩阵转换【边】OpenGL曲线与曲面【的】OpenGL纹理【广】OpenGL颜色与材质【告】OpenGL教程【拜】OpenGL图像与文字【托】OpenGL资料各个分类。。
Alpha颜色混合的魔法 上篇 “法术篇” 为了便于讨论,这里只处理32bit的ARGB颜色;代码使用C++,编译器:VC2005A: 一些颜色和图片的数据定义: #define asm __asmtypedef unsigned char TUInt8; // [0..255]struct TARGB32 //32 bit color{TUInt8 b,g,r,a; //a is alpha};struct TPicRe
OpenGL绘图环境建立的关键步骤 (转 cacar 的Blog) * step1: 定义像素格式, ------------ static PIXELFORMATDESCRIPTOR pfd = { sizeof(PIXELFORMATDESCRIPTOR), // 结构体的大小 1, // 版本号 PFD_DRAW_TO_WINDOW | // 格式支持窗口 PFD_SUPPORT_OPENGL | // 格式支持OpenGL P
基于OpenGL的烟花粒子系统 (转 远航的Blog) 动画内容本动画模拟烟花的燃放过程。烟花燃放从地面升起,升到空中爆炸并产生无数小烟花围成圆形并落下,下落过程中伴随这能量的衰减直到消失。此动画的视角为仰视大致为30°。名词解释VC++6.0:一种开发环境;OpenGL:是个专业的开放的3D程序接口,是一个功能强大,调用方便的底层3D图形库;glut :OpenGL Utility Toolkit;粒子系统:是许多粒子的集合。
使用TGA文件作为纹理(转 Phil.Z) TGA文件用作纹理较BMP文件的优势在于:TGA文件的载入不需要使用aux库,并且TGA纹理可以拥有ALPHA通道。而载入TGA文件作为纹理必须要了解的是TGA文件的文件结构。TGA文件的文件结构如下面的表所示 偏移 长度
OpenGL蒙板(转 Phil.Z's Program Blog) 一、蒙板 蒙板是这样的一种机制,他用来控制深度在蒙板其后的物体,在蒙板区域的某个位置是否被显示。这个功能可以使用混色通过控制ALPHA通道的值来完成,但是这样的效果并不好,会产生蒙板上物体比较虚的效果。使用蒙板以后我们可以使得透过深度较靠前的物体看到深度较靠后物体的一个部分。 这个机制可以用两种方法来实现。 第一种方式是使用模拟的方式,它的原理是使用混色当中的象素叠加
OpenGL中蒙板缓冲区的妙用(转) 技术基础 Stenciling 蒙板1、类似于深度缓冲的逐像素测试2、与蒙板缓冲区内的值比较,测试失败的片断将被拒绝3、当以下情况时,特定的操作将被执行: -蒙板测试失败 -深度测试失败 -深度测试通过4、提供对象素更新非常细致的控制 OpenGL中相关APIglEnabe/glDisable(GL_STENCIL_TEST);glStencilFunc(function,re
ModelView矩阵的含义和应用(转 linghuye's blog) 设OpenGL的镜头坐标系的三个轴为(R,U,N),这里的R,U,N的数值表达在世界坐标系上,表达为*行*向量.则OpenGL用gluLookAt建立的ViewMatrix为: R( U ). 即ViewMatrix的第一行为R,第二行为U,第三行为-N. -N 假设当前的ModelMatrix为单位矩阵,当我们使用glGetFloatv(GL_MODELVIEW_MATRIX, &m
OpenGL选择机制的一点讨论 (转) 今天上午和susu讨论了下这篇随笔中关于选择和拾取的代码,发现有下面几个问题值得思考:1, selectBuff[BUFFER_LENGTH]是用来存放命中记录的,在选择模式下,与拾取矩阵相交的图元就会被选择命中,就会将一条命中记录写入到选择数组中,每个命中记录包括:selectBuff[0]保存命中发生时名称堆栈中的名称数目,selectBuff[1], selectBuff[2]保存了与拾
OpenGL中的选择和反馈(转) OpenGL中的选择和反馈读完此章之后,你将能够做到: 建立允许用户选择(select)屏幕区域或拾取(pick)绘制在屏幕上的物体的应用程序 利用OpenGL的反馈(feedback)模式获取绚染计算结果 有些图形应用程序只绘制两维和三维物体构成的静态图形,另一些允许用户识别屏幕上的物体并移动、修改、删除或用其它方法操纵这些物体。OpenGL正是设计用于支持这些交互式应用程序的。因
OpenGL显示列表二(转) (一)定义显示列表。 前面所举出的例子都是瞬时给出函数命令,OpenGL瞬时执行相应的命令,这种绘图方式叫做立即或瞬时方式(immediate mode)。OpenGL显示列表(Display List)是由一组预先存储起来的留待以后调用的OpenGL函数语句组成的,当调用显示列表时就依次执行表中所列出的函数语句。显示列表可以用在以下场合: 1)矩阵操作 大部分矩阵操作需要OpenGL计算逆
基于OpenGL的三维曲面数据场动态显示 (转) 基于OpenGL的三维曲面数据场动态显示2007-08-20 08:53 作者: 白婷 赵军 朱双华等 出处: 计算机与信息技术 责任编辑:方舟 摘 要 在大数据量条件下,实时动态显示三维曲面较困难,其关键在于提高三维图形数据处理和图形绘制速度。通过对基于图形工业标准OpenGL实现三维曲面动态显示的原理和方法的讨论,提出采用OpenGL的双缓存、显示列表技
显示列表的设计哲学(转) 为了优化性能,OpenGL显示列表更像是个命令缓存器,而不是个动态数据库。换句话说, 当显示列表被创建之后,它就无法进行更改。如果显示列表允许进行更改,那么由于搜索显示 列表并执行内存管理所带来的开销将会降低显示列表的性能。当一个可更改的显示列表的一部 分被修改时,内存的分配和销毁可能会产生内存碎片。OpenGL实现为了提高效率而对显示列表 所存储的函数所作的所有更改都必
OpenGL 显示列表(转) 1、显示列表概论 16.1.1 显示列表的优势 OpenGL显示列表的设计能优化程序运行性能,尤其是网络性能。它被设计成命令高速缓存,而不是动态数据库缓存。也就是说,一旦建立了显示列表,就不能修改它。因为若显示列表可以被修改,则显示列表的搜索、内存管理的执行等开销会降低性能。 采用显示列表方式绘图一般要比瞬时方式快,尤其是显示列表方式可以大量地提高网络性能,即当通过网络发出绘图命令时,由于显
OpenGL的帧缓存 (天 蚕 蛾) (本文参考的是《OpenGL编程权威指南》,也就是传说中的“红宝书”)一、缓存的分类1. 颜色缓存 指程序员绘图所用的缓存,分为: 左、右缓存——用于立体感视图(必须要有左缓存); 前、后缓存——用于双缓存(必须要有前缓存); 4个辅助缓存——可选择的、不可显示(程序员可以自己定义和使用它们)。2. 深度缓存 用来存储每个象素的深度值,也称为Z缓存。3. 模板缓
OpenGL中的矩阵存储方式 选择自 skyman_2001 的 Blog在OpenGL中,矩阵是以列优先的方式(column-major order)存储的,而一般的数学书上是以行优先的方式(row-major order)存储的。 列优先:m0 m4 m8 m12m1 m5 m9 m13m2 m6 m10 m14m3 m
使用OpenGL开发时Blend混合的参数选择技巧 在使用glBlendFunc(GLenum sfactor, GLenum dfactor )函数时,经常为选择合适的参数而大伤脑筋,不同的参数会产生不同的半透明等效果。实际上,Src有9个参数可选,而Dst有8个参数可选,从而一共有72种组合。 使用以下代码,可以查看所有可能的渲染效果,然后根据特效的索引值选择合适的参数即可。其中,RenderObjectWithAlphaAndT
OpenGL中用矩阵调色板混合顶点 扩展:GL_ARB_matrix_paletteGL_ARB_vertex_blend 顶点混合函数:V = V*Mat[0]*Weight[1] + V*Mat[1]*Weight[1] + … + V*Mat[n]*Weight[n] OpenGL增加了前面两个ARB扩展以支持矩阵调色板合顶点混合,这两项功能是硬件实现骨骼动画的基础。首先要用glEnbale(
利用VC+OpenGL实现融合,雾化,反走样 作者: 中国电波传播研究所青岛分所郎锐 出处: 天极网 责任编辑:方舟 引言 融合(blending)、雾化(fog)与反走样(antialiasing)是OpenGL中的三种特殊效果处理方法。融合提供了一种透明或半透明显示的技术;雾化处理则根据物体距离视点的远近对其进行恰当的模糊处理;反走样则可减少在绘制离散化的图形时所产生的误差走样。 实现融合特效 融合
OpenGL 光照常识 1. 几个概念 环境光——经过多次反射而来的光称为环境光,无法确定其最初的方向,但当特定的光源关闭后,它们将消失. 全局环境光——它们并非来自特定的光源,这些光经过了多次散射,已经无法确定其光源位于何处. 散射光——来自同一方向,照射到物体表面后,将沿各个方向均匀反射,因此,无论从哪个方向观察,表面的亮度都相同. 镜面反射光——来自特定方向,也被反
OpenGL开发包介绍(转) 开发基于OpenGL的应用程序,必须先了解OpenGL的库函数。它采用C语言风格,提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式:
OpenGL光照 学习笔记(转) 我的毕业设计要用到OpenGL,时间不多了,估计学习的时间也就一两个月吧。没办法,只好硬着头皮学了,不知道这一两个月能学多少。 光照光照是非常重要的一部分,对光照的设置分为三个部分:1,创建光源光源有几个特征参数,如颜色、位置和方向。用于指定光源属性参数的函数是glLight*(),它有三个参数,分别标识需要指定属性的光源、光源属性和属性值。 voi
OpenGL帧缓存(转) 作为最后一关,我们将架设自己即时光影的动画,让没有VOODOO的玩家看看OPENGL 这震撼(至少我是这么认为的吧)的效果。 我们前面(好象是第三还是第四次)讲过如何用几何变换实现动画。那时的效果现在看肯定不尽人意,因为频繁的闪烁不是我们需要的。因为那时(到这之前也是)采用的是单缓存模式。对正在显示的部分边计算边修改必然造成速度瓶颈,出现闪烁。一般正规的动画制作在实现上都是通过双缓存实现的(硬
OpenGL显示列表(转) (一)简介 所谓显示列表就是一组预选存储起来的留待以后调用的函数语句。调用此显示列表时就按次序执行其中函数。以前所有的函数调用可以称之为立即方式(Immediate mode),现在我们将介绍显示列表方式(Display list)。 显示列表可以优化程序运行性能。它被设计成命令的高速缓存,而不是动态的数据库缓存。一旦建立列表,删除前,则不能被修改,否则会带来系统效率的降低。 显示列表主要目
OPENGL的特殊效果,融合,雾化,反走样(转) 1 融合 前面从未接触过透明或半透明的物体,因为我们从未启用过融合处理 所谓融合就是假设在RGBA模式下,源色为(Rs,Gs,Bs,As),目标色为 (Rd,Gd,Bd,Ad),源因子为(Sr,Sg,Sb,Sa),目的因子为(Dr,Dg,Db,Da) 则融合的最终效果为:(Rs*Sr+Rd*Dr,Gs*Sg+Gd*Dg,Bs*Sb+Bd*Db,As*Sa+Ad*Da) 然后再归一。公式挺复杂,不过
OPENGL的光影效果(转) 为什么3D作图常常能产生另人震惊的效果?因为利用3D作图,你可以生成一些 现实中难得实现的真实的感受。特别是一些特殊的光影效果。 其实光源前面已经讲的很全面了,只是缺少一些专门的例子。这里我们来稍微 加深一下认识,我们将在例子中看到一个地方的光源对不同物体发出不同的光 这在现实中是少见的吧? 1.双面光照: void glLightModeli(LIGHT_MODEL_TWO_SIDE,GL_
OpenGL键盘操作和动画基础(转) 这一篇是讲述键盘操作和动画基础(实际还差的远哪)。只是个简单的能由用户控制的动画,让物体前后移动,左右旋转。是我们自己的第一个QUAKE!当然这个版本谁买谁上当,呵呵。 这篇的另一个目的就是加深前面对于CALLBACK函数的认识以及对于变换的直观解释,任何变换你都可以从屏幕上通过自己的操作看出来: 我只把和以前变化的部分标记中文解释 ///////////////////////////
OPENGL材质 OPENGL通过材料对R、G、B的近似反光率来近似定义材料颜色。 也分为环境、漫反射、镜面反射成分。他们决定材料对环境光、漫反射光和镜面反射光的反射程度。将材料的特性与光源特性结合就是观察的最终显示效果。例如红色塑料球,大部分是红色,在光源形成的高光处,则出现光源的特性颜色。很EASY,不是么? 材质的定义: void glMaterial{if}[v](GLenum face,GLenum
OPENGL光照处理、明暗处理、光源(转) 这里会介绍光照处理、明暗处理、光源 设置、材质定义以及相关计算机图形学的概念。 一般来说产生3D图象的步骤: 1 建模 2 将几何模型经变换投影到2D透视图 3 确定场景所有可见面,进行消隐 4 计算场景颜色 我们已经再前面介绍乐1 2 两步消隐是OPENGL的工作,我们不必关心所以4就是这里的重点。 (一)光照 分为:反射、透射光 1 简单光照模型 简单光照模型只考虑物体表面反射光的视觉影响
OpenGL立方体贴图 OpenGL 立方贴图Copyright NVIDIA Corporation, 1999.Commercial publication in written, electronic, or other forms without expressed written permission is prohibited.Electronic redistribution for edu
OpenGL FAQ 常见问题(转) OpenGL FAQ(2002/04/03)http://www.chinagamedev.nethttp://bbs.chinagamedev.net参与者:NewCyber3D.com、LangFox、mays、xnp、Qian Jingping问:我想看英文常见问题解答,有没有?答:http://www.opengl.org/developers/fa...aq.webvena.com
OpenGL表面纹理细节(转) 物体表面通常并不是具有简单颜色的平滑面,而是有着花纹图案等丰富细节的。计算机三维图形通过给面贴纹理来表现表面细节。OpenGL默认设置是关闭贴纹理的,所以必须先用命令打开纹理计算。前面提到过,可以给面指定材质来影响面上各点最终的颜色。能不能同时使用材质和纹理呢?当然是可以的,OpenGL允许你用glTexEnv(GL_TEXTUREN_ENV,GL_TEXTURE_ENV_MODE,mod
在OpenGL中使用纹理压缩 纹理压缩技术已经广泛应用在各种3D游戏之中,它们包括:DXTC(Direct X Texture Compress,DirectX纹理压缩,以S3TC为基础)、S3TC(S3 Texture Compress,S3纹理压缩,仅支持S3显卡)、VTC(Volume Texture Compression,体积纹理压缩)、PTC(Palletized Texture Compression,并行纹理
OPENGL的纹理(转) 在3D图形中,纹理映射是广泛使用的。纹理映射也是相当复杂的过程:一 定义纹理二 控制滤波三 说明映射方式四 绘制场景给出顶点的纹理坐标和几何坐标注意!!纹理映射只能在RGBA模式下使用,不适用于颜色索引模式1.纹理定义void glTexImage2D( GLenum target, GLint level, GLint components,GLsizei width, GLsizei heig
用OpenGL实现纹理自动生长(蒋立华,秦雪,刘晓东,刘归荣) 1. OpenGL 中滤波方式的不足 OpenGL中各种效果的模型体都是在同一个平面上,可以通过放大纹理坐标得到各种不同的效果,也可以实现纹理的自动扩展。但是一旦模型变化了,纹理的坐标也要随之变化,这时就需要重新进行计算。这不仅会增大计算量,而且可能会和模型的增长产生不匹配,因此这个方式在动画过程中实际效率不是很好。2. 切分面方法 滤波参数的作用对一个面的应用虽然有一些限制,但是它的自
OpenGL 中贴长宽不为2的幂的纹理的方法(李传中) 1,一幅120×120 的24 位位图,文件名为“木材.bmp”。由于它的宽度w 和高度均不为2 的幂,所以对于OpenGL2.0 以下版本,该图像不能直接用于纹理图像贴图,是非规则纹理图像。下面我们给出用C++ 语言实现这类图像纹理贴图的方法。首先我们获取图像的宽度w 和高度h:BITMAP BM;HBITMAP hBmp=(HBITMAP)LoadImage (NULL," 木材.bmp
一种凹凸贴图新算法 (薛守良,苏鸿根) 1 BUMP MAPPING简介 凹凸贴图是通过随机扰动表面法线的方法,改变光线的反射方向,从而生成表面凹凸纹理的真实感效果。Blinn 在1978 年提出上述的经典方法。理论上可以求导的函数均可以当作扰动函数F( u , v) 。 在凹凸贴图中的一个重要概念是凹凸图。凹凸图其实是一种纹理图,它包含了将要用于场景模型的纹理一些简要信息。这种信息根据使用的方法不同,有着
高手做的地形与光照非常强(转,但是不知道文章的出处了) 室外渲染有很多课题,我只做了室外地形渲染、光照阴影、水面渲染等基本的课题。本来这些课题就有多种多样的思路和算法,我将我的一些思路写出来与大家分享,希望对大家有帮助,也希望有自己不同见解的师兄能分享你的思路和方法。 下面分别介绍。 1:地形渲染。采用GeoMipmaps技术,2级lod,4层地形纹理,一张全局光照图(假如光照图是每像素对应每个顶点光照值的话,可以在初始化时将光照图中每个顶点的
OpenGL中更新一个已绑定的贴图内容(转,作者CloneCenter) 最近使用VB.NET完成了一项和OpenGL相关的项目,OpenGL是其中实现该软件的核心功能,软件中需要使用一个根据用户的不同需求实时改变已绑定的贴图图片功能,主要是字体颜色的变化。因为刚刚涉及OpenGL的编程,很多东西不懂,这里写出的方法也有可能是愚蠢、曲折的。 在创建OpenGL窗口过程中,借鉴了Nehe教程,初始化窗口的时候创建纹理,因为程序里面需要处理很多图片,所以装
OpenGL中线框图的消隐(转, 作者Y_Y) 隐藏线消除使用深度缓存的2通道绘制的OpenGL实现:1. 禁写颜色缓存 glColorMask(0, 0, 0, 0);2. 启用深度测试 glEnable(GL_DEPTH_TEST); glDepthFunc (GL_LESS);3. 以多边形填充模式绘制对象,要使用多边形偏移(Pass1) glPolygonMode (GL_FRONT_AND_BACK, GL_
使用OpenGL实现三维坐标的鼠标拣选(转) 一、简介(Introduction) OpenGL是一种比较“纯粹”的3D图形API,一般仅用于三维图形的渲染,对于特定领域的开发者(如游戏开发者)而言,如果选择使用 OpenGL进行开发,类似碰撞检测的机制就都需要自行编写了。但是由于鼠标在图形程序中的应用非常非常之广泛(例如现在已经很少有PC游戏能完全地脱离鼠标),OpenGL在图形库的基础上添加了选择与反馈机制(Sele
一个极好的OpenGL汉字显示类(转,作者Y_Y) 一个极好的OpenGL汉字显示类作者:Y___Y联系:yinwei_88@sina.com 笔者通过各方面的资料的收集,终于写出了一个OpenGL汉字显示类(最核心的内容都是从网上和NeHe的教程上找到的,这个类实际上是从各位原创作者“集合”成的,笔者只能算一个收集整理者),很好的解决了2D,3D以及图象,图形汉字(当然也包括字母)的显示。现将其公布出来。 //GLFont.h文
OpenGL曲面纹理贴图技术--波浪的模拟(转 作者 Y_Y) 学过OpenGL的人都很容易的把图片贴到四边形和三角行上,但将纹理贴到一般的曲面上认为很困难,其实通过本文的简单分析,其实很简单。本文以波浪模拟为例,来介绍一般纹理贴图技术,大家很容易举一反三来模拟其他的现象。代码的蓝本主要来自NeHe。1.简单的数学知识介绍向量的乘积(这里指叉乘)。用程序写出来如下。//三维点定义struct cvPoint...{ float x
学OpenGL的一些好的网站(转) 好的资源太多,自己懂的太少,而今迈步从头越!!fighting......一些OpenGL资源链接这是前几天自己简单整理的几个链接,希望对大家有用顺便问一下http://www.spacesimulator.net 这个网站的教程有一部分是收费的,大家如果知道那里可以看到免费的告我一声,谢谢!如果大家有关于step-by-step用OpenGL教你制作游戏引擎的也告我一下,再次感谢! 1.
学OpenGL的经典教程 1.NEHE教程,在网上可以搜索"NEHE 中文教程",这是经典的入门教程,而且可以在NEHE英文网站上下载到各种语言编写的例程, http://nehe.gamedev.net/ 与教程对应着看,很容易上手. 2.OpenGL超级宝典,这就是蓝宝书,最新版本是第三版本,建议去买一本,人民邮电出版社,88块钱,这个就比较系统详细.3.OpenGL编程指南,这是传说中的红宝书,最新的好像
用场景树来组织场景 osg存在两棵树,场景树和渲染树。场景树是一颗Node组成的树,这些Node可能是矩阵变换,或者是状态切换,或者是真正的可绘制对象,它既反映了场景的空间结构,也反映了对象的状态。而渲染树则是一颗以StateSet和RenderLeaf为节点的树,它可以做到StateSet相同的RenderLeaf同时渲染从而不用切换Opengl状态,并且做到尽量少的在多个不同State间切换。渲染树在CullVi
关于OpenGL的反馈 (转) *关于OpenGL的反馈 读完此章之后,你将能够做到: 建立允许用户选择(select)屏幕区域或拾取(pick)绘制在屏幕上的物体的应用程序 利用OpenGL的反馈(feedback)模式获取绚染计算结果 有些图形应用程序只绘制两维和三维物体构成的静态图形,另一些允许用户识别屏幕上的物体并移动、修改、删除或用其它方法操纵这些物体。OpenGL正是设计用于支持这些交互式应用程序的。因
多重纹理的混合 多重纹理贴图 xiongbincsu@yahoo.com.cn 2007.06.25 关于多重纹理: 首先如果一个显卡支持多重纹理,表示它可以将几次渲染合为一次来进行,在这个渲染过程中,你可以在不同的纹理单元分别放入第0次,第1次,第2次需要渲染的对象.当程序向屏幕绘图时,将这些渲染结果叠加起来,将最终结果显示到屏幕.
WM_NOTIF消息――子窗口的倾诉与父窗口的倾听 WM_NOTIF消息――子窗口的倾诉与父窗口的倾听 所谓通知消息 是指在一个包含子窗口的窗口中,如果子窗口发生了一些事情,需要告诉父窗口时所发送的一种消息,为了通俗易懂,我们将子窗口发送消息与父窗口的响应的过程称之为子窗口的倾诉,和父窗口的倾听两个过程。1.子窗口的倾诉 首先我们先要了解子窗口述说的方式,以及它要说的内容: 显然,一个父窗口中可能