随笔- 191
文章- 0
评论- 35
阅读-
21万
09 2010 档案
opengl及osg中的几种渲染方法
摘要:glDrawArrays 和 glDrawElements 的作用都是从一个数据数组中提取数据渲染基本图元。( render primitives from array data )注!如果要 glDrawArrays 和 glDrawElements 正确进行绘制的话,必须在之前 调用带有相应参数的 glEnableClientState 方法。 比如:/* Enable vertex arra...
阅读全文
分析drawImplementation(osg::RenderInfo& renderInfo,RenderLeaf*& previous)
摘要:void RenderBin::drawImplementation(osg::RenderInfo& renderInfo,RenderLeaf*& previous){ osg::State& state = *renderInfo.getState(); // osg::notify(osg::NOTICE)<<"begin RenderBin::draw...
阅读全文
产生渲染叶
摘要:inline RenderLeaf* CullVisitor::createOrReuseRenderLeaf(osg::Drawable* drawable,osg::RefMatrix* projection,osg::RefMatrix* matrix, float depth){ // Skips any already reused renderleaf. while (_current...
阅读全文
opengl纹理
摘要:物体表面通常并不是具有简单颜色的平滑面,而是有着花纹图案等丰富细节的。计算机三维图形通过给面贴纹理来表现表面细节。OpenGL默认设置是关闭贴纹理的,所以必须先用命令打开纹理计算。前面提到过,可以给面指定材质来影响面上各点最终的颜色。能不能同时使用材质和纹理呢?当然是可以的,OpenGL允许你用glTexEnv(GL_TEXTUREN_ENV,GL_TEXTURE_ENV_MODE,mode);命...
阅读全文
opengl累积缓存
摘要:opengl中的累积缓存(Accumulation buffer)2010-06-28 18:36累积缓存是为合成多幅图像而设计的,它不是简单的用引入象素片元来代替象素值,而是将片元进行缩放,然后加到已有的象素值上。为了经过一系列的混合操作后能够保持精度,累积缓存每个颜色分量的位数要比一般的可视化系统要多。我们可以象其他缓存一样清空累积缓存,可以用glClearAccum()来设置红、绿和蓝色分量...
阅读全文
osg求交,模型矩阵
摘要:Intersector* LineSegmentIntersector::clone(osgUtil::IntersectionVisitor& iv){ if (_coordinateFrame==MODEL && iv.getModelMatrix()==0) { osg::ref_ptr<LineSegmentIntersector> lsi = new ...
阅读全文
vs2008快捷键
摘要:一些打开啊新建就不说了……加括号粗体代表装了VAssistX插件的快捷键开发阶段:Ctrl+K->C(/):注释一段代码;Ctrl+K->U(/):取消注释一段代码;(//=)加入cpp里类方法前面的标准注释;(//-)加入开发人员个人信息,包括主机名和修改时间;编译阶段:Ctrl+F7:单编译一个cpp文件;Ctrl+Shift+B:重编译整个项目工程;调试阶...
阅读全文
osg渲染属性和opengl的接口分析
摘要:inline void State::applyModeList(ModeMap& modeMap,const StateSet::ModeList& modeList)//对每一个渲染叶都调用一次{ StateSet::ModeList::const_iterator ds_mitr = modeList.begin(); ModeMap::iterator this_mitr=...
阅读全文
Opengl RC(Render context,渲染上下文)与像素格式
摘要:以下是一些整理后的资料.1.Windows操作系统对OpenGL的支持 具有Windows编程经验的人都知道,在Windows下用GDI作图必须通过设备上下文(DeviceContext简写DC)调用相应的函数;用OpenGL作图也是类似,OpenGL函数是通过"渲染上下文"(RenderingContext简写RC)完成三维图形的绘制。Windows下的窗口和设备上下文支持"位图格式"(PIXE...
阅读全文
moveStateGraph() 状态树属性的收集过程
摘要:StateGraph* prev_rg = previous->_parent; //上一个渲染叶的状态节点 StateGraph* prev_rg_parent = prev_rg->_parent; //上一个渲染叶所在的状态节点的父节点 StateGraph* rg = _parent; 当前叶子所在的状态节点 if (prev_rg_parent!=rg->_parent...
阅读全文
opengl几种渲染方式,用顶点缓冲区
摘要:顶点缓冲区对象(Vertex Buffer Object,VBO) 使用方法OpenGL 2010-03-25 20:51:34 阅读123 评论0 字号:大中小订阅 (提示:顶点缓冲区对象是OpenGL1.5所提供的功能,但它在成为标准前是一个ARB扩展,可以通过GL_ARB_vertex_buffer_object扩展来使用这项功能。前面已经讲过,ARB扩展的函数名称以字母ARB结尾,常量名称...
阅读全文
提取旋转矩阵
摘要:非常简单.因为一个旋转矩阵不管如何旋转其x y z旋转分量的模总是1 那么只要求旋转分量的模 如果模不唯一, 那么那个摸的值就是相应scale向量分量的值. VECTOR3 scale; MATRIX33 mat;(3x3矩阵, 是4x4矩阵旋转部分) 假设行向量格式 scale.x = VECTOR3(mat(0,0) , mat(1,0), mat(2,0)).Lengt...
阅读全文
osg,由eye,center,up生成的左乘,右手坐标系的矩阵
摘要:Vec3d f(center-eye); f.normalize(); Vec3d s(f^up); s.normalize(); Vec3d u(s^f); u.normalize(); set( s[0], u[0], -f[0], 0.0, s[1], u[1], -f[1], 0.0, s[2], u[2], -f[2], 0.0, 0.0, 0.0, 0.0, 1.0);//旋转分量 p...
阅读全文
贝塞尔曲线递归
摘要:下面的说明只注重对概念的表述和对实际操作过程的说明,并不进行严格的证明。 一般的贝塞尔曲线: 对给定的n+1个点,可以作出n阶的贝塞尔曲线。其中最前和最后这两个点在曲线上,其余n-1个中间点是控制点,主要用于控制曲线的形状,不一定在曲线上。 假如给定的n+1个点是(x0,y0),...,(xn,yn),以t作为参数,则生成的曲线上的所有点可以表示如下: n x=∑C(n,i)*t^i*...
阅读全文
贝赛尔曲线,四点控制
摘要:2009年07月13日 自从上个世纪60年代,雷诺汽车公司第一次把由手工设计车体(粘土)的任务转到由计算机来完成,二维的贝塞尔曲线就成了计算机图形学中最有用的曲线之一(继直线和椭圆之后)。在PostScript中,所有曲线都用贝塞尔曲线表示--椭圆线也用贝塞尔曲线来逼近,贝塞尔曲线也用于定义PostScript字体的字符轮廓。今天的我们要感谢Pierm Bezier,是他通过一些数学的计算和推导...
阅读全文