Академический Документы
Профессиональный Документы
Культура Документы
VN
© 2004 by Premier Press, a division of Course Technology. All rights Senior Vice President,
reserved. Course PTR Group:
No part of this book may be reproduced or transmitted in any form or by any Andy Shafran
means, electronic or mechanical, including photocopying, recording, or by Publisher:
any information storage or retrieval system without written permission from Stacy L. Hiquet
Course PTR, except for the inclusion of brief quotations in a review. Senior Marketing Manager:
The Premier Press logo and related trade dress are trademarks of Premier Sarah O’Donnell
Press and may not be used without written permission. Marketing Manager:
DirectX is a registered trademark of Microsoft Corporation in the U.S. and/or Heather Hurley
other countries. Manager of Editorial
© Microsoft Corporation, 2002. All rights reserved. Services:
All other trademarks are the property of their respective owners. Heather Talbot
Important: Course PTR cannot provide software support. Please contact the Senior Acquisitions Editor:
appropriate software manufacturer’s technical support line or Web site for Emi Smith
assistance. Associate Marketing
Course PTR and the author have attempted throughout this book to Manager:
distinguish proprietary trademarks from descriptive terms by following the Kristin Eisenzopf
capitalization style used by the manufacturer. Project/Copy Editor:
Information contained in this book has been obtained by Course PTR from Karen A. Gill
sources believed to be reliable. However, because of the possibility of human Technical Reviewer:
or mechanical error by our sources, Course PTR, or others, the Publisher Joseph Hall
does not guarantee the accuracy, adequacy, or completeness of any Retail Market Coordinator:
information and is not responsible for any errors or omissions or the results Sarah Dubois
obtained from use of such information. Readers should be particularly aware Interior Layout:
of the fact that the Internet is an ever-changing entity. Some facts may have Marian Hartsough
changed since this book went to press. Cover Designer:
Educational facilities, companies, and organizations interested in multiple Steve Deschene
copies or licensing of this book should contact the publisher for quantity CD-ROM Producer:
discount information. Training manuals, CD-ROMs, and portions of this book Brandon Penticuff
are also available individually or can be tailored for specific needs. Indexer:
ISBN: 1-59200-349-4 Sharon Shock
Library of Congress Catalog Card Number: 2004090736 Proofreader:
Printed in the United States of America Sean Medlock
04 05 06 07 08 BH 10 9 8 7 6 5 4 3 2 1
2
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
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
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
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
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
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ư
Pascal, C, Java và C++.
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,
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
Window và sao đó rất nhanh chóng nhảy sang thế giới .NET. Mặc dù các công ty Internet
đ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ỹ
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
niềm đam mê đó.
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
cho công ty Atari’s Humongous Entertainment với tư cách là một lập trình viên. Trong
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
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.
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ị
chơi game cầm tay.
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ô
theo địa chỉ mail: gadget2032@yahoo.com
3
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
4
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
L
ậ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
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
huyền bí, những vùng đất chưa hề được biết đến ngay cả trong những giấc mơ.
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
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ọ
mong muốn và hơn cả là một môi trường để họ có thể sống theo đúng sở thích.
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
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
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
ả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 đó
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 đã
đượ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
đế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
mô phỏng không gian 3D.
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
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
vì thế phiên bản DirectX đầu tiên cũng sớm được Microsoft tung ra. Tuy nhiên trong thời
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
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
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
tảng DirectX, nó đã giúp cho những game thủ có thể tận hưởng được một công nghệ đồ
hoạ tiên tiến và hiện thực nhất về thế giới.
5
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
6
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
PHẦN I
KIẾN THỨC
NỀN TẢNG
Chương 1.
DirectX là gì, tại sao và làm thế nào để sử dụng nó
Chương 2.
Ví dụ đầu tiên sử dụng DirectX
Chương 3.
Phông nền, khung hình, hoạt cảnh.
7
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
CHƯƠNG 1
D irectX về thực chất là một hệ thống các giao diện lập trình ứng dụng (API) phục
vụ cho quá trình phát triển các game trên nền tảng hệ điều hành Windows. Nếu
như tại thời điểm một vài năm trước, những người phát triển game thường phải
vật lộn với những vấn đề nảy sinh từ sự không tương thích của phần cứng - không thể
phát triển những sản phẩm game để tất cả mọi người đều có thể tận hưởng được những
tính năng của game đó. Thì ngày nay, Microsoft đã đem tới một nền tảng DirectX. Nó
cung cấp cho những người phát triển game một phương thức đơn nhất, một nền tảng thư
viện API “sạch” (đã được chuẩn hoá) để họ có thể viết và chạy trên hầu hết các nền tảng
mà không cần phải lo ngại nhiều về phần cứng của PC. Chỉ một vài năm sau khi phiên
bản DirectX được đề xuất, số lượng game được phát triển trên nền tảng Windows đã tăng
lên một cách nhanh chóng.
Trong chương này, chúng ta sẽ đề cập tới các vấn đề:
DirectX là gì vậy
Tại sao nó lại hữu dụng đến thế
Thành phần nào đã xây dựng nên nền tảng DirectX API
DirectX là gì?
DirectX là một tập hợp thư viện các hàm API được Microsoft thiết kế để cung cấp cho
những người phát triển game một giao diện lập trình cấp thấp để liên kết tới các phần
cứng của PC chạy trên hệ điều hành Windows. Phiên bản hiện tại của nó là 9.0(c), mỗi
một đối tượng API của DirectX cung cấp một khả năng truy cập khác nhau tới từng loại
phần cứng của hệ thống, nó bao gồm hệ thống đồ hoạ, âm thanh và kết nối mạng, tất cả
chúng đều được xây dựng trên một giao diện chuẩn. Giao diện này cho phép những người
phát triển có thể viết những game của họ bằng cách sử dụng tập hợp cách hàm này lại với
nhau mà không cần phải quan tâm nhiều tới phần cứng mà nó sẽ được sử dụng.
8
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
Chú ý:
Hệ thống đồ hoạ DirectX bao gồm toàn bộ các chức năng của cả DirectDraw và Direct3D.
Phiên bản DirectX 7.0 là phiên bản cuối cùng phân tách hai thành phần này thành hai đối
tượng độc lập.
9
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
10
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
Các thành phần của DirectX được kết hợp lại như thế nào
DirectX đem đến cho những lập trình viên khả năng phát triển các game trên môi trường
Window một cách đơn giản hơn. Đó là một hệ thống thư viện được tổ chức dễ hiểu hơn
với sự hỗ trợ đầy đủ của Microsoft, những người cuối cùng cũng nhận ra sự quan trọng và
những lợi nhuận có thể đem lại từ ngành công nghiệp giải trí game trên máy tính.
Qua từng năm, các phiên bản của DirectX đã dần dần được bổ xung, phát triển thêm
nhằm cung cấp sự hỗ trợ ngày càng nhanh hơn cũng như cho những phần cứng mới hơn.
Microsoft muốn đảm bảo rằng mỗi một thành phần của DirectX có khả năng hỗ trợ các
game đã được viết cho phiên bản trước sẽ không gặp bất kỳ vấn đề gì khi phiên bản mới
được cài đặt vào hệ thống. Để thực hiện được điều này, Microsoft đã thiết kế DirectX trên
nền tảng COM.
11
Beginning DirectX9 Dịch bởi TransTeam diễn đàn Gamedev.VN
12