Beginning DirectX9<br />
<br />
Dịch bởi TransTeam diễn đàn Gamedev.VN<br />
<br />
© 2004 by Premier Press, a division of Course Technology. All rights<br />
reserved.<br />
No part of this book may be reproduced or transmitted in any form or by any<br />
means, electronic or mechanical, including photocopying, recording, or by<br />
any information storage or retrieval system without written permission from<br />
Course PTR, except for the inclusion of brief quotations in a review.<br />
The Premier Press logo and related trade dress are trademarks of Premier<br />
Press and may not be used without written permission.<br />
DirectX is a registered trademark of Microsoft Corporation in the U.S. and/or<br />
other countries.<br />
© Microsoft Corporation, 2002. All rights reserved.<br />
All other trademarks are the property of their respective owners.<br />
Important: Course PTR cannot provide software support. Please contact the<br />
appropriate software manufacturer’s technical support line or Web site for<br />
assistance.<br />
Course PTR and the author have attempted throughout this book to<br />
distinguish proprietary trademarks from descriptive terms by following the<br />
capitalization style used by the manufacturer.<br />
Information contained in this book has been obtained by Course PTR from<br />
sources believed to be reliable. However, because of the possibility of human<br />
or mechanical error by our sources, Course PTR, or others, the Publisher<br />
does not guarantee the accuracy, adequacy, or completeness of any<br />
information and is not responsible for any errors or omissions or the results<br />
obtained from use of such information. Readers should be particularly aware<br />
of the fact that the Internet is an ever-changing entity. Some facts may have<br />
changed since this book went to press.<br />
Educational facilities, companies, and organizations interested in multiple<br />
copies or licensing of this book should contact the publisher for quantity<br />
discount information. Training manuals, CD-ROMs, and portions of this book<br />
are also available individually or can be tailored for specific needs.<br />
ISBN: 1-59200-349-4<br />
Library of Congress Catalog Card Number: 2004090736<br />
Printed in the United States of America<br />
04 05 06 07 08 BH 10 9 8 7 6 5 4 3 2 1<br />
<br />
Senior Vice President,<br />
Course PTR Group:<br />
Andy Shafran<br />
Publisher:<br />
Stacy L. Hiquet<br />
Senior Marketing Manager:<br />
Sarah O’Donnell<br />
Marketing Manager:<br />
Heather Hurley<br />
Manager of Editorial<br />
Services:<br />
Heather Talbot<br />
Senior Acquisitions Editor:<br />
Emi Smith<br />
Associate Marketing<br />
Manager:<br />
Kristin Eisenzopf<br />
Project/Copy Editor:<br />
Karen A. Gill<br />
Technical Reviewer:<br />
Joseph Hall<br />
Retail Market Coordinator:<br />
Sarah Dubois<br />
Interior Layout:<br />
Marian Hartsough<br />
Cover Designer:<br />
Steve Deschene<br />
CD-ROM Producer:<br />
Brandon Penticuff<br />
Indexer:<br />
Sharon Shock<br />
Proofreader:<br />
Sean Medlock<br />
<br />
Course PTR, a division of Course Technology<br />
25 Thomson Place<br />
Boston, MA 02210<br />
http://www.courseptr.com<br />
<br />
2<br />
<br />
Beginning DirectX9<br />
<br />
Dịch bởi TransTeam diễn đàn Gamedev.VN<br />
<br />
Thông tin về tác giả<br />
<br />
WENDY JONES là người đã dành trọn niềm đam mê của cô ấy cho máy tính ngay từ lần đầu<br />
<br />
tiên cô được nhìn thấy chiếc máy Apple IIe khi còn học ở trường phổ thông. Kể từ khi<br />
tiếp cận với nó, cô ấy đã dành mọi khoảng thời gian rảnh rỗi vào công việc học lập trình<br />
BASIC và kỹ thuật đồ hoạ, vẽ những ý tưởng của mình lên giấy vẽ và thực hiện nó trên<br />
máy tính. Ngoài BASIC thì cô cũng đã lần lượt tiếp cận với các ngôn ngữ khác như<br />
Pascal, C, Java và C++.<br />
Nghề nghiệp của Wendy là một chuỗi thay đổi như chính sự phát triển của máy tính vậy,<br />
từ bỏ môi trường lập trình DOS, cô tự trang bị cho mình những kiến thức về lập trình<br />
Window và sao đó rất nhanh chóng nhảy sang thế giới .NET. Mặc dù các công ty Internet<br />
đem lại rất nhiều tiền, nhưng đó không phải là tất cả, chính vì thế Wendy đã mở rộng kỹ<br />
năng lập trình của mình sang lĩnh vực lập trình games và dồn tất cả sức lực của mình cho<br />
niềm đam mê đó.<br />
Wendy đã hiện thực hoá được niềm đam mê này khi cô nhận được một đề nghị làm việc<br />
cho công ty Atari’s Humongous Entertainment với tư cách là một lập trình viên. Trong<br />
xuốt quá trình làm việc ở Atari, cô ấy đã làm việc trên cả hai môi trường PC và máy chơi<br />
game cá nhân, bị quấn theo hàng loạt những thách thức mà công việc đó đem đến.<br />
Hiện tại Wendy đang làm việc các phần mềm dành cho PocketPC và trên những thiết bị<br />
chơi game cầm tay.<br />
Nếu bạn có bất cứ góp ý hay những câu hỏi về quyển sách này, bạn có thể liên hệ với cô<br />
theo địa chỉ mail: gadget2032@yahoo.com<br />
<br />
3<br />
<br />
Dịch bởi TransTeam diễn đàn Gamedev.VN<br />
<br />
Beginning DirectX9<br />
<br />
Bố cục của sách<br />
<br />
Lời giới thiệu<br />
<br />
PHẦN I. NHỮNG KIẾN THỨC NỀN TẢNG<br />
Chương 1. DirectX là gì, tại sao và làm thế nào để sử dụng nó<br />
Chương 2. Ví dụ đầu tiên sử dụng DirectX<br />
Chương 3. Phông nền, khung hình, hoạt cảnh.<br />
<br />
PHẦN II. NHỮNG THÀNH PHẦN CƠ BẢN CỦA MỘT THẾ GIỚI 3D<br />
Chương 4. Những kiến thức cơ bản về 3D<br />
Chương 5. Ma trận, các phép biến đổi và phép xoay trong không gian<br />
Chương 6. Bảng mầu, vật liệu phủ và ánh sáng trong không gian<br />
Chương 7. Chia nhỏ và làm mịn đối tượng<br />
Chương 8. Vật thể, điểm chèn và các hiệu ứng<br />
<br />
PHẦN III. NHỮNG KIẾN THỨC BỔ XUNG<br />
Chương 9. Sử dụng DirectInput<br />
Chương 10. Hiệu ứng âm thanh bằng DirectSound<br />
Chương 11. Xây dựng một dự án mẫu<br />
<br />
PHẦN IV. PHỤ LỤC<br />
Phụ lục A. Giải đáp các bài tập cuối các chương<br />
Phụ lục B. Cách sử dụng CD-ROM<br />
Giải thích các thuật ngữ<br />
Chỉ mục các từ khoá<br />
<br />
4<br />
<br />
Beginning DirectX9<br />
<br />
Dịch bởi TransTeam diễn đàn Gamedev.VN<br />
<br />
LỜI GIỚI THIỆU<br />
<br />
L<br />
<br />
ập trình game có thể nói là một công việc cực kỳ thú vị trong thế giới lập trình bởi<br />
nó đem lại cho bạn cơ hội được tạo ra một thế giới ảo nơi mà những sinh vật<br />
huyền bí, những vùng đất chưa hề được biết đến ngay cả trong những giấc mơ.<br />
Liệu bạn có thể tìm thấy điều này ở một nơi nào khác? Với nó, bạn có thể đem đến<br />
cho mọi người khả năng trở thành bất cứ một nhân vật nào, một con người nào mà họ<br />
mong muốn và hơn cả là một môi trường để họ có thể sống theo đúng sở thích.<br />
Cũng chính bởi thế mà ngành công nghiệp Game đã phát triển không ngừng, vượt qua<br />
mọi giới hạn và kéo theo nó là phát triển của công nghệ phục vụ cho nó. Chỉ vài năm<br />
trước đây, có lẽ ở cấp độ người sử dụng còn chưa hề biết đến các thiết bị thể hiện hình<br />
ảnh 3D ngoại trừ các máy trạm đắt tiền SGI dựa trên nền tảng OpenGL. Tại thời điểm đó<br />
có thể nói OpenGL mới chỉ đang ở thời kỳ phôi thai. Đến khi các máy tính cá nhân PC đã<br />
được phổ biến hơn, OpenGL đã mở rộng nền tảng của mình và điều đó thực sự đã đem<br />
đến một cú huých mạnh đầu tiên trong lịch sử phát triển game cũng như những ứng dụng<br />
mô phỏng không gian 3D.<br />
Tại thời điểm đó, Windows vẫn chưa phải là nền tảng tốt nhất để phát triển games, tuy<br />
nhiên họ cũng rất nhanh chóng nhận ra những lợi nhuận từ ngành công nghiệp này. Chính<br />
vì thế phiên bản DirectX đầu tiên cũng sớm được Microsoft tung ra. Tuy nhiên trong thời<br />
gian đầu này thì sự phổ biến của nền tảng này vẫn còn rất hạn chế do OpenGL đã được<br />
thừa nhận là phương thức chuẩn để phát triển đồ hoạ 3D trên môi trường Windows. Ngày<br />
nay, hầu hết các game phát triển trên PC bán trên thị trường đều được xây dựng trên nền<br />
tảng DirectX, nó đã giúp cho những game thủ có thể tận hưởng được một công nghệ đồ<br />
hoạ tiên tiến và hiện thực nhất về thế giới.<br />
Những cần phải có những gì để tiếp cận công nghệ này?<br />
Những kinh nghiệm và kiến thức về lập trình C++ cũng như lý thuyết lập trình hướng đối<br />
tượng (OOP) sẽ giúp bạn có thể hiểu được tất cả những bài giảng được trình bày trong<br />
quyển sách này. Ngoài ra bạn cũng nên trang bị thêm cho mình một vài kỹ năng về toán<br />
học và hình hoạ, tuy nhiên hầu hết những khái niệm toán học sử dụng cũng sẽ được giải<br />
thích chi tiết. Những hiểu biết về Visual Studio .NET hay bất kỳ sản phẩm nào trong bộ<br />
Visual Studio cũng sẽ rất là hữu ích.<br />
<br />
5<br />
<br />