OpenGL 完全教程(写给Delphi的开发者) 前言
前言
在开发了许多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的开发者) 前言的更多相关文章
- OpenGL完全教程 第一章 初始化OpenGL
第一章 初始化OpenGL 无论是什么东西,要使用它,就必须对它进行初始化.如果你之前使用过GDI,你应该也多多少少了解到GDI在绘制图形之前要为之创建渲染环境.OpenGL也一样.本章给出的代码,大 ...
- OpenGL官方教程——着色器语言概述
OpenGL官方教程——着色器语言概述 OpenGL官方教程——着色器语言概述 可编程图形硬件管线(流水线) 可编程顶点处理器 可编程几何处理器 可编程片元处理器 语言 可编程图形硬件管线(流水线) ...
- [翻译]opengl扩展教程2
[翻译]opengl扩展教程2 原文地址https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/extensions_part2.php [ ...
- [翻译]opengl扩展教程1
[翻译]opengl扩展教程1 原文地址https://www.opengl.org/sdk/docs/tutorials/ClockworkCoders/extensions.php [翻译]ope ...
- QT OpenGL中文教程在QT4版本后的错误代码更改(一)
由于教程中说的已经够可以了,这里就不对代码进行分析了,有兴趣可以自己去看看.这个教程来源于原来的NeHeOpenGL中文教程 (http://www.yakergong.net/nehe/) ,但其有 ...
- OpenGL ES教程系列(经典合集)
为了搞透播放器的开发,花了些时间收集这些资料,虽然我已经搞定opengles渲染视频的内容,但是想玩玩opengles,往深里玩,图像处理这块是个好的方向,所以opengles是值得好好学的. O ...
- XCode教程之 如何在苹果开发者平台添加设备UDID
XCode教程之 如何在苹果开发者平台添加设备UDID.在Xcode开发中,如何在苹果开发者平台添加新的手机设备UDID,进行测试,具体如下 工具/原料 Apple Developer 方法/步骤 1 ...
- 再次写给VC++ Windows开发者
距离我的上一篇文章--写给VC++ Windows开发的初学者已经4年多时间过去了,感慨于时光如梭之余,更感慨于这么多年来(从1998年我初学VC 算起吧)到如今其实我仍然还只是个初学者而已.看看之前 ...
- IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)
在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> ...
随机推荐
- Intent的七大属性
1.Action Action属性代表系统要执行的动作 系统提供如下常用的Action属性 *ACTION_MAIN:应用程序入口点 *ACTION_VIEW:显示指定数据 *ACTION_EDIT: ...
- Android SQLite数据库版本升级原理解析
Android使用SQLite数据库保存数据,那数据库版本升级是怎么回事呢,这里说一下. 一.软件v1.0 安装v1.0,假设v1.0版本只有一个account表,这时走继承SQLiteOpenHel ...
- 【转】apache kafka技术分享系列(目录索引)
转自: http://blog.csdn.net/lizhitao/article/details/39499283 估计大神会不定期更新,所以还是访问这个链接看最新的目录list比较好 apa ...
- js:语言精髓笔记11--动态语言特性(1)
语言:程序最终被表达为数据(结构)和逻辑(算法),命令式和说明式/函数式语言分别从这两方面分类: 动态:在语言陈述时无法确定,必须在计算机执行时才能确定语言关系:JS是完全动态语言,导致其不确定性一般 ...
- BZOJ3784 : 树上的路径
树的点分治,在分治的时候将所有点到根的距离依次放入一个数组q中. 对于一棵子树里的点,合法的路径一定是q[L]..q[R]的某个数加上自己到重心的距离. 定义五元组(v,l,m,r,w),表示当前路径 ...
- BZOJ3589 : 动态树
对于既要支持子树修改又要支持链查询, 需要树链剖分 然后求出DFS序,DFS的时候先DFS重儿子, 然后子树是1个区间,链是$O(\log n)$个区间 这道题对于查询若干条链的并: 由于K<= ...
- POJ 1523 (割点+连通分量)
题目链接:http://poj.org/problem?id=1523 题目大意:连通图,找图中割点,并计算切除该割点后,图中的连通分量个数. 解题思路: POJ的数据很弱. Tarjan法求割点. ...
- WIN7启动WIFI
启动虚拟无线AP netsh wlan set hostednetwork mode=allow ssid=WIFI_NAME key="abcdefgh" netsh wlan ...
- c/c++ 关于swap的不同写法
利用模板 template<typename T>inline void swap(T& a, T& b){ T tmp = a; a = b; b = tmp; } 利用 ...
- 洛谷 P1541 乌龟棋 Label:O(n^4)的dp
题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游戏要求玩家控制一个乌龟棋子从起 ...