Khóa luận Nghiên cứu và xây dựng thử nghiệm 3D Engine - Phần 7

Có hai loại diễn hoạt chính của các đối tượng là diễn hoạt khung xương và diễn

hoạt nội suy. Diễn hoạt khung xương tức là các sựchuyển động dựa trên cấu trúc

khung xương và thực hiện diễn hoạt dựa vào các khung hình làm khoá. Diễn hoạt

nội suy là việc thực hiện diễn hoạt bằng phép nội suy giữa chuyển động ngay trước

và ngay sau nó. Trong các Game ngày nay hầu hết đềlưu các mô hình bằng cấu trúc

khung xương và kết hợp cảhai loại diễn hoạt đểtạo ra một chuyển động đẹp mắt.

pdf17 trang | Chuyên mục: Mạng Máy Tính | Chia sẻ: dkS00TYs | Lượt xem: 1586 | Lượt tải: 1download
Tóm tắt nội dung Khóa luận Nghiên cứu và xây dựng thử nghiệm 3D Engine - Phần 7, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
à xây dựng lên một hệ thống đảm bảo được tốc độ, tính trong sáng dễ sử 
dụng, khả năng mở rộng cao, và cung cấp ra các chức năng nâng cao cho phép giải 
quyết được những tình huống diễn hoạt trong Game. 
 Chương 6. Hệ thống vật lý (Physics System) 
 - 102 - 
Chương 6 Hệ thống vật lý (Physics System) 
 • Giới thiệu hệ thống vật lý 
 • Các yếu tố cần xử lý trong hệ thống vật lý 
 • Engine vật lý NovodeX 
 • Sử dụng NovodeX 
 • Tóm tắt 
 Chương 6. Hệ thống vật lý (Physics System) 
 - 103 - 
6.1. Giới thiệu hệ thống vật lý 
 Hiện nay đòi hỏi của người chơi về chất lượng Game rất cao. Bên cạnh Game 
phải có hình ảnh đẹp, nội dung hay còn yêu cầu phải chân thực, gần với thực tế bên 
ngoài. Để cho Game mô phỏng được các tình huống xảy ra trong thực tế thì phải 
xây dựng một hệ thống quản lý các tương tác vật lý. 
 Có thể nói rằng tương lai của Game chính là vật lý. Game sẽ trở nên rất thật khi 
xử lý tốt được những hiệu ứng theo quy luật vật lý như va chạm, nổ, chuyển động 
của các vật trong cảnh Game, nhân vật di chuyển và tương tác với các yếu tố trong 
môi trường, và các hiệu ứng đặc biệt như mô phỏng quần áo, tóc bay trong gió. 
 Tóm lại, hệ thống vật lý giúp chúng ta có thể xử lý cách các đối tượng di 
chuyển, cách chúng ứng xử trong môi trường với từng tình huống cụ thể, và cách 
chúng tương tác với nhau. Nhờ hệ thống vật lý mà Game của chúng ta sẽ sinh động, 
tự nhiên. 
6.2. Các yếu tố cần xử lý trong hệ thống vật lý 
¾ Các thuộc tính của vật liệu 
 Các thuộc tính của vật liệu chính là các đặc trưng vật lý về vật chất như trọng 
lượng, ma sát, đàn hồi. Chúng ta có thể tạo ra các mặt phẳng trơn khiến cho nhân 
vật có khó di chuyển được, các vật được làm bằng chất liệu gỗ với các chỗ nối có 
thể gẫy được khi có lực va chạm lớn, các bề mặt đàn hồi như cao su, các bề mặt 
bằng kim loại có thể uốn cong được khi tác động lực, và có thể tạo được các tảng đá 
có thể vỡ vụn khi bị tác động lực mạnh. 
¾ Các đối tượng bao bọc động và phát hiện va chạm 
 Các đối tượng bao bọc giúp chúng ta bao các đối tượng trong Game để thực hiện 
các hiệu ứng vật lý lên đối tượng đó và phát sinh ra các sự kiện tương ứng khi các 
va chạm xảy ra giúp chúng ta có thể đưa ra các cách thức xử lý tương ứng. Để thực 
hiện được sự mô phỏng vật lý như vậy chúng ta phải dựa vào các định luật vật lý cổ 
điển trong đó quan nhất là các định luật Newton. Các định luật vật lý này giúp 
 Chương 6. Hệ thống vật lý (Physics System) 
 - 104 - 
chúng ta có thể tạo được các va chạm tự nhiên và nhiều hiệu ứng đẹp mắt ví dụ như 
sự rung khi một đồng tiền rơi xuống sàn nhà, chiếc xe trượt theo quán tính khi 
phanh, … Hầu hết các Engine vật lý xây dựng nên các hình bao bọc động như là 
những yếu tố cốt lõi và xây dựng các yếu tố khác thông qua chúng. 
¾ Các khớp và sự co giãn 
 Các khớp và các đặc tính co giãn dùng để mô hình hoá cho các cơ cấu phức tạp 
