可以把OpenGL看成一条生产流水线,原料是场景、物体的顶点、表面细节等信息,产品是看起来有三维感觉的平面位图。
在OpenGL中是以面边界(B-REP)模型
来描述物体的,或者说是使用多边形造型系统。在OpenGL中每个物体都只是一组平面,这组平面记录了该物体的表面。显然这些平面越小画出不断的物体越逼真。
生成本图的程序
源码(http://chinaaspdownload.xajh.net/delphiuser/zhuanlan/opengl_1/polymodalsrc.zip
)[需要TGLPanel]
而物体表面的每个平面都只需要边界和平面上的图案就足以表示。在OpenGL中需要用户提供围绕平面边缘的线段的顶点参数、平面内图案的位图两组信息,术语称为Vertex(顶点)、Texture(纹理)。
如果表示物体的平面小到一个像素那么得到图像将会是极为真实的,然而这意味着天文数字般的计算任务。所以OpenGL三维图形程序设计
很大程度上是在质量与速度之间折中的艺术。
在计算机三维图形学上还有诸如实体几何、Voxel等其它的方法,有很多朋友问过我医学图象处理方面的问题,其实在该领域里使用得更多的是Voxel方法,该方法可以很好在像素级计算生成剖面等的图像,另外象DeltaForce这个游戏
也使用了该方法。目前还没有见过支持Voxel加速的硬件
,所以DeltaForce是需要全部使用CPU计算的,而支持OpenGL硬件加速的显卡满大街都是,而且适当使用纹理也可以取得极为逼真的效果。
总而言之,OpenGL吃进去的是顶点和纹理,挤出来的是看上去很三维的平面位图。
不知道什么是位图?!就是那个啥你在屏幕上看见那个呀。^o^
OpenGL流水线工作的原理是咋样的呢?那可是一个复杂的过程,下面简单描述一下,详细的自己看三维图形学的书去吧。
客户端(即咱们写的图形应用程序)==命令和数据==$#@62;服务器(流水线)==$#@62;帧缓冲区
客户在程序中所发的命令和数据并不是立即传到流水线执行的,流水线在收到glFlush/glFinish/SwapBuffers之类的命令之后才会真
正开始执行命令加工数据,这些命令都有说明某一阶段处理相关的指令数据改送已经结束请求获得所需结果的含义。这就是所谓的客户/服务器模式。
衿鹘邮漳男┟詈褪荩衷跹谜庑┦萁心男┐砟兀看笾律峡梢砸来畏殖伤母鼋锥危?
- 坐标变换,生成基本图元
- 裁剪,只留下视见范围内的部份
- 光栅化,生成图形片段
- 逐片段操作,生成素像
分享到:
相关推荐
### Android OpenGL原理分析 #### OpenGL概述 OpenGL,全称Open Graphics Library,是一种跨语言、跨平台的应用程序编程接口(API),用于渲染2D、3D矢量图形。它由一系列函数组成,允许开发者通过调用这些函数来...
通过研究和运行这些示例,开发者能够亲自动手实践,从而加深对OpenGL原理的理解。 总的来说,这个压缩包提供了全面的学习资源,无论你是刚接触OpenGL的新手,还是希望提升现有技能的开发者,都能从中获益。通过深入...
在iOS上,通常使用GLKit或Metal进行更高效的渲染,但基本的OpenGL原理依然适用。 在iOS开发中,OpenGL通常与EAGL(iOS的OpenGL实现)和GLKit一起使用,GLKit提供了许多便利的类和方法,简化了OpenGL的使用。同时,...
#### 三、OpenGL原理及应用 1. **OpenGL简介** - OpenGL 是一种跨语言、跨平台的应用程序接口 (API),用于渲染2D和3D矢量图形。它定义了硬件无关的API,可以用来创建复杂的三维场景。 - OpenGL 提供了一套标准的...
OpenGL超级宝典全代码是一个非常宝贵的资源,涵盖了OpenGL编程的多个方面。OpenGL是业界广泛使用的图形库,用于在各种...在实践中不断迭代和试验,将有助于深化对OpenGL原理的理解,并提升开发高质量图形应用的能力。
13. OPENGL 基础教程:OPENGL 基础教程从零开始,包括准备好 OpenGL、准备好开发环境、准备好窗口、建立 OpenGL 应用程序框架、OpenGL 原理与程序基本框架、坐标变换、法向与封闭实心物体、颜色与表面材质、光照效果...
本书虽然出版于2008年,但其中关于OpenGL原理和优化策略的讨论仍然具有很高的参考价值。对于未来的OpenGL开发,作者提出了一些前瞻性的观点,比如OpenGL ES的兴起,它旨在为移动设备和嵌入式系统提供更轻量级的图形...
这个实例对于初学者来说,是一个很好的起点,通过实际操作可以加深对OpenGL原理和Delphi集成的理解,为进一步深入图形编程打下基础。通过逐步学习和实践,开发者可以创建更复杂、功能更丰富的3D应用。
2.为了理解法线贴图的工作原理,我们首先注意,向量通过3 字节存储,X、Y 和Z 分量 各占1 字节,就可以达到合理的精度。 3.这样,我们就可以将法向量存储在彩色图像文件中, 其中R、G 和B 分量分别对应于X、Y 和Z。...
通过分析SGI的OpenGL核心库源码,开发者不仅可以加深对OpenGL原理的理解,还能获得优化图形性能的技巧,甚至可以为自定义图形库或游戏引擎提供灵感。同时,GLU和GLUT的源码则能帮助我们了解如何利用辅助库来扩展...
OpenGL超级宝典第三部分主要涵盖了多个章节的...对于其他操作系统(如Linux或macOS)的用户,虽然提供的资源是针对Windows,但基本的OpenGL原理和编程技术是跨平台的,只需关注系统特定的设置和库即可进行相应的调整。
一、OpenGL原理 OpenGL基于图元渲染的概念,它接受顶点数据作为输入,通过一系列的图形管线阶段(如顶点着色器、几何着色器、片段着色器等)进行处理,最终在屏幕上输出像素图像。图形管线是OpenGL的核心,它将复杂...
手册中会详细阐述OpenGL的函数调用、状态机机制、渲染管道工作原理,以及各种着色语言(如GLSL)的语法和用法。在本压缩包中,有中英文两个版本,这使得无论是中文使用者还是英文使用者,都能无障碍地理解和学习...
本实例结合PPT原理介绍,将深入探讨如何在OpenGL环境中实现纹理贴图,并理解其背后的理论。 纹理贴图是通过将2D图像(纹理)映射到3D物体的表面来实现的。在OpenGL中,这涉及到几个关键概念和步骤: 1. **纹理坐标...
本资料集主要探讨了OpenGL中的纹理与映射原理,并提供了三个具体的案例程序——金字塔、太阳系和肥皂盒,通过源代码加深理解。 1. OpenGL纹理: 纹理是二维图像数据,可以将其理解为贴在3D模型表面的一张图片。...
Nehe Productions是由Jason Nehe创立的一个著名的OpenGL教程系列,它为初学者和有经验的开发者提供了深入理解OpenGL原理和实践的平台。"学习OpenGL的实例程序——Nehe1-48"是一个集合了Nehe教程早期48个实例的资源包...
- **教育**:用于教学,帮助学生理解3D图形和计算机图形学原理。 3. **技术特性**: - **兼容性**:支持多种操作系统,包括Windows、Mac OS X、Linux等。 - **硬件加速**:OpenGL利用图形处理器(GPU)进行高...
2. **OpenGL原理**:学习OpenGL的工作流程,包括顶点坐标变换、视口裁剪、投影、光照计算等。 3. **C++/C#编程**:作为VS2019和.sln文件暗示的编程语言,用于构建渲染引擎的主体逻辑。 4. **GPU编程**:通过着色器...
1. OpenGL基础知识:包括OpenGL的工作原理,上下文创建,窗口系统集成,以及绘制的基本流程。理解这些基础知识是进行图形编程的前提。 2. 绘图操作:OpenGL提供了大量的函数来绘制几何形状,如点、线、多边形。了解...
本资源总结了OpenGL编程相关的知识点,包括OpenGL的原理、算法、系统、光源、光照模型、物体材质、明暗处理、深度测试等基本方法,并通过实验报告,介绍了使用OpenGL编程模拟太阳、地球、月亮三者之间公转与自转的...