本文转自:http://eyehere.net/2011/learn-opengl-3d-by-pyopengl-1/

从pygame的系列教程里3D部分,本想好好说一下OpenGL的,但是感觉这样一来就喧宾夺主了,毕竟OpenGL这东西,好好说明下来要比pygame更加博大精深,所以就考虑另外起一个教程来写着了。如今pygame的说明基本完成,实战篇完成两个以后,第三个写起来实在太占时间了,只好退居二线新开这个pyopengl教程作为主要的更新内容。

说实话我不知道这次会写多久,能写的如何,我只能保证自己极力而为。

大凡经典和妄图冒充经典的大段文字,总要在开头从维基啊XX百科那里抄一段历史的,免俗……还是不要了吧,请选择性参阅下面的文字,感谢计算机赋予我们的复制粘贴伟大神器。

OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口(Application programming interface)的规格,它用于生成二维、三维图像。这个接口由近三百五十个不同的函数调用组成,用来从简单的图元绘制复杂的三维景象。OpenGL常用于CAD、虚拟实境、科学可视化程式和电子游戏开发。

OpenGL的高效实现(利用了图形加速硬件)存在于Windows,很多UNIX平台和MacOS。这些实现一般由显示设备厂商提供,而且非常依赖于该厂商提供的硬件。详细→

然后,PyOpenGL自然就是OpenGL在Python中的调用咯~还用说吗?

上面的图片,左边是OpenGL的图标,右边么,加上个小蛇,想想就是和Python有关,就是PyOpenGL的图标了,好像有些简陋啊……

OpenGL最初是用C写的,所以做OpenGL开发,说实话C/C++是最合适的,效率是最佳的。我一开始也考虑是不是不用Python,就算用Java,可能效率上也能高一些。不过再考虑,首先这是从上一个教程继承来的,换一个语言好像有点不合适;而且用C语言写的话,可能就是工作中使用OpenGL了,基本都是高手了,何必来看我这教程呢~所以还是用Python吧,入门用,思想是主要的,不要让语言本身再给我们带来什么麻烦了。

说到OpenGL的作品,首先想到的自然游戏程序员中神一般存在卡马克写的传世经典 “DOOM” 和 “QUAKE”,说实话用OpenGL做的有名游戏,还真不多,因为它不仅仅用在游戏上,还有大量的软件工具。所以我这次也就不好说用PyOpenGL开发游戏了,只是3D,至于这个3D用来做什么,完全看您自己的兴趣。

为什么要写OpenGL的教程?如果您稍微查一下,会知道当今世界,最有名的OpenGL入门教程当属NeHe的作品,然后周炜的NeHe中文教程基本就算是咱们中国人看的标准了,他们很伟大,应该说写的也很有水准。但是有个问题,我看不懂……

就看第一篇入门教程,先不说一大堆的导入库,窗口程序结构,这里三句代码:

1
2
3

glClearDepth(1.0f);// 设置深度缓存
glEnable(GL_DEPTH_TEST);// 启用深度测试
glDepthFunc(GL_LEQUAL);// 所作深度测试的类型

虽然每一句代码都有注释,但是一个初学OpenGL的人真能看到这些注释么?什么是深度缓存?什么叫深度测试?就好像一个不懂英语的老司机突然来了兴致问你什么是ABS,然后你回答“就是Anti-locked Braking System”,这不打击人么,估计回答一句“哦”就去忙其他事情了……

我想写一个有一定的编程知识的人就能看懂的OpenGL教程,你可以不需要有图像编程经验,不需要明白透视、光线原理,不需要懂C/C++,可以不懂矩阵,我会在适合的时候讲解;你甚至可以不懂Python(但是想实践的画,还是学一下吧,有点编程基础的半天学会,没有的三五天也可以入门了),Python在这里只是载体,核心的知识超越语言而存在,不过我大概不会回答Python相关的问题,需要的话请自己学习,资料太多了。

但你应该玩过游戏,或用过3D软件,一看游戏画面知道是2D还是3D的,至少明白任意一种编程语言,还有,而且是最重要的,你要有足够的热忱与信心。That’s not all, but enough!

作为第一篇是不是有些短了?就当序吧,星星之火,可以燎原:)