như các máy móc, xe cộ, sự di chuyển của các nhân vật, cửa, đòn bẩy, và cung cấp 
khả năng cho các nhân vật cầm và thao tác các đối tượng trong Game. 
¾ Các chất lỏng và vô định hình 
 Bên cạnh việc mô phỏng các hiệu ứng như gợn sóng trên mặt hồ thì chúng ta 
còn có thể tăng thêm hiệu ứng chất lỏng trong nhiều cảnh vật như dầu, các cột nước 
bắn lên, lửa, các vũ khí bắn ra các chất vô định hình. Các chất lỏng này có thể tương 
tác với các vật động trong cảnh như bao quanh chúng chẳng hạn. 
¾ Áo quần và hiệu ứng khác 
 Hệ thống vật lý có thể giúp mô phỏng chính xác, trung thực về áo quần như áo 
choàng cho nhân vật. Hay hệ thống có thể cung cấp cho ta chức năng mô phỏng về 
lửa, khói, sương mù. Tuy nhiên đây chỉ là một khía cạnh phụ có thể bỏ qua trong hệ 
thống vật lý, ta có thể xây dựng hệ thống Particle riêng để thực hiện cho các hiệu 
ứng này. 
6.3. Engine vật lý NovodeX 
 Hiện nay có rất nhiều Engine vật lý được tạo ra để kết hợp vào các 3D Engine 
để tạo ra các Game. Một số Engine vật lý tốt có thể kể đến là Navok được dùng 
trong Game Haff Life và NovodeX. 
 NovodeX là Engine vật lý của hãng AGEIA. Hiện nay (tháng 6 năm 2005) 
NovodeX đang có phiên bản 2.2 và chưa được hoàn thiện. NovodeX là một Engine 
vật lý rất mạnh và cung cấp miễn phí cho các hoạt động phi thương mại. Engine vật 
lý này còn có kèm nhiều ví dụ và tài liệu hướng dẫn cũng chính vì vậy chúng tôi 
 Chương 6. Hệ thống vật lý (Physics System) 
 - 105 - 
chọn để nghiên cứu và ứng dụng kết hợp với Nwfc 3D Engine để xây dựng Game 
ứng dụng. 
 Engine vật lý NovedeX cung cấp cho chúng ta một giải phát rất mạnh và hiệu 
quả để kết hợp một hệ thống xử lý vật lý thời gian thực vào trong hệ thống Game 
của chúng ta. NovodeX được thiết kế để dễ dàng kết hợp với các thành phần khác 
trong một Game Engine. NovodeX có thể làm việc tốt trên nhiều API khác nhau 
như Direct3D, OpenLG, NDL Gamebryo, Quake và OGRE. NovedeX còn thể thể 
đuợc bao bọc bởi Unreal 3 của Engine Epic Game và Reality Engine của Artificial 
Studio. Những kết quả đầu ra của NovodeX còn có thể cung cấp cho Discreet 3D 
Studio Max, SoftImage XSI và các công cụ khác cho phép các nhà phát triển có thể 
xem công việc của mình thực hiện trong những môi trường tương tự. 
 Để đễ dàng kết hợp với những công nghệ kèm theo, bản thân NovodeX cung cấp 
một loạt các công cụ để tạo ra các hiệu ứng và môi trường động dựa trên vật lý. 
Những công cụ đó bao gồm: 
 Rocket viewer để cài đặt và mô phỏng cho các cảnh vật lý. 
 Debug render cho phép chúng ta phân tích và chỉnh lại Game. 
 Bộ xử lý dữ liệu cho phép ta nạp dữ liệu vào nhanh chóng. 
 NovodeX được thiết kế hoạt động tối ưu trên trên chip AGEIA PhysX. 
NovodeX là API duy nhất cho phép các nhà phát triển Game dùng phần cứng để gia 
tăng các hiệu ứng vật lý trong Game dựa trên AGEIS PhysX chip, đây là đơn vị xử 
lý vật lý (PPU – Physics Processing Unit) đầu tiên trên thế giới. NovodeX còn là 
API đa tiểu trình đầu tiên và duy nhất hiện nay cho phép các nhà phát triển Game sử 
dụng để tăng thêm khả năng xử lý trong Game của mình. 
 NovodeX cung cấp hệ thống hoàn hảo các đối tượng bao bọc động và hệ thống 
phát hiện, xử lý va chạm tốt. NovodeX có thể thực thi trên nhiều môi trường khác 
nhau như Microsoft Window XP, Mac OS X, PhysX PPU. Một điểm mạnh nữa của 
NovodeX là nó cung cấp sẵn cho chúng ta các lớp dùng để điều khiển di chuyển các 
nhân vật. 
 Chương 6. Hệ thống vật lý (Physics System) 
 - 106 - 
