1. Trang chủ
  2. » Công Nghệ Thông Tin

Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d

66 462 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 5,38 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hình 1.7: Bảng Sao chép đối tượng – CopyDi chuyển đối tượng – Move: Di chuyển tự do: Chọn công cụ Select And Move, nhấn vào đối tượng, kéo chuột vào một trong 3 trục, trục nào có màu vàn

Trang 1

LỜI CAM ĐOAN

Tôi xin cam đoan đồ án tốt nghiệp “Xây dựng chương trình mô phỏng phòng truyền thống ảo Trường Đại học Công nghệ thông tin và Truyền thông

sử dụng công nghệ 3D” là công trình nghiên cứu của bản thân Những phần sử

dụng tài liệu tham khảo trong đồ án đã được nêu rõ trong phần tài liệu thamkhảo Các số liệu, kết quả trình bày trong đồ án là hoàn toàn trung thực, nếu saitôi xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường

đề ra

Thái Nguyên, tháng 6 năm 2012

Sinh viênNguyễn Công Thịnh

Trang 2

LỜI CẢM ƠN

Lời đầu tiên, em xin chân thành cảm ơn bộ môn Mạng – Truyền thông,Trường Đại học Công nghệ thông tin và Truyền thông, Đại học Thái Nguyên đãtạo điều kiện thuận lợi cho em thực hiện đồ án tốt nghiệp

Đặc biệt em xin chân thành cảm ơn ThS Lê Anh Tú đã rất tận tình hướngdẫn, chỉ bảo em trong suốt thời gian thực hiện đồ án vừa qua

Em cũng xin chân thành cảm ơn tất cả các Thầy, các Cô trong Trường đãtận tình giảng dạy, trang bị cho em những kiến thức cần thiết, quý báu để giúp

em thực hiện được đồ án

Mặc dù em đã có cố gắng, nhưng với trình độ còn hạn chế, trong quá trìnhthực hiện đồ án không tránh khỏi những thiếu sót Em hi vọng sẽ nhận đượcnhững ý kiến nhận xét, góp ý của các Thầy giáo, Cô giáo về những vấn đề triểnkhai trong đồ án

Em xin chân trọng cảm ơn!

Thái Nguyên, tháng 6 năm 2012

Sinh viênNguyễn Công Thịnh

Trang 3

MỤC LỤC

LỜI CAM ĐOAN 1

LỜI CẢM ƠN 2

MỤC LỤC 3

DANH MỤC HÌNH ẢNH 5

LỜI NÓI ĐẦU 7

CHƯƠNG 1: TỔNG QUAN VỀ THIẾT KẾ 3D SỬ DỤNG 3DS MAX 8

1.1 Giới thiệu về 3ds Max 8

1.2 Khởi động 3ds Max 8

1.2.1 Màn hình giao diện 9

1.2.2 Cách vẽ một đối tượng 11

1.2.3 Các thao tác cơ bản 15

1.2.4 Hệ trục toạ độ 18

1.2.5 Các lệnh biến đổi đối tượng 20

1.3 Shape và hiệu chỉnh Shape 23

1.3.1 Giới thiệu các Shape 23

1.3.2 Hiệu chỉnh Shape 24

1.4 Các lệnh chuyển đối tượng 2D thành 3D 25

CHƯƠNG 2: ĐIỀU KHIỂN MÔ HÌNH 3D SỬ DỤNG XNA 27

2.1 Giới thiệu về thư viện đồ họa XNA 27

2.1.1 Lịch sử phát triển của XNA 27

2.1.2 Các phiên bản tính năng của XNA framework 27

2.2 Tổng quan về XNA framework Content Pipeline 29

2.3 Thiết bị đầu vào 30

2.3.1 GamePad cho máy Xbox360 30

2.3.2 Bàn phím 31

2.3.3 Chuột 31

2.4 Camera 32

2.4.1 Các thành phần của camera 32

2.4.2 Thao tác với camera 35

2.5 Đồ hoạ hai chiều trong XNA 36

Trang 4

2.5.1 Hệ tọa độ 2D 36

2.5.2 Một số định nghĩa 36

2.6 Đồ hoạ ba chiều trong XNA 37

2.6.1 Hệ tọa độ 3D 37

2.6.2 Cách sử dụng phép chiếu để ánh xạ một đối tượng 3D lên màn hình 37

2.6.3 Đỉnh và các hình cơ bản (Primitives) 39

2.6.4 Các vector, ma trận và các phép biến đổi 3D 40

2.6.5 Hiệu ứng Ánh sáng – Camera 42

2.6.6 Mô hình và Mảnh (Models and Meshes) 43

2.7 Kiểm tra va chạm 43

2.7.1 Khối cầu giới hạn (BoundingSphere) 44

2.7.2 Hình khối giới hạn (Bounding Box) 45

2.7.3 Khối chóp giới hạn (Bounding Frustum) 45

CHƯƠNG 3: XÂY DỰNG PHÒNG TRUYỀN THỐNG ẢO 3D 47

3.1 Giới thiệu Trường Đại học Công nghệ thông tin và Truyền thông 47

3.2 Mục đích xây dựng phòng truyền thống 47

3.3 Xây dựng mô hình 48

3.3.1 Xây dựng mô hình khung phòng truyền thống 48

3.3.2 Xây dựng mô hình tủ kính 49

3.3.3 Xây dựng khung ảnh 51

3.3.4 Xây dựng tượng Bác Hồ và bục kê tượng 52

3.3.5 Tạo ánh sáng trong khung hình 52

3.3.6 Tạo vật liệu cho các model 53

3.4 Xây dựng phòng truyền thống ảo sử dụng thư viện XNA 55

3.4.1 Cấu trúc cơ bản của một game XNA 55

