 |
|

21-08-2011, 13:10
|
 |
Senior Member
|
|
Join Date: 02-2007
Location: Nơi không có một người...
Posts: 1,389
|
|
DirectX - Có ai quan tâm không?
Chẳng là mình đang ngâm cứu cái này, gặp nhiều khúc mắc không biết hỏi ai  nên lập cái topic này để:
- Giới thiệu về lập trình DirectX cho các bạn có hứng thú, phát huy sức mạnh tập thể 
- Học tập từ các tiền bối
Hi vọng sẽ được ủng hộ. Tiếp theo là cái tutorial nho nhỏ.
Quote:
|
Phần 1: Giới thiệu
Phần đầu tiên sẽ giới thiệu sơ lược, đủ để hình dung DirectX là gì, ứng dụng.
1. DirectX là gì?
- DirectX là tập các API cấp thấp dành cho việc làm game và các ứng dụng đa phương tiện. Nó hỗ trợ đồ họa 2D, 3D, âm thanh và input. Nó đóng vai trò trung gian giữa game và phần cứng. Lập trình viên có thể sử dụng các hàm của DirectX mà không cần quan tâm nhiều đến phần cứng. DirectX được dùng trong hệ điều hành Windows, Xbox, Xbox 360.
2. Lịch sử phát triển
- Trong giai đoạn đầu, game máy tính được viết trên nền DOS. Để tạo giao diện đồ họa, hiệu ứng âm thanh, lập trình viên phải truy xuất trực tiếp vào phần cứng. Cách làm này tuy có hiệu suất cao nhưng lại rất phức tạp và xảy ra các vấn đề tương thích phần cứng. Những phiên bản đầu tiên của hệ điều hành Windows, tuy có sẵn giao diện đồ họa nhưng lại hạn chế khả năng truy xuất trực tiếp phần cứng, gây khó khăn cho việc phát triển game. Nhận thấy điều này, năm 1995, Microsoft đã phát hành DirectX cho hệ điều hành Windows để khắc phục những khuyết điểm trên. Hiện tại, phiên bản mới nhất là 11.
- Một số hình ảnh

Descent (1995)

Half-Life 2 (2004)

Crysis (2007)
3. Cấu trúc

4. Các thành phần
- DirectX Graphics (Direct3D 9): Cung cấp các hàm API cho lập trình đồ họa 2D và 3D. Đây là thành phần quan trọng nhất của DirectX.
- DirectXSound: Các API cho phép phát và thu âm thanh. Cho phép phát âm thanh với độ trễ thấp và cho phép ứng dụng quản lý tài nguyên phần cứng ở cấp cao.
+ Phát âm thanh từ file hay resource ở định dạng WAV.
+ Phát đồng thời nhiều âm thanh.
+ Chỉ định âm thanh độ ưu tiên cao cho hardware-controlled buffers.
+ Định hướng âm thanh trong môi trường 3D.
+ Thêm các hiệu ứng như tiếng vang, điệp khúc, thay đổi động các hiệu ứng.
+ Thu âm thanh WAV từ microphone và các thiết bị nhập khác.
- DirectX Input: Hỗ trợ các thiết bị nhập (keyboard, mouse, gamepad, joystick).
- Một số thành phần cũ : DirectDraw (đồ họa 2D), DirectMusic (tạo và phát dynamic soundtrack), DirectPlay (kết nối mạng cho game), DirectShow (stream các file âm thanh và video trực tiếp từ ổ cứng, CD-ROM).
|
Phần 2: Các bước chuẩn bị
http://vozforums.com/showpost.php?p=...59&postcount=2
Phần 3: Các khái niệm trong đồ họa 3D
http://vozforums.com/showpost.php?p=...5&postcount=15
Phần 4: Khởi tạo Direct3D
http://vozforums.com/showpost.php?p=...9&postcount=31
Phần 5: Vertices
http://vozforums.com/showpost.php?p=...7&postcount=34
Phần 6: Light
http://vozforums.com/showpost.php?p=...2&postcount=36
Phần 7: Material - Render state - Shading
http://vozforums.com/showpost.php?p=...9&postcount=43
Phần 8: Texture
http://vozforums.com/showpost.php?p=...0&postcount=48
Phần 9: Transparent
http://vozforums.com/showpost.php?p=...2&postcount=51
Phần 10: Shader
http://vozforums.com/showpost.php?p=...9&postcount=53
Phần 11: Sử dụng shader trong DirectX
http://vozforums.com/showpost.php?p=...8&postcount=54
//Dạo này có nhiều chuyện buồn nên hoãn làm tut vô thời hạn. Các bạn có gì thắc mắc thì có thể pm mình nhé :(
Last edited by dotrihieu; 21-03-2012 at 17:31.
|

21-08-2011, 13:11
|
 |
