摘要: for(std::vector<FPoint3>::size_type i = 0; i < footprints.size(); i++)用 int i 也可以,但是会有警告。 阅读全文
posted @ 2013-03-28 13:35 qingsun_ny 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 首先先从图像中读取纹理: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 阅读全文
posted @ 2013-03-28 10:16 qingsun_ny 阅读(1454) 评论(0) 推荐(0) 编辑
摘要: 转自: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 阅读全文
posted @ 2013-03-25 14:31 qingsun_ny 阅读(1355) 评论(0) 推荐(0) 编辑
摘要: Color bleeding描述的现象是比如一面墙原来是白色,由于房间里物体的原因,使得墙面反射物体的那一部分变成物体的原色,这种现象叫做Color bleeding。Caustics 的情况是类似于凸透镜,将光源的光聚集到某一个小面上。如下图 阅读全文
posted @ 2013-03-21 11:00 qingsun_ny 阅读(813) 评论(0) 推荐(0) 编辑
摘要: 如果角A是锐角,向量AB * AC 求出的是三角形ABC的法向量;平面中A剩下的角度2PI-A>PI,两个向量,使用右手定则时必须注意两条向量,比如由AB到AC,二者的夹角要<PI才能使用右手定则说是从AB到AC,否则应使用从AC到AB,才不会导致法线反向。 阅读全文
posted @ 2013-03-21 00:15 qingsun_ny 阅读(2402) 评论(0) 推荐(0) 编辑
摘要: 区别如图所示:由此可见,如果要用上述的几种不同模式来模拟圆形,应该使用GL_TRIANGLE_FAN模式。另:FAN是扇形的意思,顾名思义也应该用GL_TRIANGLE_FAN模式,STRIP是条的意思。OPENGL中的命名是带有指明性意义的,因此使用的时候不妨多从名字来揣摩不同的绘制模式。 阅读全文
posted @ 2013-03-20 21:33 qingsun_ny 阅读(5231) 评论(0) 推荐(0) 编辑
摘要: 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中存储该交点的三维信息,光强和入射方向。 阅读全文
posted @ 2013-03-20 21:05 qingsun_ny 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/progbelief/article/details/5933340atoi用来将整数形式的字符串转化为对应的整数,比如,“1234”转化为1234。不过atoi的返回值比较怪异,如果源字符串不能转化的话,会返回0。这样字符串本身就是“0”,则仅凭返回0就无法判断转化成功还是出错了。下面的代码给出了正确的使用方法,是将一个命令行参数转化为整数:if ((a = atoi(argv[2])) == 0 && *argv[2] != '0'){ fprintf(stderr, "invalid value: 阅读全文
posted @ 2013-02-21 11:05 qingsun_ny 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 转自:http://blog.csdn.net/tender8888/article/details/7275310argc表示参数个数argv代表路径参数以以上程序为例在 project -> properties中Configuration Properties下拉目录中的Debugging-> Command Arguments可以进行argv[]的元素设置如图所示。使用以上参数之后,1 IplImage* img = cvLoadImage( argv[2] );IplImage*img=cvLoadImage(argv[2]);中的argv[2]为数组第二个元素,系统将自 阅读全文
posted @ 2013-02-21 10:26 qingsun_ny 阅读(257) 评论(0) 推荐(0) 编辑
摘要: OpenGL的透视变换,基本的理解是三个步骤(以glFrustum为例):1. 规定frustum,即视野范围;2. 进行切割;3. 将frustum压缩到canonical cube(2*2*2)中,这步又称为透视除法。转自:http://dev.gameres.com/Program/Visual/3D/shenruTS.htm深入探讨透视投影坐标变换 写3d图形程序,就一定会做坐标变换。而谈到坐标变换,就不得不提起投影变换,因为它是所有变换中最不容易弄懂的。但有趣的是,各种关于透视变换的文档却依然是简之又简,甚至还有前后矛盾的地方。看来如此这般光景,想要弄清楚它,非得自己动手不可了。所以 阅读全文
posted @ 2013-02-20 22:36 qingsun_ny 阅读(647) 评论(0) 推荐(0) 编辑