03 2013 档案
摘要:1 要对纹理进行任何的操作,必须先使该纹理问当前的active纹理 glGenTextures( 1, &reflectionTexObj ); glBindTexture( GL_TEXTURE_2D, reflectionTexObj ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); glTexParameteri( GL_TEXTURE_2D, GL...
阅读全文
摘要:for(std::vector<FPoint3>::size_type i = 0; i < footprints.size(); i++)用 int i 也可以,但是会有警告。
阅读全文
摘要:首先先从图像中读取纹理:Program part1:void SetUpTextureMaps( void ){// This texture object is for the ceiling texture map. GLuint ceilingTexObj; const char ceilingTexFile[] = "images/ceiling.jpg"; glGenTextures( 1, &ceilingTexObj ); glBindTexture( GL_TEXTURE_2D, ceilingTexObj ); glTexParameteri( G
阅读全文
摘要:转自:http://blog.csdn.net/stilling2006/article/details/5549310gluBuild2DMipmaps与glTexImage2D两者的都是从图片生成纹理,即将图片加载到内存中。glTexImage2D()的用法举例glTexImage2D(GL_TEXTURE_2D, //此纹理是一个2D纹理 0, //代表图像的详细程度,默认为0即可 3,//颜色成分 TextureImage[0]->sizeX, //纹理的宽度TextureImage[0]->sizeY, //纹理的高度 0,//边框的值 GL_RGB, //告诉OpenG
阅读全文
摘要:PS:纹理坐标系用S-T来表示,S为横轴,T为纵轴。转自:http://blog.sina.com.cn/s/blog_4ea497b70100hwir.htmlglTexParameter*(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); glTexParameter*(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); 实际上,第一个参数可以是GL_TEXTURE_1D或GL_TEXTURE_2D,即表明所用的纹理是一维的还是二维的;第二个参数指定滤波方法,其中参数值GL_TEXTURE_MA.
阅读全文
摘要:Color bleeding描述的现象是比如一面墙原来是白色,由于房间里物体的原因,使得墙面反射物体的那一部分变成物体的原色,这种现象叫做Color bleeding。Caustics 的情况是类似于凸透镜,将光源的光聚集到某一个小面上。如下图
阅读全文
摘要:如果角A是锐角,向量AB * AC 求出的是三角形ABC的法向量;平面中A剩下的角度2PI-A>PI,两个向量,使用右手定则时必须注意两条向量,比如由AB到AC,二者的夹角要<PI才能使用右手定则说是从AB到AC,否则应使用从AC到AB,才不会导致法线反向。
阅读全文
摘要:区别如图所示:由此可见,如果要用上述的几种不同模式来模拟圆形,应该使用GL_TRIANGLE_FAN模式。另:FAN是扇形的意思,顾名思义也应该用GL_TRIANGLE_FAN模式,STRIP是条的意思。OPENGL中的命名是带有指明性意义的,因此使用的时候不妨多从名字来揣摩不同的绘制模式。
阅读全文
摘要:Two path ray tracingFirst path:从light向场景中的任意方向发射很多条的ray,然后不断的衍生出次级的ray直至碰到漫反射表面,然后将能量存储在与漫反射表面的交点上。Second path:与ray tracing一样,直至碰到漫反射表面,用first path在与漫反射交点上存储的值累加到ray tracing计算的值中。Photon Mapping是two path ray tracing的变形,从光源处向各个方向发出ray,在与场景中的object相交后,在octree中存储该交点的三维信息,光强和入射方向。
阅读全文
摘要:Path tracing 是指从一个像素中发出multiple random rays, 相当于从眼睛到像素这一个方向打出很多条ray,然后在同一个交点上发出secondary ray, 有多少条primary ray就有多少条secondary ray,然后secondary的方向任意,不一定要是发射光线的方向。到secondary就停止tracing,这是其与ray tracing的区别。因为secondary ray的方向任意,所以就出现了各种采样的方法来确定secondary ray的方向,使得能够更好的模拟真实场景。因为如果采到比较强的镜面反射,这样的反射光贡献更大,也更接近现实,也
阅读全文
摘要:基本原理:1 以光源为原点,即光源坐标系,将视点移至光源处,启用depth buffer形成一张depth map,也就是所谓的shadow map,这样得到的是一张离光源最近的图,即没有阴影的图;2 恢复视点到其原来的位置,启用frame buffer,计算场景中每个像素到光源的距离,然后与depth map比较,如果到光源的距离相等,则不在阴影中,如果距离大,则在阴影中。根据比较结果,对light fragment和shadow fragment分别使用不同的方法计算光照,从而实现阴影效果。
阅读全文
摘要:值得注意的几点:1. Depth pass与depth fail最本质的区别在于前者计算的是眼睛到物体之间经过了多少shadow volume,即shadow volume的计数(shadow volume count);而后者是计算了从眼睛到物体的射线,以物体为起点,然后方向与 眼睛->物体 一致,出了所有shadow volume的计数。2.Depth pass和depth fail本质上指的就是上述的两条相应的射线,然后根据各自的规则,为与射线相交的front face和back face +1或 -1(eg. depth pass为与其相交的front face +1,为与其相交
阅读全文
摘要:BSP (Binary space participation):二叉树Quad tree: 四叉树Octree tree:八叉树kd tree (k dimension):平衡二叉树
阅读全文
摘要:随机数是怎么产生的:在自然界中,很多随机出现的自然现象我们无法预测,这是某种意义上的随机,但是在计算机中,随机肯定不是真正的无法预测的随机,而是根据某种算法产生的,咋看无法看出随机数之间的关系,需要用电脑就行关系解析的所谓的“随机数”,因此计算机产生的随机数又称为“伪随机数”。在用传统方法难以解决的问题中,有很大一部分可以用概率模型进行描述.由于这类模型含有不确定的随机因素,分析起来通常比确定性的模型困难.有的模型难以作定量分析,得不到解析的结果,或者是虽有解析结果,但计算代价太大以至不能使用.在这种情况下,可以考虑采用 Monte Carlo 方法。Monte Carlo法是一种随机采样法,
阅读全文
摘要:辐射度(Radiosity)算法是将表面当成漫反射表面,只考虑面与面之间漫反射的相互作用。光线跟踪(Ray Tracing)是将表面当成镜面反射表面,只考虑面与面之间镜面反射的相互作用。下面第一段摘自:http://www.opengpu.org/forum.php?mod=viewthread&tid=2489辐射度算法的原理就是模拟真实世界中的光照原理,在场景中的每个位置收集所有在该位置所能看到的颜色信息,然后对这些颜色信息进行汇总处理,作为最终该位置的颜色并对当前的位置进行着色。在现实世界中,这个位置就代表了无穷多个无限小的像素点,但在计算机中却不可能做到这样一点,因此只能进行近
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_678716330100wkfq.html双向反射率BRDF的定义BRDF可以表现镜面反射(镜面),漫反射(朗伯表面),以及介于二者之间的方向反射(非朗伯表面)。物体表面对电磁波的反射有三种形式:"镜面反射(mirror reflection)反射能量集中在一个方向,反射角=入射角"漫反射(diffuse reflection)整个表面都均匀地向各向反射入射光称为漫反射"方向反射(directional reflection)介于漫反射和镜面反射之间,各向都有反射,但各向反射强度不均一。实际上多数
阅读全文
摘要:转自百度百科FME(Feature Manipulate Engineering,简称FME)是加拿大Safe Software公司开发的空间数据转换处理系统,它是完整的空间ETL解决方案。该方案基于OpenGIS组织提出的新的数据转换理念“语义转换”,通过提供在转换过程中重构数据的功能,实现了超过250种不同空间数据格式(模型)之间的转换,为进行快速、高质量、多需求的数据转换应用提供了高效、可靠的手段。CITYGML使用FME软件生成相应文件,使用LandXplorer软件实现可视化。FZKViewer-2.3可以用于显示CityGML文件。Building Maker:Google Ear
阅读全文
摘要:转自:http://blog.sina.com.cn/s/blog_4b700c4c0102e1nv.htmlhttp://www.citygml.org/http://citygml.72pines.com/http://www.bimtime.cn/BIM-software/3dcity/325.htmlCityGMLCityGMLis a common information model for the representation of sets of 3D urban objects. It defines the classes and relations for the most
阅读全文
摘要:解决方法:将所有.h和.cpp中的所有的标准c++类库的头文件位于其他类的头文件之前。
阅读全文
摘要:转自:http://hi.baidu.com/gltracy/item/37f5852939404af850fd87d5我简单地介绍一下Phong光照模型...虽然这种光照模型算是比较古老的,但是通过合适的参数设置,仍然可以实现真实的效果。我们的目标是渲染出以下效果,这里以Doom3的男主角为例(终于不是怪物了...)一般而言,Phong光照模型分为三个累加阶段:漫反射,镜面反射和环境光以下按顺序说明:1.漫反射(Diffuse)对于表面比较粗糙的物体,基本表面的明暗就是漫反射效果,比如裤子的材质。某一个象素的明暗系数只取决于该点与光源的相对位置,而与眼睛的位置无关。diffuse_color
阅读全文
摘要:转自:http://www.cnblogs.com/daniagger/archive/2012/05/27/2520273.html1、主光线(Primary rays)从camera发出的光线。2、阴影光线(Shadow/Light rays)从交点发出的光线,指向光源。如果这条光线在指向光源之前不相交于任何物体,则这个光源对该交点有贡献值;否则,该交点位于该光源的阴影处。3、反射光线(Reflection rays)如果物体表面具有反射性质,则部分光将会被反射出去,继续在场景中前进。根据Snell定律,一条新的光线将会从交点发出。4、折射光线(Refracted rays)当物体表面具有
阅读全文

浙公网安备 33010602011771号