计算机图形学(英文影印版)
基本信息
编辑推荐
投影变换建模流水线绘制明暗处理,循序渐进.
坐标视图颜色场景图光照视觉交流,由浅人深...
内容简介回到顶部↑
书籍
计算机书籍
本书系统地介绍了交互式计算机图形学的基础知识和opengl图形接口,并通过大量的实例来帮助读者理解opengl提供的功能。operigl作为一个性能优越的图形应用程序设计接口(api),适用于广泛的计算机环境,它已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。
本书将算法与应用结合起来,不过分强调计算机图形学领域内的算法与技术细节,也不专注于图像生成应用,而是将图形学视为对图像内容中的几何、外观和表示等属性编程并将编程结果展示在图形输出与交互设备上来生成合成图像的一种科学与艺术。
本书按照计算机图形学的传统顺序——投影处理、视图变换、建模、绘制、光照.明暗处理等来组织内容,并将这些要素都纳入场景图之中。同时,还强调了图形处理流水线。除了基本的图像处理技术,本书还介绍了如何利用计算机图形学来解决实际问题,以及如何更有效地将结果展示给观察者的方法。
计算机书籍
本书系统地介绍了交互式计算机图形学的基础知识和opengl图形接口,并通过大量的实例来帮助读者理解opengl提供的功能。operigl作为一个性能优越的图形应用程序设计接口(api),适用于广泛的计算机环境,它已成为目前的三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。
本书将算法与应用结合起来,不过分强调计算机图形学领域内的算法与技术细节,也不专注于图像生成应用,而是将图形学视为对图像内容中的几何、外观和表示等属性编程并将编程结果展示在图形输出与交互设备上来生成合成图像的一种科学与艺术。
本书按照计算机图形学的传统顺序——投影处理、视图变换、建模、绘制、光照.明暗处理等来组织内容,并将这些要素都纳入场景图之中。同时,还强调了图形处理流水线。除了基本的图像处理技术,本书还介绍了如何利用计算机图形学来解决实际问题,以及如何更有效地将结果展示给观察者的方法。
作译者回到顶部↑
本书提供作译者介绍
Steve Cunningham美国加州大学斯坦尼斯洛斯分校计算机系资深教授,长期从事计算机图形学教学和研究工作。他对计算机图形学理论和OperIGL编程均有很深的造诣,曾经担任ACM SIGGRAPH学会的主席和Eurographics学会教育委员会的主任,多次组织计算机图形学和可视化教学研讨会。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
preface
chapter 0: getting started
visual communication and computer graphics
general concepts in visual communication
use appropriate representation for your information
keep your images focused
use appropriate presentation levels for your information
use appropriate forms for your information
be very careful to be accurate with your display
understand and respect the cultural context of your audience
make your interactions reflect familiar and comfortable
relationships between action and effect
3d geometry and the geometry pipeline
the scene and the view
3d model coordinate systems
3d world coordinate system
3d eye coordinate system
projections
clipping
choosing perspective or orthographic projections
chapter 0: getting started
visual communication and computer graphics
general concepts in visual communication
use appropriate representation for your information
keep your images focused
use appropriate presentation levels for your information
use appropriate forms for your information
be very careful to be accurate with your display
understand and respect the cultural context of your audience
make your interactions reflect familiar and comfortable
relationships between action and effect
3d geometry and the geometry pipeline
the scene and the view
3d model coordinate systems
3d world coordinate system
3d eye coordinate system
projections
clipping
choosing perspective or orthographic projections
前言回到顶部↑
Computer graphics is one of the most exciting ways that computing has made an impact on the world. From the simple ways that spreadsheets allow you to create charts to see data, to the ways graphics has enhanced entertainment by providing new kinds of cartoons and special effects, to the ways graphics has enabled us to see and understand scientific principles, computer graphics is everywhere we turn. This important presence has come from the greatly improved graphics hardware and software that is found in current computing systems. With these advances, com-puter graphics has emerged from being a highly technical field needing very expensive comput-ers and frame buffers and requiring programmers tO master all the mathematics and algorithms needed to create an image. It has become a field that allows the graphics programmer to think and work at a much higher level of modeling and to create effective images that communicate effec-tively with the user. We believe that the beginning computer graphics course should focus on how the student can learn to create effective communications with computer graphics, including mo-tion and interaction, and that the more technical details of algorithms and mathematics for graph-ics should be saved for more advanced courses. .
What Is Computer Graphics?
Computer graphics is involved in any work that uses computation to create images, whether those images are still or moving; interactive or fixed; on film, video, screen, or print. This makes it a very broad field, encompassing many kinds of uses in the creative, commercial, and scientific worlds. The breadth of the field has !ed to the development of many kinds of tools to create and manipulate images for all these different areas. And finally, the large number of tools and appli-cations means that one could learn many different things about computer graphics.
Most of the books on computer graphics fall into one of two groups. The first is the tradi-tional academic textbook on graphics, emphasizing the algorithms and techniques used for mod-eling, rendering, and viewing. These are important concepts, but an emphasis on how images are made can take time away from considering what images mean. The second kind of book focuses
on the applications used to create images, particularly in the commercial and entertainment areas.Here the capabilities and limitations of the applications shape the coursework, and you can do lit-fie that is not designed into the application. Basic concepts can be included in studies of applica-tions, but they often take second place to a focus on learning how the application works.
This book takes something of a middle road between algorithms and applications. We do not give a major emphasis to the details of the algorithms and techniques involved in computer graphics, and we do not deal with applications for creating images. Rather, we view computer graphics as the art and science of creating synthetic images by programming the geometry, ap-pearance, and presentation of the contents of the images, and by displaying the results of that pro-gramming on appropriate devices that support graphical output and interaction. This focus on creating images by programming means that we must understand something of basic concepts as we learn about representing graphical and interaction concepts in ways that can be used by the computer. This focus on programming to create images both empowers and limits the graphics student, because it places the student in control of the whole process of image making.
But the process of creating images is not the end in itself; the images are important because they communicate information to the viewer, and so our study must also include a consideration of effective visual communication. So the work of the graphics professional in creating images is to understand the content the images are to communicate, to develop appropriate representations for the geometric objects that are to make up the images, to assemble these objects into an ap-
propriate geometric space where they can have the proper relationships with one as needed for the image, to define and present the look of each of the objects as part of that scene, to specify how the scene is to be viewed, and to specify how the scene as viewed is to be displayed on the graphic device. The programming may be done in many ways, but in current practice it typically uses a graphics APl that supports the necessary modeling and does most of the detailed work of
rendering the scene that is defined through the programming. A number of graphics APIs are available, but the OpenGL API is probably most commonly used currently and gives us a good platform to learn how to Create effective images.
In addition to the creation of the modeling, viewing, and look of the scene, the graphics professional has two other important tasks. Because a static image does not present as much in-formation as a moving image, it may be important to design some motion into the scene--that is,to define some animation for the image. And because the viewer may want. or need to be able to control the content of the image, the way the image is seen, or the kind of computation that is done for the image, it may be important to design ways for the user to interact with the scene as it is presented. These additional tasks are also supported by the graphics API.
What Is a Graphics API?
An API is an Application Programming Interface--a set of tools that allow a programmer to work in an application area. The APl's tools are oriented to the tasks of the application area and allow a programmer to design applications using the concepts of the area without having to deal with the details of the computer system. Among the advantages of an API is that it hides the details of any one computer system and allows the programmer to develop applications that will work on any of
a wide range of systems. So a graphics APl is a set of tools that allow a programmer to write ap-plications that include interactive computer graphics operations without dealing with the details of graphics operations or with system details for tasks such as window handling and interactions.
Besides covering the basic ideas of interactive computer graphics, this book will introduce you to the OpenGL graphics APl and to give you a number of examples that will help you un-derstand the capabilities that OpenGL provides and will allow you to learn how to integrate graphics programming into your other work. Like most APIs, OpenGL supports quite advanced work that goes beyond the level we will use in a text for a beginning course; resources at http://www, opengl, org/will be useful if you want to look at the APl in more depth.
Why Do Computer Graphics?
Computer graphics has many faces, so there are many reasons why one might want to use com-puter graphics in his or her work. Many of the most prominent uses of computer graphics are to create images for the sciences (scientific visualization, explanations to the public) and entertainment (movies, video games, special effects), for creative or aesthetic work (art, interac-tive installations), for commercial purposes (advertising, communication, product design), or for general communication (animated weather displays, information graphics). The processes de-scribed in this book are all fundamental to each of these applications, although some of the ap-plications will require the kinds of sophistication or realism in images that are not possible through simple API programming.
In all of these application areas, and more, there is a fundamental role for computer graph-ics in solving problems. Problem solving is a basic process in all human activity, so computer graphics can play a fundamental role in almost any area, as shown in Figure 1. This figure de-scribes what occurs as someone:
identifies a problem
addresses the problem by building a model that represents it and allows it to be considered more abstractly
identifies a way to represent the problem geometrically
What Is Computer Graphics?
Computer graphics is involved in any work that uses computation to create images, whether those images are still or moving; interactive or fixed; on film, video, screen, or print. This makes it a very broad field, encompassing many kinds of uses in the creative, commercial, and scientific worlds. The breadth of the field has !ed to the development of many kinds of tools to create and manipulate images for all these different areas. And finally, the large number of tools and appli-cations means that one could learn many different things about computer graphics.
Most of the books on computer graphics fall into one of two groups. The first is the tradi-tional academic textbook on graphics, emphasizing the algorithms and techniques used for mod-eling, rendering, and viewing. These are important concepts, but an emphasis on how images are made can take time away from considering what images mean. The second kind of book focuses
on the applications used to create images, particularly in the commercial and entertainment areas.Here the capabilities and limitations of the applications shape the coursework, and you can do lit-fie that is not designed into the application. Basic concepts can be included in studies of applica-tions, but they often take second place to a focus on learning how the application works.
This book takes something of a middle road between algorithms and applications. We do not give a major emphasis to the details of the algorithms and techniques involved in computer graphics, and we do not deal with applications for creating images. Rather, we view computer graphics as the art and science of creating synthetic images by programming the geometry, ap-pearance, and presentation of the contents of the images, and by displaying the results of that pro-gramming on appropriate devices that support graphical output and interaction. This focus on creating images by programming means that we must understand something of basic concepts as we learn about representing graphical and interaction concepts in ways that can be used by the computer. This focus on programming to create images both empowers and limits the graphics student, because it places the student in control of the whole process of image making.
But the process of creating images is not the end in itself; the images are important because they communicate information to the viewer, and so our study must also include a consideration of effective visual communication. So the work of the graphics professional in creating images is to understand the content the images are to communicate, to develop appropriate representations for the geometric objects that are to make up the images, to assemble these objects into an ap-
propriate geometric space where they can have the proper relationships with one as needed for the image, to define and present the look of each of the objects as part of that scene, to specify how the scene is to be viewed, and to specify how the scene as viewed is to be displayed on the graphic device. The programming may be done in many ways, but in current practice it typically uses a graphics APl that supports the necessary modeling and does most of the detailed work of
rendering the scene that is defined through the programming. A number of graphics APIs are available, but the OpenGL API is probably most commonly used currently and gives us a good platform to learn how to Create effective images.
In addition to the creation of the modeling, viewing, and look of the scene, the graphics professional has two other important tasks. Because a static image does not present as much in-formation as a moving image, it may be important to design some motion into the scene--that is,to define some animation for the image. And because the viewer may want. or need to be able to control the content of the image, the way the image is seen, or the kind of computation that is done for the image, it may be important to design ways for the user to interact with the scene as it is presented. These additional tasks are also supported by the graphics API.
What Is a Graphics API?
An API is an Application Programming Interface--a set of tools that allow a programmer to work in an application area. The APl's tools are oriented to the tasks of the application area and allow a programmer to design applications using the concepts of the area without having to deal with the details of the computer system. Among the advantages of an API is that it hides the details of any one computer system and allows the programmer to develop applications that will work on any of
a wide range of systems. So a graphics APl is a set of tools that allow a programmer to write ap-plications that include interactive computer graphics operations without dealing with the details of graphics operations or with system details for tasks such as window handling and interactions.
Besides covering the basic ideas of interactive computer graphics, this book will introduce you to the OpenGL graphics APl and to give you a number of examples that will help you un-derstand the capabilities that OpenGL provides and will allow you to learn how to integrate graphics programming into your other work. Like most APIs, OpenGL supports quite advanced work that goes beyond the level we will use in a text for a beginning course; resources at http://www, opengl, org/will be useful if you want to look at the APl in more depth.
Why Do Computer Graphics?
Computer graphics has many faces, so there are many reasons why one might want to use com-puter graphics in his or her work. Many of the most prominent uses of computer graphics are to create images for the sciences (scientific visualization, explanations to the public) and entertainment (movies, video games, special effects), for creative or aesthetic work (art, interac-tive installations), for commercial purposes (advertising, communication, product design), or for general communication (animated weather displays, information graphics). The processes de-scribed in this book are all fundamental to each of these applications, although some of the ap-plications will require the kinds of sophistication or realism in images that are not possible through simple API programming.
In all of these application areas, and more, there is a fundamental role for computer graph-ics in solving problems. Problem solving is a basic process in all human activity, so computer graphics can play a fundamental role in almost any area, as shown in Figure 1. This figure de-scribes what occurs as someone:
identifies a problem
addresses the problem by building a model that represents it and allows it to be considered more abstractly
identifies a way to represent the problem geometrically
序言回到顶部↑
文艺复兴以来,源远流长的科学精神和逐步形成的学术规范,使西方国家在自然科学的各个领域取得了垄断性的优势,也正是这样的传统,使美国在信息技术发展的六十多年间名家辈出、独领风骚。在商业化的进程中,美国的产业界与教育界越来越紧密地结合,计算机学科中的许多泰山北斗同时身处科研和教学的最前线,由此而产生的经典科学著作,不仅擘划了研究的范畴,还揭橥了学术的源变,既遵循学术规范,又自有学者个性,其价值并不会因年月的流逝而减退。.
近年,在全球信息化大潮的推动下,我国的计算机产业发展迅猛,对专业人才的需求日益迫切。这对计算机教育界和出版界都既是机遇,也是挑战;而专业教材的建设在教育战略上显得举足轻重。在我国信息技术发展时间较短、从业人员较少的现状下,美国等发达国家在其计算机科学发展的几十年间积淀的经典教材仍有许多值得借鉴之处。因此,引进一批国外优秀计算机教材将对我国计算机教育事业的发展起积极的推动作用,也是与世界接轨、建设真正的世界一流大学的必由之路。
机械工业出版社华章图文信息有限公司较早意识到“出版要为教育服务”。自1998年开始,华章公司就将工作重点放在了遴选、移译国外优秀教材上。经过几年的不懈努力,我们与Prentice Hall,Addison-Wesley,McGraw-Hill,Morgan Kaufmann等世界著名出版公司建立了良好的合作关系,从它们现有的数百种教材中甄选出Tanenbaum,Stroustrup,Kernighan,Jim Gray等大师名家的一批经典作品,以“计算机科学丛书”为总称出版,供读者学习、研究及庋藏。大理石纹理的封面,也正体现了这套丛书的品位和格调。..
“计算机科学丛书”的出版工作得到了国内外学者的鼎力襄助,国内的专家不仅提供了中肯的选题指导,还不辞劳苦地担任了翻译和审校的工作;而原书的作者也相当关注其作品在中国的传播,有的还专程为其书的中译本作序。迄今,“计算机科学丛书”已经出版了近260个品种,这些书籍在读者中树立了良好的口碑,并被许多高校采用为正式教材和参考书籍,为进一步推广与发展打下了坚实的基础。
随着学科建设的初步完善和教材改革的逐渐深化,教育界对国外计算机教材的需求和应用都步入一个新的阶段。为此,华章公司将加大引进教材的力度,除“计算机科学丛书”之外,对影印版的教材,则单独开辟出“经典原版书库”。为了保证这两套丛书的权威性,同时也为了更好地为学校和老师们服务,华章公司聘请了中国科学院、北京大学、清华大学、国防科技大学、复旦大学、上海交通大学、南京大学、浙江大学、中国科技大学、哈尔滨工业大学、西安交通大学、中国人民大学、北京航空航天大学、北京邮电大学、中山大学、解放军理工大学、郑州大学、湖北工学院,中国国家信息安全测评认证中心等国内重点大学和科研机构在计算机的各个领域的著名学者组成“专家指导委员会”,为我们提供选题意见和出版监督。
这两套丛书是响应教育部提出的使用外版教材的号召,为国内高校的计算机及相关专业的教学度身订造的。其中许多教材均已为M.I.T.,Stanford,U.C.Berkeley,C.M.U.等世界名牌大学所采用。不仅涵盖了程序设计、数据结构,操作系统、计算机体系结构、数据库、编译原理、软件工程、图形学、通信与网络、离散数学等国内大学计算机专业普遍开设的核心课程,而且各具特色——有的出自语言设计者之手、有的历经三十年而不衰、有的已被全世界的几百所高校采用。在这些圆熟通博的名师大作的指引之下,读者必将在计算机科学的宫殿中由登堂而入室。
权威的作者、经典的教材、一流的译者、严格的审校、精细的编辑,这些因素使我们的图书有了质量的保证,但我们的目标是尽善尽美,而反馈的意见正是我们达到这一终极目标的重要帮助。教材的出版只是我们的后续服务的起点。华章公司欢迎老师和读者对我们的工作提出建议或给予指正,我们的联系方法如下:
电子邮件:hzjsj@hzbook.com
联系电话:(010)68995264
联系地址:北京市西城区百万庄南街1号
邮政编码:100037 ...
近年,在全球信息化大潮的推动下,我国的计算机产业发展迅猛,对专业人才的需求日益迫切。这对计算机教育界和出版界都既是机遇,也是挑战;而专业教材的建设在教育战略上显得举足轻重。在我国信息技术发展时间较短、从业人员较少的现状下,美国等发达国家在其计算机科学发展的几十年间积淀的经典教材仍有许多值得借鉴之处。因此,引进一批国外优秀计算机教材将对我国计算机教育事业的发展起积极的推动作用,也是与世界接轨、建设真正的世界一流大学的必由之路。
机械工业出版社华章图文信息有限公司较早意识到“出版要为教育服务”。自1998年开始,华章公司就将工作重点放在了遴选、移译国外优秀教材上。经过几年的不懈努力,我们与Prentice Hall,Addison-Wesley,McGraw-Hill,Morgan Kaufmann等世界著名出版公司建立了良好的合作关系,从它们现有的数百种教材中甄选出Tanenbaum,Stroustrup,Kernighan,Jim Gray等大师名家的一批经典作品,以“计算机科学丛书”为总称出版,供读者学习、研究及庋藏。大理石纹理的封面,也正体现了这套丛书的品位和格调。..
“计算机科学丛书”的出版工作得到了国内外学者的鼎力襄助,国内的专家不仅提供了中肯的选题指导,还不辞劳苦地担任了翻译和审校的工作;而原书的作者也相当关注其作品在中国的传播,有的还专程为其书的中译本作序。迄今,“计算机科学丛书”已经出版了近260个品种,这些书籍在读者中树立了良好的口碑,并被许多高校采用为正式教材和参考书籍,为进一步推广与发展打下了坚实的基础。
随着学科建设的初步完善和教材改革的逐渐深化,教育界对国外计算机教材的需求和应用都步入一个新的阶段。为此,华章公司将加大引进教材的力度,除“计算机科学丛书”之外,对影印版的教材,则单独开辟出“经典原版书库”。为了保证这两套丛书的权威性,同时也为了更好地为学校和老师们服务,华章公司聘请了中国科学院、北京大学、清华大学、国防科技大学、复旦大学、上海交通大学、南京大学、浙江大学、中国科技大学、哈尔滨工业大学、西安交通大学、中国人民大学、北京航空航天大学、北京邮电大学、中山大学、解放军理工大学、郑州大学、湖北工学院,中国国家信息安全测评认证中心等国内重点大学和科研机构在计算机的各个领域的著名学者组成“专家指导委员会”,为我们提供选题意见和出版监督。
这两套丛书是响应教育部提出的使用外版教材的号召,为国内高校的计算机及相关专业的教学度身订造的。其中许多教材均已为M.I.T.,Stanford,U.C.Berkeley,C.M.U.等世界名牌大学所采用。不仅涵盖了程序设计、数据结构,操作系统、计算机体系结构、数据库、编译原理、软件工程、图形学、通信与网络、离散数学等国内大学计算机专业普遍开设的核心课程,而且各具特色——有的出自语言设计者之手、有的历经三十年而不衰、有的已被全世界的几百所高校采用。在这些圆熟通博的名师大作的指引之下,读者必将在计算机科学的宫殿中由登堂而入室。
权威的作者、经典的教材、一流的译者、严格的审校、精细的编辑,这些因素使我们的图书有了质量的保证,但我们的目标是尽善尽美,而反馈的意见正是我们达到这一终极目标的重要帮助。教材的出版只是我们的后续服务的起点。华章公司欢迎老师和读者对我们的工作提出建议或给予指正,我们的联系方法如下:
电子邮件:hzjsj@hzbook.com
联系电话:(010)68995264
联系地址:北京市西城区百万庄南街1号
邮政编码:100037 ...







点击看大图




加载中...