PyOpenGL之3D界面详解(一)相关推荐

  1. PyOpenGL之3D界面详解(四)

    本文转自:http://eyehere.net/2011/learn-opengl-3d-by-pyopengl-4/ 图元 上一次,我们有了一个足够3D的程序了,虽然很漂亮,但是那个茶壶并不是我们画 ...

  2. PyOpenGL之3D界面详解(三)

    本文转自:http://eyehere.net/2011/learn-opengl-3d-by-pyopengl-3/ 第一个PyOpenGL程序 说实话我们OpenGL的基础还远远没有学完,不过我在 ...

  3. PyOpenGL之3D界面详解(五)

    本文转自:http://eyehere.net/2013/learn-opengl-3d-by-pyopengl-5/ 我不得不演示几个例子来加深一下之前学习的东西(时隔这么久了,有点难以为继的感觉啊 ...

  4. PyOpenGL之3D界面详解(二)

    本文转自:http://eyehere.net/2011/learn-opengl-3d-by-pyopengl-2/ 每个人都有做3D的潜质 看看这张图片(选自"一秒钟看穿统计陷阱&quo ...

  5. Symbian操作系统及操作平台界面详解

    Symbian操作系统及操作平台界面详解 作者:佚名 文章来源:本站原创 点击数: <script src="/Article/GetHits.asp?ArticleID=715&qu ...

  6. fifa15服务器维护,菜单界面详解:游戏设置界面_FIFA15系统教程图文攻略(完结)_FIFA15图文全攻略_单机攻略_跑跑车单机游戏网...

    第 4 页 菜单界面详解:游戏设置界面 游戏设置界面 赛事设置 赛事时长:选择3.4.5.6.7.8.9.10.15.20分钟作为比赛半场时间; 赛事难度:基于玩家的FIFA级数选择玩家的AI对手难度 ...

  7. 圆形界面 开启相机_「基础篇三」手机摄影拍照界面详解

    ​[基础篇三]手机摄影拍照界面详解 手机拍照对我们来说已习以为常,每天我们都会用手机相机功能或多或少的拍出几张照片.故手机拍照界面对我们来说也不陌生,但手机拍照界面上的那些按钮,那些功能你都用过吗?你 ...

  8. 通过Cloudera Manager部署CDH5.15.1的webUI界面详解

    通过Cloudera Manager部署CDH5.15.1的webUI界面详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客CDH的部署完全通过Cloudera Mana ...

  9. Python Matplotlib 3D绘图详解(汇总)

    Python Matplotlib 3D绘图详解(汇总) 最初开发的 Matplotlib,仅支持绘制 2d 图形,后来随着版本的不断更新, Matplotlib 在二维绘图的基础上,构建了一部分较为 ...

最新文章

  1. 皮一皮:这孩子想必长大了一定是个程序猿...
  2. day1-Python擅长的领域+学习内容
  3. Eclipse插件:Eclipse Color Theme
  4. boost::gil::threshold_adaptive用法的测试程序
  5. Python 第三方模块之 beautifulsoup(bs4)- 解析 HTML
  6. Oracle学习笔记--导航
  7. PHPExcel用法有感
  8. response 200是什么意思 python_鹿晨晖一组做了200次坐姿腿屈伸,他什么意思?
  9. Android开发1、2周——GeoQuiz项目
  10. togaf简介(一)
  11. CSS样式实现雷达扫描动效
  12. 流量分析 seo alexa 排名
  13. 计算机单位-字节到底是什么?(小白简单易懂)
  14. 利用C51单片机内部函数_corl_函数实现LED流水灯。
  15. 入门Python需要掌握的技能有哪些?
  16. 用U盘安装系统 WinPE 安装操作系统
  17. zeppelin高可用部署
  18. localhost 拒绝了我们的连接请求。Swagger
  19. soc 设计soc设计 uml实务手册_企业内训“软件需求设计建模方法学全程实例剖析”训练方案(2020年)...
  20. C#访问局域网内共享文件夹

热门文章

  1. getclass方法_防止数据重复提交的6种方法(超简单)!
  2. 笔记本安装centos7.6网络的配置_可以放入口袋里面的笔记本电脑:国产黑科技,户外工程师必备利器...
  3. AOSP6.0.1 launcher3入门篇—hotseat相关实现
  4. Windows手动更新补丁
  5. 2021.08.23学习内容Pytorch与Torch的关系以及Torchvision作用
  6. U-GAT-IT 论文阅读
  7. 爬虫入门学习:爬取股票论坛信息
  8. html表单验证用正则表达式,JavaScript 使用正则表达式进行表单验证的示例代码
  9. pcfg 自然语言处理_自然语言处理导航
  10. python连接redis失败、积极拒绝_python-django-redis拒绝连接问题解决_20191121