随笔- 191
文章- 0
评论- 35
阅读-
21万
10 2010 档案
关于四元数转载
摘要:好吧,我必须承认到目前为止我还没有完全理解四元数,我一度把四元数理解为轴、角表示的4维向量,也就在下午我才从和同事的争辩中理解了四元数不完全是角、轴这么简单,为此写点心得给那些同我一样搞了2年3D游戏的还不清楚四元数的朋友。为什么使用四元数为了回答这个问题,先来看看一般关于旋转(面向)的描述方法-欧拉描述法。它使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为0-360(或者0...
阅读全文
用opengl实现多个视口
摘要:lClearColor(1.0,1.0,1.0,0.1);//仅仅设置清屏颜色,并不实际执行操作,是一个状态值glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);//把颜色缓存清为glClearColor()设置的颜色,颜色缓存指的是整个屏幕,不是指的视口,是一个动作glViewport(0, 0, 100, 100);glBegin(GL_LINES...
阅读全文
pushStateSet(const osg::StateSet* ss)建立渲染叶
摘要:inline void pushStateSet(const osg::StateSet* ss) { _currentStateGraph = _currentStateGraph->find_or_insert(ss);// if (_numberOfEncloseOverrideRenderBinDetails==0 && ss->useRenderBinDeta...
阅读全文
关于透明和不透明排序问题
摘要:首先阐明什么是深度缓存? 是一张二维数组,一般情况是32位。 根据深度来判断是否送入pipeline中的颜色缓存。 可以自己定义判断规则。2.how to use that? 深度缓存: 可以用来绘制半透明图像。 绘制半透明图像的时候,启用混合,把深度设置为只读,启用深度测试。 深度测试:将确定当前的透明像素是否被送到颜色缓冲里面。 从而确定哪一部分需要重绘。3.what is the prob...
阅读全文
PlaneBoundedVolumeList平面体积查询
摘要:学习了下OGRE中文网上的那篇中级教程后,跟据自己的情况封了一个鼠标选择类。Selection.h //============================================================================= //class: 框选矩形类 //Desc: 显示鼠标框选矩形 //day: 2008/06/30 //author: 苗琳 //=====...
阅读全文
OGRE 八叉树
摘要:void OctreeSceneManager::_addOctreeNode( OctreeNode * n, Octree *octant, int depth ){ // Skip if octree has been destroyed (shutdown conditions) if (!
阅读全文
关于八叉树及三维场景管理算法
摘要:Octree(by J. Eder 9225396) What is an Octree? Using an Octree Types of Octrees What does it represent? How is it managed? How to structure Octree-structures Pointerless full Octree Traditional desig...
阅读全文
符号文件——Windows 应用程序调试必备
摘要:windows 2009-10-08 10:37:02 阅读59 评论0 字号:大中小订阅 符号文件——Windows 应用程序调试必备作者:Generad USam一、何谓符号文件? 符号文件(Symbol Files)是一个数据信息文件,它包含了应用程序二进制文件(比如:EXE、DLL等)调试信息,专门用来作调试之用,最终生成的可执行文件在运行时并不需要这个符号文件,...
阅读全文
glsl顶点着色和片元着色的管道流程
摘要:GLSL TutorialPipeline Overview The following figure is a (very) simplified diagram of the pipeline stages and the data that travels amongst them. Although extremely simplified it is enough to present ...
阅读全文
osg传递着色器变量
摘要:> I tried using a different attribute index from 0, and the colours are now showing up. I had come across the link earlier that you posted, but didn't realise that was how OpenGL worked (I tested i...
阅读全文
最长的一帧
摘要:最长的一帧王锐(array)这是一篇有关 OpenSceneGraph 源代码的拙劣教程,没有任何能赏心悦目的小例子,也不会贡献出什么企业级的绝密的商业代码,标题也只是个噱头(坏了,没人看了^_^)。本文写作的目的说来很简单,无非就是想要深入地了解一下,OSG 在一帧时间,也就是仿真循环的一个画面当中都做了什么。对 OSG 有所了解之后,我们也许可以很快地回答这个问题,正如下面的代码所示:whil...
阅读全文
opengl像素格式管理
摘要:1、Windows下的调色板OpenGL可以使用16色、256色、64K和16M真彩色。真彩模式下不需要调色板,而在16色模式下根本不可能得到较为满意的效果,因此对OpenGL而言,调色板只有在256色模式下才有意义。我们知道,Windows把调色板分为系统调色板和逻辑调色板。每个应用程序都拥有一套自己的逻辑调色板(或使用缺省调色板),当该应用程序拥有键盘输入焦点时可以最多使用从16M种色彩中选取...
阅读全文
opengl的体系结构
摘要:OpenGL基础技术讲座--体系结构作者:佚名来源:不详发布时间:2007-4-5 18:37:428){NewaspContentLabel.style.fontSize=(--newasp_fontsize)+"pt";NewaspContentLabel.style.lineHeight=(--newasp_lineheight)+"pt";}'减小字体 增大字体 OpenGL是一套图形标...
阅读全文
剪裁空间及剪裁面
摘要:我们可以使用一个剪裁空间来控制允许绘图的空间区域。在OpenGL当中一般允许同时定义这样的6个空间。要使用剪裁空间我们需要首先用GL_CLIP_PLANE调用glEnable来打开状态,然后用glClipPlane函数来设定空间方程。我们知道一个方程Ax+By+Cz+D = 0可以定义一个空间,而所谓定义剪裁空间方程是指,使用这个方程来乘以当前视图模型矩阵M的倒数,也就是说凡满足(A,B,C,D)...
阅读全文
OpenGL帧缓存和动画
摘要:17.1、帧缓存 屏幕上所绘的图形都是由象素组成的,每个象素都有一个固定的颜色或带有相应点的其它信息,如深度等。因此在绘制图形时,内存中必须为每个象素均匀地保存数据,这块为所有象素保存数据的内存区就叫缓冲区,又叫缓存(buffer)。不同的缓存可能包含每个象素的不等数位的数据,但在给定的一个缓存中,每个象素都被赋予相同数位的数据。存贮一位象素信息的缓存叫位面(bitplane)。系统中所有的缓存...
阅读全文
glsl着色语言和osg的交互及模型矩阵的传递
摘要:void SceneView::updateUniforms(){ if (!_localStateSet) { _localStateSet = new osg::StateSet; } if (!_localStateSet) return; if ((_activeUniforms & FRAME_NUMBER_UNIFORM) && _frameStamp.val...
阅读全文