Home :: Books :: Computers & Internet  

Arts & Photography
Audio CDs
Audiocassettes
Biographies & Memoirs
Business & Investing
Children's Books
Christianity
Comics & Graphic Novels
Computers & Internet

Cooking, Food & Wine
Entertainment
Gay & Lesbian
Health, Mind & Body
History
Home & Garden
Horror
Literature & Fiction
Mystery & Thrillers
Nonfiction
Outdoors & Nature
Parenting & Families
Professional & Technical
Reference
Religion & Spirituality
Romance
Science
Science Fiction & Fantasy
Sports
Teens
Travel
Women's Fiction
Linux 3D Graphics Programming

Linux 3D Graphics Programming

List Price: $59.95
Your Price: $37.77
Product Info Reviews

<< 1 2 >>

Rating: 5 stars
Summary: Excellent read.
Review: =

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. >However, fair warning: This is not a trivial topic. Reading the book end to end will achieve nothing. <

Anyhow: I enjoyed the book. I thought it was worth while. My regards to the author!

Rating: 5 stars
Summary: Excellent read.
Review: =

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. >However, fair warning: This is not a trivial topic. Reading the book end to end will achieve nothing. <

Anyhow: I enjoyed the book. I thought it was worth while. My regards to the author!

Rating: 5 stars
Summary: From the Author
Review: 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.

Rating: 4 stars
Summary: well balanced foundation
Review: I found the book well balanced in its treatment of programming, graphics libraries and drivers, math and 2D and 3D material. I think that for C++ programmers who wants to try out their hand at graphics in a Linux environment this is a very good introduction, since it assumes programming knowledge but little else. I do not think that it is as useful for anyone who has not programmed in C++ before, but this is not necessarily a drawback. It does need to be accompanied, however, by a text on openGL (Mesa) to be fully appreciated.

Rating: 4 stars
Summary: Good book
Review: 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.

Rating: 4 stars
Summary: A+ for effort, B+ results
Review: 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.

Rating: 3 stars
Summary: not what I expected
Review: 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.

Rating: 5 stars
Summary: Great (introduction) 3D Graphics Programming book
Review: 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.

Rating: 3 stars
Summary: not what I expected
Review: The author provides information on how to program 3D graphics in X-Windows rather than the OpenGL/GLUT standard. The end result tends to be over-achiever code, which can be hard to follow due to the lower level coding nature of X11.

In X11, its just too much code to do some stupid task like draw a few polygons in a window. You could cut the code almost in half by using OpenGL/GLUT, which is a much higher language style of coding than X11 is. Not to mention that the author goes overkill with the OOP implementation and more advanced C++ programming (the author makes an emphasis on C++, yet all his code contains no real definitive C++ architecture, its all regular C based, ex: scanf/printf instead of cout/cin).

Also, readability is an aspect definately not visible in the author's code. Lack of appropriate commenting & lack of appropriate simplicity in coding style makes the author's code somewhat ordane and hard to follow. Unless you have a good background in OOP then this book will simply confuse you to no end. Not that OOP is that hard or a bad thing, but it gets pretty complex fairly quickly, ESPECAILLY when your working with a GUI.

However, the author does provide a good array of the mathematics involved in the creation of 3D graphics, which is vital to be able to understand what your doing. As a prior VRML programmer, I could immediately tell that the author was going on a good track to explain some of the mathematics involved.

Acutally you might want to check out what X11 is all about first before you commit to learning to program under it:
First off, X11 is an entire GUI. We're talking fully loaded operating systems concepts at play here.
Secondly, you have to understand that to create 3D graphics you need two things: a GUI window messaging system (which is an entire API in and of itself, a good example being GLUT, GTK, etc.), & the actual graphics package (example being X11, OpenGL/Mesa, etc.).

What the author is actually doing in his code is using the graphics package embedded into X11 & in addition creating an ENTIRE almost overly-done OOP-based API-similar coding structure for the X11 GUI windowing system, all of this INTO ONE chunk of book...
Now, seriously, that is some pretty STEEP material to be covering in a graphics programming book. The OOP-based code for the X11 GUI windowing system that the author writes and has you writing is an equivalent of writing an entire API (like GLUT) from scratch... THATS PRETTY STEEP (but at least now you have an idea of what your going to be getting into if you buy this book).

So within 50 pages I had immediately noticed that the book would take quite an effort to learn the material, and program 3D graphics under X11... A simple analogy would be X11 is to Assembly Language as OpenGL/GLUT is to Visual Basic.

Honestly, with all the technologies/APIs available which take care of that underlaying overhead, unless your REAL goal is to learn X11, there is NO POINT in trying to re-program the wheel here.

Basically put, trying to learn X11 in both the GUI and 3D Graphics aspects, coupeled with the advanced OOP implementations, all together, its just TOO MUCH for somebody trying to learn 3D graphics programming from the beginning. A better approach would be to teach OpenGL/GLUT, or to just simply rename the book to something that makes a lot more sense to the subject matter covered (don't get me wrong, its not a horrible book, but this book is teaching you how to program 3D graphics using pure X11). For what the title implies, I do think it should of said something more like "core-X11 Linux 2D/3D Graphics & GUI Programming" as it would better fit the material covered in the book.

I guess, ultimately, I should of known more about what I was buying. So its my bad, but I am not trying to rate the book too harshly based on my bad luck, but it could of said a bit more specifically about what would be used to accomplish the task of the book, which, IMO, can easily be mis-interpreted. Good thing I posted this review, eh?

So if your looking to program graphics under X11 and program the core X11 GUI code, this book is what you want, otherwise, save your money for something more relevant.

Rating: 4 stars
Summary: Good book
Review: This book is pretty good to get a novice up and running. Its definately not an advanced book so if you already know thsi stuff skip it.

But for beginners its a good place tro get started


<< 1 2 >>

© 2004, ReviewFocus or its affiliates