Trade in Yours
For a 0.25 Gift Card
Trade in
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Image not available

Tell the Publisher!
Id like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Learn Linux 3-D Graphics Programming [Paperback]

Norman Lin

Available from these sellers.

Trade In this Item for up to 0.25
Trade in Learn Linux 3-D Graphics Programming for an Amazon Gift Card of up to 0.25, which you can then spend on millions of items across the site. Trade-in values may vary (terms apply). Learn more

Product details

  • Paperback: 250 pages
  • Publisher: Wordware Publishing Inc.; Pap/Cdr edition (30 April 2001)
  • Language: English
  • ISBN-10: 155622723X
  • ISBN-13: 978-1556227233
  • Product Dimensions: 23.4 x 19.2 x 4.4 cm
  • Amazon Bestsellers Rank: 2,403,409 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, and more.

Inside This Book (Learn More)
First Sentence
During the course of the 15th century, great painters of the Renaissance grew very excited about a new discovery that was sweeping the artistic world. Read the first page
Explore More
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Reviews

There are no customer reviews yet on
5 star
4 star
3 star
2 star
1 star
Most Helpful Customer Reviews on (beta) 4.2 out of 5 stars  10 reviews
25 of 25 people found the following review helpful
4.0 out of 5 stars A+ for effort, B+ results 20 April 2002
By larryq - Published on
I have to give the author enormous kudos for tackling this project. Over the course of two volumes (I'm referring to this book and his companion "Advanced" Linux 3D Graphics Programming), he builds, from the ground up, a complete working 3D engine, complete with texture mapping, collision detection and world editing capability.
His writing and explanations on the topics at hand are very well written, and whenever the reader needs a diagram to make sense of something, there's invariably just the right one at hand to help him through it.
It's really amazing, when you step back, to see just what is covered in these books. Not only are all major 3D graphics programming issues dealt with, but the author also takes time to discuss programming topics such as design patterns and why he uses them in his code.
Having said all this, I did find some problems with the books, problems which kept me from giving 5 stars:
1. Some of the code is difficult to follow. Really difficult. The polygon engine created by the author uses double-pointers indexed by arrays, and folks, that gets tough to read after a bit. In particular, I couldn't follow his polygon clipping code very well at all, nor his screen creation code, which involved a lot of bit-shifting, none of which was really explained all that well in the text. A bit of a lapse from the author I thought, very atypical.
2. The author wanted his code to work with fixed and floating point math, and for that purpose he created macros for doing things like multiplication and division. All well and good, but again it hurts readablity to have all of those macros in the code when all you're trying to do is multiply two numbers together. Almost any CPU made in the past five years can handle floating point math very well, and so I don't see the need for fixed-point adjustments in the code. Just an opinion, others can disagree.
3. The sample programs seem a bit lacking. After 300 pages, your reward is to see a program with a few flat-shaded polygons spinning around. It's hard to work up enthusiasm and bull through the book when that's your reward. Sorry if that sounds too harsh!
4. The world editor was written with Perl, and... well, it adds another layer of complexity that maybe didn't need to be there. The syntax gets very scary very quickly.
I could also say something about the fact that the author seems hot to trot for free development tools (Blender for modeling, xxgdb compiler, etc.), when maybe using some low-priced commercial products would have allowed for quicker progress and better results. I'm talking about expensive... tools here, not 3D Studio Max. Again, only one man's opinion here.
Overall, it's a fine two-volume set, and if you want to see a 3D engine built from scratch, take a gander at this and prepare to learn how the magic works. Just don't expect to skate through it with no effort on your part.
14 of 14 people found the following review helpful
5.0 out of 5 stars From the Author 1 Jun 2001
By nlin - Published on
First and foremost: Check out the book's page on the web for the latest information and a detailed table of contents.
Linux 3D Graphics Programming is volume I of a two-volume work. Volume II (Advanced Linux 3D Graphics Programming) is due out in July 2001.
This book is for the beginning to intermediate 3D programmer. It explains both practical and theoretical issues involved in programming real-time 3D graphics applications under Linux.
What makes this book unique:
1) It explains every concept thoroughly, with an intuitive, *geometric* approach. Ever wondered what the homogeneous "w" coordinate is? Ever wondered *why* 3D graphics "look 3D"? Or what Renaissance paintings can teach us about 3D graphics? What "perspective projection" actually means? How you can do "Descent-style" camera rotation, and why this works? This book explains all the fundamentals, in a clear way, and lays a solid theoretical foundation.
2) It explains the often neglected topic of 3D modeling, showing how to use the 3D modeler Blender (included on the CDROM) to create and import 3D models into your programs. This means you can create great looking models and cool 3D programs. Forget about simple rotating cubes - you can make models as complex as you like. This book shows you how.
3) All of the programs are written using freely available tools under Linux (GCC, Mesa). The code itself is released under the GPL, free for use in your projects.
4) The code also compiles under Windows.
5) Plenty of standalone demonstration programs plus a 3D application library. No code is left unexplained. Every class, member variable, and method is explained in the book, in a bottom-up fashion. There is no hand-waving, and there are no black-boxes in the code. You get to experience and understand the development of the entire code base, with all of the theoretical AND practical issues.
The advanced volume, due out in July 2001, is targeted at readers who have already mastered the concepts in this first volume. It covers such topics as texture- and light mapping, z buffering, portals, BSP trees, particle systems, collision detection, digital sound, physics, content-development systems, and more.
18 of 20 people found the following review helpful
5.0 out of 5 stars Excellent Read 27 July 2001
By Douglas Linder - Published on
To start with, let me just say; I'm a second year electrical engineering / computer science uni student. In Australia. =P
This is a great book.
1) It actually goes into the detail of X11 pixel formats and xshm. As an xlib programmer the generic class to determine pixel formats is great. It is superior is a number of ways to the evil O'Reily books in its dealing with XImage and graphics under linux.
2) It ALSO goes over the basic foundations of 3d programming, and software rendering; as well as introducing the concepts of interfaces using c++ classes (factories, etc).
For anyone who has not done this before, this is an excellent book. For anyone who has: It is probably still worth a read. Unless you are truely a master at linux graphics programming, there's probably something to be gleaned from this book. And if you are a master, why would you buy it?
However, fair warning: This is not a trivial topic. Reading the book end to end will achieve nothing. I have highlighted (in bright yellow marker ;) about 1/2 the book. And spent a lot of time drawing pictures and trying understand what it said. This book requires a fair bit of study. I took me what? About 3 weeks to work through the whole thing.
Having said so, it wasn't hard. I just haven't done much of this before, so I spent a lot of time programming examples to prove that the actually worked. =P
Anyhow: I enjoyed the book. I thought it was worth while. :) My regards to the author!
11 of 12 people found the following review helpful
5.0 out of 5 stars Great (introduction) 3D Graphics Programming book 6 July 2003
By Paragon - Published on
Norman Lin's Linux 3D Graphics Programming book is an excellent book for those with a programming background who wish to dive into the world of real time 3D graphics programming. The book is very well written and gives step by step explanations of all the concepts introduced as well as the most of the source code. 3D graphics is a complex subject and the author realizes that (lots of) hand-holding is very helpful in understanding the concepts introduced. This book covers the basics, i.e. rasterization, transformations, projections, and some modelling. In teaching all of these subjects, the author provides what is constantly missing from other books and what I feel is very important in the learning process - rationale for why things are done a certain way. The author clearly realizes this, and this is among the strongest points of the book. Other strong points of this book include:
1) Some books simply discuss the concepts behind 3D graphics without providing incite into actually implementing them, i.e. accessing the screen, creating offscreen buffers, which data structures are best suited for a task. This books, aimed toward novices, does both.
2) The author starts out by giving an introduction to graphics under Linux, with background on software as well as hardware rendering (using OpenGL/Mesa as well as the aging Glide API). This is great for those who aren't yet familiar with graphics under the Linux operating system.
3) The code is object oriented - the author dedicates a section to explain the benefits of an object oriented approach in creating a graphics library.
4) Software rendering is stressed, althrough hardware rendering is covered as well. Very important in creating a 3d engine - using OpenGL without understanding how it does the things it does will only get you so far.
5) The book is NOT just Linux specific. Linux is the author's choice of implementation but all the concepts can be applied to other operating system. The object oriented approach allows for the graphics library to be implemented in other OS's - the appendix even discusses compilation under Windows.
6) All tools to get started are available on the companion cd-rom as well as free on the internet. The source code used in the book, the Debian distribution of Linux, the compiler tools and libraries, and the modelling software Blender (for use in the chapter that discusses modelling) are all included.
7) The author is very knowledgable in Linux and is clearly a advocate for the operation system :).
The author assumes you are sufficient in C/C++ programming. This is a fair assumption as you really have to be in order to do graphics programming. Be warned however, that the source code may not compile right away under other Linux distributions besides Debian and newer versions of gcc. Some modifications in the source code (very minor) may be required in order for the code to compile correctly - something you should be able to do. If not, perhaps you should hold off on graphics programming and get some more programming experience first (harsh but true). All in all, Linux 3D Graphics Programming is an excellent introductory book.
3 of 3 people found the following review helpful
4.0 out of 5 stars 3D programming with C++ 25 Jun 2001
By "" - Published on
Warning.This book is kind of book some like a lot and some do not like.
Book start with basic 2d stuff and continues to basic 3D stuff. All this is done in C++, with author use to build own 3D class library. Book contain lot of math and this might be bad for some readers. If you do not like math do not buy this book. Also if you buy this book you might need to buy also second volume of series which goes in more deep 3D stuff .
This book is good for someone who is interesting in C++ and using it at 3D programming. Book covers says linux, but most of the code can be use also in windows or some other system. Book still covers some linux and X stuff which is good to understand basic thing happening when linux is doing painting at screen.
Even code use some basic openGL (Mesa) functions this book is not meant to teach how to program 3D using openGL. This book teach how to implement 3D using reusable C++ classes. Author knows C++ and code examples are better than usual examples of C++ code seen in some book. Also author tells math behind 3D and this goes very deep in.
If you are C++ programmer or want to learn how things behind 3D really works this book(s) are must to you.
Were these reviews helpful?   Let us know

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for similar items by category