Trang chủ | Email | W2G.,JSC | Liên hệ-Góp ý | SearchWiki:

W2G.,JSC

Quảng cáo

Project

Simulationvn

Tài liệu lập trình

3D Graphics - Đồ họa 3D

Xử lý ảnh

Sách điện tử

sửa SideBar

Để mô phỏng thế giới thực vào trong mày tính, cần mô hình hóa thành các đối tượng có thể lưu trữ trong máy tính, xử lý bởi máy tính, và hiển thị ra màn hình bởi máy tính. Có 2 công nghệ là DirectX thư viện đồ hoạ 3D được phát triển bởi Microsoft và Open GL được phát triển bởi hãng SGI.

Giới thiệu chung

Direct là một tập hợp các API ( Application Programming Interface: Giao diện lập trình ứng dụng ) và các công cụ lập trình giúp cho những người phát triển ứng dụng trên Windows 95 và Windows NT có thể truy cập trực tiếp đến phần cứng mà không phải quan tâm đến cấu hình phần cứng cảu từng máy. Nói một cách khác, lập trình viên có thể truy cập đến các phần cứng (Phần cứng hỗ trợ đồ họa) một cách tổng quát mà không bị giới hạn bởi số lượng ít ỏi các chuẩn, có nghĩa là chúng ta có thể sử dụng các chức năng tiên tiến của Card Video như chức năng 3-D chẳng hạn, mà không phải quan tâm lập trình riêng cho từng loại card. Về mặt công dụng thì Direct X đóng vai trò cuả người trung gian giữa chương trình và các driver phần cứng ( driver là một chương trình nhỏ cho phép hệ điều hành giao tiếp với phần cứng ), biên dịch các lệnh tổng quát thành lệnh đặc trưng cho mỗi phần cứng.

Mục đích ban đầu của Direct X là nhằm giúp cho Windows 95 trở thành một hệ điều hành hiệu quả cho các trò chơi. Tuy nhiên thủa ban đầu , Windows 95 quá chậm và không thích hợp cho các trò chơi, lý do chính là sự ngăn cấm việc truy cập vào phần cứng. Vì lý do này mà các nhà sản xuất phần mềm đã từ bỏ nền tảng Windows để chọn cách tiếp cận đi vòng là sử dụng DOS. Direct X ra đời là nhằm làm thay đổi quan niệm đócủa các nhà sản xuất phần mềm.từ khi kỹ thuật Multimedia phát và tham gia vào mọi nơi, Direct X không còn là một công nghệ chỉ phục vụ cho trò chơi mà nó đã phát triển và trở thành yêu cầu thiết yếu cho rất nhiều ứng dụng khác nhau, Direct X sẽ hào nhập hoàn toàn vào các ứng dụng chính thống cùng với sự ra đời của Windows 98 và Windows NT 5.0. Nó sẽ là một phần tích hợp bên trong của cả hai hệ điều hành đó, cùng làm việc với WDM ( Win 32 Driver Model) để hỗ trợ nhanh hơn và hoàn chỉnh hơn cho phần cứng. Một chuẩn đồ họa khác cũng được thiết kế bên trong hệ điều hành bên Windows để hỗ trợ kỹ thuật đồ họa 3 –D ; Chuẩn Open GL. Open GL, phát triển bởi Silicon Graphics, cung cấp một công cụ hỗ trợ lập trình đồ họa 3 chiều và được sử dụng nhiều trong các ứng dụng hiện thực ảo hơn là trong trò chơi. Thực tế thì Direct X hoạt động trong Windows 98 và Windows NT 5.0 ở một lớp thấp hơn chuẩn Open GL.

Kiến trúc chung của Direct X

Kiến trúc chung của Direct X gồm ba lớp như sau:

  • Lớp Foundation
  • Lớp Media
  • Lớp Component

Hình 1- Kiến trúc của Direct X

Lớp Foundation

Kiến trúc của Direct X được xây dựng trên nền tảng của các thành phần thuộc lớp Foundation gồm: Direct Draw?, Direct Sound?, Direct Input?Direct 3 D? Immediate Mode. Lớp Foundation này dựa trên hai gaio tiếp với phần cứng , Hardware Abstraction Layer (HAL: lớp trừu tượng hóa phần cứng) đóng vai trò trung gian giữa phần mềm và thiết bị phần cứng , cho phép các nhà lập trình truy cập đến các thiếit bị đó mà không buộc họ phải biết nhãn hiệu , model và các chi tiết khác của thiết bị. Hardware Emulation Layer ( HEL: lớp giả lập phần cứng ) là nơi giả lập các chức năng nếu phần cứng không hỗ trợ những chức năng đó.

Hình 2 – Các thành phần của lớp Foundation

Chức năng thường được giả lập nhất là các chức năng 3-D, cái mà nhiều bộ tăng tốc đồ họa không hỗ trợ nhưng lại trở nên rất phổ biến trong các ứng dụng 3-D.