3.4.2 Xây dựng các lớp đối tượng 58

3.5 Kết quả mô phỏng phòng truyền thống ảo 63

KẾT LUẬN 65

TÀI LIỆU THAM KHẢO 66

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1.1: Màn hình giao diện 3dsMax 9

Hình 1.2: Cách vẽ một đối tượng 12

Hình 1.3: Bảng lệnh Modify 13

Hình 1.4: Bảng Viewport controls 14

Hình 1.5: Khung nhìn – viewport 14

Hình 1.6: Layout các khung nhìn 15

Hình 1.7: Bảng Sao chép đối tượng – Copy 16

Hình 1.8: Bảng di chuyển đối tượng – Move 17

Hình 1.9: Bảng biến đổi tỉ lệ to, nhỏ – Scale 18

Hình 1.10: Điều chỉnh tâm của phép biến đổi 19

Hình 1.11: Bảng Lệnh Align 21

Hình 1.12: Bảng Lệnh Mirror 21

Hình 1.13: Bảng Lệnh Array 22

Hình 2.1: Sơ đồ thành phần của Content Pipeline 29

Hình 2.2: Các thành phần của camera 32

Hình 2.3: Ma trận projection 33

Hình 2.4: Ma trận View 34

Hình 2.5: Hệ tọa độ màn hình 36

Hình 2.6: Hệ tọa độ 3 chiều bàn tay trái và bàn tay phải 37

Hình 2.7: Phép chiếu phối cảnh 38

Hình 2.8: Phép chiếu trực giao 39

Hình 2.9: Mô tả phép toán Matrix.CreatePerspectiveFieldOfView 41

Hình 2.10: Mô phỏng phát hiện va chạm giữa 2 khối cầu 44

Hình 2.11: Ví dụ về frustum 46

Hình 3.1: Mô hình khung phòng truyền thống 48

Hình 3.2: Mô hình chiếc tủ kính 49

Hình 3.3: Mô hình khung ảnh 51

Hình 3.4: Mô hình khi tạo ánh sáng 52

Hình 3.5: Mô hình tủ kính khi thêm chất liệu 53

Hình 3.6: Mô hình tủ kính hoàn thiện 54

Trang 6

Hình 3.7: Mô hình khung ảnh khi thêm chất liệu 54

Hình 3.8: Mô hình khung ảnh hoàn thiện 55

Hình 3.9: Tạo dự án Mophong 55

Hình 3.10: Trình tự gọi các biến và hàm thành viên trong Game1.cs 56

Hình 3.11: Thêm lớp CModel 58

Hình 3.12: Mô hình trong 3Ds Max 63

Hình 3.13: Mô hình trong lập trình 64

Trang 7

LỜI NÓI ĐẦU

Trong quá trình phát triển của thế giới, những cuộc cách mạng công nghệđóng vai trò rất quan trọng, công nghệ làm thay đổi từng ngày, từng giờ cuộcsống của con người, theo hướng hiện đại hơn Đi đôi với quá trình phát triển củacon người, nhu cầu giải trí ngày càng đòi hỏi được nâng cao Trong đó 3D là mộtcông nghệ xây dựng chương trình giải trí mới Ngày nay công nghệ 3D đang pháttriển nhanh chóng thay thế cho những công nghệ cũ với những ưu điểm vượt trội

mà công nghệ 3D mang lại

Hiện nay có rất nhiều kỹ thuật lập trình đồ họa với những ưu nhược điểmkhác nhau Trong đó sử dụng thư viện XNA là một trong những kỹ thuật lập trình

đồ họa tốt nhất hiện nay với ưu điểm của là tốc độ làm game nhanh, quản lý tàinguyên (hình ảnh, âm thanh, ….) một cách hiệu quả và đơn giản, hỗ trợ nhiềungôn ngữ

Được sự định hướng và chỉ dẫn của ThS Lê Anh Tú, em đã chọn đề tài đồ

án tốt nghiệp: “Xây dựng chương trình mô phỏng phòng truyền thống ảo TrườngĐại học Công nghệ thông tin và Truyền thông sử dụng công nghệ 3D” Với mụcđích tìm hiểu kỹ thuật lập trình đồ họa sử dụng thư viện XNA và viết demo môphỏng phòng truyền thống Nội dung của đề tài được thể hiện qua 3 chương:

- Chương 1: Tổng quan về thiết kế 3D sử dụng 3Ds Max

- Chương 2: Điều khiển mô hình 3D sử dụng XNA

- Chương 3: Xây dựng phòng truyền thống ảo 3D

Do kiến thức và khả năng của em còn hạn chế, nên đồ án tốt nghiệp nàykhông tránh khỏi các thiếu sót Em rất mong nhận được sự góp ý của các thầy,các cô và các bạn để nội dung đồ án tốt nghiệp của em được hoàn thiện hơn

Trang 8

CHƯƠNG 1: TỔNG QUAN VỀ THIẾT KẾ 3D SỬ DỤNG

3DS MAX

1.1 Giới thiệu về 3ds Max

3ds Max là một ứng dụng đồ họa đầy đủ đủ đặc điểm 3D được phát triểnbởi Autodesk Media & Entertainment, 3ds Max chạy trên nền Win32bit vàWin64bit Đến tháng 8 năm 2006 3ds Max đã phát triển phiên bản thứ 9

Sản phẩm 3D Studio gốc được tạo cho nền DOS phát triển bởi Yost Group

và do Autodesk xuất bản Autodesk đã mua sản phẩm khi phát hành lần thứ hai

