Beginning DirectX9 - Chương 3
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Beginning DirectX9 - Chương 3 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9 CHƯƠNG 3PHÔNG NỀN, KHUNG HÌNH, HOẠT CẢNHK hung hình (sprite) – nền tảng của kỹ thuật game 2D, thể hoại game vẫn còn chiếm một thị phần lớn trong ngành công nghiệp game hiện nay. Không phải tất cả các game đều cần thiết phải có những hệ thống phần cứng 3D mới nhất mớichạy được; những trò chơi vui nhộn và chiếm ít thời gian như Tetris vẫn được viết hoàntoàn 2D và vẫn tỏ ra rất phổ biến hiện này. Trong chương trình sẽ giới thiệu tới bạnnhững cách đơn giản nhất để sử dụng DirectX cho quá trình tạo một khung hình cơ sởcủa game.Những phần mà bạn sẽ được giới thiệu trong chương này: Thế nào là phông nền và làm thế nào để sử dụng nó Làm thế nào để thực hiện truy cập tới bộ nhớ đệm (back buffer) Làm thế nào để tạo một offscreen surface. Làm thế nào để tải một file ảnh vào bộ nhớ một cách đơn giản Làm thế nào để tạo và sử dụng sprites (những khung hình) Làm thế nào để tạo một hoạt cảnh sprites. Làm thế nào để xác lập các thông số thời gian sao cho hiệu quả thể hiện hoạt cảnh tốt nhất.You’ve just touched the surfaceSurfaces là một phần của DirectX. Surface bao gồm những vùng bên trong bộ nhớ đượcsử dụng để lưu trữ dữ liệu thông tin ảnh. Chúng cỏ thể lưu trữ các bức ảnh hay vật liệu tôphục vụ quá trình hiển thị sau này. Surface được lưu trữ trong bộ nhớ dưới dạng từngkhối liên tiếp nhau và thông thường là trên card đồ hoạ, tuy nhiên đôi khi nó cũng có thểđược lưu trữ trên bộ nhớ chính của máy.Chương này bao gồm hay vấn đề chính: bộ đệm hiển thị và bộ đệm nền (offscreen). 36 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9Bộ đệm hiển thịCó hai dạng bộ nhớ đệm mà bạn cần xem xét: bộ đệm chính (front buffer) và bộ đệm phụ(back buffer). Cả hai đều là vùng bộ nhớ để ứng dụng game của bạn thực hiện các thaotác vẽ lên nó.Bộ đệm chính là những vùng bề mặt có thể nhìn trên cửa sổ ứng dụng game. Tất cả nhữnggì bạn có thể thấy trong các ứng dụng windows đều sử dụng bộ đệm chính hay vùng vẽ.Trong chế độ chạy toàn màn hình, vùng bộ nhớ đệm chính được mở rộng ra và chiếmtoàn bộ màn hình. Vùng đệm thứ hai là vùng đệm phụ (vùng đệm nền). Như chúng ta đãđề cập ở trên, vùng đệm phụ - back buffer là nơi bạn thực hiện tất cả các thao tác vẽ. Saukhi quá trình vẽ hoàn tất, bạn sẽ sử dụng hàm Present để thể hiện chúng (copy dữ liệu từvùng đệm phụ lên vùng đệm chính).Vùng đệm phụ được tạo trong quá trình gọi tới hàm CreateDevice bằng cách xác lậptham số BackBufferCount với kiểu dữ liệu D3DPRESENT_PARAMETERS. Chú ý: Việc thực hiện vẽ trực tiếp lên bộ đệm chính sẽ làm cho hình ảnh thể hiện bị nháy và giật. Các đối tượng đồ hoạ thông thường phải được vẽ lên bộ đệm phụ trước, sau đó gọi tới hàm Present đề thể hiện.Offscreen SurfacesOffscreen surfaces là vùng trên bộ nhớ đồ hoạ hay hệ thống được dùng đề lưu trữ nhữngđối tượng hình hoạ mà game cần sử dụng. Có thể lấy vì dụ, nếu bạn đang tiến hành khởitạo một game nhập vai, bạn sẽ cần phải có một vùng để lưu trữ những dữ liệu để thể hiệnnhiều dạng địa hình khác nhau, hay những hình ảnh cho nhận vật của bạn. Offscreensurface có lẽ là sự lựa chọn tốt nhất cho công việc này.Thông thường các hình ảnh sử dụng trong DirectX đều là dạng bitmaps. Hình minh hoạ3.1 kế bên là ví dụ cho các ảnh bitmaps có thể được sử dụng trong ứng dụng game củabạn để thể hiện các dạng địa hình khác nhau. Chú ý: Một vài thiết bị đồ hoạ cũ chỉ hỗ trợ tạo offscreen surfaces phù hợp với bộ đệm (primary buffer). Các thiết bị đồ hoạ mới hơn cho phép bạn có thể tạo được các surface lớn hơn.Offscreen surface, được sử dụng thông qua giao diệnIDirect3DSurface9 và được tạo bởi lời gọi tới hàmCreateOffscreenPlainSurface. Bạn phải gọi tới hàmnày cho mỗi đối tượng surface mà bạn muốn sử Hình 3.1 Các ảnh hay được sửdụng. Hàm CreateOffscreenPlainSureface này được dụng trong game nhập vaiđịnh nghĩa như sau: HRESULT CreateOffscreenPlainSurface( UINT Width, // bề ngang của surface UINT Height, // chiều cao của the surface D3DFORMAT Format, // đối tượng có kiểu D3DFORMAT DWORD Pool, // bộ nhớ dùng chung pool IDirect3DSurface9** ppSurface, // con trỏ đối tượng kết quả trả về 37 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9 HANDLE* pHandle // luôn luôn có giá trị NULL );Hàm CreateOffscreenPlainSurface yêu cầu 6 tham số đầu vào: Width. Tham số này xác lập bề rộng tính theo pixel của bộ đệm. Height. Tham số xác lập chiều cao tính theo pixel của bộ đệm. Format. Tham số định dạng kiểu bộ đêm có cấu trúc D3DFORMAT. Pool. Vùng bộ nhớ sử dụng lưu trữ surface. Bạn có thể lựa chọn một trong các kiểu sau đây. D3DPOOL_DEFAULT. Hệ thống sẽ lựa chọn vùng nhớ phù hợp nhất (trên o thiết bị đồ hoạ hoặc bộ nhớ hệ thống) để lưu chữ surface. D3DPOOL_MANAGED. Dữ liệu sẽ được copy vào bộ nhớ chính khi cần thiết. o D3DPOOL_SYSTEMMEM. Surface sẽ được khởi tạo trên bộ nhớ hệ thống. o D3DPOOL_SCRATCH. Quá trình khởi tạo sẽ được thực hiện trên bộ nhớ hệ o thống nhưng không thể truy cập trực tiếp bằng DirectX. PpSurface. Đây là con trỏ trỏ tới đối tượng có giao diện IDirect3DSurface9. Biến này dùng để quản lý đôi tượng surfac ...
Tìm kiếm theo từ khóa liên quan:
lập trình game lập trình C cở bản về DirectX ập trình hướng đối tượng ngành công nghiệp GameTài liệu cùng danh mục:
-
Tìm hiểu về lỗi tràn bộ đệm (Buffer Overflow)
5 trang 364 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 345 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 7 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
16 trang 335 0 0 -
180 trang 274 0 0
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 253 0 0 -
173 trang 248 2 0
-
Bài giảng Phân tích thiết kế và giải thuật - Chương 2: Kỹ thuật thiết kế giải thuật
80 trang 245 0 0 -
Kiến thức phần cứng máy tính - Sửa chữa nâng cấp và cài đặt máy tính xách tay Tập 2
483 trang 243 3 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 243 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 6 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
12 trang 240 0 0
Tài liệu mới:
-
Bài giảng Tính toán thiết kế ô tô - Trường Đại học Kỹ thuật Công nghiệp
153 trang 0 0 0 -
Bài kiểm tra chất lượng kiến thức hội nhập văn hóa dành cho cán bộ mới
4 trang 0 0 0 -
Bài kiểm tra chất lượng kiến thức hội nhập làm việc dành cho cán bộ mới
3 trang 0 0 0 -
21 trang 0 0 0
-
Luận văn Thạc sĩ Kiến trúc: Đánh giá thiết kế nhà ở xã hội tại quận hà đông TP Hà Nội
144 trang 0 0 0 -
87 trang 0 0 0
-
Quyết định số 190/2019/QĐ-UBND tỉnh BìnhDương
10 trang 1 0 0 -
70 trang 1 0 0
-
Chapter 16: Monopolistic competition
78 trang 3 0 0 -
130 trang 0 0 0