首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

自己动手实现OpenGL

2013-12-15 
自己动手实现OpenGL!OpenGL 的学习,一开始时学习API,随后是深入理解矩阵。矩阵学完之后,又回过头来去理解纹

自己动手实现OpenGL!

OpenGL 的学习,一开始时学习API,随后是深入理解矩阵。矩阵学完之后,又回过头来去理解纹理。

最大的成就莫过于自己动手实现OpenGL。OPenGL的矩阵实现中主要遇到以下问题:

参考:

http://daojin.iteye.com/admin/blogs/1954425

?

1. 都有哪些矩阵,矩阵如何构造。

?? 主要是三个矩阵:

?? 1. 投影矩阵 Mp

?? 2. 模型(视图)矩阵(实际上是一个矩阵,为方便模拟相机好理解,才分开,方便理解与学习)。?? Mmodel_view

?? 3.?视口矩阵。Mviewport

??????

以上三个矩阵1,3 都有现成的可以使用。对于2,那么必须由开发者构造。

2. 坐标如何根据矩阵变换。

?? Mmodel_view * Mp

?? 变换后除以w。得到正规化坐标。

?? 然后再乘以ViewPort矩阵,得到屏幕坐标。

3. 裁剪。

一开始实现了1和2,对于3(裁剪)到现在也没有实现出来。但是找到了android的AGL的源代码中的裁剪部分,并理解了其中的算法。基本上的思路是,对与原来三角形与【视景体对应的正规化立方体(openGL术语,也就是x,y,z?为?-1,1 的边长为2的立方体)】求交点,得到多边形,然后多边形再转换为多个三角形存起来。

?

?

下面的博客是关于魔兽争霸地形贴图的算法,主要思想是一个方块分为中间菱形挖空的四个角。然后,根据角的个数和方位,中间进行填充。如果四个角都满的,那么就随机填一个满的进去:

下面说的1,2,4,8对应的是脚码,能结合出 其他的1~15的土块。也就是 2的4次方个。下面是一个同仁的解释:

http://www.cppblog.com/mybios/archive/2008/10/26/65076.html

?

?

?

热点排行