và phát triển một cách rộng rãi Sau 3D Studio phiên bản 4, sản phẩm đã đượcđưa lên nền Windows NT, và tên gốc là "3D Studio MAX." Đây cũng là phiênbản gốc được tạo bởi Yost Group Sau đó sản phẩm được đổi tên thành "3dsmax" (tất cả đều là kí tự thường) để phù hợp hơn với từ Discreet, một công typhần mềm tiền thân là Montreal mà Autodesk đã mua lại Tại phiên bản 8 sảnphẩm đã lấy logo là của Autodesk, và tên đã được đổi lại thành "3ds Max" (chữthường và hoa)

3ds Max là một chương trình giúp tạo ra và diễn hoạt, mô phỏng các đốitượng 3 chiều, cho phép thiết đặt các khung cảnh mà trong đó ánh sáng, bóng đỗ,

sự phản chiếu, các hiệu ứng đặc biệt như: hiệu ứng mưa, sương mù, lửa, khói…được thiết kế khi cần thiết và cuối cùng cho phép xuất ra dưới các định dạng nhưphim, ảnh, các mô hình thực tế ảo…phục vụ cho việc tạo các phim hoạt hình,quảng cáo, thiết kế các nhân vật trong các trò chơi game

Đặc biệt trong lĩnh vực xây dựng dùng 3ds Max để thiết kế phối cảnh nội,ngoại thất Ngoài ra 3ds Max còn được ứng dụng rất đắc lực trong việc thiết kếcác mô hình hỗ trợ cho việc giảng dạy như: trong cơ khí thiết kế và diễn hoạt quátrình hoạt động của một động cơ, một người máy… Trong giải phẫu học diễnhoạt sự lưu thông của máu trong cơ thể…

1.2 Khởi động 3ds Max

Sau khi cài đặt xong chương trình 3ds Max, tiến hành khởi động chươngtrình như sau:

Trang 9

C1: Nhấn Start – Programs – Autodesk – Autodesk 3ds Max 2009 – 32bit –Autodesk 3ds Max 2009 – 32bit

C2: Nhấn double lên shortcut 3ds Max Autodesk 3ds Max 2009 – 32bit trên mànhình nền Desktop

1.2.1 Màn hình giao diện

Hình 1.1: Màn hình giao diện 3dsMax

- Menu Bar: chứa thanh chọn các menu lệnh của chương trình.

Trang 10

- Main Toolbar: thanh công cụ chính của max, chứa một số công cụ thể hiện

một số lệnh thông dụng để người sử dụng có thể chọn lệnh bằng mouse Thanhcông cụ chứa rất nhiều công cụ vì vậy phải dùng mouse để cuộn thanh công cụkéo ra

- Command Panel: chứa 6 bảng lệnh, mỗi bảng có một bộ lệnh và chức năng

riêng, bao gồm: Create: tạo mới, Modify: hiệu chỉnh, Hierarchy: phả hệ, Motion:chuyển động, Display: hiển thị, Utilities: tiện ích

- Time Slider: thanh trượt thời gian dùng cho việc diễn hoạt các đối tượng trong

khung cảnh

- Lock Selection: nút lệnh dùng bật tắt chế độ khoá đối tượng đang được chọn.

- Transform: các thông số toạ độ giúp di chuyển, xác định vị trí đối tượng chính

xác hơn

- Animation Button: bộ nút lệnh bật tắt chế độ ghi lại sự diễn hoạt của đối

tượng hiện hành

- Viewport Controls: các công cụ điều khiển khung nhìn, phóng to, thu nhỏ,

dich chuyển, xoay khung nhìn…

Cameras: Máy quay phim

Helpers: Công cụ trợ giúp

Space Warps: Tạo các hiệu ứng đặc biệt

Systems: Các lệnh hệ thống.

Trang 11

1.2.1.2 Nhánh lệnh Geometry

Gồm các mục công cụ sau:

- Standard Primitives: các khối hình học nguyên sinh chuẩn như: hình hộp,

khối cầu, hình trụ, ấm trà, hình nón…

- Extended Primitives: các khối hình học nguyên

sinh mở rộng như: khối hình hộp bo góc, khối đa

giác đặc biệt hình kim cương, bức tường dạng chữ

L…

- Compound Objects: dùng tạo các mô hình phứt

tạp từ các hình 2D hoặc 3D có sẵn…

- Particle System: hệ thống tạo hạt

- Patch Grids: mô hình tấm lưới

- NURBS Surfaces: bề mặt NURBS

- Doors: các mô hình cửa chính

- Windows: các mô hình cửa sổ

- AEC Extended: các đối tượng mở rộng hỗ trợ như: cây cảnh, các đường ray

tay vịn, các bức tường đa dạng…

- Dynamics Objects: các đối tượng thuộc động

lực học

- Stairs: các dạng cầu thang.

1.2.1.3 Nhánh lệnh Shapes

Bao gồm các công cụ giúp vẽ các hình

phẳng 2D như: đường thẳng, đường tròn, cung,

Trang 12

Mỗi đối tượng đều có một số tham số về kích thước, hình dáng riêng biệt, muốnthay đổi các thông số này có nhiều cách:

- Vẽ đối tượng và tiến hành sửa chữa ngay trong bảng lệnh Create trước khi kết

thúc lệnh, để kết thúc lệnh đang vẽ bấm right click mouse hoặc nhấn chọn qua

Hình 1.2: Cách vẽ một đối tượng

Trang 13

1.2.2.2 Bảng lệnh Modify

- Bảng lệnh modify cho phép thực hiện các phép hiệu chỉnh trên đối tượng vàthực hiện các điều khiển thông số liên quan đến các thành phần của đối tượngcũng như các thông số của từng hiệu ứng

- Khi áp phép hiệu chỉnh cho đối tượng chương trình sẽ theo dõi thứ tự của phéphiệu chỉnh trong danh sách modifier stack, có thể xem danh sách modifier stacknhư là lý lịch ghi chép lại các hiệu chỉnh trên đối tượng