DIRECTDRAW

Direct Draw? không phải là API đồ họa mức độ cao cung cấp các hàm cơ bản như vẽ đường thẳng và đường cong, mà là một API ở một mức độ thấp quản lý đồ họa mức bề mặt(Surface), cung cấp cơ sở cho các API đồ họa 2D cad 3D ở các mức độ cao hơn. Direct Draw? cung cấp cho các lập trình viên khả năng truy cập tới phần cứng trực tiếp hơn là thông qua hệ thống VDD (Virtual Device Drive) của Windows 95. Kết qủa là tăng cường được tốc độ đồ họa.Direct Draw? làm việc kết hợp với HAL và HEL. Nó cho các lập trình viên một giao tiếp (interface) chung với các thiết bị phần cứng, thông qua HAL. Nếu phần cứng không tương thích với chức năng yêu cầu bởi chương trình , HEL sẽ cố gắng giả lập chức năng đó sao cho giống nhất.

Trong phần lớn các trường hợp, Direct Draw? chỉ đóng vai trò một trình quản lý bộ nhớ Video,. Nó cung cấp khả năng truy cập tới bộ nhớ Video thông qua việc sử dụng bốn đối tượng: Đối tượng Direct Draw?, Direct Draw? Surface, Direct Draw? Trong phần lớn các trường hợp, Direct Draw? chỉ đóng vai trò một trình quản lý bộ nhớ Video. Nó cung cấp khả năng truy cập tới bộ nhớ video thông qua việc sử dụng bốn đối tượng: đối tượng Direct Draw?, Direct Draw Surface?, Direct Draw Plalette? và đối tượng Direct Draw Clipper?, Direct Draw? là đối tượng chính và đại diện cho thiết bị phần cứng. Bạn có thể đặt các xác lập cho nó để chạy chương trình ở chế độ cửa sổ hay toàn màn hình. Đối tượng Direct Draw Surface? cho phép làm việc với các dạng bề mặt được lưu trong bộ nhớ. Bề mặt (Surface) được chia tahnhf bề mặt chính (primary surface): ở trên màn hình hiện thời, bộ đệm (buffer): chuẩn bị đưa ra màn hình và bề mặt ngoài màn hình (off screen surface): đang đợi được đưa vào bộ đệm. Công việc thực hiện là di chuyển hình ảnh từ bề mặt ngoài màn hình vào bộ đệm, rồi từ bộ đệm vào bề mặt chính. Đối tượng Direct Draw Pllalette? cho phép đặt các bản mầu khác nhau oặc chia sẻ bảng mầu giữa các bề mặt. Direct Draw Clipper? cung cấp một phương tiện bỏ qua GDI (Graphics Device Interface) cho các ứng dụng được thiết kế để chạy ở chế độ cửa sổ màn hình, nhằm giảm sự chậm trễ trong đồ hoạ.

Direct Sound?

Direct Sound? cung cấp giao tiếp với thiết bị âm thanh bằng cách cung cấp các hàm xử lý âm thanh dạng sóng (File.WAV). Nó cũng hỗ trợ âm thanh dạng PCM (Pulse-code modulation). Phần chính của Direct Sound? là một bộ trộn âm thanh. Các ứng dụng đặt một loạt âm thanh ở trong một bộ đệm gọi là bộ đệm phụ (secondary buffer), Direct Sound? kết hợp các âm thanh đó và ghi chúng vào bộ đệm chính (primary buffer), ơi chứa âm thanh để phát thật sự. Direct Sound? tự động tạo ra bộ đệm chính, thường được lưu trong bộ nhớ hệ thống hoặc bộ nhớ của các ứng dụng tạo nên bộ đệm phụ trong bộ nhớ hệ thống hoặc bộ nhớ của Card Sound?. Tuỳ thuộc vào loại card âm thanh, các bộ đệm của Direct Sound? có thể xuất hiện trong RAM của hệ thống, trong bộ nhớ của nhạc cụ (wave-table), ở kênh DMA (Direct Memory Access) hoặc ở một bộ đệm ảo (đối với card âm thanh dựa trên cổng I/O). Khi không có đủ chỗ trong phần cứng cho bộ đệm của Direct Sound?, nó sẽ được giả lập trong bộ nhớ hệ thống. Bộ đệm âm thanh phụ có thể là tĩnh (chứa toàn bộ âm thanh, thường dùng cho các File nhỏ để đạt được tốc độ cao) hoặc là bộ đệm luồng (striming - dùng cho các file âm thanh dài). Số lượng bộ đệm phụ không phụ thuộc vào giới hạn nào mà chỉ phụ thuộc vào khả năng của CPU. Các chương trình có thể tạo các đối tượng Direct Sound? sử dụng chung một thiết bị phần cứng. Khi quyền điều khiển chuyển từ ứng dụng này sang ứng dụng khác, dòng âm thanh xuất hiện sẽ tự động chuyển từ dòng này sang dòng khác, các ứng dụng không cần phải bật và tắt âm thanh.

