- 博客(23)
- 资源 (5899)
- 收藏
- 关注
转载 OpenGL 库 简介
OpenGL 库 简介 OpenGL库函数的命名方式为:。库前缀有gl、glu、aux、glut、wgl、glx、agl等等,表示该函数属于OpenGL哪个库。参数的类型:I代表int型,f代表float型,d代表double型,u代表无符号整型。例如glVertex3fv()表示了该函数属于gl库,参数是3个float型参数指针。用glVertex*()来表示这一类函数。 glgl
2014-04-17 11:00:58 3036
转载 OpenGL: 深度测试
OpenGL 深度测试(转)OpenGL里常出现深度测试,一直不清楚。今天就来弄清楚。 (1)什么是深度? 深度其实就是该象素点在3d世界中距离摄象机的距离(绘制坐标),深度缓存中存储着每个象素点(绘制在屏幕上的)的深度值! 深度值(Z值)越大,则离摄像机越远。 深度值是存贮在深度缓存里面的,我们用深度缓存的位数来衡量深度缓存的精度。深度缓存位数越高,则精确度越高,目前的显
2014-04-16 16:29:45 1879
转载 OpenGL: Accumulation Buffer(累积缓存)
Accumulation Buffer(累积缓存)累积缓存是为合成多幅图像而设计的,它不是简单的用引入象素片元来代替象素值,而是将片元进行缩放,然后加到已有的象素值上。为了经过一系列的混合操作后能够保持精度,累积缓存每个颜色分量的位数要比一般的可视化系统要多。我们可以象其他缓存一样清空累积缓存,可以用glClearAccum()来设置红、绿和蓝色分量的清空值,按位顺序清空累积缓存或以GL_ACCU
2014-04-16 16:04:54 3285
转载 将Ogre写入MFC框架中
将Ogre写入MFC框架中1. 新建MFC单文档程序2. 修改项目选项配置 常规 --> 输出目录 --> ..\bin\$(ConfigurationName) 常规 --> 中间目录 --> ..\obj\$(ConfigurationName) 常规 --> MFC的使用 --> 在静态库中使用MFC C/C++ --> 预处理器 --> 预处理器定义 --> 增加
2014-04-15 16:54:01 1830
转载 关于 Demo_DeferedShading 例子的分析
关于 Demo_DeferedShading 例子的分析总结:1. 可以学会克隆一个实体的方法2. 可以根据雅典娜的材质得知顶点着色器的使用, 在事先构建的切线数据(buildTangentVectors)放置于 着色程序的属性 tangent中, 着色程序就可以直接使用该属性3. 学会如何创建一个曲面, 用MovablePlane.4. 实体调用setMeshLodBias设置LOD, 数值越小
2014-04-15 16:53:30 2038
转载 Ogre 如何渲染简单的几何物体
Ogre 如何渲染简单的几何物体Ogre 如何渲染简单的几何物体使用ManualObject或者其派生类渲染简单的几何物体, 步骤如下: 1. 新创建一个ManualObject对象 mManualObj = new Ogre::ManualObject("SimpleStuff2"); 2. 设置该ManualObject的参数 1) 设置其渲染序
2014-04-15 16:52:40 1746
转载 AnimationBlender - Ogre实现不同动画之间的混合
AnimationBlender - Ogre实现不同动画之间的混合英文原文: http://test.ogitor.org/tiki/AnimationBlender动画混合 -- 实现两个动画的切换, 一个动画逐渐消逝, 另一个动画逐渐显示来实现. 主要通过动画状态的权重来实现通过三种方式来实现两个动画的混合: - BlendSwitch - 直接切换至目标动画 - BlendWh
2014-04-15 16:52:03 1845
转载 Ogre的相关工具和库 工具 Debuggers Debugging Tools for Windows http://www.microsoft.com/whdc/devtools/
Ogre的相关工具和库工具Debuggers Debugging Tools for Windows http://www.microsoft.com/whdc/devtools/debugging/default.mspx/源码控制 TortoiseCVS http://www.tortoisecvs.org/ CVSGui http://ww
2014-04-15 16:49:07 2759
转载 OpenGL: 混合
OpenGL 红宝书 混合6.1 混合6.1.1 源因子和目标因子假定源和目标混合因子分别为(Sr, Sg, Sb, Sa)和(Dr,Dg,Db,Da), 混合后的RGB值如下:(RsSr + RdDr, GsSg + GdDg, BsSb + BdDb, AsSa + AdDa)最后,将该四元组的各个分量截取到[0,1].将源片元和目标象素合并起来的默认方式是,将它们的值相加. 选择源混合因子和
2014-04-15 16:40:06 7021
转载 OpenGL: 中平截头体六个裁剪平面方程的求解
OpenGL中平截头体六个裁剪平面方程的求解空间中的坐标乘以视图模型矩阵得到视觉坐标, 再乘以投影矩阵得到裁剪坐标. 现在我求出裁剪矩阵M, 其等于投影矩阵左乘模型视图矩阵 1 GLfloat clip[16]; 2 GLfloat proj[16]; 3 GLfloat modl[16]; 4 5 glGetFloatv( GL_PROJECTION
2014-04-15 16:36:37 5383
转载 OpenGL: 深度阴影的原理
深度阴影的原理深度阴影纹理的原理:分三步, 第一步, 生成一个深度纹理. 首先将观察点移动到光源位置, 而后绘制场景, 将得到的场景帧缓存中的深度值写入纹理中第 二步, 绘制场景的时候使用纹理生成方式得到四个坐标(s, t, r, q), 这四个坐标分别代表视觉坐标系中该顶点的坐标. 而后使用纹理矩阵, 将这四个坐标自动变换为以光源为原点的坐标系的坐标, 从而r表示深度值. 此时乘以光源坐标系的投
2014-04-15 16:35:49 4677
转载 OpenGL: 平面阴影投射矩阵的推导
OpenGL 平面阴影投射矩阵的推导 OpenGL SuperBible 这本书介绍了一种阴影的实现方法, 将模型视图矩阵压平, 所有被绘制的物体都将位于这个平面的二维世界中. 不过这本书没有介绍该平面阴影投射矩阵是如何推导的. 假设平面方程 Ax + By + Cz + D = 0 已知, 光的方向L(Lx, Ly, Lz, 0)已知. 则模型视图空间的点 P(Px, Py, Pz, 1), 沿
2014-04-15 16:33:26 4490 2
转载 Visual.Studio程序员箴言 - 笔记
Visual.Studio程序员箴言 - 笔记技巧 0 删除文件中的当前行: Home + Shife-End + Delete技巧 1.1 避免意外复制一个空白行工具->选项->文本编辑器->所有语言->常规: 没有选定内容时对空行应用剪切或复制命令技巧 1.2 通过剪贴板来循环粘贴不同内容Ctrl-Shift-V: 可以在过去剪切或复制到剪贴板上的20条内容间进行循环粘贴技巧 1.3 使用 C
2014-04-15 16:30:16 1735
转载 OpenGL: glPolygonOffset解决两个面共面
摘自http://www.gamergroup.cn/html/78/n-3078.html当两个面共面时,会出现十分难看的z - fighting 问题,要解决此问题可以使用, Polygon Offset, 方法如下:drawSomething();//同一位置绘制另一个东西glEnable( GL_POLYGON_OFFSET_FILL ); // This is the one we ne
2014-04-15 16:04:57 4841
转载 OpenGL: 编程低级错误 + 常见问题解答
1.没有glDisable(GL_TEXTURE_2D),导致基本几何作图全部失败。2.镜头位置没调好,导致所有物体不可见.3.物体位置数据错误,导致物体大大超出镜头显示范围.4.纹理没有GL_CLAMP导致边界拼接出现缝线.5.纹理没有GL_REPEAT导致使用超出1.0纹理坐标技巧失败,显示单色插值.6.没有glEnable(GL_TEXTURE_2D)导致全白纹理.7.glEnable(GL
2014-04-15 15:43:06 6106
转载 OpenGL: 多边形偏移-Frame显示方式
如果想着重显示实心物体的边缘,可以先用GL_FILL模式绘制这个物体,然后再GL_LINE下再次用另外一种不同的颜色再次绘制(如右图),但是由于光栅化的方式不完全相同,因此直线和多边形经过计算后的Z值也可能不同 ,也可能向后,这就导致了线和实心忽浓忽暗的效果(右图2)glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);glutSolidSphere(1.0, 20,
2014-04-15 15:22:20 3083
转载 OpenGL: 阴影算法
图中有两条光线,一条沿视角方向,另一条偏右采用阴影体算法,实现了多光源,多物体的阴影。这个算法没有采用顶点shader,所以速度比较慢,学习算法用,在实际工程中用效率就太低了。。。算法还有个缺陷,只对凸多面体有效,如果物体是凹多面体阴影就会错误。因为我不知道如何确定凹多面体的轮廓,从而构造一个封闭的阴影体。非常希望有牛人能指点一二!主要代码如下计算轮廓
2014-04-15 14:56:50 7570
转载 OpenGL: 反走样 雾 点参数 多边形偏移
6.2 反走样void glHint(GLenum target, GLenum hint); // 控制OpenGL的某些行为参数target是要控制的行为参数hint可以是GL_FASTEST, GL_NICEST, GL_DONT_CARE.(效率最高, 质量最好, 没有选择)参数target的取值及其含义:GL_POINT_SMOOTH_HINT, GL_LINE_SMOOTH_HIN
2014-04-15 14:51:09 2564
原创 glPolygonOffset消遮挡闪烁
一般的3D显示都通过深度缓冲区来处理遮挡问题,这样的好处就是不管绘制顺序如何,最终总能得到相同的结果。但是深度缓冲区的精度是有限的(一般是每个像素采用16bit或者24bit来表示深度),如果两次绘制到同一个像素时,深度值相差非常小,就有可能无法正确的辨别究竟哪一次绘制的深度值更小,此时深度测试(GL_DEPTH_TEST)就出错了。参考:http://en.wikipedia.org/wiki/
2014-04-15 14:41:43 4717
转载 OpenGL: 深度冲突(Z-Finghting or Depth Fighting)的解决
OpenGL,或者D3D 的深度缓存都存在精度问题,在最新的Nvidia GF8 系列显卡中已经开始应用float point depth buffer. 而在此之间,深度缓存其实只有位平面的概念. 这随API的不同,都需要指定后缓存深度缓存精度, Depth ,我一般使用24位,也就是D3D中常见的 D24S8. 但除非你是用浮点,否则都会有精度损失的问题,这种情况总是发生在2个几乎共面的片面,
2014-04-15 11:47:37 5023 1
转载 OpenGL函数
开发基于 OpenGL 的应用程序,必须先了解 OpenGL 的库函数。它采用 C 语言风 格,提供大量的函数来进行图形的处理和显示。OpenGL 库函数的命名方式非常 有规律。所有 OpenGL 函数采用了以下格式: 库前缀有 gl、glu、aux、glut、wgl、glx、agl 等等,分别表示该函数属于 OpenGL 那个开发库,从函数名后面中还可以看出需要多少个参数以及参数的 类型。I 代
2014-04-15 11:46:01 6481
转载 OpenGL: 编程低级错误范例手册
Opengl编程低级错误范例手册1.没有glDisable(GL_TEXTURE_2D),导致基本几何作图全部失败。2.镜头位置没调好,导致所有物体不可见.3.物体位置数据错误,导致物体大大超出镜头显示范围.4.纹理没有GL_CLAMP_TO_EDGE 导致边界拼接出现缝线. 5.纹理没有GL_REPEAT导致使用超出1.0纹理坐标技巧失败,显示单色插值.6.没有glEnable(GL_TEXTU
2014-04-15 11:29:44 1767
转载 OpenGl: glenable()函数理解
glEnable用于启用各种功能。功能由参数决定。与glDisable相对应。glDisable是用来关闭的。两个函数参数取值是一至的。参数说明:void glEnable(GLenum cap)GLenum 是unsigned int 类型cap 是一个取值。由值决定启用的功能键。各种功能请看参数cap的取值表代码示例:…… 000 glEnable(GL_BL
2014-04-15 11:25:44 6075
qt-win-noncommercial-msvc-3.2.1
2014-09-08
openqrm_cloud_howto_deploying_physical_windows_systems_on_centos_5.5
2014-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人