Hình 1.3: Bảng lệnh Modify

Trang 14

Hình 1.5: Khung nhìn – viewport

Trình bày Layout các khung nhìn:

Nhấn phải lên tên khung nhìn, chọn Configure, chọn thẻ Layout, chọn kiểukhung nhìn

Trang 15

Hình 1.6: Layout các khung nhìn

1.2.3 Các thao tác cơ bản

Thao tác chọn đối tượng - Select:

Chọn một đối tượng: Nhấn chuột trái lên đối tượng cần chọn

Chọn nhiều đối tượng: Chọn đối tượng thứ nhất, giữ Ctrl và nhấn chọn đối tượng

tiếp theo

Chọn theo tên: Chọn công cụ Select by name

Bỏ chọn tất cả đối tượng: Nhấn trái ra vùng nhìn trống

Bỏ chọn một vài đối tượng trong tập chọn: Giữ Alt và nhấn trái đối tượng muốn

bỏ chọn

Xoá đối tượng: Chọn đối tượng cần xoá, nhấn phím Delete.

Sao chép đối tượng – Copy:

Chọn một trong 3 công cụ Transform: Move, Rotate, Scale và giữ Shift và nhấn

và kéo đối tượng ra, xuất hiện hộp thoại, chọn kiểu copy, nhấn ok

Trang 16

Hình 1.7: Bảng Sao chép đối tượng – Copy

Di chuyển đối tượng – Move:

Di chuyển tự do: Chọn công cụ Select And Move, nhấn vào đối tượng, kéo

chuột vào một trong 3 trục, trục nào có màu vàng thì sẽ di chuyển theo chiều trụcđó

Di chuyển chính xác: Chọn đối tượng và nhấn Phải vào công cụ Select And

Move để hiện ra hộp thoại tham số Move Transform Type In:

+ Absolute: Nhập vào các giá trị tuyệt đối chính xác cho các trục toạ độ x,

y, z so với gốc toạ độ

+ Offset: Nhập vào các giá trị toạ độ theo cách tịnh tiến so với vị trí hiện

hành

Trang 17

Hình 1.8: Bảng di chuyển đối tượng – Move

Xoay đối tượng – Rotate:

Chọn công cụ select and rotate, chọn đối tượng cần xoay, di chuyển chuộtvào một trong 3 trục để kéo xoay Có thể quan sát góc độ xoay trong lúc quay, vàchỉ có vùng nhìn phối cảnh mới có thể xoay được 3 trục

Biến đổi tỉ lệ to, nhỏ – Scale:

- Co giãn tự do: Chọn công cụ Select And Uniform Scale, nhấn chuột lên đốitượng, kéo theo trục hoặc toàn bộ đối tượng để thay đổi kích thước

- Co giãn chính xác: Nhấn phải lên công cụ Select And Uniform Scale, hiện hộpthoại, nhập giá trị chính xác để điều chỉnh

Trang 18

Hình 1.9: Bảng biến đổi tỉ lệ to, nhỏ – Scale

Trục – Axis:

Trục là một đường thẳng tưởng tượng trong không gian máy tính nhằmxác định một hướng Ba trục chuẩn trong max gọi là trục x, y và z Trong max cóthể xem như trục x là chiều rộng, trục y là chiều dài và trục z là chiều cao Giaođiểm của 3 trục này trong max gọi là gốc toạ độ (0, 0, 0)

Khi xoay một đối tượng, ba yếu tố ảnh hưởng đến kết quả là:

+ Hệ toạ độ hiện hành

+ Vị trí của điểm làm tâm xoay

+ Trục nào được chọn để xoay

Các phép biến đổi Transform dựa vào các trục Axis và vùng nhìnViewport Đây là một vấn đề cơ bản rất quan trọng trong MAX, hầu hết các phépbiến đổi như di chuyển – Move, xoay – Rotate, thu phóng – Scale đều sử dụng hệ

toạ độ vùng nhìn – View Coordinate như hệ toạ độ mặc định Với hệ toạ độ

Trang 19

View này các trục được thể hiện tại các vùng nhìn phẳng – Top, Front, Left theo

cách như sau: trục x nằm ngang, trục y dọc và trục z thì vuông góc với hai trục

xy, đây chính là hệ trục toạ độ Screen trong Max.

Tại vùng nhìn phối cảnh – Perspective, hệ toạ độ lại thể hiện trục X chiều

ngang, trục Y chiều dài (chiều sâu) và trục Z chiều cao (chiều dọc), đây là hệ toạ

độ thế giới – World trong Max.

Tại các vùng nhìn phẳng có thể di chuyển đối tượng theo 2 trục x và y,

nhưng không thể di chuyển theo trục z Vì trong hệ toạ độ View thì đối tượng tại

các vùng nhìn phẳng không thể di chuyển theo trục z được, bởi vì không thể lôiđối tượng ra khỏi màn hình vi tính Do trục z vuông góc với 2 trục xy và hướng

ra trước mặt Trong khi tại vùng nhìn phối cảnh thì có thể tự do với cả 3 trục

Điều chỉnh tâm của phép biến đổi:

Tâm của phép biến đổi được gọi là điểm chốt – Pivot Point, tất cả các đối

tượng đều được làm biến đổi trong mối tương quan với điểm chốt này Các điềuchỉnh cho điểm chốt nằm tại Main Toolbar như sau:

Hình 1.10: Điều chỉnh tâm của phép biến đổi

Max cung cấp 3 loại điều chỉnh điểm chốt như sau:

Use Pivot Center: Tâm của điểm chốt

Mỗi một đối tượng trong max có một hệ toạ độ cục bộ của riêng đốitượng, gốc của hệ toạ độ cục bộ này được gọi là điểm chốt, tuỳ theo đối tượng cótâm ở giữa hay có tâm ở đáy, đây là vị trí mặc định