Senior Member
|
|
Join Date: 02-2007
Location: Nơi không có một người...
Posts: 1,389
|
|
|
Re: DirectX - Có ai quan tâm không?
Quote:
|
Phần 2: Các bước chuẩn bị
1. Yêu cầu
- C++, hiện vẫn được ưa chuộng trong ngành game.
2. Cài đặt
Bước 1: Cài đặt Visual Studio hoặc Visual C++ Express (miễn phí)
http://www.microsoft.com/visualstudi...itions/express
Bước 2: Download DirectX SDK trên website Microsoft
http://www.microsoft.com/download/en...ang=en&id=6812
- Lưu ý, Microsoft cung cấp DirectX ở 2 dạng :
+ DirectX End-User Runtimes : Cung cấp các dll cần thiết để chạy các ứng dụng viết trên nền DirectX. Các game lớn thường kèm theo bản này để người dùng cài đặt.
+ DirectX Software Development Kit (SDK) : Gồm các file dll, file .h, .lib, các tài liệu hướng dẫn lập trình, các ví dụ mẫu … Để lập trình thì phải dùng bản này.
Bước 3: Tạo 1 project DirectX
- Cách 1: Tạo bằng Visual Studio
+ Menu Tools – Options – Projects and Solutions – VC++ Directories, chỉ đường dẫn tới thư mục Include và Library\x86.
+ New project\Visual C++\win 32 Application\windows Application
+ Project Setting\Configuration Properties\Linker\Input chọn Additional dependencies và điền vào đó hai thư viện d3dx9.lib d3d9.lib
+ Với cách này thì Project rỗng, bạn phải tự viết code
- Cách 2: Tạo bằng DirectX SDK (mới bắt đầu nên dùng cách này)
+ Start Menu - Microsoft DirectX SDK - DirectX Sample Browser - Tutorial 1: CreateDevice - Install Project
+ Project được tạo có một vài thành phần cơ bản nhất
Bước 4: Chạy thử Project, nếu thấy ra 1 cửa sổ xanh lè thì bạn đã làm đúng rồi đấy. Nếu có báo lỗi thì xem phần Bước 3, cách 1.
Phần này chỉ có chút xíu thôi, hẹn gặp lại ở phần tiếp theo.
|
Nghe ngóng tình hình
Last edited by dotrihieu; 21-08-2011 at 13:20.
|

21-08-2011, 13:15
|
 |
Senior Member
|
|
Join Date: 06-2007
Location: vietfreeware.hp.af.cm
Posts: 4,937
|
|
|
Re: DirectX - Có ai quan tâm không?
Vừa làm 1 project nho nhỏ xinh xinh ở kỳ trước xong  Quanh quẩn vẽ hình 2D
P.S: Thảo luận trên này làm gì, cao siêu quá
|

21-08-2011, 13:23
|
 |
Senior Member
|
|
Join Date: 02-2007
Location: Nơi không có một người...
Posts: 1,389
|
|
|
Re: DirectX - Có ai quan tâm không?
Quote:
Originally Posted by P.E Onimusha
Vừa làm 1 project nho nhỏ xinh xinh ở kỳ trước xong  Quanh quẩn vẽ hình 2D
P.S: Thảo luận trên này làm gì, cao siêu quá 
|
Bình tĩnh, trên voz cũng có nhiều cao nhân lắm, với lại cái gì cũng phải có điểm bắt đầu chứ
|

21-08-2011, 13:26
|
 |
Senior Member
|
|
Join Date: 06-2007
Location: vietfreeware.hp.af.cm
Posts: 4,937
|
|
|
Re: DirectX - Có ai quan tâm không?
Quote:
Originally Posted by dotrihieu
Bình tĩnh, trên voz cũng có nhiều cao nhân lắm, với lại cái gì cũng phải có điểm bắt đầu chứ 
|
Ý em là thảo luận trên này nó không hợp lý, thích chuyên môn thì nên bàn ở mấy forum chuyên về game dev
|

21-08-2011, 18:27
|
|
Senior Member
|
|
Join Date: 09-2008
Posts: 1,143
|
|
|
Re: DirectX - Có ai quan tâm không?
em cũng muốn học DirectX để phát triển game
|

21-08-2011, 18:46
|
 |
Member
|
|
Join Date: 08-2009
Posts: 73
|
|
|
Re: DirectX - Có ai quan tâm không?
học cái này để nghiên cứu thôi nhĩ, chứ giờ game toàn dùng engine có sẵn  . ủng hộ chủ thớt, tiếp tục đê
|

21-08-2011, 18:57
|
 |
Senior Member
|
|
Join Date: 07-2007
Posts: 6,990
|
|
|
Re: DirectX - Có ai quan tâm không?
Quote:
Originally Posted by Phang Bão Đại Ka
học cái này để nghiên cứu thôi nhĩ, chứ giờ game toàn dùng engine có sẵn  . ủng hộ chủ thớt, tiếp tục đê
|
+1, giờ có hướng dẫn dùng engine thì ủng hộ chứ học cái này đau đầu lắm
|

21-08-2011, 21:16
|
|
Senior Member
|
|
Join Date: 09-2008
Posts: 1,143
|
|
|
Re: DirectX - Có ai quan tâm không?
mà bác chủ gặp khúc mắc j thế  post lên xem nào
|

21-08-2011, 21:46
|
|
K.I.A
|
|
Join Date: 07-2011
Posts: 210
|
|
|
Re: DirectX - Có ai quan tâm không?
Ớ, sẵn có topic cho em hỏi ngoài lề chút: Em dùng laptop, cấu hình trung bình, chơi được game 3D khá nặng, nhưng muốn nó mượt hơn chút đỉnh ===> Muốn dùng directx9 thay cho directx11 thì phải làm sao?
p/s: Win 7 ultimate
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|