E-Book Overview
Currently, there are no directly competitive titles to Lin's title, and considering the explosive growth of not only 3-D graphics but the Linux operating system, this new book will be valuable to developers interested in graphics programming. The CD-ROM contains a series of animated 3-D videos illustrating key 3-D graphics concepts, such as the transformation from world space into camera space. It also features Blender 3-D, a professional quality 3-D modeler.
E-Book Content
Linux 3D Graphics Programming
Norman Lin
Wordware Publishing, Inc.
Library of Congress Cataloging-in-Publication Data Lin, Norman. Linux 3D graphics programming / by Norman Lin. p. cm. Includes bibliographical references and index. ISBN 1-55622-723-X (pbk.) 1. Computer graphics. 2. Linux. 3. Three-dimensional display systems.
I. Title.
T385 .L556 2001 006.6'93--dc21
00-69314 CIP
© 2001, Wordware Publishing, Inc. All Rights Reserved 2320 Los Rios Boulevard Plano, Texas 75074
No part of this book may be reproduced in any form or by any means without permission in writing from Wordware Publishing, Inc. Printed in the United States of America
ISBN 1-55622-723-X 10 9 8 7 6 5 4 3 2 1 0103 Blender is a registered trademark of Not a Number B. V. Other product names mentioned are used for identification purposes only and may be trademarks of their respective companies.
All inquiries for volume purchases of this book should be addressed to Wordware Publishing, Inc., at the above address. Telephone inquiries may be made by calling: (972) 423-0090
iii
Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Chapter 1 Introduction to 3D Graphics and Linux . . . . . . . . . 1 Why Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Linux is Free and Open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Linux is Powerful . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Linux is Compatible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Linux is Contemporary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 A Survey of 3D Graphics Under Linux . . . . . . . . . . . . . . . . . . . . . . . 6 Stable Ideas, Projects, and Libraries . . . . . . . . . . . . . . . . . . . . . . . 8 Developing Ideas, Projects, and Libraries . . . . . . . . . . . . . . . . . . . . 9 Developing APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3D Applications with Source . . . . . . . . . . . . . . . . . . . . . . . . . 10 3D Modelers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Dead Ideas, Projects, and Libraries . . . . . . . . . . . . . . . . . . . . . . . 11 Other Ideas, Projects, and Libraries . . . . . . . . . . . . . . . . . . . . . . . 11 Scope of This Book, Revisited . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Let’s Talk About X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Definition of X: A Client-Server System . . . . . . . . . . . . . . . . . . . . 13 Hardware Acceleration and X Servers . . . . . . . . . . . . . . . . . . . . . . 14 What is Hardware Acceleration? . . . . . . . . . . . . . . . . . . . . . . . 15 Integrating Hardware Acceleration into X . . . . . . . . . . . . . . . . . . 17 Summary of Hardware Acceleration . . . . . . . . . . . . . . . . . . . . . 19 “Hello, Linux”: A Sample Program. . . . . . . . . . . . . . . . . . . . . . . . . 20 Entering the Sample Program . . . . . . . . . . . . . . . . . . . . . . . . . . 20 The Vi and Emacs Editors . . . . . . . . . . . . . . . . .