Use Selection Center: Tâm của tập chọn

Khi chọn nhiều đối tượng, loại tuỳ chọn tâm điểm chốt sẽ không còn dễ sửdụng nữa Tuỳ chọn này xác định điểm chốt nằm ngay tại tâm hình học của cácđối tượng đang được chọn, và khi xoay tất cả các đối tượng sẽ sử dụng tâmchung giữa các đối tượng

Trang 20

Use Transform Coordinate Center: Tâm của hệ toạ độ

Khi chọn một hệ toạ độ tham chiếu có thể có một tâm điểm riêng, ví dụ hệtoạ độ World có tâm điểm tại 0, 0, 0

Thay đổi vị trí điểm chốt – tâm xoay:

Để thay đổi vị trí điểm chốt của một đối tượng, chọn đối tượng đó, chọn bảng

lệnh Hierarchy, chọn kiểu điều chỉnh điểm chốt thích hợp.

Affect Pivot Only: Chỉ làm biến đổi điểm chốt của đối

tượng mà thôi, không thể di chuyển, xoay, scale khối

hình học khi nút lệnh này được bật

Affect Object Only: Ngược lại với lệnh trên, điểm chốt

vẫn giữ nguyên vị trí, làm biến đổi trên đối tượng tuỳ

ý

Center to Object: Gióng cho điểm chốt trở về giữa tâm

của đối tượng hiện hành

Align to Object: Gióng cho các trục x,y,z của điểm

chốt trùng với trục x,y,z của hệ toạ độ cục bộ được

chọn

Align to World: Gióng cho các trục x,y,z của điểm

chốt trùng với hệ toạ độ thế giới

Reset Pivot: Cho điểm chốt trở về vị trí mặc định.

1.2.5 Các lệnh biến đổi đối tượng

Trang 22

Cách thực hiện:

+ Chọn đối tượng cần tạo dãy

+ Chọn menu Tools – Array

+ Xuất hiện hộp thoại tham số cho lệnh Array

+ Điền các tham số thích hợp cho việc tạo dãy, nhấn Preview xem thử, xongOk

+ Chọn đối tượng 3d, chọn menu

Tools – Spacing tool, hiện hộp

thoại, nhấn Pick Path, nhấn chọn

Trang 23

đường dẫn, xác định số lượng các đối tượng cần nhân bản ở hộp Count, xong Apply.

1.3 Shape và hiệu chỉnh Shape

1.3.1 Giới thiệu các Shape

Max hỗ trợ 11 công cụ tạo Shape, cách sử dụng các công cụ này tương tự như các phần mềm đồ hoạ 2d khác như: Corel, Illustrator…

Mặc định các shape khi được tạo ra sẽ không

nhìn thấy khi render

1.3.2 Hiệu chỉnh Shape

Max xem các Splines như là hình Shape, một hoặc nhiều các splines cóthể kết hợp để tạo ra các hình Shape phứt tạp hơn

Nút lệnh Start New Shape nếu không được

kiểm nhận thì tất cả các Spline tạo ra đều là một

shape, ngược lại khi nút được kiểm thì mỗi spline

đều là một shape mới

Bất kỳ một shape nào được tạo ra từ lệnh

line đều có thể chỉnh sửa, tuy nhiên các đường

Trang 24

spline khác như vòng tròn, cung… thì phải chuyển đổi để trở thành một spline cóthể chỉnh sửa được, bằng cách nhấn phải vào đường spline chọn Convert ToEditable Splines.

Sau khi chuyển sang chế độ chình sửa có thể truy cập các thành phần thứ cấpcủa spline như: đỉnh – vertex, đoạn – segment, hay chính spline đó Attach chophép gán một hoặc nhiều spline vào một shape hiện hành…

a) Hiệu chỉnh Spline ở cấp độ đỉnh – Vertex:

Cấp độ đầu tiên và quan trọng để hiệu chỉnh spline chính là vertex Khi cấp

độ đỉnh được kích hoạt, các đối tượng mà chỉ có thể chọn trong khung nhìn chỉ làcác đỉnh mà thôi

Bằng cách nhấn phải vào đỉnh, có thể thay đổi kiểu hiệu chỉnh đỉnh như sau:+ Corner: nhọn

+ Smooth: trơn tru

+ Bezier: nét trơn với 2 cần điều khiển phụ thuộc

+ Bezier corner: nét trơn với 2 cần điều khiển độc lập

Các lệnh thường sử dụng khi hiệu chỉnh đỉnh:

+ Refine: thêm đỉnh

+ Break: tách đỉnh

+ Connect: nối 2 đỉnh…

b) Hiệu chỉnh Spline ở cấp độ đoạn – Segment:

Devide: chia đoạn

Detach: tách đoạn

Hide: dấu đoạn

Delete: xóa đoạn

c) Hiệu chỉnh Spline ở cấp chu tuyến – Spline:

Chọn chế độ Spline tại Sub Object cho phép hiệu chỉnh đối tượng ở chế độ này.Mirror: Lật đối xứng spline hiện hành

Outline: Tạo ra một bảng song song với spline hiện hành

Reverse: Dùng để đảo ngược thứ tự các đỉnh trong spline

Trim: Cắt xén spline

Trang 25

Extend: Kéo dài spline.

Boolean: Thực hiện các phép cộng, trừ, giao nhau…

Attach: Kết hợp các spline

Detach: Tách các spline ra

1.4 Các lệnh chuyển đối tượng 2D thành 3D

Lệnh Extrude: Dùng tạo khối 3D

Cách thực hiện:

+ Chọn đối tượng shape 2d muốn tạo khối

+ Chọn bảng lệnh Modify – Modifier List – Extrude