¾ Các chức năng của NovodeX trong lúc thực thi chương trình gồm: 
 Hệ thống kiểm soát đụng độ cho mặt phẳng, hộp, khối cầu, đỉnh các vật thể, 
mesh của môi trường, các điểm lõm của đối tượng. 
 Cho phép tạo ra các nhóm va chạm. Tức là chúng ta có thể nhóm 1 số đối 
tượng thành một nhóm để tiện cho việc kiểm tra và xử lý va chạm giữa các đối 
tượng này. 
 Cung cấp các loại khớp như Fixed (cố định), Revolute(bọc ở bên ngoài theo 
một trục), Sperical (cầu), Prismatic (lăng trụ), và Six Degree of Freedom (6 bậc tự 
do) (tham khảo thêm ở phần phụ lục) cùng với các phép chiếu, độ đàn hồi, qui định 
giới hạn cho các khớp quay. 
 Các vật liệu cho các bề mặt với các hệ số ma sát động, ma sát tĩnh và độ đàn 
hồi. 
 Cung cấp những hình trigger cho phép chúng ta có thể xử lý các sự kiện khi 
có một vật bắt đầu va chạm, đi vào hay ra khỏi một vật thể nào đó. 
 Cung cấp tia chiếu từ một vật thể vào môi trường xung quanh. Nhờ tia chiếu 
này chúng ta có thể xác định được khoảng cách cũng như tính chất của đối tượng có 
cắt với tia chiếu và có thể có những ứng xử tương ứng. Đây cũng là cách chúng ta 
có thể xây dựng những ứng xử thông minh đơn giản cho các đối tượng, ví dụ khi 
con quái vật đến gần nhân vật một khoảng nào đó thì ta cho con quái vật tấn công. 
 Cung cấp các lớp do người dùng định nghĩa với các hàm xử lý các sự kiện trả 
về. Đây là những hàm rất quan trọng cho phép chúng ta có thể xử lý khi có va chạm 
xảy ra. Ví dụ khi nhân vật di chuyển trong môi trường và va chạm một hộp thì sẽ có 
sự kiện va chạm trả về, trong hàm xử lý va chạm ta có thể thiết lập lực tác động vào 
cái hộp chẳng hạn. 
 Cung cấp một bộ điều khiển nhân vật dựa trên một chiếc hộp tạm. Khi di 
chuyển nhân vật, chiếc hộp tạm này thực hiện di chuyển trước để xác định xem 
 Chương 6. Hệ thống vật lý (Physics System) 
 - 107 - 
nhân vật sẽ phải di chuyển tiếp theo như thế nào để có thể áp dụng lên nhân vật cho 
chính xác. 
 Thực hiện đồng bộ hoá hệ thống vật lý với một bộ xử lý đa tiểu trình. 
 Cho phép hiển thị chế độ Debug cho hệ thống toạ độ, các đối tượng có trong 
cảnh, các điểm va chạm, các vector pháp tuyến, … 
¾ Các công cụ phát triển kèm theo gồm có: 
 Xuất ra định dạng tập tin PML có thể sử dụng trong các phần mềm 3DS 
Max, SoftImage, và Maya. 
 Cung cấp sẵn mã nguồn cho việc đưa các đối tượng trong định dạng tập tin 
PML vào trong cảnh của NovodeX. 
 NovodeX Rocket, một ứng dụng riêng biệt cho phép ta nạp và mô phỏng một 
cảnh với định dạng PML. 
 NovodeX FX, một môi trường kết hợp để mô phỏng các hiệu ứng nâng cao 
trong các hệ thống quản lý Game hiện có. 
6.4. Sử dụng NovodeX 
6.4.1. Kết hợp NovodeX vào Game 
 NovodeX là một phần hoàn toàn độc lập, chức năng chính là chỉ quản lý về vật 
lý và nó được xây dựng trên một thư viện toán học riêng. Do đó để có thể sử dụng 
được các tính năng của NovodeX thì cần phải bao bọc nó lại để có thể sử dụng kết 
hợp với các thành phần khác như hệ thống hiển thị, hệ thống diễn hoạt. Việc bao 
bọc hệ thống vật lý còn giúp chúng ta có thể sử dụng nó một cách thống nhất với 
các phần khác thông qua cùng một thư viện toán. 
 Tư tưởng chính để sử dụng hệ thống vật lý NovodeX là ta dùng các vật thể và 
mesh do NovedeX cung cấp để bao bọc hay chứa các vật thể và nhân vật của Game. 
Việc quản lý vật lý ta để cho hệ thống NovodeX thực hiện. Sau khi hệ thống 
NovodeX thực hiện xong ta lấy vị trí và góc quay mới của các vật thể bao bọc của 
NovodeX để cập nhật lại vị trí và góc quay tương ứng cho các vật thể và nhân vật 
trong Game. Ví dụ như ta có một khối hộp trong màn Game, ta sẽ dùng một đối 

File đính kèm:

  • pdfthu_nghiem_3d_engine_7.pdf
Tài liệu liên quan