前言

在开发了许多2D图形程序之后,许多人开始对3D图形编程产生了兴趣。学习一套3D API,是进行3D图形编程的基础。在有趣的3D图形编程中,3D API只不过充当着一种低级的工具而已。因此,在这里我要提醒想学习3D API的朋友,无论你将要使用DirectX,或者跟我一样使用OpenGL,都不要把它们看得过于神圣。事实上它们只是一套API,学习它,你只须一定的Windows编程基础即可。它们不需要你有多么高深的数学功底,也不需要什么灵活的头脑——如果你只是想用OpenGL渲染3D图形的话,就不需要什么特别的知识。因为无论是DirectX还是OpenGL,都只是在帮你画画而已。

我的这套教程,写给所有希望学习OpenGL的朋友,尤其是Delphi的开发者。因为在3D图形编程方面的资料,几乎全部都是基于VC++的,这给使用其他语言的刚入门的开发者带来一些不便,造成这些不便的原因有以下几条:

  • 有些初学者看不懂C语言,或者无法理解C++里面的那一大堆复杂的操作符;

  • 这些用C写的范例代码和程序中,使用了一些附加库,比如GLUT等等,而这些附加库就根本找不到Delphi版的头文件。

无论是Delphi的开发人员还是C的开发人员,都可以畅通无阻地使用此教程:我写此教程的目的就是为了方便Delphi的开发人员,让他们不要把太多的精力浪费在寻找头文件或翻译.H文件上,对于使用C的开发人员,他们往往很容易理解Pascal语言而且Pascal语言可以很容易的100%的翻译成C语言。

在本教程中,我们将学习OpenGL的以下这些功能:

  • 初始化OpenGL

  • OpenGL的工作机制

  • 创建视觉变换投影

  • 使用OpenGL绘制基本图元

  • 矩阵变换

  • 颜色和光照

  • 纹理贴图

  • 在OpenGL中显示文字

  • 使用3D模型

  • 混色和雾化效果

  • 缓冲区的使用

上面列举的,并不一定是本教程的全部内容。在今后的时间里,我可能会增加更多的章节,但这些是OpenGL最本分、最常用的部分。学会了上面的内容,就基本掌握了OpenGL。

OpenGL 完全教程(写给Delphi的开发者) 前言的更多相关文章

  1. OpenGL完全教程 第一章 初始化OpenGL

    第一章 初始化OpenGL 无论是什么东西,要使用它,就必须对它进行初始化.如果你之前使用过GDI,你应该也多多少少了解到GDI在绘制图形之前要为之创建渲染环境.OpenGL也一样.本章给出的代码,大 ...

  2. OpenGL官方教程——着色器语言概述

    OpenGL官方教程——着色器语言概述 OpenGL官方教程——着色器语言概述 可编程图形硬件管线(流水线) 可编程顶点处理器 可编程几何处理器 可编程片元处理器 语言 可编程图形硬件管线(流水线) ...

  3. [翻译]opengl扩展教程2

    [翻译]opengl扩展教程2 原文地址https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/extensions_part2.php [ ...

  4. [翻译]opengl扩展教程1

    [翻译]opengl扩展教程1 原文地址https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/extensions.php [翻译]ope ...

  5. QT OpenGL中文教程在QT4版本后的错误代码更改(一)

    由于教程中说的已经够可以了,这里就不对代码进行分析了,有兴趣可以自己去看看.这个教程来源于原来的NeHeOpenGL中文教程 (http://www.yakergong.net/nehe/) ,但其有 ...

  6. OpenGL ES教程系列(经典合集)

    为了搞透播放器的开发,花了些时间收集这些资料,虽然我已经搞定opengles渲染视频的内容,但是想玩玩opengles,往深里玩,图像处理这块是个好的方向,所以opengles是值得好好学的.   O ...

  7. XCode教程之 如何在苹果开发者平台添加设备UDID

    XCode教程之 如何在苹果开发者平台添加设备UDID.在Xcode开发中,如何在苹果开发者平台添加新的手机设备UDID,进行测试,具体如下 工具/原料 Apple Developer 方法/步骤 1 ...

  8. 再次写给VC++ Windows开发者

    距离我的上一篇文章--写给VC++ Windows开发的初学者已经4年多时间过去了,感慨于时光如梭之余,更感慨于这么多年来(从1998年我初学VC 算起吧)到如今其实我仍然还只是个初学者而已.看看之前 ...

  9. IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)

    在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> ...

随机推荐

  1. 免费电子书:使用VS Online敏捷管理开源项目

    今天推荐的是一本由微软出版社发布的免费电子书,涉及的话题是如何在Visual Studio Online中基于敏捷的思想来管理开源项目. 本书的几位作者(自称ALM领域的游侠),给大家分享了在一个敏捷 ...

  2. 在visual studio 2010中调用ffmpeg

    转自:http://blog.sina.com.cn/s/blog_4178f4bf01018wqh.html 最近几天一直在折腾ffmpeg,在网上也查了许多资料,费了不少劲,现在在这里和大家分享一 ...

  3. Hadoop开发中,如何开启、关闭控制台打印调试信息

    第一种方法: 修改$HADOOP_CONF_DIR/log4j.properties文件 hadoop.root.logger=ALL,console 第二种方法 开启:export HADOOP_R ...

  4. 用JAXP的dom方式解析XML文件

    用JAXP的dom方式解析XML文件,实现增删改查操作 dom方式解析XML原理 XML文件 <?xml version="1.0" encoding="UTF-8 ...

  5. 让html元素随浏览器的大小自适应垂直居中

    转自:http://www.cnblogs.com/linjiqin/archive/2011/06/15/2081362.html 表格可以实现td中的元素垂直居中显示,但是前提条件必须定义td的高 ...

  6. js拆分数组

    <script language="javascript"> str="2,2,3,5,6,6"; //这是一字符串 var strs= new A ...

  7. Loadrunner中web_custom_request使用场景

    其中有一段从服务器段动态返回的字符串需要重新提交给服务器(见红色标注) 录制自动生成的脚本是: web_submit_data("generateYfLstAction.do",  ...

  8. nodeAPI--TCP

    Node HTTP服务器是构建与Node TCP服务器之上的,即http.Server继承自net.Server; TCP特性: 面向连接的通信和保证顺序的传递: IP的协议是面向无连接,且数据包送达 ...

  9. NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D)

    NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D) 使用NGUI创建的Camera参数为Simple 2D的UI,会在游戏的场景中生成1个名为UI Root( ...

  10. 【BZOJ】3053: The Closest M Points(kdtree)

    http://www.lydsy.com/JudgeOnline/problem.php?id=3053 本来是1a的QAQ.... 没看到有多组数据啊.....斯巴达!!!!!!!!!!!!!!!! ...