Bevel Profile: Là một hình thức vát cạnh hay trượt vòng theo biên hình dạng Để

sử dụng lệnh này cần phải có 2 đối tượng shape: một hình shape dùng làm đườngdẫn, và hình shape còn lại dùng làm tiết diện

Độ sâu của khối

khối

Trang 26

+ Chọn đối tượng làm tiết diện.

Bevel: Cũng là một hình thức tạo khối như Extrude, nhưng có khả năng vát cạnh

+ Tạo đối tượng shape muốn áp dụng lệnh Lathe

Chọn Modify – Lathe, xác lập các tham số thích hợp

Trang 27

CHƯƠNG 2: ĐIỀU KHIỂN MÔ HÌNH 3D SỬ DỤNG XNA

2.1 Giới thiệu về thư viện đồ họa XNA

2.1.1 Lịch sử phát triển của XNA

XNA được phát triển bởi Microsoft cách đây hơn chục năm nhưng khi đóXNA vẫn là một bí mật và không được nhiều người biết đến Vào năm 2004,Microsoft giới thiệu XNA lần đầu tiên tại hội nghị phát triển trò chơi lớn nhấthàng năm (Game Developers Conference) XNA không chỉ là một frameworkgiống DirectX, XNA còn chứa nhiều công cụ và thậm chí là một môi trường pháttriển tương thích với Visual Studio để giúp phát triển các ứng dụng trò chơi mộtcách dễ dàng

XNA có thể là một kế thừa của DirectX Framework, nhưng khi Direct3D

10 Beta cho Windows Vista được phát hành vào cuối năm 2005, DirectX vẫn làframework đồ họa dành cho hệ điều hành mới này Sau đó, đầu năm 2006 tạiGDC bản Microsoft XNA Build March 2006 CTP được phát hành XNA Build làmột công cụ cho phép quản lí các tiến trình xây dựng các tác vụ phức tạp, tương

tự như là MsBuild và Ants, nhưng phức tạp và hiệu quả hơn Nhưng sau một thờigian không có gì xảy ra, đặc biệt là các nhóm phát triển vừa và nhỏ không thật sựcần một công cụ quản lí xây dựng phức tạp

Tại hội nghị Gamefest vào tháng tám (hội nghị phát triển trò chơi mớiđược tổ chức bởi Microsoft), ở đó Microsoft thông báo XNA Game StudioExpress beta 1 được phát hành vào 30/8/2006 Bản beta đầu tiên chỉ chứa mộtdụng cụ khởi đầu, “Space Wars”, và XNA không bao gồm nhiều tính năng 3D.Nhiều nhà phát triển và người yêu thích thử dùng XNA và viết nhiều trò chơi 2Dnhỏ với sự giúp đỡ của lớp Sprite trong XNA Khi đó, việc tạo mô hình 3D theo

ý mình là một điều rất khó

2.1.2 Các phiên bản tính năng của XNA framework

XNA Game Studio Express hướng tới những người mới bắt đầu, nhữngngười yêu thích trò chơi và sinh viên Môi trường phát triển cho phép họ pháttriển ứng dụng trò chơi trên nền tảng Windows và Xbox 360 một cách nhanhchóng Điều này không có nghĩa là các nhà phát triển trò chơi chuyên nghiệp

Trang 28

không thể sử dụng XNA Phiên bản đặc biệt XNA Game Studio Professionalnhằm vào những nhà phát triển chuyên nghiệp được phát hành vào mùa hè 2007.

XNA Game Studio Professional là một phiên bản môi trường phát triểntích hợp của XNA cho các nhà phát triển trò chơi chuyên nghiệp

XNA Game Studio Express là phiên bản hướng đến những đối tượng cóthể không chuyên nghiệp nhưng lại yêu thích lập trình trò chơi như: sinh viên,những người yêu thích trò chơi, các nhà phát triển trò chơi độc lập XNA GameStudio Express là phiên bản miễn phí Phiên bản cuối cùng được cung cấp ngày

sự hỗ trợ điều khiển tốt hơn

XNA Game Studio 3.0 (dùng cho Visual Studio 2008 hoặc Visual C#

2008 Express Edition) Phiên bản được đưa ra vào ngày 30 tháng 10 năm 2008.Tạo game chạy đa nền tảng như Windows, Xbox 360 và Zune

XNA Game Studio 3.1 là bản được cập nhật và sửa lỗi của bản XNAGame Studio 3.0 được đưa ra vào 11/6/2009

XNA Game Studio 4.0 (dùng cho Visual Studio 2010 hoặc Visual C#

2010 Express Edition) XNA Game studio 4.0 chính thức ra đời vào ngày16/9/2010 XNA Game Studio 4.0 đã hỗ trợ thêm nền tảng WP7 (bao gồm cả giatốc phần cứng 3D), trang bị thêm đặc tính, các đối tượng được xây dựng sẵn, cácthiết bị đồ hoạ có hướng và vô hướng, hỗ trợ chạy đa nền tảng, hỗ trợ điều khiêncảm ứng đa diểm chạm, hỗ trợ nhận âm thanh từ micro

XNA Game Studio 4.0 Refresh là bản cập nhật của XNA Game Studio 4.0

để sửa lỗi và thêm hỗ trợ cho phát triển trò chơi mà mục tiêu của hệ điều hànhWindows Phone 7.1 và trò chơi phát triển trong Visual Basic

Trang 29

2.2 Tổng quan về XNA framework Content Pipeline

Hầu hết các trò chơi đều sử dụng các dạng mô hình, sprite, texture, hiệuứng, hình động… Toàn bộ tài nguyên đó có thể được tạo bằng nhiều cách khácnhau và được lưu trữ bởi nhiều định dạng tập tin khác nhau Content Pipelineđược thiết kế để giúp đưa tài nguyên vào trò chơi một cách dễ dàng và tự động.Content Pipeline có thể được dùng để giải quyết vấn đề thực tế: Những nội dung

