当前位置:首页 > >
《OpenGL编程指南》电子书封面

OpenGL编程指南

  • 发布时间:2019年04月22日 10:01:25
  • 作者:约翰·M·克赛尼希
  • 大小:302.7 MB
  • 类别:OpenGL电子书
  • 格式:PDF
  • 版本:中文第9版
  • 评分:9.2

    OpenGL编程指南 PDF 中文第9版

      给大家带来的一篇关于OpenGL相关的电子书资源,介绍了关于OpenGL编程指南方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小302.7 MB,约翰·M·克赛尼希编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.1。

      内容介绍

      OpenGL编程指南

      OpenGL编程指南 电子书封面

      读者评价

      OpenGL的最新书籍,经典的红宝书。自己想学游戏制作,这本书会很有帮助。好书,强烈推荐。
      是比较新的OpenGL书。使用的版本是4.5。学习的时候注意硬件对应的OpenGL版本。本书没有从配置开发环境开始讲起,如果不懂怎么配置还需要另外查资料。个人用的glfw和glew,还是比较方便。讲解得比较细致也比较易懂,不过每一节没有一个相对完整的例子,可能更多地还是需要自己动手。
      这本书可以当作参考指南。如果是新手阅读,想了解OpenGL绘制的全流程和步骤含义,略微吃力点。最好结合网上的入门资料一起看,效果较好。

      内容介绍

      《OpenGL编程指南(原书第9版)》共12章,第1章概述OpenGL主要特性和功能;第2章讨论OpenGL中最主要的特性一一可编程着色器和SPIR—V;第3章介绍使用OpenGL进行几何体绘制的各种方法,以及一些可以让渲染更为高效的优化手段;第4章阐释OpenGL对于颜色的处理过程;第5章介绍在一个二维计算机屏幕上表现三维场景的操作细节;第6章讨论将几何模型与图像结合来创建真实的、高质量的三维模型的方法;第7章介绍计算机图形的光照效果模拟方法;第8章介绍使用可编程着色器生成纹理和其他表面效果的方法细节;第9章解释OpenGL管理和细分几何表面的着色器功能;第10章介绍在OpenGL渲染流水线中使用着色器进行几何体图元修改的特别技术;第11章介绍使用OpenGL帧缓存和缓存内存实现高级渲染技术和非图形学应用的相关方法;第12章介绍了最新的着色器阶段,将通用计算的方法融合到OpenGL的渲染流水线当中。

      内容节选

      1 引子
      虽然是计算机科班出身,但从小对几何方面的东西就不太感冒,空间想象能力也较差,所以从本科到研究生,基本没接触过《计算机图形学》。为什么说基本没学过呢?因为好奇(尤其是惊叹于三维游戏的逼真,如魔兽世界、极品飞车),在研究生阶段还专门选修计算机图形学,但也只是听了几堂课,知道了有帧缓存、齐次坐标等零零散散的概念,之后读了一篇论文并上台作报告(压根没读懂)。总之,当时只是觉得计算机图形学或三维渲染很牛,甚至问我什么是渲染都不知道,更不知道如何将3维几何体显示到2维屏幕上。令我现在想来非常可笑的是,当时以为2D图像才是平面的,3D图像就是立体的。
      真正接触3维绘制方面的知识是在工作后,因为是搞图像处理与可视化的方面软件的开发,所以开始知道了这些3D图像是通过OpenGL/Direct3D等编程接口来做的。不过公司关于OpenGL接口的调用和绘制方面的代码是另一个组写的,博主基本看不到他们的代码。不过,与相关同事的讨论中还是学到了一些知识。于是,博主便考虑系统地学习一下OpenGL编程。
      市面上最好的两本OpenGL的书应该是——《OpenGL编程指南》(红宝书)和《OpenGL编程宝典》(蓝宝书)。于是,就挑选了《OpenGL编程指南(第八版)》作为我的启蒙教材,由此踏上学习之路。本博客希望记录学习过程中的一些新的体会。记下来的知识才是自己的。闲话不多说,让我们踏上OpenGL学习之旅吧!
      2 第一个例子
      红宝书一开始在什么是OpenGL一节,简要介绍了OpenGL的概念、发展历程、渲染流程等概念。说实话,一开始读这段文字压根就是认字,概念各种不懂。不过没关系,博主觉得,大部分技术书籍的第一章都是这样——罗列一大堆概念,然后写一个简单的小程序,对它分析分析,继续列举更多概念,然后说明将在第几章第几节详细介绍。所以对于我这种初学者,看完第一章完全不知道说什么是也很正常,别急,慢慢的,某一刻你就理解了——所谓一通百通。
      之后,咣当扔过来一个例子,这也许就是程序员的风格——先写个Demo看看。其实,刚开始对这个例子比较藐视,太简单了——和我脑海中高大上的游戏界面相去甚远。不过,其实这个例子中还是包含很多东西的。首先来看看,这个程序的运行效果。

      就是在一个窗口中绘制两个蓝色的三角形。下面我们就按步骤来绘制这个图形。

      第一步:搭一个框架
      对于技术书籍,一开始看书就是照着书本敲代码,敲完代码再看代码有没有问题。这个例子虽然简单,但是代码不少。其实我们可以一步一步来写,首先写一个main函数,在里面填一些初始化和创建窗口的代码,如下:

      #include <iostream>
      #include "StdAfx.h"
      
      void display()
      {
      }
      
      int main(int argc, char **argv)
      {
          glutInit(&argc, argv);
          glutInitDisplayMode(GLUT_RGBA);
          glutInitWindowSize(512, 512);
          glutInitContextVersion(3, 3);
          glutInitContextProfile(GLUT_CORE_PROFILE);
          glutCreateWindow(argv[0]);
      
          if (glewInit())
          {
                std::cerr << "Unable to initialize GLEW... Exiting..." << std::endl;
              std::exit(EXIT_FAILURE);
          }
      
          glutDisplayFunc(display);
          glutMainLoop();
      }

      其实这里只是涉及到OpenGL的API,只是用到了第三方库一些函数创建了一个显示图像的窗口。就像我们开始写控制台Demo的时候,先写main函数,然后打印一个“HelloWorld”出来,看看能不能跑。上面这短短的几行代码是能够运行的。运行结果就是一个大小为512×512的空白窗口。代码很简单,就是初始化相关的函数。这里需要说明一下的是:#include "StdAfx.h"是从红宝书的网站上下载下来vgl.h文件,并配置了工程的属性(如头文件目录、lib库目录);另外一个就是:display函数就是我们要调用OpenGL绘制图像的函数。下面就是填充这个函数。

      目录

      • 第1章OpenGL概述
      • 第2章着色器基础
      • 第3章OpenGL绘制方式
      • 第4章颜色、像素和片元
      • 第5章视口变换、裁减、剪切与反馈
      • 第6章纹理与帧缓存
      • 第7章光照与阴影
      • 第8章程序式纹理
      • 第9章细分着色器
      • 第10章几何着色器
      • 第11章内存
      • 第12章计算着色器
      • · · · · · ·

      以上就是本次介绍的OpenGL电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:揭秘跨境电商

      下一篇:算法竞赛入门经典:训练指南

      展开 +

      收起 -

      下载地址:百度网盘下载
      OpenGL相关电子书
      读者留言
      网友NO.29558
      网友NO.29558

      刚接触OpenGL不久,由于工作及学习需要,涉及这方面知识开始从零学习。之前曾大致了解过OpenGL(Open Graphics Library)是专业的图形程序接口,是可用于二维或三维的图形绘制、动画显示等的底层图形库。具体的功能研究请参考其官方网站,本文只提供本人在接触OpenGL后从无厘头到初步摸到学习门路的心得体会,作为新手,希望能够为想要学习OpenGL的朋友们提供一些踏入门槛的知识和心得。
      本人在学习OpenGL过程中算是走了些许弯路的,之后在学习过程中,觉得学习OpenGL一定要耐得住性子,毕竟在网上看了很多相关的帖子,很多新手对OpenGL都存在某种畏惧感,包括之前的我。
      本人觉得在刚接触OpenGL时,首先要做的还是耐心跑几个简单的程序,看看OpenGL是怎么工作的,从感官上感受一下,然后就是重点要了解一下OpenGL相关的库的介绍,相关文章很多,本人在接触的过程中觉得很多文章介绍的很详细,但正由于太过详细,导致很多人记不住,也难以下手,起码我的大脑过两天就差不过扔掉了。
      对于OpenGL库,我们是为了用其开发应用程序,其跨语言、跨平台的强大接口为我们提供了相当灵活使用的空间,但从另一方面来说,其具有这样的属性,也就决定了其对于不同的硬件平台,需要采用不同的窗口系统,其核心API没有窗口系统,所以很多朋友在刚接触时,想跑个简单的程序可能都要烦恼很久,不过这时就得静下心来慢慢一点点的摸索,这是必不可少的过程。
      本文的主要想法就是在最基本的概念上介绍一下OpenGL函数库,注意,不是库函数,库函数还是在使用过程中一点点的积累,参考相关书籍慢慢摸索才是王道。
      OpenGL函数库相关的API包括核心库(gl)、实用库(glu)、辅助库(aux)、实用工具库(glut)、窗口库(glx、agl、wgl)和扩展函数库等。核心库(gl)是核心,实用库(glu)是对gl的部分封装。窗口库(glx、agl、wgl)是针对不同窗口系统的函数。实用工具库(glut)是OpenGL提供的一个程序工具包,比辅助库(aux)功能强大。有文章说glut由于其功能强大,便于开发更强大的功能可以代替核心库(gl)和实用库(glu)的学习,本人觉得不能完全赞同,程序员应该都明白一点,对于库这样非开源的代码,强大的功能只能让我们更容易开发一些强大的功能,但其封装了底层大量的基础代码,明显在某些使用场合会降低代码使用的灵活性,在编程过程中可能会使代码显得更加臃肿,这里仅仅是本人作为初学者的观点,若有问题,可不采纳,仅供参考。下面简单介绍一下本人觉得作为初学者所必须了解且很多书本上写的不够详细的基础知识。

      码农之家

      码农之家 提供上传

      资源
      26
      粉丝
      16
      喜欢
      445
      评论
      11

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com