`
daojin
  • 浏览: 690011 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

自己动手实现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

 

 

 

分享到:
评论

相关推荐

    OpenGL实现的运动的小汽车

    OpenGL是一种强大的图形编程接口,它允许开发者创建复杂的2D和3D图形。在这个"OpenGL实现的运动的小汽车"项目中,我们...同时,这也提供了一个实际应用的平台,让学习者能够动手实践,提升对OpenGL的理解和编程技能。

    openGl绘制茶壶纹理

    OpenGL是一种强大的图形编程接口,广泛应用于游戏开发、科学可视化、工程设计等领域。...结合这些文件,你可以实践上述步骤,实现OpenGL中的茶壶纹理渲染。记住,实践是检验知识的最好方式,动手尝试吧!

    实验五_opengl三维_VC++6.0_

    总的来说,这个实验旨在让初学者熟悉OpenGL在VC++6.0中的基本使用,理解三维变换和投影的概念,并能够实际动手操作。通过这个实验,你可以掌握OpenGL的基本编程技巧,为进一步深入学习三维图形编程打下坚实的基础。

    Opengl实现的Ray Casting 光线投射算法

    OpenGL是一种强大的图形库,用于在各种操作系统上创建2D和3D图形。光线投射算法(Ray Casting)是计算机图形...通过对文件"RayCasting"的详细研究,你可以深入理解这些知识点,并动手实践,从而提升自己的图形学技能。

    在VC中实现OpenGL三维绘图

    在VC中实现OpenGL三维绘图,需要理解几个关键概念和步骤。 首先,了解OpenGL的基础知识至关重要。OpenGL是一个跨语言、跨平台的编程接口,用于渲染高性能的2D和3D图形。它提供了大量函数和状态机,允许开发者控制...

    opengl画的小花

    OpenGL是一种强大的图形编程接口,广泛应用于游戏开发、科学可视化、工程设计等领域。它允许程序员创建复杂的3D图形和动画,提供了丰富...对于初学者,这是一个很好的动手项目,可以帮助他们从理论知识过渡到实际应用。

    openGL三维旋转

    OpenGL三维旋转是计算机图形学中的一个重要概念,它允许...对于初学者来说,理解这些概念并动手实践是学习OpenGL的关键。通过这个例子,你可以逐步掌握如何在实际项目中应用这些知识,进一步探索更复杂的3D图形效果。

    C语言OpenGL贪吃蛇小程序

    **C语言OpenGL贪吃蛇小程序**是一门基于C语言实现的、使用OpenGL图形库开发的简单游戏项目。OpenGL是开放图形库,是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。这个小程序旨在帮助学习者理解和掌握...

    实验五_(源程序2).rar_OPenGl实现_opengl模型_opengl矩阵_physicale1d

    在“实验五_(源程序2).rar_OPenGl实现_opengl模型_opengl矩阵_physicale1d”这个实验中,我们将深入探讨OpenGL如何处理矩阵变换、模型视图变换以及投影变换,这些都是在3D图形渲染中不可或缺的基础。 1. **OpenGL...

    OpenGL SuperBible 7 pdf

    1. **理论与实践结合**:学习OpenGL时,不仅要理解理论知识,还应该动手实践,通过编写简单的程序加深对概念的理解。 2. **关注官方文档**:OpenGL官方网站提供了详细的API文档和技术指南,是学习OpenGL的重要资源。...

    opengl建模程序代码

    OpenGL是一种强大的图形编程库,广泛应用于游戏开发、科学可视化、工程设计等领域。在这个"opengl建模程序代码"中,我们可以深入...记住,实践是掌握任何编程技术的关键,因此动手操作是理解和掌握OpenGL的最好方式。

    OpenGL 射击游戏 exe

    OpenGL的选择机制通过glSelectBuffer和glRenderMode等函数实现,配合深度缓冲区,可以记录下鼠标点击时与屏幕像素对应的3D对象信息。 这个项目中,Debug文件夹很可能包含了编译后的可执行程序、调试信息以及可能的...

    AndroidOpenGL开发示例

    在Android平台上,OpenGL ES(OpenGL for Embedded Systems)是一种广泛用于创建2D和3D图形的应用...记住,实践是掌握OpenGL ES的关键,因此,不仅要理解代码背后的理论,还要动手尝试修改和扩展这些示例,以加深理解。

    OpenGL 编程指南 第7版

    4. **实践项目**:通过动手实现小项目来巩固所学知识,比如实现一个简单的3D模型渲染器。 综上所述,《OpenGL编程指南第7版》作为一本专注于OpenGL编程的指南书籍,将涵盖上述所有方面以及其他更深入的主题,非常...

    opengl源码例子.rar_OpenGL 经典案例_OpenGL函数_opengl_opengl代码网站_opengl源码

    通过实际操作和研究这些代码,初学者可以逐步理解OpenGL的工作原理,熟悉函数用法,并且能够动手创建自己的3D图形项目。同时,结合在线资源和社区,学习过程将更加顺利,问题解决也会更有效率。

    NeHe的opengl教程

    通过跟随教程逐步学习,初学者可以快速掌握OpenGL编程,并建立起自己的3D图形项目。由于OpenGL是一个跨平台的API,因此学习它能让你的技能在不同的操作系统上通用。 总的来说,NeHe的OpenGL教程是一套非常适合初学...

    OpenGL.rar_OPENGL 纹理_OPENGL光照_OpenGL光照纹理_opengl 光照

    OpenGL是一种广泛应用于游戏开发、图形渲染和科学可视化等领域...要深入学习和理解这些概念,你可以查看压缩包内的源代码、教程或示例,这将有助于你亲自动手实践OpenGL的纹理和光照技术,进一步提升你的图形编程能力。

    易语言源码易语言OpenGL教程第37课卡通映射源码.rar

    通过解析和运行源码,我们可以直观地理解每一步的作用,并能动手修改和优化,以创造出自己的卡通渲染风格。 最后,易语言OpenGL教程的第37课卡通映射源码为我们提供了一个实践平台,通过学习和实践,我们可以深入...

    OpenGL游戏

    OpenGL游戏,特别是“贪吃蛇”小程序,是利用OpenGL图形库来创建的一种经典游戏的现代实现。OpenGL,全称为Open Graphics Library,是一个跨语言、跨平台的编程接口,用于渲染2D、3D矢量图形。它允许程序员直接与...

Global site tag (gtag.js) - Google Analytics