Direct Input?

Direct Input? cung cấp giao tiếp đến các thiết bị nhập và xuất dữ liệu như: game pad, graphics table, điều khiển bay, mũ thực tại ảo… Đồng thời Direct Input? cũng hỗ trợ cho các tính năng mới như thiết bị kết nối qua USB và các thiết bị có tính năng tác đôngj ngược. Direct Input? gồm các đối tượng: Direct Input?, Direct Input? Devices, Object Instance, Effect. Đối tượng Direct Input? là đối tượng chung mà các ứng dụng dùng để khởi tạo (Initialize) và đặt cấu hình cho các thiết bị nhập dữ liệu.

Mỗi đối tượng Direct Input? Device đại diện cho một thiết bị nhập dữ liệưnh chuột, bàn phím hoặc Joystick. Hai đối tượng Direct Input? Device hoặc hơn có thể dùng để biểu diễn cho một thiết bị phức hợp. Các đối tượng Effect đại diện cho các hiệu quả tác động ngược khác nhau.

Direct 3 D?

Direct 3 D? được thiết kế với mục đích là cung cấp sự truy cập độc lập thiết bị tới các phần cứng đồ hoạ 3D, có thể hiểu Direct 3 D? là một giao thức cho việc vẽ trên phần cứng 3D.

Có thể sử dụng Direct 3 D? ở hai chế độ: Immediate Mode và Retained Mode Direct 3 D? Immediate Mode là một API 3D ở mức độ thấp để liên hệ với thiết bị tăng tốc đồ họa. Immediate Mode là lý tưởng cho những nhà phát triển muốn lập chương trình với chất lượng cao trong Windows, Retained Mode là một API 3D ở mức cao dành cho các nhà lập trình cần viết nhanh hoặc muốn sử dụng tính năng hỗ trợ về hoạt hình, Retained Mode được thiết kế ngay trên nền của Immediate Mode.

Thế giới trong Immediate Mode được xây dựng dựa trên các đỉnh nhọn, các đa giác và các lệnh để điều khiển chúng. Nó cho phép truy cập ngay lập tức đến các hiệu quả 3D và cung cấp giả lập cho các chức năng không được hỗ trợ bởi phần cứng.

Hình 3 - Kiến trúc Direct 3 D?

Lớp Media và Components

Bên trên lớp Foundation của Direct X là lớp Media. Thông qua lớp Media, các nhà phát triển có thể tích hợp các thành phần của lớp Foundation để cung cấp multimedia chất lượng cao. Việc tích hợp đó còn xảy ra ở lớp cao hơn nữa là lớp Component, lớp của các thành phần được xây dựng trên lớp Foundation và Media.

Lớp Media gồm có Direct Show?, Direct Model?, Direct Animation?, Direct Play?, Direct 3 D? Retained Mode và VRLM. Direct Show? cung cấp các phương tiện cho việc phát các dòng Audio và Video dưới nhiều dạng thức thông qua quá trình tương tác với lớp Foundation. Direct Model? cung cấp một phương tiện để làm mịn và tương tác với những đối tượng đồ họa 3 chiều phức tạp, những đối tượng không thể cho vừa vào bộ nhớ vật lý hoặc ngay cả bộ nhớ ảo của Windowws. Direct Animation? cho phép người lập trình kết hợp âm thanh, phim hình ảnh và văn bản rồi gắn chúng với trình tự thời gian hoặc các sự kiện đã được người sử dụng định nghĩa trước để tạo ra những hoạt hình kết hợp nhiều phương diện. VRML (Virsual Reality Modeling Language) được sử dụng với Direct X nhằm bổ sung thế giới ảo 3 – D vào trong các trình duyệt Web, tăng tốc quá trình vẽ các thế giới đó một cách đáng kể.

Hình 4 - Lớp Media Component

OpenSceneGraph

Tài tiệu Open GL

Tài liệu OSG

Hình ảnh một số sản phẩm

ns3.jpg: 700x439, 275k (December 01, 2011, at 10:13 AM)
BigC-1.jpg: 200x125, 22k (December 01, 2011, at 10:13 AM)
Onepillapagoda1.jpg: 600x375, 101k (December 01, 2011, at 10:13 AM)
vanmieu8.jpg: 800x500, 143k (December 01, 2011, at 10:13 AM)
controlTower1.jpg: 600x391, 35k (December 01, 2011, at 10:13 AM)
th_vsg_12.jpg: 200x150, 30k (December 01, 2011, at 10:13 AM)

sửa SideBar

Edit - History - Print - Recent Changes - Search
Page last modified on September 16, 2005, at 12:31 AM