OpenGL
kylaoshu364
这个作者很懒,什么都没留下…
展开
-
OPENGL镜面光反射
要使物体能够根据视点的不同而看出来有光线移动的效果,我们需要加上镜面反射:由于镜面反射光的计算项=max{0,S.N}shininess*specularlight*specularmaterial,所以我们可以看出需要设置镜面反射指数GL_SHININESS,光源的镜面反射光分量以及材质的镜面反射属性: 1.材质的镜面反射光的反射率和控制亮度区域的大小的亮度: GL原创 2010-03-19 16:10:00 · 2437 阅读 · 0 评论 -
opengl数组索引
由于在研究模型的读取,所以仔细体会了一下OPENGL中的数组和解索引:对与GLDrawElements()中的第四个参数,应该是点的索引,所以如果你要画出模型的画,应该定义一个含两个顶点的边索引,通过画出GL_LINES来画出模型,而对于实体模型(就是要求有面信息的模型),需要法相索引和面索引两部分。原创 2010-03-19 15:06:00 · 1079 阅读 · 0 评论 -
ModelView矩阵的含义和应用
设OpenGL的镜头坐标系的三个轴为(R,U,N),这里的R,U,N的数值表达在世界坐标系上,表达为*行*向量.则OpenGL用gluLookAt建立的ViewMatrix为: R( U ). 即ViewMatrix的第一行为R,第二行为U,第三行为-N. -N 假设当前的ModelMatrix为单位矩阵,当我们使用glGetFloatv(GL_MODELVIEW_MATRIX, &mat),转载 2010-05-14 20:05:00 · 1387 阅读 · 0 评论 -
投影矩阵备忘
投影矩阵(Project Matrix)本意是将不规则的视图体(View Volume)变换成一个单位立方体,但投射到屏幕时,Z被丢弃了,所以造成了2D投影的假象.注意这是错觉,实际概念应该是投射到单位立方体空间,是空间投射的概念.需要注意的是,OpenGL最终投射到单位立方体[-1,-1,-1], [1, 1, 1],而DirectX则不是,它的投影矩阵将Z投射到[0, 1].丢弃掉Z后转载 2010-05-14 19:52:00 · 529 阅读 · 0 评论 -
OpenGL矩阵转置测试——禁止转载
一直没有找到很好的解释,或者解释复杂简短,还是自己动手测试一下,测试步骤如下:1.输入glTranslatef(0.1,0.1,0.0);得到的GL_MODELVIEW_MATRIX的值为: 说明变换矩阵变换的是12,13,14,15这几个变量,问题又产生了,12,13,14,15又是最后一行还是最后一列呢?2.输入 glMatrixMode(GL_MODELVIEW)原创 2010-05-18 18:56:00 · 1086 阅读 · 0 评论 -
OpenGL关于转换的一些遐想--------禁止转载
前面已经讲过,OpenGL所谓的按列存储不如说是按列扫描矩阵更容易理解,因为内存中的数据还是按行的。 在做阴影贴图的时候,我们发现纹理坐标所得来的矩阵 T = bias * lightprojectmatrix * linghtmodelviewmatrix * cameramodelviewmatrix的逆 ,然后再由 T * V便得到了需要的纹理坐标。由于是坐平移和缩放,根据原创 2010-05-18 19:42:00 · 490 阅读 · 0 评论 -
OpenGL关于gl_object_plane和gl_eye_plane的一些遐想————禁止转载
给定自己的图片: 分别产生object和eye ——S方向的坐标时(不指定PLANE,测试默认是(1.0,0.0,0.0,0.0)),得到的效果如图: 发现效果其实是一样的,但移动右边(eye_planex)的图,怎显示的结果如下: 现在才是揭开(eye_plane)答案与机密的时候了:其实生成的纹理坐标的(x,y,z,w)中的眼坐标是指在眼坐标系原创 2010-05-19 17:16:00 · 1817 阅读 · 0 评论 -
OpenGL关于纹理坐标s、t、r、q的遐想之一————禁止转载
通过观察试验结果,我个人认为,OpenG中当你自动生成纹理坐标的时候,有可能你指定的是以为S坐标,而绑定的是而为的图像,这时候怎么办呢?通过上面的实验图,我们发现(也是我猜测哦),t会默认去0,为了验证我的效果,那么就只设定T坐标,而不设定S坐标看看效果图吧: 是不是很像最左边一列的像素的排列,在试一下只设定S,不设定T的效果吧: 是不是有点看不清啦,这就对了,因为是最原创 2010-05-19 18:37:00 · 7751 阅读 · 3 评论 -
MFC和OpenGL的结合Wizard
<br />真是晕啊,昨天写程序写到一半实验室突然断电,刚才重新写了一般又没有传上去,唉,一波三折,重新写一遍吧。<br />1,基于对话框的OpenGL实验图:<br /> <br />2.基于单文档的OpenGL实验图:<br /> <br />3,基于多文档的OpenGL实验图:<br /> <br />实验中遇见问题最多的肯定是关于多文档的实验,由于多文档中有很多窗口需要绘制,而当前的OpenGL绘制描述表只能有一个,因此,在窗口的图形绘制完之后,必须将OpenGL绘制描述表进行释放。<br />为原创 2010-07-15 11:35:00 · 686 阅读 · 0 评论