vozForums
Báo lỗi diễn đàn và theo dõi tình hình khắc phục.

Go Back   vozForums > Máy tính để bàn > Phần mềm > Phát triển Phần mềm


Reply
 
Thread Tools
  #1  
Old 21-08-2011, 13:10
dotrihieu's Avatar
dotrihieu dotrihieu is offline
Senior Member
 
Join Date: 02-2007
Location: Nơi không có một người...
Posts: 1,389
Talking 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.
Reply With Quote
  #2  
Old 21-08-2011, 13:11
dotrihieu's Avatar
dotrihieu dotrihieu is offline
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.
Reply With Quote
  #3  
Old 21-08-2011, 13:15
P.E Onimusha's Avatar
P.E Onimusha P.E Onimusha is offline
Senior Member
 
Join Date: 06-2007
Location: vietfreeware.hp.af.cm
Posts: 4,937
Send a message via ICQ to P.E Onimusha Send a message via AIM to P.E Onimusha Send a message via MSN to P.E Onimusha Send a message via Yahoo to P.E Onimusha Send a message via Skype™ to P.E Onimusha
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á
Reply With Quote
  #4  
Old 21-08-2011, 13:23
dotrihieu's Avatar
dotrihieu dotrihieu is offline
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 View Post
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ứ
Reply With Quote
  #5  
Old 21-08-2011, 13:26
P.E Onimusha's Avatar
P.E Onimusha P.E Onimusha is offline
Senior Member
 
Join Date: 06-2007
Location: vietfreeware.hp.af.cm
Posts: 4,937
Send a message via ICQ to P.E Onimusha Send a message via AIM to P.E Onimusha Send a message via MSN to P.E Onimusha Send a message via Yahoo to P.E Onimusha Send a message via Skype™ to P.E Onimusha
Re: DirectX - Có ai quan tâm không?

Quote:
Originally Posted by dotrihieu View Post
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
Reply With Quote
  #6  
Old 21-08-2011, 18:27
nmadtu nmadtu is offline
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
Reply With Quote
  #7  
Old 21-08-2011, 18:46
Phang Bão Đại Ka's Avatar
Phang Bão Đại Ka Phang Bão Đại Ka is offline
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 đê
Reply With Quote
  #8  
Old 21-08-2011, 18:57
grandholy's Avatar
grandholy grandholy is offline
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 View Post
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
Reply With Quote
  #9  
Old 21-08-2011, 21:16
nmadtu nmadtu is offline
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
Reply With Quote
  #10  
Old 21-08-2011, 21:46
admin@phivu.net admin@phivu.net is offline
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
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump





All times are GMT +7. The time now is 04:26.


Steam Powered by vBulletin® 0.1 pre-alpha
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.