mà tạo cho trò chơi thì không sẵn sàng cho trò chơi Ví dụ, nội dung 3D thườngđược lưu giữ trong một định dạng riêng và cần phải chuyển đổi dữ liệu trước khinạp nội dung vào trong trò chơi Nói chung, Content Pipeline có thể nhận các tậptin khác nhau như đầu vào, chuyển tập tin sang dạng mà có thể làm việc, và sau

đó biên dịch tập tin thành một định dạng mà có thể dễ dàng nạp vào trò chơi khitrò chơi bắt đầu

XNA framework Content Pipeline được thiết kế để:

- Cho phép các họa sĩ trò chơi sử dụng công cụ tạo nội dung kỹ thuật số(DCC)

- Cung cấp một kỹ thuật để tách riêng sự độc lập của nội dung số trên mộtmáy trò chơi cụ thể

- Cung cấp nội dung đơn giản, mở rộng để xây dựng hệ thống mà cần cảngười thiết kế đồ họa và người phát triển trò chơi

Sơ đồ các thành phần của Content Pipeline :

Hình 2.1: Sơ đồ thành phần của Content Pipeline

Các định dạng Content Pipeline hỗ trợ:

- Định dạng tập tin 3D: X (dùng bởi DirectX), FBX ( chuyển định dạng tậptin tạo bởi Autodesk )

Trang 30

- Định dạng tập tin nguyên liệu (material): FX (các tập tin hiệu ứng có thểđược dùng để mô tả chi tiết mô hình 3D hoặc thêm hiệu ứng vào cảnh3D).

- Định dạng tập tin 2D: BMP, DDS, DIB, HDR, JPG, PFM, PNG, PPM vàTGA (các định dạng tập tin hình ảnh thông thường)

- Mô tả phông chữ: SPRITEFONT (tập tin XML được dùng bởi XNA, mô

tả cách tạo một sơ đồ bố cục từ kích thước loại phông chữ cụ thể)

Định dạng tập tin âm thanh: XAP (tạo bởi công cụ XACT, có thể gắn hầuhết các định dạng tập tin âm thanh)

2.3 Thiết bị đầu vào

Thiết bị đầu vào là những thiết bị giúp người chơi điều khiển nhân vật củamình trong trò chơi Thông qua thiết bị vào, người chơi có thể hoá thân thànhmột nhân vật trong trò chơi Ví dụ, khi chơi các trò chơi đua xe, quả thật rất làhồi hộp Khi đó, người chơi phải xem mình chính là người lái chiếc xe đó và xemnhư mình đang thật sự điều khiển chiếc xe ở ngoài thế giới thật vậy Mỗi khinhân vật bị té ngã hay va chạm với ai đó thì người chơi cũng có cảm giác giốngnhư vậy, cũng vui, buồn, giận…

Hiện tại có nhiều thiết bị vào để điều khiển trò chơi như bàn phím, chuột(cho Windows), GamePad cho máy Xbox360,… Và XNA hỗ trợ cả ba loại trên

2.3.1 GamePad cho máy Xbox360

XNA cung cấp cho những lớp hỗ trợ cho phép dễ dàng xác định trạng tháicủa GamePad Sử dụng lớp GamePad làm đại diện cho thiết bị gamepad tươngứng của Xbox và lớp GamePadState để biểu diển các trạng thái của gamepad

- Kiểm tra xem gamepad đã kết nối hay chưa: Để kiểm tra xem gamepad đãkết nối hay chưa, sử dụng thuộc tính GetState().IsConnected của lớpGamePad Thuộc tính này có giá trị kiểu bool, nếu là true thì gamepad đãđược kết nối, ngược lại là chưa kết nối

- Kiểm tra xem nút nào trên gamepad đang được ấn: Sử dụng phương thứcGamePadState.IsButtonDown(Buttons btn) để kiểm tra Nếu đầu ra là truethì nút này đang được ấn, ngược lại là không được ấn

Trang 31

- Các lớp hỗ trợ: GamePad, GamePadState.

2.3.2 Bàn phím

Bàn phím, với nhiều phím tốt nhất cho các mô phỏng phức tạp, với nhiềuchức năng, hoặc khi gõ văn bản là cần thiết nhưng bàn phím không phải là mộtđiều khiển cho các chuyển động chính xác

Nếu bàn phím của người dùng kết nối thông qua cổng USB, bàn phím cóthể được dùng cho hệ thống Windows hoặc Xbox 360

XNA cung cấp cho những lớp hỗ trợ cho phép dễ dàng xác định trạng tháicủa những thiết bị vào Xác định trạng thái của bàn phím bằng cách khai báo biếnchứa trạng thái của bàn phím và gọi phương thức GetState của đối tượngKeyboard

private KeyboardState keyboardState ;

xe cuộn có thể điều khiển thêm hai hướng, nhưng không cung cấp dữ liệu vàochính xác

Kiểm tra nút nào đang ấn: Sử dụng phương thức GetState() của lớp Mouse

và giá trị trả về là một đối tượng của lớp MouseState Sau đó, khai thác của thuộctính của lớp MouseState để sử dụng

Lấy vị trí của chuột: Để lấy toạ độ hiện thời của chuột, cũng phải khai báo

để lấy được trạng thái hiện thời của chuột bằng phương thức Mouse.GetState().

Để lấy toạ độ chuột, dùng thuộc tính MouseState.X hoặc MouseState.Y

Trang 32

Cho phép hiện con trỏ chuột trong trò chơi: Dùng thuộc tính

Game.IsMouseVisible để qui định Nếu thuộc tính này được gán là true, thì con

