''The most recent Red Book parallels the grand tradition of OpenGL; OpenGL programming guide: the official guide to learning OpenGL, version /. OpenGL programming guide: the official guide to learning OpenGL, versions and / Dave Shreiner; the Khronos OpenGL ARB Working Group — 7th ed. Welcome to the website for the OpenGL Programming Guide (the "Red Book"). The latest release — the ninth edition — brings the most comprehensive.
|Language:||English, Spanish, Arabic|
|Genre:||Children & Youth|
|Distribution:||Free* [*Registration needed]|
Find A−W Developers Press on the World Wide Web at: usaascvb.info devpress/. For my family Ellyn, Ricky, and Lucy. OpenGL Programming Guide. OpenGL Programming Guide (Addison-Wesley Publishing Company). Second Edition. The Official Guide to. Learning OpenGL, Version Silicon Graphics. SceneKit及AR/VR的相关书籍. Contribute to XanderXu/SceneKit-AR-VR- information development by creating an account on GitHub.
Foley, Andries van Dam, Steven K. Feiner, and John F. Hughes Reading, MA: Addison-Wesley, - This book is an encyclopedic treatment of the subject of computer graphics. It includes a wealth of information but is probably best read after you have some experience with the subject.
Glassner New York: Design Press, - This book is a nontechnical, gentle introduction to computer graphics. It focuses on the visual effects that can be achieved rather than on the techniques needed to achieve them. Addison-Wesley Developers Press, , which is designed as a companion volume to this guide.
The Reference Manual provides a technical view of how OpenGL operates on data that describes a geometric object or an image to produce an image on the screen. It also contains full descriptions of each set of related OpenGL commands - the parameters used by the commands, the default values for those parameters, and what the commands accomplish.
Many OpenGL implementations have this same material on-line, in the form of man pages or other help documents, and it's probably more up-to-date. OpenGL is really a hardware-independent specification of a programming interface, and you use a particular implementation of it on a particular kind of hardware.
This guide explains how to program with any OpenGL implementation. However, since implementations may vary slightly - in performance and in providing additional, optional features, for example - you might want to investigate whether supplementary documentation is available for the particular implementation you're using.
In addition, you might have OpenGL-related utilities, toolkits, programming and debugging support, widgets, sample programs, and demos available to you with your system. This guide contains many sample programs to illustrate the use of particular OpenGL programming techniques. Addison-Wesley Developers Press, If you have access to the Internet, you can obtain the source code for both the sample programs and GLUT for free via anonymous ftp file-transfer protocol.
The files you receive are compressed tar archives.
To uncompress and extract the files, type. The filename will be glut-i. Z , where i is the major revision number and j is the minor revision number of the most recent version. Check the directory for the right numbers, then grab this file:. This file must also be uncompressed and extracted by using the tar command.
The sample programs and GLUT library are created as subdirectories from wherever you are in the file directory structure. Many implementations of OpenGL might also include the code samples as part of the system. This source code is probably the best source for your implementation, because it might have been optimized for your system. Read your machine-specific OpenGL documentation to see where the code samples can be found. Although this book is ideal and perfec in every conceivable way, there is a a pointer to an errata list from the Silicon Graphics OpenGL Web Site:.
The authors are quite certain there will be a little note there to reassure the reader of the pristeen quality of this book. Code examples are set off from the text in a monospace font, and command summaries are shaded with gray boxes.
In a command summary, braces are used to identify choices among data types. In the following example, glCommand has four possible suffixes: In the function prototype for glCommand , TYPE is a wildcard that represents the data type indicated by the suffix.
The second edition of this book required the support of many individuals. The impetus for the second edition began with Paula Womack and Tom McReynolds of Silicon Graphics, who recognized the need for a revision and also contributed some of the new material.
Thanks to many people at Silicon Graphics: Thanks to Dave Orton and Kurt Akeley for executive-level support. Thanks to Kay Maitz and Renate Kempf for document production support. And thanks to Cindy Ahuna, for always keeping an eye out for free food. Special thanks are due to the reviewers who volunteered and trudged through the six hundred pages of technical material that constitute the second edition: Their careful diligence has greatly improved the quality of this book.
They guide the evolution of the OpenGL standard and update the specification to reflect the needs and desires of the graphics industry. The second edition of this book would not have been possible without the first edition, and neither edition would have been possible without the creation of OpenGL.
Thanks to the chief architects of OpenGL: Mark Segal and Kurt Akeley. Special recognition goes to the pioneers who heavily contributed to the initial design and functionality of OpenGL: All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written permission of the publisher. Sponsoring Editor: Mary Treseler Project Manager: John Fuller Production Assistant: Melissa Lima Cover Design: Jean Seal Online Book Production: Michael Dixon 1 2 3 4 5 6 7 8 9 -MA- First printing, January Addison-Wesley books are available for bulk downloads by corporations, institutions, and other organizations.
Texture Mapping!!! In this tutorial I'll teach you how map a bitmap image onto the six side of a cube. We'll use the GL code from lesson one to create this project.
It's easier to start with an empty GL window than to modify the last tutorial. You'll find the code from lesson one is extremely valuable when it comes to developing a project quickly.
The code in lesson one sets everything up for you, all you have to do is concentrate on programming the effect s. I'm going to attempt to teach you 2 new ways to filter your textures, simple lighting, keyboard control, and probably more : If you don't feel confident with what you've learned up to this lesson, go back and review.
Play around with the code in the other tutorials. Don't rush. It's better to take your time and learn each lesson well, than to jump in, and only know enough to get things done. A fellow programmer from the totally cool site Hypercosm, had asked if he could write a tutorial on blending. Lesson eight was going to be a blending tutorial anyways. So the timing was perfect! This tutorial expands on lesson seven. Blending is a very cool effect I hope you all enjoy the tutorial.
The author of this tutorial is Tom Stanis. He's put alot of effort into the tutorial, so let him know what you think. Blending is not an easy topic to cover.
You wanted to know how to move the objects you've made around the screen in 3D. You wanted to know how to draw a bitmap to the screen, without the black part of the image covering up what's behind it. You wanted simple animation and more uses for blending. This tutorial will teach you all of that. You'll notice there's no spinning boxes. The previous tutorials covered the basics of OpenGL. Each tutorial expanded on the last. This tutorial is a combination of everything that you have learned up till now, along with information on how to move your object in 3D.
This tutorial is a little more advanced, so make sure you understand the previous tutorials before you jump into this tutorial. This tutorial was made by a fellow programmer named Lionel Brits. In this lesson you will learn how to load a 3D world from a data file, and move through the 3D world. The code is made using lesson 1 code, however, the tutorial web page only explains the NEW code used to load the 3D scene, and move around inside the 3D world.
I hope you enjoy Lionel's contribution to the site. When I have time I'll make the Tutorial easier to follow. The same guy that created the totally cool mini demo called worthless. He enjoyed everyones reaction to his demo, and decided to go one step further and explain how he does the cool effect at the end of his demo. This tutorial builds on the code from lesson 6. By the end of the tutorial you should be able to bend fold and manipulate textures of your own.
It's definitely a nice effect, and alot better than flat non moving textures. If you enjoy the tutorial, please email bosco and let him know. Tired of writing lots of code every time you want to put an object on the screen? If so, this tutorial is definitely for you. Learn how to use OpenGL display lists. Prebuild objects and display them on the screen with just one line of code. Speed up your programs by using precompiled objects in your programs.
Stop writing the same code over and over. Let display lists do all the work for you! In this tutorial we'll build the Q-Bert pyramids using just a few lines of code thanks to display lists. You could always texture map text onto your screen.
Of course you have very little control over the text, and unless you're good at blending, the text usually ends up mixing with the images on the screen. If you'd like an easy way to write the text you want anywhere you want on the screen in any color you want, using any of your computers built in fonts, then this tutorial is definitely for you. Bitmaps font's are 2D scalable fonts, they can not be rotated. They always face forward. Outline Fonts: Bitmap fonts not good enough? Do you need control over where the fonts are on the Z axis?
Do you need 3D fonts fonts with actual depth? Do you need wireframe fonts? If so, Outline fonts are the perfect solution. You can move them along the Z axis, and they resize.
You can spin them around on an axis something you can't do with bitmap fonts , and because proper normals are generated for each character, they can be lit up with lighting. You can build Outline fonts using any of the fonts installed on your computer. Definitely a nice font to use in games and demos.
This time we learn a quick and fairly nice looking way to texture map fonts, Page 5 of 10 Jeff Molofee's OpenGL Windows Tutorials and any other 3D object on your screen. By playing around with the code, you can create some pretty cool special effects, Everything from normal texture mapped object to sphere mapped objects. In case you don't know Sphere mapping creates a metalic looking object that reflects anything from a pattern to a picture.
It based on the code from lesson 7, that why you're seeing the famous crate again : It's a pretty short tutorial aimed at teaching you the art of fog.
You'll learn how to use 3 different fog filters, how to change the color of the fog, and how to set how far into the screen the fog starts and how far into the screen it ends. Definitely a nice effect to know! In this tutorial you will learn how to write any character or phrase you want to the screen using texture mapped quads. You will learn how to read one of different characters from a x texture map, and finally I will show you how to place each character on the screen using pixels rather than units.
Even if you're not interested in drawing 2D texture mapped characters to the screen, there is lots to learn from this tutorial. Definitely worth reading! It will introduce you to the wonderful world of quadratics. With quadratics you can easily create complex objects such as spheres, discs, cylinders and cones.
These object can be created with just one line of code. With some fancy math and planning it should be possible to morph these objects from one object into another. Please let GB Schmick know what you think of the tutorial, it's always nice when visitors contribute to the site, it benefits us all. Everyone that has contributed a tutorial or project deserves credit, please let them know their work is appreciated!
Particle Engine Using Triangle Strips: Have you ever wanted to create an explosion, water fountain, flaming star, or some other cool effect in your Page 6 of 10 Jeff Molofee's OpenGL Windows Tutorials OpenGL program, but writing a particle engine was either too hard, or just too complex?
If so, this tutorial is for you. You'll learn how to program a simple but nice looking particle engine. I've thrown in a few extras like a rainbow mode, and lots of keyboard interaction. You'll also learn how to create OpenGL triangle strips. I hope you find the code both useful and entertaining. Masking: Up until now we've been blending our images onto the screen.
Although this is effective, and it adds our image to the scene, a transparent object is not always pretty. Lets say you're making a game and you want solid text, or an odd shaped console to pop up.
With the blending we have been using up until now, the scene will shine through our objects. By combining some fancy blending with an image mask, your text can be solid. You can also place solid oddly shaped images onto the screen. A tree with solid branches and non transparent leaves or a window, with transparent glass and a solid frame.
Lots of possiblities! Hopefully there's enough in this tutorial to keep everyone happy : I spent 2 days coding this tutorial, and about 2 weeks writing this HTML file.
If you've ever played Amidar, the game you write in this tutorial may bring back memories. You have to fill in a grid while avoiding nasty enemies. A special item appears from time to time to help make life easier. Learn lots and have fun doing it! Right off the start I'd like to point out that this is an advanced tutorial. If you're still uncertain about the basics, please go back and read the previous tutorials. If you're a new GL programmer, this lesson may be a bit much.
In this lesson, you will modify the code from lesson 6 to support hardware multi-texturing on cards that support it, along with a really cool visual effect called bumpmapping. Please let Jens Schneider know what you think of the tutorial, it's always nice when visitors contribute to the site, it benefits us all.
I have had many requests for such a tutorial, so here it is. The code in lesson 10 will be modified to allow you to look around with the mouse and move with the arrow keys. Something you should know if you plan to write that killer 3D engine : I hope you appreciate Justin's work. He spent alot of time making the tutorial unique reading textures from the data file, etc , and I spent alot of time tweaking things, and making the HTML look pretty. If you enjoy this tutorial let him know!
In lesson 15 texture mapped fonts I talked a little bit about sphere mapping. I explained how to auto-generate texture coordinates, and how to set up sphere mapping, but because lesson 15 was fairly simple I decided to keep the tutorial simple, leaving out alot of details in regards to sphere mapping. Now that the tutorials are a little more advanced it's time to dive into the world of sphere mapping. TipTup did an excellent job on the tutorial, so if you appreciate his work, let him know!
I will also show you how to use scissor testing to create a cool scrolling window effect. And most importantly I will show you how to load and use TGA targa image files as textures in projects of your own.
TGA files support the alpha channel, allowing you to create some great blending effects, and they are easy to create and work with. Something I'm sure alot of you guys will appreciate! Learn how to load simple objects from a text file, and morph smoothly from one object into another.
The effect in this tutorial has to be seen to be appreciated. The effect taught in this demo can be used to animated objects similar to the swimming dolphin in my Dolphin demo, or to twist and bend objects into many different shapes. You can also modify the code to use lines or solid polygons. Great effect! Hope you appreciate Piotr's work! It demonstrates how to create extremely realistic Page 8 of 10 Jeff Molofee's OpenGL Windows Tutorials reflections using the stencil buffer, clipping, and multitexturing.
This tutorial is more advanced than previous tutorials, so please make sure you've read the previous tutorials before jumping in. It's also important to note this tutorial will not run on video cards that do not support the stencil buffer voodoo 1, 2, perhaps more.
If you appreciate Banu's work, let him know!
Before you decide to try out shadows, make sure you completely understand the base code, and make sure you are familiar with the stencil buffer. Banu wrote the original code.
Brett cleaned the code up, combined it into one file, and wrote the HTML for the tutorial. The effect is amazing! Shadows that actual wrap around objects, and distort on the walls and floor.
Thanks to Banu and Brett for their hard work, this is truely a great tutorial! Learn how to create bezier patches. Learn how to alter a surface by modifying control points. The surface being altered is fully texture mapped, the animation is smooth! Left and Right arrow keys rotate the object while the Up and Down arrows raise and lower the resolution. This tutorial also eliminates the fullscreen problems a few of you have been having!
Thanks to David for modifying the code! If you appreciate his work, let him know! In this tutorial you will learn how to load. RAW image files. You will also learn how to write your own blitter routine to modify textures after they have been loaded.
You can copy sections of the first texture into a second texture, you can blend textures together, and you can stretch textures. The same routine can be modified to create realtime plasma and other cool effects! If you enjoy the tutorial let Andreas know! This amazing tutorial was written by Dimitrios Christopoulos. In this tutorial you will learn the basics of collision detection, Page 9 of 10 Jeff Molofee's OpenGL Windows Tutorials collision response, and physically based modelling effects.
This tutorial concentrates more on how collision detection works than on the actual code, although all of the important code is explained. Don't expect to read through the tutorial once and understand everything about collision detection.
It's a complex topic, this tutorial will get you started. What can I say Another incredible tutorial! This tutorial will teach you how to load in and display texture mapped Milkshape3D models. This tutorial is quite advanced so make sure you understand the previous tutorials before you attempt the code in this tutorial. It sounds as though Brett is planning a future tutorial on Skeletal Animation so if you enjoy this tutorial, show him your support!
Email him and let him know you appreciate his work! I am not a guru programmer. I am an average programmer, learning new things about OpenGL every day. I do not claim to know everything. I do not guarantee my code is bug free. I have made every effort humanly possible to eliminate all bugs but this is not always an easy task.
Please keep this in mind while going through the tutorials!