trỏ chuột sẽ được hiển thị, ngược lại thì không

2.4 Camera

2.4.1 Các thành phần của camera

Camera rất quan trọng đối với trò chơi Camera giống như khi quay phim.Camera có rất nhiều góc quay, như camera người thứ nhất (loại camera này chính

là con mắt của nhân vật trong các trò chơi đi cảnh, nhân vật), camera người thứ

ba (loại camera nhìn nhìn từ trên cao xuống, xem toàn cảnh trò chơi, thường ápdụng cho trò chơi chiến thuật, và thường được chuyển đổi qua lại với camerangười chơi thứ nhất) Kết quả thu được từ camera còn tuỳ thuộc vào vị trí đặtcamera, mục tiêu nhìn (hướng nhìn – nhìn về đâu), và góc nhìn của camera,phạm vi nhìn thấy được của camera (nếu các đối tượng trong cảnh nằm ngoàivùng này thì không được nhìn thấy)

Camera gồm có năm thành phần sau: vị trí đặt camera (Position), mục tiêucần nhìn vào (View), hướng nhìn của camera (Look), hướng phía trên củacamera (Up) và vector pháp tuyến (Right) hướng ra từ mặt phẳng tạo bởi haivecctor (Up, Look)

Hình 2.2: Các thành phần của camera

Để sử dụng camera, ta cần phải nắm rõ ba loại ma trận sau: ma trận chiếu,

ma trận nhìn và ma trận thế giới

Ma trận chiếu – Projection: chuyển dữ liệu từ dữ liệu không gian camera

đã được chiếu lên màn hình Tính toán ma trận chiếu nên được thực hiện ở một

Trang 33

bước riêng để cho phép ViewMatrix có thể được tính toán và thay đổi dễ dànghơn Không gian Camera dao động từ -1 đến +1 cho cả hai trục X và Y Riêng Zchứa giá trị độ sâu cho mỗi điểm liên quan với vị trí camera Ma trận chiếu:chuyển 3 giá trị trên sang độ phân giải màn hình và cho phép xem cận cảnh, xa,gần…

Độ sâu: quyết định thứ tự trước sau của các đối tượng 3-D

Để tìm ra được ma trận chiếu tương ứng, XNA cung cấp một vài hàm,

thường dùng nhất là hàm Matrix.CreatePerspectiveFieldOfView(fieldOfView,

aspectRatio, nearPlane, farPlane) Trong đó, ý nghĩa các tham số như sau:

- fieldOfView: tính theo radian FOV biểu thị góc nhìn cảnh 3D Chỉ nhữngphần cảnh nào nằm trong góc này mới có thể nhìn thấy được Góc FOVcàng lớn thì nhìn được cảnh rộng hơn Thông thường giá trị mặc định củaFOV là 450 tức (П/2)

- aspectRatio: được gọi là tỉ lệ co

- nearPlane và farPlane: xác định khoảng cách tới mặt gần nhất và xa nhấtcho phép thấy được cảnh Thường lấy theo tầm nhìn của mắt người là từ0.1 mét đến 100 mét Chỉ những phần cảnh nào nằm trong vùng giới hạnnày thì mới được hiển thị Phần nằm ngoài sẽ mất đi (không được hiểnthị)

Hình 2.3: Ma trận projection

Ngày đăng: 23/04/2017, 10:15

HÌNH ẢNH LIÊN QUAN

Hình 1.3: Bảng lệnh Modify - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 1.3 Bảng lệnh Modify (Trang 12)
Hình 1.4: Bảng Viewport controls 1.2.2.4 Khung nhìn – viewport - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 1.4 Bảng Viewport controls 1.2.2.4 Khung nhìn – viewport (Trang 13)
Hình 1.7: Bảng Sao chép đối tượng – Copy - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 1.7 Bảng Sao chép đối tượng – Copy (Trang 15)
Hình 1.8: Bảng di chuyển đối tượng – Move Xoay đối tượng – Rotate: - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 1.8 Bảng di chuyển đối tượng – Move Xoay đối tượng – Rotate: (Trang 16)
Hình 1.9: Bảng biến đổi tỉ lệ to, nhỏ – Scale - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 1.9 Bảng biến đổi tỉ lệ to, nhỏ – Scale (Trang 17)
Hình 1.10: Điều chỉnh tâm của phép biến đổi - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 1.10 Điều chỉnh tâm của phép biến đổi (Trang 18)
Hình 1.12: Bảng Lệnh Mirror - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 1.12 Bảng Lệnh Mirror (Trang 21)
Hình 3.1: Mô hình khung phòng truyền thống - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.1 Mô hình khung phòng truyền thống (Trang 48)
Hình 3.3: Mô hình khung ảnh - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.3 Mô hình khung ảnh (Trang 51)
Hình 3.5: Mô hình tủ kính khi thêm chất liệu - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.5 Mô hình tủ kính khi thêm chất liệu (Trang 53)
Hình 3.6: Mô hình tủ kính hoàn thiện - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.6 Mô hình tủ kính hoàn thiện (Trang 54)
Hình 3.8: Mô hình khung ảnh hoàn thiện - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.8 Mô hình khung ảnh hoàn thiện (Trang 55)
Hình 3.10: Trình tự gọi các biến và hàm thành viên trong Game1.cs - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.10 Trình tự gọi các biến và hàm thành viên trong Game1.cs (Trang 56)
Hình 3.11: Thêm lớp CModel - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.11 Thêm lớp CModel (Trang 58)
Hình 3.13: Mô hình trong lập trình - Xây dựng chương trình mô phỏng phòng truyền thống ảo trường đại học công nghệ thông tin và truyền thông sử dụng công nghệ 3d
Hình 3.13 Mô hình trong lập trình (Trang 64)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w