Đại học Công giáo Giáo hoàng Valparaíso
KHOA KỸ THUẬT
Trường Kỹ thuật Máy tính
Báo cáo để chọn mức độ của
Bậc thầy về kỹ thuật máy tính
Julio 2016
Trình xem ba chiều
Cho mô phỏng xe
Portuarios
Tác giả: Gerardo Ismael Urbina Ampuero
Hướng dẫn giáo sư: Claudio Alonso Cubillos Figueroa
Tôi
Mục lục
Danh sách các số liệu ................................................... .................................................. .................................................. ... IV Danh sách các bảng ................................... ........ .......................................... ........ .......................................... ........ Tóm tắt. .......................................... ........ .......................................... ........ .............. VI Chương 1: Mô tả về chủ đề ..................... ....... ....... ........................................... ....... ...........................................
1.1 Giới thiệu ................................................ .................................................. ................................. 1 1.2 Định nghĩa các mục tiêu .... ........ .......................................... ........ .......................................... ........ .......... 3
1.2.1 Mục tiêu chung ............................................. .................................................. ......................... 3 1.2.2 Mục tiêu cụ thể ................... .................................................. ............................................ 3
1.3 Lập kế hoạch dự án ............................................. .. .................................................. ..................... 3 1.4 Phương pháp làm việc ....................... .. ................................................ .. .............................................. 5
1.4.1 Các giai đoạn Agil Up ............................................ .................................................. .......................... 5 1.4.2 Kỷ luật và vòng lặp của Agile Up .............. .................................................. ........................... 6
Chương 2: Động cơ đồ họa ...................................... ....... ....... ........................................... ....... ........................... 7 2.1 Kiến trúc Đồ họa Del Đồ họa .......... ....... ....... ........................................... ....... ......................................... 7
2.1.1 Phần cứng .............................................. .................................................. ............................ 9 2.1.2 Trình điều khiển ......... ........ .......................................... ........ .......................................... ........ .................. 9 2.1.3 Hệ điều hành .................. ........ .......................................... ........ .......................................... 9 2.1.4 SDK và phần mềm trung gian của các bên thứ ba ......................................... ....... ........................................... ..... 9
2.1.4.1 API đồ họa ............................................. .................................................. ............................... 10 2.1.5 Lớp độc lập nền tảng. ....................................... ........... .................. 14 2.1.6 Hệ thống chính ........... ............... ................................... ............... ................................... ... 14 2.1.7 Quản trị viên tài nguyên ...... .................................. ................ ...................................... .............. 14 2.1 .8 Kết xuất mức thấp ............................ ................. ................................. ................. ........ 15 2.1.9 Biểu đồ cảnh / Tối ưu hóa Culling ............... ................. ................................. ................. ... 16
2.1.9.1 Phân vùng không gian nhị phân ............................................ .................................................. ................ 16 2.1.9.2 Hệ thống cấp chi tiết ........................ ... ............................................... ... ........................... 16
2.1.10 Hiệu ứng hình ảnh ..................................... ........ .......................................... ........ ............... 17 2.1.11 Mặt trước ..................... ........ .......................................... ........ .......................................... ....... 17 2.1.12 Hồ sơ và công cụ thanh lọc .................................. ......... ......................................... 17 2.13 va chạm và vật lý .... ....................................... ........... ....................................... ........... ......... 17 2.1.14 Hoạt hình ......................... ........... ....................................... ........... ....................................... ..20 2.1.15 Thiết bị giao diện người (HID ) ............................. .................... .................. 20 2.1.16 Âm thanh ........................... ...................... ............................ ...................... ............................ ....... 20 2.1.17 Mạng .......... ............................ ...................... ............................ ...................... ................ 20 2.1.18 Hệ thống cơ sở trò chơi ..... ..................... ............................. ..................... .......................... 21 2.1. 19 Hệ thống con ứng dụng cụ thể ............... ............................... ................... ...............hai mươi mốt
2.2 Mẫu thiết kế .............................................. .. .................................................. ............................... 22
ii
2.2.1 Nguyên mẫu ................................................................................................................................... 22 2.2.2 Fly weight .................................................................................................................................. 23
2.3 Mặt tiền ....................................................................................................................................................24 2.4 Người quan sát .................................................................................................................................................... 25
Chương 3: Mô hình 3D ............................................. .................................................. .................................... 26 3.1 Kỹ thuật mô hình ..... ..... ............................................. ..... ............................................. ..... ............. 26
3.1.1 Mô hình đa giác ..................................... ........ .......................................... ........ ............ 26 3.1.2 Mô hình bằng spline ....................... ........ .......................................... ........ ...................... 27 3.1.3 Điêu khắc kỹ thuật số .............. ........ .......................................... ........ .......................................... ..... 28
3.2 Kết cấu ................................................ .................................................. .......................................... 28 3.2.1 Kỹ thuật kết cấu. .................................................. .................................................. ...... 29
3.2.1.1 Thủ tục .............................................. .................................................. .................................... 29 3.2.1.2 Vertex Sơn .... .... .... .............................................. .... .............................................. .... ......................... 30 3.2.1.3 được kết cấu bởi hình ảnh UV ......... ........ .......................................... ........ .......................................... .. 30
3.3 Liệt kê phần mềm mô hình 3D ........................................... .. .................................................. ....... 31 Chương 4: Phát triển dự án ................................... .. ................................................ .. ............................... 3
4.1 Trường hợp nghiên cứu ............................................. .. .................................................. ............................ 34 4.1.1 Nhà nước nghệ thuật ...... ......... ......................................... ......... ......................................... ......... ....... 34 4.1.2 Công nghệ sẽ được triển khai ........................... ........ .......................................... ........ ................... 36 4.1.3 Phát triển trường hợp nghiên cứu .............. ........ .......................................... ........ .......................... 37
4.2 Thiết kế hệ thống ...................................... ......... ......................................... ......... .................... 39 4.2.1 Sơ đồ sử dụng ......... .............. .................................... .............. .................................... 39 4.2.2 Sơ đồ lớp ........ ................................... ............... ................................... ............... ....... 41
4.2.2.1 WindowDevice .................................................................................................................................... 44 4.2.2.2 FPSManager ......................................................................................................................................... 45 4.2.2.3 EventManager ..................................................................................................................................... 46 4.2.2.4 Kết xuất .............................................................................................................................................. 46 4.2.2.5 Vật lý quản lý .................................................................................................................................. 47 4.2.2.6 Object3D .................................................................................................................................................. 48 4.2.2.7 Máy ảnh................................................................................................................................................. 50 4.2.2.8 lưới.................................................................................................................................................... 51 4.2.2.9 Skybox ................................................................................................................................................. 52 4.2.2.10 Shader .................................................................................................................................................... 52 4.2.2.11 Tài liệu .............................................................................................................................................. 53
4.2.3 Thông số kỹ thuật của xe .................................... ......... ......................................... ..... 54 Chương 5: Thực hiện ........................................ ......... ......................................... ......... ........................... 56
5.1 Động cơ đồ họa ................................................... .................................................. .................................... 56 5.1.1 Hệ thống tọa độ và MVP. ............................................. ..... ................................ 56 5.1.2 Kết cấu ............. ..................................... ............. ..................................... ............. ................... 58
iii
5.2 Phát triển và tích hợp các mô hình 3D ............................................... .................................................. .59 5.3 Tích hợp động cơ vật lý .................................... ........ .......................................... ........ ................. 60
5.3.1 Mặt nạ va chạm .................................... ......... ......................................... ......... .......... 62 5.3.2 Thực hiện ràng buộc ........................ .......... ........................................ .......... ............... 62 5.3.3 Hệ thống lái xe .................. ........... ....................................... ........... ........................... 64
5.4 Hệ thống quá giang .............................................. .. .................................................. ............................ 65 5.5 Tích hợp âm thanh ................ .. ................................................ .. ................................................ .. .... 66 5.6 Phụ lục ........................................ ... ............................................... ... ............................. 67
Chương 6: Kết luận ...................................... ........ .......................................... ........ ....................... 68 Tài liệu tham khảo ......... ................ .................................. ................ .................................. ................ ........................ 70
iv
Danh sách các số liệu
Hình 1.1 Vòng đời Agile UP [URL 3, 2005] .................................... ................................................. ....... 5 Hình 1.2 Các phiên bản tăng dần theo thời gian [URL 3, 2005] ...................... .... ................................................. 6 Hình 2.1 Kiến trúc điển hình của một công cụ đồ họa [Gregory, 2009] ...................................... ...................................... 8 Hình 2.2 Đường dẫn chức năng cố định của OpenGL [Shreiner , 2010] .................................... ......................11 Hình 2.3 Đường dẫn OpenGL đơn giản hóa [Wright và cộng sự, 2014] ... ...... ................................................................. ......................12 Hình 2.4 Chuyển đổi khung nhìn [Shalini, 2004] ............ ................................................................. ......................15 Hình 2.5 Ví dụ về cây BSP [URL 4, 2011] .......... ................................................................. ...................................16 Hình 2.6 Ví dụ về các các loại LOD [URL 5, 2009] ................................. ... ...................................17 Hình 2.7 Đường ống vật lý đạn [URL 6 , 2014]................................ . ................................... 18 Hình 2.8 Các loại ràng buộc trong Bullet Physics [URL 6, 2014] ................................... .. ...................................19 Hình 2.9 Mục tiêu ứng dụng của miếng [Gregory, 2009] .................... .. ......................21 Hình 2.10 Mẫu thiết kế nguyên mẫu [Vallejo và Martín, 2013] .... ... ................................................. ......................22 Hình 2.11 Các thực thể của mô hình 3D truyền thống [URL 7, 2014] ............ ... ................................................. ............23 Hình 2.12 Mẫu thiết kế Flyweight [URL 7, 2014] ...................... ................................................................. ....................24 Hình 2.13 Ví dụ ứng dụng mẫu Mặt tiền [Vallejo và Martín, 2013] .... ...................................24 Hình 2.14 Sơ đồ trình tự sử dụng mẫu Observer [ Vallejo và Martín, 2013] ....................................25 Hình 3.1 Hộp ví dụ lập mô hình [URL 8, 2006]................................................. ...................................................... ...................26 Hình 3.2 Ví dụ về mô hình NURBS [URL 9, 2004] ...................... ...................................................... ......................27 Hình 3.3 Sử dụng hồ sơ [URL 10, 2011] ............ .................................................... ....................................27 Hình 3.4 Ví dụ về điêu khắc [URL 11, 2011] ....... .................................................... ....................................28 Hình 3.5 Ví dụ về ánh xạ kết cấu [ Địa chỉ 12 , 2008] .................................... ....................................................29 Hình 3.6 Ví dụ về kết cấu thủ tục [ URL 13, 2009] ...................................... ....................................................29 Hình 3.7 Ví dụ về sơn đỉnh [ URL 15, 2009] ................................. .................................................... .... ..30 Hình 3.8 Tạo họa tiết bằng UV Map [URL 16, 2006] ...................... .................................................... .... .31 Hình 4.1 Đang tải độ trung thực từ mô hình 3D vào ứng dụng [Johnson, 2009] ...................... ....................................34 Hình 4.2 Phát hiện mối đe dọa bằng cảm biến [Christiansen et al ., 2008] ................................................. ......35 Hình 4.3 Trực quan hóa dữ liệu từ nhiều nguồn [URL 28, 2014] ...................... .............35 Hình 4.4 Sơ đồ các trường hợp sử dụng chức năng của người dùng [Dự thảo. Sở hữu] ................................................ ....40 Hình 4.5 Sơ đồ lớp công cụ đồ họa [Elab. Sở hữu] ................................................ ....................41 Hình 4.6 Lớp WindowDevice [Elab. Sở hữu] ................................................ ................................................................. .....44 Hình 4.7 Lớp FpsManager [Elab. Sở hữu] ................................................ ................................................................. ..........45 Hình 4.8 Lớp EventManager [Elab. Sở hữu] ................................................ ................................................................. .......46 Hình 4.9 Lớp trình kết xuất [Elab. Sở hữu] ................................................ ................................................................. ....47 Hình 4.10 Lớp PhysicsManager [Elab. Sở hữu] ................................................ ................................................................. ..48 Hình 4.11 Lớp Object3D [Elab. Sở hữu] ................................................ ................................................................. ............49 Hình 4.12 Loại máy ảnh [Elab. Sở hữu] ................................................ ................................................................. ...................50 Hình 4.13 Lớp lưới [Elab. Sở hữu] ................................................ ................................................................. ...................51 Hình 4.14 Lớp SkyBox [Elab. Sở hữu] ................................................ ................................................................. ....52 Hình 4.15 Lớp Shader [Elab. Sở hữu] ................................................ ................................................................. ....53 Hình 4.16 Lớp vật liệu [Elab. Sở hữu]................................................ ................................................................. .......53 Hình 4.17 Góc quay của máy rải [URL 2, 2014]........... .. ................................................. .. ............54 Hình 4.18 Cabin trượt [URL 2, 2014] ...................... .. ................................................. .. ...................54 Hình 4.19 Sơ đồ khoảng cách theo góc quay [URL 2, 2014] . ................................................. .............55 Hình 5.1 Cắt các vùng [Wright và cộng sự, 2007] .................... .................................................... .... ............56 Hình 5.2 Ma trận chiếu [Wright và cộng sự, 2007] ............ .................................................... ....................57 Hình 5.3 Mô hình máy trộn Reach-Stacker [Dự thảo. Sở hữu]................................................ ...................................59 Hình 5.4 Ràng buộc kiểu thanh trượt trong boom Reach -Stacker [Elab. Sở hữu] ................................................ ....63 Hình 5.5 Ràng buộc loại bản lề trong bộ rải Reach-Stacker [Elab. Sở hữu]................................................ ....63 Hình 5.6 Hệ thống dây chuyền [Elab. Sở hữu] ................................................ ................................................................. ............65 Hình 5.7 Trình mô phỏng chế độ wireframe [Draft. Sở hữu] ................................................ ................................................................. 67
v
Danh sách bảng
Tabla 1.1 rrecting của dự án [ELAB.Đó là một điều tốt ........................................... ... ... ............................................ 0 ..... .....................................
vi
Bản tóm tắt
Mô phỏng 3D tương ứng với một lĩnh vực nghiên cứu đã cho phép cải thiện các quy trình
đào tạo và học tập trong nhiều lĩnh vực khác nhau, điều này cho phép hình thành các nhà khai thác
thực tế có khả năng kiểm soát các tình huống rủi ro, do đào tạo an toàn và
khả năng phát triển trong các hoạt động mà thông qua các phương pháp thông thường sẽ dẫn đến
không khả thi.Dự án này nhằm mục đích tạo ra một công cụ đồ họa
ba chiều, cho phép mô phỏng hoạt động của một chiếc xe tải tiếp cận,
Dựa trên các mô hình mô phỏng vật lý chất lượng cao.
Claves palabras: biểu đồ 3D, simulación, stacker tiếp cận.
trừu tượng
Mô phỏng 3D tương ứng với một lĩnh vực nghiên cứu cho phép cải thiện
quá trình đào tạo và học tập trong một loạt các lĩnh vực, điều này cho phép đào tạo
Các nhà khai thác thực tế có thể kiểm soát các tình huống rủi ro, do đào tạo an toàn và khả năng
Tham gia vào các hoạt động không thể thực hiện thông qua các phương pháp thông thường.Các
Kết thúc dự án này là tạo một công cụ đồ họa ba chiều, cho phép mô phỏng
Hoạt động của một chiếc xe cần cẩu tiếp cận, dựa trên mô phỏng vật lý chất lượng cao
mô hình.
Từ khóa: Công cụ đồ họa 3D, mô phỏng, bộ đặt tiếp cận.
1
Chương 1: Mô tả về chủ đề
1.1 Giới thiệu
Mô phỏng hiện đang tương ứng với một khu vực nghiên cứu cao trong các công ty, từ
Điều này có thể mô phỏng một số mô hình lý thuyết nhất định cho phép biểu diễn các quy trình theo cách đơn giản hơn nhiều, trong
Trường hợp thậm chí các quá trình không thể thực hiện thông qua các phương pháp thông thường có thể được mô phỏng.Bên trong
Có nhiều lĩnh vực nghiên cứu khác nhau, chẳng hạn như các sự kiện riêng biệt, mô phỏng
của các sự kiện liên tục, mô phỏng các hệ thống động, mô phỏng dựa trên các tác nhân, mô phỏng dựa trên web,
Mô phỏng thực tế ảo, trong số những người khác [URL 1, 1969].Một trong những khu vực mô phỏng này tương ứng với
Mô phỏng ba chiều, từ đó dự án này dựa trên.
Mô phỏng ba chiều hoặc 3D tương ứng với biểu diễn hoặc thử nghiệm với mô hình của
Thực tế thông qua việc sử dụng đồ họa ba chiều, nó có ảnh hưởng lớn đến các công ty có
máy móc lớn và phải đào tạo công nhân của họ, mặc dù vậy, hiện tại nhiều
các công ty không xem xét việc thực hiện một trình mô phỏng trong quá trình đào tạo của họ, điều này chủ yếu là do
với chi phí cao mà một trình giả lập có nghĩa là, đó là lý do tại sao bạn nghĩ về một khoản đầu tư không đáng kể cho
Công ty và kế hoạch đào tạo của họ tiếp tục hoạt động thông qua các phương pháp thông thường.Trong khi chi phí trong một
bắt đầu có thể ở một số trường hợp cao, ứng dụng bạn có thể có rất rộng, xem xét
Ngoài ra các tiến bộ công nghệ khác nhau và việc sử dụng lâu dài của chúng, mô phỏng 3D có thể được xem xét
như một lựa chọn tốt để xem xét.
Một số lợi thế trong việc thực hiện một trình giả lập là:
Giảm chi phí liên quan đến học tập: sự cống hiến của các đơn vị học tập cho việc học
Đó là một chi phí rất cao.
Giảm rủi ro trong đào tạo: một số bài tập có lợi từ quan điểm của
Học tập có thể dẫn đến rủi ro cao.
Khả năng thực hiện các hành động không khả thi với máy thật, nhưng có thể có lợi
Đối với việc học: Với việc sử dụng một trình giả lập, đôi khi nó được ngăn chặn rằng các máy được định sẵn cho
Học tập là không thể sử dụng cho một kịch bản nhất định (điều kiện thời tiết, công việc
Với sự cố, v.v.).
Cải thiện kỹ năng: Cho phép bạn cải thiện các nhà khai thác có kinh nghiệm an toàn.
Một yếu tố đóng vai trò rất quan trọng khi nâng cao sự phát triển của trình mô phỏng 3D là
hành vi của môi trường và từng yếu tố tương tác với điều này, chủ yếu tìm kiếm một
Đại diện trung thành của thực tế.Điều này chủ yếu đạt được bằng một mô hình toán học và vật lý của mỗi
một trong những yếu tố của hệ thống, đưa ra một tập hợp các đặc điểm đại diện cho mỗi
2
Các đối tượng thế giới 3D, do đó cho phép một tương tác thích nghi với các yêu cầu mô phỏng
Theo một môi trường vật lý thực sự.
Một công cụ đồ họa là phần cơ bản của các ứng dụng hoạt động với hai chiều hoặc
ba chiều.Điều này chịu trách nhiệm quản lý và cập nhật từng yếu tố tạo nên
Môi trường [Shalini, 2004].Có một số lượng lớn các động cơ không chỉ thực hiện phần đồ họa có thể nhìn thấy
màn hình, nhưng cũng kết hợp một loạt các mô -đun khác cần thiết để cung cấp cho nó khả năng lớn hơn và
Chủ nghĩa hiện thực với những gì bạn muốn đại diện, đây có thể là: sự tái tạo của âm thanh và video, xử lý vật lý, sử dụng
của các thiết bị đầu vào và đầu ra, phát hiện va chạm, trong số các thiết bị khác.
Trong dự án này, mặc dù số lượng lớn các cách để thực hiện một trình giả lập,
Việc sử dụng giao diện lập trình ứng dụng thấp (API), mà không cần sử dụng động cơ
đồ họa hiện có.Bất chấp những lợi ích và lợi thế khác nhau liên quan đến việc sử dụng động cơ đồ họa thương mại
hoặc nguồn mở, khả năng mở rộng và sửa đổi có thể ngụ ý một dự án trong số này
Đặc điểm cản trở khả năng sửa đổi mã nguồn, chủ yếu là do sự phức tạp mà
Điều này đòi hỏi.Cũng xem xét tầm quan trọng của việc thực hiện một hiệu sách vật lý cho phép mô phỏng
Các chuyển động của các đối tượng trong kịch bản 3D, sự phát triển của một công cụ đồ họa mới sẽ cho phép
Nhà sách vật lý dễ dàng hơn nhiều và điều đó nhanh chóng điều chỉnh theo nhu cầu của dự án.
Giao diện ba chiều sẽ được thực hiện tương ứng với việc tạo ra một trình giả lập 3D được định hướng cho xe crane
Người tiếp cận.Cần cẩu ngăn cách tiếp cận là một phương tiện được sử dụng để xử lý các container trong các thiết bị đầu cuối cổng
có kích thước nhỏ và trung bình.Người tiếp cận có thể vận chuyển các container ở khoảng cách nhỏ
Rất nhanh, cho phép chúng xếp chúng thành một số hàng theo kích thước mà nó sở hữu.
Giải pháp được đề xuất trong dự án này cho mô phỏng và mô hình hóa của bộ đặt tiếp cận dựa trên
Các mô hình mô phỏng chất lượng cao tương ứng với TCM thiết kế tiếp cận [URL 2, 2014], trong
Trường hợp cả hai yếu tố thị giác và vật lý của các phương tiện này được kết hợp.Hành vi của
Các đối tượng 3D bao gồm một trong những khía cạnh quan trọng nhất, đó là thao tác cần cẩu và
sự dịch chuyển của các container trong suốt quá trình cài đặt cổng, nó nằm trong kịch bản này trong đó
mở ra người dùng.
3
1.2 Định nghĩa các mục tiêu
1.2.1 Mục tiêu chung
Phát triển giao diện ba chiều để mô phỏng các phương tiện cảng, cụ thể là
Mô phỏng TCM của bộ đặt tiếp cận, phương tiện có khả năng tải lớn có khả năng huy động các container
thuộc các kích thước khác nhau thông qua thiết bị đầu cuối cổng, tất cả điều này dựa trên sự phát triển của một công cụ đồ họa
Thích ứng với từng nhu cầu cụ thể của dự án.
1.2.2 Mục tiêu cụ thể
Điều tra các đặc điểm khác nhau của chiếc xe mà từ đó trình giả lập sẽ được phát triển, nó
Tương tác với môi trường và các biến xác định các hành động có thể được thực hiện.
Điều tra tập hợp các công cụ cho phép chuẩn bị các tài nguyên khác nhau cần thiết cho
Simulator, cũng dự tính sự tích hợp của chúng với động cơ đồ họa.
Thực hiện thiết kế của động cơ đồ họa chiêm ngưỡng trong việc tích hợp này với trình giả lập và một số
Khung hoặc nhà sách cho phép mô phỏng các đặc điểm khác, chẳng hạn như biểu diễn vật lý của
nhiều diễn viên và môi trường xung quanh của họ.
Phát triển trình giả lập.
Thực hiện kiểm tra hệ thống.
1.3 Lập kế hoạch dự án
Lập kế hoạch dự án nhằm mục đích cấu trúc các hoạt động và cột mốc khác nhau là một phần của
dự án.Kế hoạch tốt có thể có nghĩa là thành công và hoàn thành từng mục tiêu được đề xuất,
với chi phí và thời gian được thiết lập.Từ các mục tiêu được đặt trong phần 1.2.1 và 1.2.2,
Kế hoạch dự án được chia thành bốn giai đoạn, đó là:
1) Phân tích nghiên cứu và thu thập thông tin: Ở giai đoạn này, toàn bộ quá trình
Bộ sưu tập nghiên cứu và thông tin tương ứng với các lĩnh vực khác nhau được đề cập trong điều này
Dự án: Động cơ đồ họa, mô phỏng các sự kiện vật lý, vận hành xe, giữa những người khác.
2) Thiết kế và phát triển các nguyên mẫu: Một khi quá trình thu thập và nghiên cứu kết thúc, chúng tôi tiến hành
Để làm cho thiết kế hệ thống cùng với sự phát triển của các nguyên mẫu gia tăng khác nhau.Cái này
Nó cho phép xác nhận cả thiết kế và hoạt động của các công nghệ khác nhau được áp dụng trong
giải quyết vấn đề.
3) Tích hợp và thực hiện: Các nguyên mẫu và thiết kế khác nhau được tạo ra trong
giai đoạn trước, do đó cho phép giai đoạn tiếp theo và xác nhận trong giai đoạn tiếp theo
tương ứng.
4
4) Kiểm tra ứng dụng và xác nhận: Các bài kiểm tra trên ứng dụng cuối cùng được thực hiện, để xác nhận
Yêu cầu hệ thống ban đầu và hoạt động chính xác của ứng dụng.
Tabla 1.1 rrecting của dự án [ELAB.Đề xuất]
Bảng 1.1 Chi tiết cách thức mà mỗi hoạt động tạo nên được cấu trúc và lên kế hoạch
Dự án này, trong đó ngày bắt đầu và thời hạn tương ứng với tiến trình và giao hàng được chỉ định
cần thiết để đáp ứng các mục tiêu và mục tiêu được đề xuất, do đó bao gồm toàn bộ thời gian
sẵn sàng.
5
1.4 Phương pháp làm việc
Đối với sự phát triển của dự án này, nó đã được quyết định sử dụng mô hình quy trình phần mềm Agile UP (AUP).
Phương pháp này về cơ bản cung cấp một quy trình đơn giản và dễ hiểu để phát triển phần mềm thông qua
Các khái niệm và kỹ thuật khác nhau được giải cứu khỏi phương pháp Agile và Hợp lý (RUP) [URL 3, 2005].Rup là
được coi là một công cụ cứng nhắc và được thực hiện bằng phương pháp Cascade, đã linh hoạt
Để có thể thích ứng với các dự án thay đổi và quy mô vừa phải (liên quan đến thời gian và tài nguyên),
Nổi lên theo cách này AUP [Bohhudas, 2008], [Canós et al., 2003].Trong Hình 1.1, bạn có thể thấy chu kỳ của
Cuộc sống của phương pháp này, trong đó cả hai giai đoạn của Rupe và các ngành khác nhau đã được xác định lại.
Hình 1.1 Vòng đời Agile Up [URL 3, 2005]
1.4.1 Các giai đoạn của Ágil lên
Sự phát triển của dự án thông qua phương pháp AUP ngụ ý phân tách trong các giai đoạn nối tiếp, điều này muốn
Nói rằng, mỗi giai đoạn được thực hiện sau một giai đoạn khác, luôn duy trì mối quan hệ mà họ sở hữu.Sau đó tôi biết
Họ mô tả bốn giai đoạn sáng tác nó [Bohhudas, 2008]:
1) Khởi đầu: Phạm vi ban đầu của dự án được thiết lập, các yêu cầu được ưu tiên,
Tầm nhìn của kiến trúc và các điểm khác được xem xét, chẳng hạn như tài chính và sự chấp nhận của
có liên quan.
2) Chuẩn bị: Các yêu cầu được phân tích chi tiết, mô hình hóa của
Kiến trúc ban đầu và triển khai phần mềm bắt đầu được thực hiện.
6
3) Xây dựng: Phần mềm chức năng được xây dựng, xem xét các bài kiểm tra và phát triển như các hoạt động
trên toàn bộ.
4) Chuyển đổi: Trong giai đoạn này, việc xác nhận và triển khai cuối cùng của dự án được xem xét.Những khiếm khuyết đó
Chúng không thể được giải quyết trong các phiên bản hiện tại được giải quyết trong các phiên bản trong tương lai.
1.4.2 Kỷ luật và Lặp lại ágil lên
Ngoài bốn giai đoạn của AUP, còn có một loạt các môn học được phát triển theo lặp đi lặp lại,
Trong một số trường hợp có thể được thực hiện đồng thời, các ngành này là [URL 3, 2005]:
a) Mô hình hóa: Cố gắng hiểu hoạt động kinh doanh, vấn đề miền của tổ chức và xác định
Giải pháp khả thi.
b) Thực hiện: Các mô hình được tạo được đưa vào mã thực thi, sau này có thể thực hiện
Kiểm tra hệ thống.
c) Các thử nghiệm: Nó được thực hiện để đảm bảo chất lượng của phần mềm đang được phát triển.Trong này
Kỷ luật được coi là phát hiện khiếm khuyết, xác nhận hệ thống và yêu cầu.
d) Triển khai: Việc giao dự án và thực hiện kế hoạch mà giao hàng này sẽ được thực hiện được lên kế hoạch.
e) Quản trị cấu hình: Phiên bản công việc, kiểm soát và quản trị
thay đổi.
f) Quản trị dự án: Mục tiêu của ngành học này là chỉ đạo từng hoạt động trong suốt
của toàn bộ dự án.
g) Môi trường: Đảm bảo rằng các công cụ có sẵn khi nhóm dự án cần chúng.
Giống như các phương pháp khác, trong AUP, các lần lặp khác nhau được phân phối khi nó tiến bộ trong
Dự án (Hình 1.2), chúng có thể được sử dụng để đảm bảo chất lượng, kiểm tra, quy trình
triển khai, trong số những người khác.Cấu thành một kết quả giá trị cho doanh nghiệp.
Hình 1.2 Các phiên bản gia tăng theo thời gian [URL 3, 2005]
7
Chương 2: Động cơ đồ họa
Cũng như các ngành khác trong lĩnh vực khoa học máy tính, sự phát triển của các ứng dụng
Đồ thị đã được hưởng lợi từ sự xuất hiện của các công cụ tạo điều kiện cho sự phát triển này, tự động hóa các nhiệm vụ và
Cấp một mức độ trừu tượng đủ cao để tập trung chủ yếu vào logic của
ứng dụng.Một công cụ đồ họa có thể được coi là một tập hợp các công cụ và thành phần cho phép
Tạo môi trường đồ họa thời gian thực [Gregory, 2009].Sự phát triển của công nghệ liên quan trong lĩnh vực này
đã cho phép khai thác đáng kể các năng lực được cấp bởi các thiết bị xử lý khác nhau
đồ họa, cho phép xử lý một lượng dữ liệu lớn hơn trong thời gian ngắn hơn, dẫn đến việc tạo ra
môi trường thực tế hơn nhiều, nếu sự kết hợp của các mô -đun khác cũng được xem xét, chẳng hạn như phát hiện
va chạm, tính toán lực lượng, kết hợp âm nhạc và âm thanh, giao diện để quản lý sự kiện, bắt giữ
Các thiết bị I/O, trong số nhiều thiết bị khác, các quy trình thực tế có thể được mô phỏng với mức độ cao của
chi tiết.Hiện tại có một số lượng lớn động cơ đồ họa tập trung vào nhu cầu của nhà phát triển
Những người độc lập không thể tạo động cơ của riêng họ, cũng như các công cụ cần thiết hoặc có được giấy phép.Điều này có
Nó dẫn đến một sự phát triển khá quan trọng trong các lĩnh vực nghiên cứu khác nhau.Nhiều người dùng có
đạt được để nắm bắt ý tưởng của họ với một số kiến thức về hoạt động nội bộ của động cơ hoặc của
Các công nghệ quản lý này, cho phép họ phát triển chuyên nghiệp trong một lĩnh vực tiếp cận khó khăn, ví dụ,
Một số nhà thiết kế đồ họa 3D và các nhà làm phim hoạt hình có kiến thức cao về các công cụ mô hình 3D, có
Sử dụng các động cơ đồ họa để trình bày các tác phẩm của họ thông qua môi trường 3D trong thời gian thực.
Mặc dù hầu hết các động cơ đồ họa được sử dụng để tạo ra các trò chơi video (đó là
Họ biết trong tài liệu phổ biến hơn là động cơ trò chơi video), điều này không ngăn cản người khác có thể được tạo ra
Loại ứng dụng đồ họa, vì bộ công cụ do động cơ cấp không tập trung vào bất kỳ khu vực nào
Cụ thể, cho phép các môi trường tạo ra theo nhu cầu của mỗi người dùng.
2.1 Kiến trúc động cơ đồ họa
Một công cụ đồ họa là một hệ thống phần mềm khá phức tạp, giống như nhiều hệ thống phần mềm, điều này
Nó được xây dựng bởi các lớp.Thông thường các lớp trên phụ thuộc vào các lớp dưới, nhưng không phải ngược lại.
Khi một lớp thấp hơn phụ thuộc vào một cấp trên, nó được gọi là sự phụ thuộc tròn.Đơn vị tròn
Điều này nên tránh, do sự kết hợp không mong muốn tạo ra giữa các hệ thống, khiến cho nó không thể
Xác thực và ngăn chặn việc tái sử dụng mã.Điều này có thể được nhìn thấy rõ hơn trong các hệ thống quy mô lớn, chẳng hạn như
Nó là một động cơ đồ họa.
Các thành phần thực thi chính thường được tìm thấy trong một
Động cơ đồ họa 3D.Một mô tả chung về từng lớp tạo nên
động cơ, từ thấp nhất đến phức tạp nhất, mô tả các thành phần của nó và tập trung vào những thành phần bị ảnh hưởng
trực tiếp trong sự phát triển của dự án này.
số 8
Hình 2.1 Kiến trúc điển hình của động cơ đồ họa [Gregory, 2009]
9
2.1.1 Phần cứng
Lớp này đại diện cho hệ điều hành hoặc bảng điều khiển trong đó ứng dụng sẽ được thực thi từ động cơ
đồ họa.Một số nền tảng này có thể là: Microsoft Windows, Linux, Apple iPhone, Macintosh, Microsoft
Xbox One, PlayStation 4, PlayStation Vita (PS Vita), trình duyệt web, trong số nhiều người khác.
2.1.2 Trình điều khiển
Tương ứng với các thành phần phần mềm thấp được cung cấp bởi hệ điều hành hoặc trực tiếp bởi
Nhà cung cấp phần cứng.Các tài xế này quản lý tài nguyên phần cứng và cấp một lớp trừu tượng
Đối với hệ điều hành cũng như các lớp khác trong kiến trúc của động cơ đồ họa, chi tiết về
Giao tiếp với tập hợp các biến thể mà phần cứng và thiết bị có thể có.
2.1.3 Hệ điều hành
Trong trường hợp của PC, hệ điều hành đang chạy mọi lúc.Dàn nhạc này thực hiện
Nhiều chương trình trong một máy tính, trong đó một trong những chương trình này tương ứng với ứng dụng đồ họa.
Các hệ điều hành như Microsoft Windows sử dụng cơ chế đa nhiệm phòng ngừa, tìm kiếm
Chia sẻ phần cứng trong suốt nhiều chương trình chạy đồng thời.Điều này có nghĩa rằng
Ứng dụng đồ họa sẽ không bao giờ cho rằng nó có toàn bộ điều khiển phần cứng, nhưng nó đang chạy tốt với
Các chương trình khác trong cùng một hệ thống.
Trong trường hợp bảng điều khiển, hệ điều hành thường là một lớp thư viện nhỏ
So sánh trực tiếp trong tệp thực thi của ứng dụng, để mỗi ứng dụng "sở hữu" tất cả
máy móc.Tuy nhiên, trong các bảng điều khiển như Microsoft Xbox One hoặc PlayStation 4, hệ điều hành có thể
làm gián đoạn việc thực hiện ứng dụng hoặc lấy tài nguyên hệ thống nhất định, điều này để hiển thị một số loại
tin nhắn hoặc cho phép người dùng tạm dừng ứng dụng truy cập menu ứng dụng chính.
2.1.4 SDK và phần mềm trung gian của bên thứ ba
Hầu hết các công cụ đồ họa thực hiện một số lượng lớn bộ dụng cụ phát triển phần mềm
(SDK) và phần mềm trung gian của các bên thứ ba, như có thể thấy trong Hình 2.1, các giao diện được cung cấp bởi SDK là
Thường được gọi là giao diện lập trình ứng dụng (API), API về cơ bản cấp một loạt
các chức năng và các thủ tục sử dụng chung cho phép bản thân trừu tượng từ một số thói quen nhất định phải
được lập trình ở cấp độ thấp.Về bản chất, một API định nghĩa các câu có thể tái sử dụng cho phép điều chỉnh
Các chức năng cuối cùng được kết hợp vào các ứng dụng [Reddy, 2011].
10
2.1.4.1 API đồ họa
API đồ họa chủ yếu dành cho việc xử lý đồ họa được biểu thị bằng màn hình, những điều này
các giao diện được giới hạn trong các khả năng phần cứng mà máy tính sở hữu trong đó
phát triển ứng dụng.
Có hai loại API đồ họa, những loại có mục đích cụ thể và mục đích chung.API của
Mục đích cụ thể chủ yếu được sử dụng để tạo ra các ứng dụng cho những người muốn hiển thị
hình ảnh mà không phải lo lắng về quy trình cần thiết để tạo ra hình ảnh này, mặt khác, API của
Mục đích chung chủ yếu nhằm vào các lập trình viên cần sử dụng các chức năng ở cấp độ
của sự trừu tượng nhỏ [Hearn và Baker, 2005].
Hai giao diện lập trình đồ họa quan trọng nhất sẽ được mô tả bên dưới tồn tại
Hiện tại trên thị trường: OpenGL và Direct3D.
OpenGL:
Hệ thống đồ họa OpenGL (Thư viện đồ họa mở) là giao diện phần mềm phần cứng đồ họa
Ban đầu được tạo bởi Silicon Graphics Incorporated (SGI), điều này cho phép tạo ra các chương trình tương tác
Điều đó yêu cầu hiển thị đồ họa 2D và 3D trong thời gian thực [Shreiner, 2010], [Maroto, 2005].Một số chính
Các đặc điểm làm cho OpenGL trở thành một sự thay thế mạnh mẽ để xem xét khi chọn API đồ họa là:
Tiềm năng lớn của nó, giao diện phần cứng độc lập, sự đơn giản và hiệu quả của nó.
Có rất nhiều lĩnh vực trong đó việc sử dụng API này đã được sử dụng để phát triển
Các ứng dụng đồ họa 3D, chẳng hạn như: trò chơi video, phim, mô phỏng, thậm chí trực quan hóa để sử dụng
Nhà khoa học, bác sĩ, thương mại, trong số những người khác [Wright và Lipchak, 2004].Hiện được công nhận là tiêu chuẩn
Trên đồ họa máy tính, cũng là một trong những người được sử dụng nhiều nhất trên thế giới.
API này có một số lượng lớn các chức năng, chẳng hạn như sự hỗ trợ của ánh sáng và bóng tối, ánh xạ
Kết cấu, độ trong suốt, mô hình hoạt hình, hỗ trợ sương mù, kết cấu có độ sâu, v.v.[Wright et al.,
2007].
Các bộ phận tạo nên cảnh đồ họa OpenGL được xây dựng từ nguyên thủy hình học
cơ bản, chẳng hạn như hình khối, hình cầu, kim tự tháp, v.v., sau đó được chuyển đổi bởi các chức năng toán học thành a
Pixels đặt (phần tử hiển thị nhỏ hơn trong một hình ảnh).Cuối cùng, các pixel này được chiếu trên một
Mặt phẳng hai chiều, ví dụ như khu vực hiển thị của màn hình máy tính [Hearn và
Baker, 2005].
11
Figura 2.2 Đường ống chức năng cố định de OpenGL [Shreiner, 2010]
Trong Hình 2.2, bạn có thể thấy đường ống chức năng cố định của OpenGL, tên được áp dụng cho
API của đồ họa API trước khi các shader xuất hiện.Nói chung, tập hợp các yếu tố
Họ tạo nên đường ống này là [Shreiner, 2010]:
Danh sách trực quan hóa: Toàn bộ tập dữ liệu được mô tả bởi hình học hoặc pixel có thể được lưu trữ trong
Danh sách trực quan hóa (thay thế để lưu trữ trong danh sách hiển thị là gửi ngay lập tức
Tập dữ liệu, cái được gọi là chế độ ngay lập tức), truy cập danh sách trực quan
trực tiếp đến phần cứng đồ họa, vì vậy nó hoạt động nhanh hơn và hiệu quả hơn nhiều).
Người đánh giá: Chúng cung cấp một phương pháp để rút ra các đỉnh được sử dụng để biểu diễn các bề mặt bằng cách
Các điểm kiểm soát.Phương pháp này có thể tạo ra các tọa độ, màu sắc và giá trị bình thường của kết cấu
Tọa độ không gian từ các điểm kiểm soát.
Hoạt động Vértice và lắp ráp nguyên thủy: Trong giai đoạn này, các đỉnh trở nên nguyên thủy,
Tọa độ kết cấu được tạo và biến đổi, tính toán ánh sáng được thực hiện, trong số các tọa độ khác.Trong đó
Lắp ráp nguyên thủy hầu hết là các chức năng cắt, trong đó
Các phần của hình học nằm ngoài mặt phẳng chiếu xác định.
Hoạt động pixel: Nhiều trong số các hoạt động này di chuyển một lượng lớn dữ liệu thông tin từ
Pixel trên toàn hệ thống.
Lắp ráp kết cấu: Cho phép bạn áp dụng hình ảnh kết cấu cho các đối tượng hình học để tạo các đối tượng
Thực tế hơn nhiều.
12
Rasterization: tương ứng với việc chuyển đổi cả dữ liệu hình học và pixel thành
Các đoạn tương ứng với các vị trí pixel trên màn hình.
Các hoạt động của đoạn: Trong giai đoạn này, một tập hợp các hoạt động áp dụng cho tập dữ liệu đó là
Chúng lưu trữ trong bộ đệm khung (bộ đệm nơi thực hiện kết xuất dữ liệu vào màn hình), một trong số đó
Các hoạt động tương ứng với kết cấu, trong đó các texel (đơn vị nhỏ hơn của một kết cấu), áp dụng
cho từng mảnh vỡ tương ứng với chúng.
Hình 2.3 PipEngl đơn giản hóa [Wright et al., 2014]
Dự án này nhằm sử dụng các chức năng mới cung cấp cho cả hai thẻ
như API đồ họa.Hình 2.3 trình bày đường ống OpenGL mới, sử dụng shader,
được lập trình với ngôn ngữ lập trình GLSL (ngôn ngữ Shader OpenGL), cho phép chúng
Chúng được thực hiện trực tiếp trong đơn vị xử lý đồ họa (GPU).Chi tiết, GPU hiện tại
Chúng bao gồm một số lượng lớn bộ xử lý lập trình nhỏ được gọi là lõi shader, thực hiện
Các chương trình nhỏ gọi là Shader.
Các hình có các cạnh tròn của Hình 2.3 được coi là các giai đoạn chức năng cố định, trong đó
Điều đó có nghĩa là chúng có thể lập trình, nhưng không phải với các hình có các mẹo vuông.Chúng được mô tả dưới đây
Tóm lại, các giai đoạn này [Wright et al., 2014]:
Vertex Fetch: Chuẩn bị tập hợp các đỉnh mà sau này sẽ được gửi đến Shader đỉnh.
Vertex Shader: Chương trình nơi bạn làm việc với cấu trúc của các đỉnh được xử lý trước đó, cái này
Nhận một đỉnh cùng một lúc và chuyển đổi nó từ các cấu trúc dữ liệu khác, chẳng hạn như vectơ hoặc ma trận.
Nó cũng cho phép bạn nhận và gửi dữ liệu cho Shader khác.
13
Shader điều khiển Teselation: Lấy dòng chảy của Vertex Shader và chịu trách nhiệm trong trường hợp đầu tiên
Để xác định mức độ của tessellation sẽ được gửi đến động cơ Tessellation, trong khi cái thứ hai là
vì dữ liệu sẽ được gửi đến Shader đánh giá Tessellation sẽ được tạo một khi
Động cơ teselation.
Tessellation: Một khi động cơ Tessellation này được thực thi, nó sẽ tạo ra một số đầu ra đỉnh
đại diện cho một tập hợp nguyên thủy.Những nguyên thủy này sau đó được gửi đến shader của
Đánh giá teselation.
Shader đánh giá Teselation: Xử lý lối ra của các đỉnh được tạo ra bởi giai đoạn Tessellation và
Xử lý các vị trí nội suy của các đỉnh này và các loại tính toán khác.
Shader hình học: Shader hình học cho phép chúng ta tạo nguyên thủy cơ bản, chẳng hạn như điểm, đường hoặc đường
Hình tam giácTừ những shaader này, bạn có thể tạo các mô hình thời gian thực hiện theo cách rất đơn giản
(Rất giống với việc tạo ra các mô hình thông qua đường ống chức năng cố định).Thời gian cần thiết để tạo
Một mô hình cao hơn đáng kể so với bị trì hoãn nếu nó được tạo trước đó và
Gửi đến một shader đỉnh.
Rasterization: Như trong đường ống chức năng cố định, tập hợp các đỉnh được xử lý, tính toán
Các vị trí kết cấu, trong số những vị trí khác, phải được chuyển đổi thành các đoạn được đặt trên màn hình, một quá trình
Thực hiện rasterization.
Fragment Shader: Công việc dựa trên tập hợp các mảnh vỡ đã được xử lý.Trong shaader này mỗi
Một trong những mảnh riêng biệt và màu tương ứng với nó cuối cùng được áp dụng.
Các toán tử frampeBuffer: Nội dung có thể nhìn thấy của màn hình được thiết lập để được xem xét, ngoài
Số lượng các vùng bộ nhớ bổ sung được sử dụng để lưu trữ các giá trị trên mỗi pixel không
màu sắc.
Giám đốc
Direct3D là một trong những API mà DirectX có, chủ yếu được sử dụng trong hệ điều hành Microsoft
Windows và bảng điều khiển như Xbox 360 và Xbox One.
Để có thể trực quan hóa hình ảnh 3D trên mỗi màn hình.Một trong những đặc điểm của API này là nó hoạt động trực tiếp
Với phần cứng đồ họa, không giống như giao diện khác của các thiết bị đồ họa, do đó tăng
năng suất đáng kể [Thomson, 2006].
Ngoài ra, API này được thiết kế để dễ dàng truy cập vào các đặc tính 3D nâng cao của phần cứng đồ họa,
Tạo một lớp trừu tượng cung cấp giao diện cho lập trình viên phần cứng độc lập [Engel và
Geva, 2000].
Nó hiện được sử dụng bởi các công cụ trò chơi video lớn như UDK (Bộ phát triển Unreal) hoặc
Cremengine, điều này chủ yếu là do khả năng tạo ra những cảnh thực tế thực tế với một
Số lượng chi tiết.
14
2.1.5 Lớp độc lập nền tảng
Hầu hết các công cụ cần có khả năng thực thi các ứng dụng trên nhiều nền tảng
Phần cứng, lớp này nằm trên các lớp phần cứng, trình điều khiển, hệ điều hành và phần mềm thứ ba.Cái này
Tính độc lập có thể được thực hiện bằng cách gói hoặc thay thế các chức năng tiêu chuẩn của ngôn ngữ lập trình,
gọi đến hệ điều hành và tập hợp các giao diện lập trình ứng dụng (API) được sử dụng bởi
do đó, lớp độc lập của nền tảng đảm bảo một hành vi nhất quán cho tất cả
Nền tảng phần cứng.
2.1.6 Hệ thống chính
Mỗi công cụ đồ họa yêu cầu một bộ công cụ phần mềm tạo điều kiện phát triển động cơ,
Đây có thể là việc triển khai riêng của nhà phát triển, cũng như các nhà sách được phát triển bởi các bên thứ ba.
Một số ví dụ về lớp này được trình bày chi tiết dưới đây:
Tài sản: Tương ứng với một loạt các dòng kiểm tra lỗi, chúng được chèn vào
Mục đích của việc nắm bắt những sai lầm logic và quyền truy cập không được lập trình viên cho phép.Các
Tài sản thường được loại bỏ trong các phiên bản ứng dụng của ứng dụng.
Thư viện toán học: Động cơ đồ họa hoạt động trực tiếp với một số lượng lớn các chức năng
Toán học, đó là lý do tại sao nó trở nên gần như không thể thiếu để có một tập hợp các chức năng toán học
và các cấu trúc dữ liệu tạo điều kiện cho các tính toán khác nhau cuối cùng sẽ tạo ra môi trường 3D.
Các thư viện này thường giúp tạo ra các vectơ và ma trận, bậc bốn, bản dịch,
Lượng giác, hoạt động hình học với các đường, hình cầu, tạo ra các dự đoán khác nhau và
Bất kỳ chức năng nào khác mà động cơ yêu cầu [Lengyel, 2012].
Cấu trúc dữ liệu và thuật toán: Trừ khi các nhà thiết kế động cơ đã quyết định tin tưởng
hoàn toàn trong các thư viện thứ ba, như trong thư viện mẫu C ++ (STL) tiêu chuẩn, một tập hợp
Các công cụ để quản lý cấu trúc dữ liệu và thuật toán là cần thiết.Họ thường được lên kế hoạch
tay, cho phép giảm thiểu và loại bỏ phân bổ bộ nhớ động và đảm bảo
hiệu suất tối ưu.
2.1.7 Quản trị viên tài nguyên
Trong mọi động cơ, Trình quản lý tài nguyên cung cấp một giao diện thống nhất để truy cập vào nhiều
Các loại tài nguyên mà ứng dụng đồ họa có thể cần.Trong một số động cơ, điều này được thực hiện theo một cách
phù hợp và tập trung cao, trong khi ở các phương pháp khác, họ cung cấp tự do cho lập trình viên để truy cập
trực tiếp đến các loại hồ sơ được lưu trữ trên đĩa với hệ thống hiểu tệp chuyên dụng
chẳng hạn như các tệp .pak hoặc .bsp, chứa một tập hợp các tài nguyên của tất cả các loại (thực thể, kết cấu, khuôn mặt,
các nút, kế hoạch, v.v.).
15
2.1.8 Kết xuất mức thấp
Động cơ kết xuất tương ứng với một trong những yếu tố phức tạp và rộng nhất trong bất kỳ loại
Đồ họa động cơ.Các trình kết xuất có thể được thực hiện theo nhiều cách khác nhau, mặc dù vậy, điều tuyệt vời nhất
Một phần của các kết xuất hiện tại chia sẻ một số đặc điểm cơ bản.Trong các phần phụ sau đây
Động cơ kết xuất được trình bày bởi một kiến trúc được chia thành các lớp.Kết xuất thấp là
Chịu trách nhiệm thiết lập các cơ sở mà từ đó phần còn lại của các yếu tố kết xuất sẽ được phát triển.Trong này
Cấp độ, thiết kế tập trung vào việc kết xuất một tập hợp nguyên thủy hình học càng nhanh càng tốt,
Thậm chí không tập trung vào các bộ phận màn hình, chúng sẽ được nhìn thấy.Ở cấp độ này, bạn có thể thấy một số yếu tố
BẰNG:
Máy ảnh: Máy ảnh chịu trách nhiệm xác định trường tầm nhìn mà người dùng sẽ có từ loại
Phép chiếu xác định cho cảnh.Trong các phiên bản đơn giản của đường ống kết xuất, bạn cũng
Họ phụ trách hầu hết các trường hợp xác định ma trận MVP (chiếu, chế độ xem và mô hình)
từ đó các đối tượng khác nhau được đặt trên sân khấu.
Văn bản và nguồn: Đối với việc tạo văn bản và đài phun nước, cũng như một số yếu tố của giao diện
Biểu đồ người dùng (GUI), cơ sở cho phép chiếu tương ứng với kết quả
Dự kiến, nếu điều này tương ứng với văn bản hoặc hình ảnh nằm trên màn hình, việc sử dụng
một hình chiếu trực giao liên quan đến kích thước của cửa sổ, trong khi ma trận chiếu trong
Quan điểm có thể được sử dụng để đặt văn bản trong một số yếu tố 3D.
Quản trị viên kết cấu: Điều này cho phép duy trì kiểm soát kết cấu của từng yếu tố của
Ứng dụng, trong đó là bộ bit của mỗi hình ảnh, ngoài chiều rộng và cao của nó.
ViewPort và Windows ảo: Windows ảo tương ứng với tập hợp các cửa sổ được tạo bởi
Trình điều khiển thiết bị cửa sổ mà từ đó khung vẽ được tạo ra để vẽ khác nhau
Mô hình 3D.
Viewport thường được sử dụng để thiết lập các khu vực được vẽ khác nhau trong cùng một bức tranh, với
Điều này có thể được chuyển đến kích thước của cửa sổ liên quan đến khung vẽ mà nó chứa bên trong,
cho phép ví dụ, để có thể vẽ toàn bộ cảnh trong cửa sổ trong sự xuất hiện 1: 3.TRONG
Hình 2.4 có thể quan sát chuyển đổi chế độ xem trong đó khu vực ban đầu của
Cửa sổ, làm cho kết quả cuối cùng của hình học có thể được quan sát ở một kích thước lớn hơn.
Hình 2.4 Chuyển đổi chế độ xem [Shalini, 2004]
16
2.1.9 Biểu đồ cảnh / Tối ưu hóa Culling
Theo quan sát trong phần trước, kết xuất mức thấp rút ra tất cả hình học, mà không tính toán
Điều nào hiện không được nhìn thấy (mà không xem xét tính toán che giấu của Back-ce
Culling hoặc hình tam giác cắt).Đối với các ứng dụng đồ họa nhỏ, việc triển khai thất vọng là đủ
CULL (Thuật toán đơn giản về việc loại bỏ các đối tượng không hiển thị bởi máy ảnh), nhưng khi thế giới
Chúng bắt đầu trở nên ngày càng phức tạp, cần phải áp dụng các loại thuật toán khác, chẳng hạn như
Cấu trúc dữ liệu phân khu không gian.
2.1.9.1 Phân vùng nhị phân của không gian
Một trong những kỹ thuật này được sử dụng để chia nhỏ không gian được gọi là phân vùng nhị phân của không gian (BSP).Các
Phân vùng không gian nhị phân là một phương pháp để chia nhỏ không gian trong các phần tử lồi
sử dụng kế hoạch.Phân khu này cho phép thể hiện cảnh bằng cách cấu trúc dữ liệu trong cây,
được gọi là cây BSP.Một trong những chức năng của cấu trúc này là tổ chức các đa giác của
Mô hình phân cấp liên quan đến đại diện của các vị trí trong không gian [Gómez et al., 1999].bên trong
Hình 2.5 Có thể quan sát thấy từ một đa giác, cây BSP được tạo ra, chia nhỏ bề mặt
Dần dần thông qua các mặt phẳng, có được đa giác lồi.
Hình 2.5 Ví dụ BSP Tree [URL 4, 2011]
2.1.9.2 Hệ thống cấp độ chi tiết
Một cách khác để cải thiện hiệu suất ứng dụng có thể là giảm mức độ chi tiết của một
Một số mô hình 3D nhất định thông qua việc sử dụng (hệ thống cấp chi tiết).Nói chung, một cảnh 3D là
bao gồm một số lượng lớn các đa giác, thường không được nhận thức hoàn toàn bởi
Người dùng [URL 5, 2009].Để cải thiện hiệu quả của các ứng dụng, nên sử dụng các phiên bản đơn giản hơn của
Hình học cho các yếu tố không có sự liên quan trực quan tuyệt vời tại một số thời điểm nhất định, ví dụ,
Hình học rất xa tầm nhìn của người dùng (xem Hình 2.6).
17
Hình 2.6 Ví dụ về các loại LOD khác nhau [URL 5, 2009]
2.1.10 Hiệu ứng hình ảnh
Hầu hết các động cơ đồ họa hiện đại thực hiện nhiều hiệu ứng hình ảnh,
có thể là: các hệ thống cụ thể (khói, lửa, vụ nổ, dấu vân tay, v.v.), bóng tối động,
Hiệu ứng xử lý sau xử lý, hệ thống decal (dấu chân trên bề mặt 3D, lỗ đạn, v.v.), chống răng cưa a
Toàn màn hình (FSAA), trong số nhiều người khác.
2.1.11 Mặt trước
Một loạt các ứng dụng đồ họa sử dụng môi trường 2D trên cảnh 3D bởi một số
mục đích, một số trong số này có thể là việc tạo ra giao diện đồ họa người dùng (GUI), trực quan hóa
Các yếu tố được trình bày tại mọi thời điểm của ứng dụng, được gọi là Hiển thị Heads-Up (HUD), trong số các yếu tố khác.
2.1.12 Hồ sơ và công cụ thanh lọc
Bởi vì hầu hết các ứng dụng đồ họa hoạt động trong thời gian thực,
Thực hiện một hệ thống đo lường hiệu suất của nó để cải thiện.Lớp này
bao gồm tập hợp các công cụ phân tích và phương tiện để thanh lọc ứng dụng, chẳng hạn như
Bản vẽ của việc thanh lọc, cung cấp thông tin qua menu ứng dụng hoặc bảng điều khiển và khả năng
để ghi lại và vui mừng ứng dụng cho mục đích thanh lọc và kiểm tra.
2.1.13 va chạm và vật lý
Va chạm là một yếu tố rất quan trọng cho bất kỳ loại ứng dụng đồ họa nào.Không có điều này, các đối tượng
Họ có thể hợp nhất và không thể tương tác với thế giới ảo theo bất kỳ cách nào.Tập hợp các mô phỏng
Động lực thực tế hoặc bán thực tế được gọi trong ngành công nghiệp trò chơi video như hệ thống
18
Thuộc vật chấtĐể làm điều này, hầu hết các động cơ đều sử dụng SDK thứ ba, thường là
Họ tích hợp vào động cơ.
Có một số động cơ vật lý, cả là nguồn riêng tư và nguồn mở.Nhiều động cơ
Các nhà vật lý cấp các mô phỏng khá thực tế về các yếu tố tương tác với môi trường, chẳng hạn như mô phỏng
Lực lượng, va chạm, nước, gió, cơ thể cứng nhắc, cơ thể mềm, dây, v.v.
Dự án này đã chọn việc thực hiện Vật lý Bullet làm động cơ vật lý [URL 6,
2014], điều này chủ yếu là do sự chấp nhận rộng rãi trong việc phát triển các ứng dụng độc lập,
Tài liệu mở rộng và một cộng đồng các nhà phát triển không ngừng tăng trưởng.
FIGURA 2.7 PIPELINE DE BULLET Vật lý [URL 6, 2014]
Vật lý đạn có thể mô phỏng một thế giới thông qua vật lý cho cả cứng nhắc và cơ thể
mềm, trong Hình 2.7 Đường ống vật lý vật lý được trình bày, do
Các đặc điểm dự án sẽ chịu trách nhiệm thực hiện các tính toán tương ứng với vật lý liên quan đến
giả lập.Đường ống này được chia chủ yếu thành sáu phần:
Dữ liệu va chạm: Phần này được lưu trữ bộ dữ liệu va chạm được sử dụng để phát hiện
của các vụ va chạm, một số yếu tố này là các hình ảnh va chạm, có thể là hộp, vòng tròn
và thậm chí các mô hình 3D;Các đối tượng Hộp giới hạn (AABB) của Trục cũng được định vị
Nó bao gồm một thùng được căn chỉnh mà không có vòng quay nào được thực hiện, nó phục vụ cho một phát hiện va chạm
nhanh.
Dữ liệu động: tập hợp các thuộc tính xác định tính năng động mà
Các đối tượng từng được tích hợp vào thế giới được xác định bởi động cơ vật lý.Các thuộc tính như
Tốc độ biến đổi, quán tính, khối lượng, trong số những người khác.
19
Trọng lực và biến đổi động lực lực đẩy: pha này áp dụng trọng lực và
biến đổi một cách dự đoán.
Giai đoạn phát hiện va chạm lớn: Phát hiện va chạm đầu tiên được thực hiện từ AABB
Trong mỗi mô hình, điều này cho phép loại trừ tập hợp các đối tượng sẽ không hợp tác, đó là một phương pháp khá
nhanh chóng và hiệu quả.
Pha phát hiện va chạm hẹp: Một khi đã được phát hiện va chạm bởi AABB
được thực hiện trong giai đoạn trước, một phát hiện va chạm phức tạp hơn được thực hiện, trong đó
Tính toán xoay và dịch của các đối tượng tương ứng.
Hạn chế
tương ứng với các hạn chế khác nhau của chuyển động của các đối tượng và tập hợp
Vị trí đối tượng.
Hình 2.8 Các loại ràng buộc trong Vật lý Bullet [URL 6, 2014]
Xem xét loại phương tiện để mô phỏng, các ràng buộc được đặt ra từ đó
Họ sẽ thực hiện các kết nối khác nhau của các bên.
Hình 2.8 cho thấy ràng buộc rằng Vật lý Bullet thực hiện tương ứng với động lực của
Đẩy tương tác cả với dữ liệu va chạm và dữ liệu động, ràng buộc được quan sát trong
Hình tương ứng với: ràng buộc của điểm đến điểm (a), ràng buộc của bản lề (b) và ràng buộc của slide (c).
20
2.1.14 Animación
Trong hầu hết các ứng dụng với các mô hình bán hữu cơ (như con người hoặc động vật)
hệ thống hoạt hình.Hệ thống hoạt hình cho phép khuyến khích các đối tượng từ các biến đổi cơ bản trong
Các trục XYZ, tương ứng với vòng quay, tỷ lệ và dịch của các đối tượng này;Mặt khác, bạn có thể
Khuyến khích về mặt hình thức, trong đó các kỹ thuật khác nhau được áp dụng để mô phỏng bộ xương của các đối tượng, trong
trong đó một cấu trúc trung tâm được xác định với khả năng ảnh hưởng đến hình thức và chuyển động của các đỉnh
Họ tương tác với mỗi xương.
2.1.15 Thiết bị giao diện người (HID)
Trong lớp này, các mục khác nhau được xử lý bởi người dùng, được lấy thông qua một số
Hit, một số vé này có thể là chuột và bàn phím, cần điều khiển, phẫu thuật, trong số những người khác.Thường là
Tập hợp các sự kiện để thu thập các giao diện này được cấp bởi SDK thứ ba, đặc biệt là API
cho phép quản lý cửa sổ, được gọi là người xử lý sự kiện.
2.1.16 Âm thanh
Âm thanh cũng quan trọng như đồ họa trong bất kỳ động cơ đồ họa nào.Mặc dù vậy, âm thanh cho
Chung không áp dụng tầm quan trọng giống như kết xuất, vật lý, hoạt hình, AI và trò chơi.
Việc áp dụng một công cụ âm thanh không tầm thường trong việc tạo ra một ứng dụng đồ họa, đặc biệt là trong một
Ứng dụng đồ họa 3D, điều này chủ yếu là do thực tế là một bộ quy tắc cho phép điều chỉnh nên được áp dụng
Các thông số khác nhau của mỗi âm thanh trong thời gian thực.
2.1.17 Mạng
Hiện tại mạng đã trở thành một đặc điểm gần như cơ bản trong hầu hết các ứng dụng
Đồ họa, trong đó sự gia tăng thú vị trong các ứng dụng tương tác phân tán (ngày) [SMED,
2008].Nhiều ứng dụng cho phép một số lượng lớn người dùng kết nối trong một thế giới ảo duy nhất.Các
Các ứng dụng có nhiều người dùng có thể được chia thành bốn phần:
Đa dạng trên một màn hình: hai hoặc nhiều thiết bị giao diện người (bàn phím, cần điều khiển,
Tay lái, v.v.) được kết nối trên một màn hình duy nhất.
Multi -user có màn hình chia: Nhiều người dùng được kết nối với một môi trường duy nhất, trong đó
Chia màn hình theo số lượng người dùng.
Multusuario Connected EN Red: Nhiều máy tính o Consoles Con được kết nối đồng thời.
Ứng dụng nhiều người dùng trực tuyến lớn: Hàng trăm ngàn người dùng kết nối đồng thời với
Thế giới ảo dai dẳng được tổ chức bởi một số lượng lớn máy chủ.
21
2.1.18 Hệ thống cơ sở trò chơi
Thuật ngữ trò chơi đề cập đến hành động diễn ra trong ứng dụng, các quy tắc kiểm soát
Thế giới 3D trong đó ứng dụng diễn ra, các hành động được thực hiện và các hành động khác mà nó thực hiện
ra người dùng.Lớp này cho phép lấp đầy khoảng trống giữa mã trò chơi và các hệ thống của
Động cơ cấp thấp.
Khi một ứng dụng bắt đầu phát triển, nó có thể được chia thành một tập hợp các mảnh, được gọi là
Khu vực thế giới.Trong Hình 2.9, một tập hợp các mục tiêu liên quan đến nhau có thể được quan sát liên quan đến
Tập hợp các mảnh của thế giới.
Hình 2.9 Mục tiêu của một ứng dụng bởi các mảnh [Gregory, 2009]
2.1.19 Hệ thống con ứng dụng cụ thể
Điều này tương ứng với lớp trên của kiến trúc của động cơ đồ họa, trong một số hệ thống này
Camera, trí tuệ nhân tạo để kiểm soát các nhân vật không phải là người chơi (NPC), phương tiện, v.v.Liệu
Tôi có thể thiết lập một ranh giới rõ ràng giữa động cơ và ứng dụng, nó sẽ nằm trong số các hệ thống con cụ thể
Và lối chơi.
22
2.2 Mô hình thiết kế
Do các vấn đề khác nhau phát sinh khi mã bắt đầu ngày càng phức tạp hơn,
Họ đã xem xét một tập hợp các mẫu được định hướng theo lập trình của các ứng dụng đồ họa, các mẫu này
Các bộ phận cơ bản tương ứng với thiết kế của công cụ đồ họa, cũng như đơn giản hóa và cải thiện
Hiệu suất ứng dụng.
Các mẫu thiết kế là các hình thức được biết đến và đã được chứng minh để giải quyết các vấn đề thiết kế đang định kỳ
trong thời gian.Các mô hình thiết kế được sử dụng rộng rãi trong các ngành sáng tạo và kỹ thuật.Cái này
Hình thức, việc tái sử dụng các thành phần này giúp cải thiện thời gian thiết kế.Các mẫu tổng hợp
Truyền thống và kinh nghiệm chuyên môn của các nhà thiết kế phần mềm có kinh nghiệm đã đánh giá và chứng minh rằng
Giải pháp được cung cấp là một giải pháp tốt trong một bối cảnh nhất định [Vallejo và Martín, 2013].
Dưới đây là một số mẫu này, chúng đã được định hướng để phát triển các ứng dụng
Đồ thị và những người khác đã phát triển chủ yếu cho mục đích đó, điều đáng nói là những người khác đã được thực hiện
Các loại mẫu không được đề cập trong các phần sau, chẳng hạn như mẫu singleton và vòng lặp
Hiệu trưởng.
2.2.1 Nguyên mẫu
Mẫu này cung cấp sự trừu tượng khi tạo các loại đối tượng khác nhau.Tuy nhiên, quá
giúp giảm kích thước của hệ thống phân cấp các thực thể tạo nên một mô hình nhất định, cũng cho phép
Tạo các thực thể mới được tải trong thời gian thực hiện [Vallejo và Martín, 2013].
Vấn đề chủ yếu nằm ở tình trạng quá tải có thể tồn tại khi tạo ra
Số lượng các mô hình cùng loại, trong đó thậm chí có thể cần phải tải chúng trong thời gian thực.Giải pháp
Nó nằm ở việc đáp ứng các nhu cầu năng động mới trong việc tạo ra các loại thực thể khác nhau, mà không mất
trừu tượng hóa về việc tạo ra nó.
Hình 2.10 Mẫu thiết kế nguyên mẫu [Vallejo và Martín, 2013]
23
Trong Hình 2.10, bạn có thể thấy việc triển khai mẫu thiết kế nguyên mẫu, nơi bạn có thể thấy
Sự kết hợp của phương thức bản sao (), cho phép tạo một thể hiện của lớp mà không cần phải thực hiện
Thực hiện điều này cho mỗi yếu tố mong muốn tạo ra.
2.2.2 Fly weight
Mô hình thiết kế này bao gồm việc tái sử dụng bộ dữ liệu chung có thể có danh sách
của các thực thể.Trong sự phát triển của động cơ đồ họa, điều này có thể có nghĩa là việc sử dụng một kết cấu hoặc tập hợp
Các đỉnh của một số lượng lớn các mô hình 3D, làm giảm đáng kể quá tải ban đầu có nghĩa là
Đọc các dữ liệu này, cũng như lượng bộ nhớ cần thiết để làm việc với chúng.
Hình 2.11 Các thực thể mô hình 3D truyền thống của Liên Hợp Quốc [URL 7, 2014]
Trong Hình 2.11, bạn có thể thấy việc triển khai điển hình của một tập hợp các mô hình 3D, mà
Họ có hình học, vật liệu, vị trí và xoay riêng của họ.Nếu nó được biết trước rằng tập hợp hình học và
Các tài liệu sẽ không thay đổi trong toàn bộ ứng dụng, việc tái sử dụng các yếu tố nói trên có thể được xem xét
Tạo điều kiện cho tải ban đầu mà điều này đòi hỏi, cũng như giảm quá trình xử lý mà GPU thực hiện.
May mắn thay, API và card đồ họa hiện tại cho phép điều này được thực hiện bằng cách ngay lập tức
Hình học, có thể được thực hiện bởi cả API OPEGL và API Direct3D.Sự tức thời của
Hình học cải thiện tiềm năng hiệu suất tại thời điểm thực hiện phiên bản hình học bằng cách cho phép xác định
rõ ràng là số lượng bản sao của lưới được hiển thị, cũng cho phép chỉ định
phân biệt các tham số của từng luồng dữ liệu riêng biệt.
24
Hình 2.12 Mô hình thiết kế Flyk weight [URL 7, 2014]
Trong cả hai đồ họa, hai luồng dữ liệu được chỉ định.Đầu tiên là tập dữ liệu phổ biến (trong
Hình 2.12 Bạn có thể thấy dữ liệu hình học và vật liệu), và thứ hai là danh sách các trường hợp và nó
các tham số được sử dụng để thay đổi tập dữ liệu đầu tiên sẽ được rút ra tại mỗi thời điểm, trong
Ví dụ tương ứng với mô hình vị trí và xoay của mô hình.Với một cuộc gọi đơn giản, họ có thể
Tạo một số lượng lớn các thực thể 3D sử dụng cùng một tập dữ liệu chung.
2.3 Mặt tiền
Mô hình mặt tiền làm tăng mức độ trừu tượng của một hệ thống nhất định để ẩn một số chi tiết nhất định của nó
Thực hiện và làm cho việc sử dụng của nó dễ dàng hơn.Nhiều hệ thống có thể được kết hợp vào ứng dụng
Để cung cấp mức độ trừu tượng cao hơn, nó đủ để chúng chung chung và có thể tái sử dụng để
Sự phức tạp tăng đáng kể và do đó, việc sử dụng nó ngày càng phức tạp.Sử dụng mẫu
Mặt tiền, mức độ trừu tượng của khách hàng cao hơn được cung cấp để một lớp mặt tiền mặt được xây dựng giữa
Anh ta và các hệ thống con với mức độ trừu tượng thấp hơn (xem Hình 2.13).
Hình 2.13 Ví dụ, ứng dụng của mặt tiền Patrón [Vallejo và Martin, 2013]
25
2.4 Người quan sát
Quan sát tương ứng với mô hình thiết kế hành vi, được sử dụng để xác định các mối quan hệ 1 a n
để một đối tượng có thể tự động thông báo và/hoặc cập nhật trạng thái của người khác.Người quan sát cung cấp a
Thiết kế với ít sự kết hợp giữa các nhà quan sát và đối tượng quan sát được, trong đó một triết lý về
Xuất bản/đăng ký, có nghĩa là các đối tượng quan sát viên phải được đăng ký trong đối tượng quan sát,
Còn được gọi là chủ đề.Vì vậy, khi sự kiện thích hợp xảy ra, đối tượng sẽ nhận được thông báo và sẽ là
phụ trách thông báo cho tất cả các yếu tố đã ký hợp đồng với anh ta thông qua phương thức Cập nhật ().
Hình 2.14 Sơ đồ trình tự sử dụng mẫu người quan sát [Vallejo và Martín, 2013]
Trong Hình 2.14, bạn có thể thấy việc thực hiện mô hình thiết kế quan sát bằng sơ đồ
của chuỗi, mô tả thứ tự của các lời mời trong hệ thống.Người quan sát đăng ký
Chủ đề thông qua hoạt động của tệp đính kèm () và sau đó nhận được cập nhật.Để ngừng nhận như vậy
Thông báo sử dụng hoạt động của Detach ().
26
Chương 3: Mô hình 3D
3.1 Kỹ thuật mô hình hóa
Hiện tại có một loạt các khả năng khi chọn một kỹ thuật mô hình, tốt nhất
Kỹ thuật phụ thuộc nhiều lần vào những gì bạn muốn làm.Cần lưu ý rằng các kỹ thuật mô hình hóa khác nhau
Chúng có thể được sử dụng cùng nhau để tạo ra một mô hình 3D duy nhất.Một số kỹ thuật sẽ được hiển thị bên dưới
cho việc tạo ra các mô hình 3D.
3.1.1 Mô hình đa giác
Đây là một trong những kỹ thuật được sử dụng nhiều nhất, chủ yếu là do tốc độ và sự đơn giản của nó khi tạo ra
nhiều loại bề mặt.Mô hình đa giác bao gồm sửa đổi trực tiếp các đỉnh, cạnh và
đa giác của bất kỳ loại hình học.Được biết đến nhiều nhất về kỹ thuật này là mô hình hộp, hoặc mô hình tiền mặt,
Kỹ thuật bao gồm việc tạo ra mô hình bắt đầu bằng một hộp làm cơ sở.Trong Hình 3.1, bạn có thể
Quan sát cách tạo một bàn chân từ sự dịch chuyển của các đỉnh và ứng dụng một số biến đổi thành
Các đa giác.
Hình 3.1 Mô hình hóa hộp ví dụ [URL 8, 2006]
Kỹ thuật này là lý tưởng cho việc tạo ra các mô hình có cấu trúc cứng nhắc vốn có, chẳng hạn như
Chúng có thể là các tòa nhà, nhà cửa, đồ nội thất hoặc một số bề mặt không yêu cầu chi tiết tuyệt vời, trong số những người khác.
Một trong những khó khăn chính của kỹ thuật này là độ phân giải sẽ được cung cấp cho
Bề mặt trước, nếu bạn cần tăng số lượng đa giác sau này sẽ phức tạp hơn nhiều.
27
3.1.2 Mô hình hóa bằng splines
Mô hình hóa thông qua spline hoặc còn được gọi là mô hình NURBS, bao gồm việc tạo ra các mô hình 3D để
Bắt đầu từ việc sử dụng các dòng vectơ trong 2D (spline) nằm trong không gian 3D, sau đó là
Chúng áp dụng các máy biến áp lưới để tạo ra bề mặt của hình mong muốn, như có thể thấy trong
Ví dụ về Hình 3.2.
Hình 3.2 Ví dụ Mô hình Nurbs [URL 9, 2004]
Kỹ thuật này, không giống như mô hình hộp, phù hợp hơn nhiều cho việc tạo bề mặt
Hữu cơ, nghĩa là, các mô hình có nhiều bề mặt cong hoặc với độ phức tạp trung bình.Anh ta
Vấn đề chính của việc mô hình hóa thông qua splines là "hồ sơ".Hồ sơ là kết nối và vị trí của
các dòng vectơ khác nhau sẽ tạo ra mô hình, mô hình càng phức tạp và cong thì càng lớn
Số lượng spline là cần thiết.Trong Hình 3.3, hồ sơ được sử dụng cho
Tạo ra một bề mặt.
Hình 3.3 Sử dụng hồ sơ [URL 10, 2011]
28
3.1.3 Điêu khắc kỹ thuật số
Một vài năm trước, một số ứng dụng để tạo ra các mô hình 3D được sử dụng để hứa hẹn
"Điêu khắc kỹ thuật số" hoặc "điêu khắc kỹ thuật số" để chỉ một giao diện trong đó các công cụ được sử dụng để
Mô hình hóa rất trực quan đến nỗi nó mang lại cảm giác làm việc trực tiếp với Clay [Keller, 2011].
Kỹ thuật mô hình này về cơ bản hoạt động với các lưới có độ phân giải rất cao mà chúng áp dụng
Các loại công cụ khác nhau để định hình nó.Trong một số trường hợp, các nhà thiết kế phải thực hiện các mô hình 3D
các chuyên gia nhưng duy trì một lượng đa giác thấp (poly thấp), một giải pháp thay thế để đạt được điều này
Yêu cầu là tạo mô hình thông qua kỹ thuật điêu khắc, sau này trở thành bản đồ của
bình thường và gán mô hình theo đa giác thấp, do đó tiếp cận một lượng lớn các chi tiết
Ông sở hữu lưới được tạo ra ở đầu [Gregory, 2009].
Hình 3.4 Ví dụ về điêu khắc [URL 11, 2011]
Trong Hình 3.4, bạn có thể thấy quá trình mô hình 3D bắt đầu lấy biểu mẫu mong muốn vào
Đi định hình nó và tăng số lượng đa giác.Không giống như các kỹ thuật mô hình hóa khác, trong việc điêu khắc
Bạn có thể bắt đầu làm việc từ một mô hình đã có đa giác cao, chẳng hạn như
Ví dụ một quả cầu có nhiều khuôn mặt.
3.2 Kết cấu
Kết cấu bao gồm quá trình lấy một bề mặt và sửa đổi sự xuất hiện của nó bằng cách sử dụng
Hình ảnh, chức năng toán học hoặc bất kỳ nguồn gốc dữ liệu nào khác.Nguồn gốc dữ liệu này được gọi là kết cấu.Mỗi
Kết cấu bao gồm một tập hợp các texels, được đại diện bởi một ma trận của Texels
[Valient, 2001], [Glassner, 1989].Trong Hình 3.5, sự thay đổi xảy ra khi áp dụng có thể được quan sát rõ ràng
Một kết cấu cho bề mặt 3D, một quá trình thường được gọi là ánh xạ kết cấu.
29
Hình 3.5 Ví dụ ánh xạ kết cấu [URL 12, 2008]
Ngoài ra, phải xem xét rằng kết cấu là một trong những giai đoạn quan trọng nhất khi bạn muốn mô hình hóa
Một đối tượng 3D, điều này chủ yếu là do bề mặt chỉ có màu sắc phẳng và trong nhiều trường hợp
cần thiết để cấp một mức độ cá nhân hóa và chủ nghĩa hiện thực lớn hơn.
3.2.1 Kỹ thuật kết cấu
Có nhiều cách để kết cấu một bề mặt, một số trong số chúng sẽ được chi tiết dưới đây.
3.2.1.1 Thủ tục tố tụng
Được tạo ra bởi các công thức toán học, họ tìm cách tạo ra các biểu diễn thực của các yếu tố như: mây,
Gỗ, kim loại, đá, v.v.Những kết cấu này có thể được tạo từ hai loại bản đồ: bản đồ hình học hoặc
Bản đồ ngẫu nhiên.Bản đồ hình học có một mẫu được xác định rõ, vì vậy chúng không có sự ngẫu nhiên,
Trong khi các bản đồ ngẫu nhiên là không thể đoán trước, nhưng thường tuân theo một mẫu thông thường (xem Hình 3.6).
Hình 3.6 Ví dụ về kết cấu thủ tục [URL 13, 2009]
30
Dưới đây là một số ưu điểm và nhược điểm của việc sử dụng kết cấu thủ tục [URL
13, 2009]:
Chúng dày đặc: Điều này có nghĩa là không có độ sắc nét nào bị mất bằng cách tăng sự gần gũi của nó với buồng.
Chúng là vô hạn: bởi vì chúng được xác định cho toàn bộ không gian, điều này rất hữu ích khi cần thiết để kết cấu
Mô hình với kích thước cao.
Họ chiếm không gian nhỏ: vì chúng không được lưu trữ trên đĩa như hình ảnh.
Khó tạo ra: bởi vì những thứ này không được vẽ, nhưng được tạo ra bởi các thuật toán toán học.
Họ yêu cầu xử lý lớn hơn: mặc dù phát hành ổ cứng, CPU hiện phải chịu trách nhiệm
Xử lý cần thiết để tạo kết cấu.
3.2.1.2 Sơn đỉnh
Vertex Paint là một cách đơn giản để sơn các bề mặt của một mô hình bằng cách thao tác trực tiếp
của màu trong các đỉnh [URL 14, 2012].
Hình 3.7 Ví dụ về sơn đỉnh [URL 15, 2009]
Hiện tại có nhiều công cụ khác nhau thực hiện kỹ thuật này, điều này được thực hiện thông qua
sử dụng các bàn chải khác nhau, trong đó các thuộc tính khác nhau, chẳng hạn như độ nhám, độ mờ,
Kích thước, màu sắc, cường độ, v.v.Trong Hình 3.7, bạn có thể thấy việc sử dụng kỹ thuật ứng dụng này trực tiếp
đến một bề mặt.
3.2.1.3 được kết cấu bởi hình ảnh UV
Đúng như tên gọi, kỹ thuật này dựa trên việc sử dụng hình ảnh để tạo kết cấu của một
mẫu vật 3 chiều.Bởi vì kích thước kết cấu ảnh hưởng trực tiếp đến hiệu suất mà nó sẽ có sau này
31
Ứng dụng, nó là nó càng nhỏ càng tốt, xem xét tỷ lệ
Số lượng pixel sẽ được xử lý trong cảnh.Để sử dụng bộ nhớ hiệu quả nhất, nên sử dụng
Kết cấu vuông, chẳng hạn như 128x128, 256x256, 512x512, v.v.
Hình 3.8 được kết cấu bằng bản đồ UV [URL 16, 2006]
Cách hình ảnh tuân thủ lưới, phụ thuộc vào mô hình và hình ảnh được sử dụng.hiện hữu
Nhiều cách để tham gia hình ảnh vào mô hình, một trong những cách được sử dụng nhiều nhất là ánh xạ UV.Kỹ thuật này bao gồm
Việc gán các pixel của hình ảnh 2D cho bề mặt của đa giác 3D, theo tọa độ UV (thay thế của
Xy).Khi một mô hình được tạo dưới dạng lưới đa giác sử dụng trình mô hình 3D, tọa độ UV
Chúng có thể được tạo cho từng đỉnh của lưới, nếu sau đó mô hình muốn chuyển sang một công cụ đồ họa,
Điều cần thiết là hình học sở hữu tọa độ UV tương ứng của họ.Trong Hình 3.8, nó có thể được xem là một hình ảnh
Với UV tọa độ, nó áp dụng cho lưới.
3.3 Liệt kê phần mềm mô hình 3D
Một số phần mềm được sử dụng nhiều nhất sẽ được mô tả dưới đây để tạo ra các mô hình 3D:
3D Studio Max:
3D Studio Max là một chương trình mô hình 3D, hoạt hình và kết xuất được phát triển bởi Autodesk
[URL 17, 2014].Việc sử dụng 3D Studio Max cho phép người dùng hiển thị và biểu diễn
các mô hình trong giao diện trực quan, cũng như xuất và được lưu ở các định dạng khác ngoài các định dạng được sử dụng bởi
Chính chương trình.Phần mềm này cung cấp một loạt các công cụ được định hướng theo các hồ sơ khác nhau, chẳng hạn như
Các nhà phát triển trò chơi video, người tạo ra hiệu ứng hình ảnh, nhà thiết kế đồ họa chuyển động, kiến trúc sư,
32
Kỹ sư, v.v.3D Studio Max là một trong những công cụ được sử dụng phổ biến nhất, do nó dài
Quỹ đạo và khả năng mạnh mẽ, ngoài việc tương thích với một số lượng lớn phần mềm bên ngoài.
Maya:
Maya là phần mềm mô hình 3D chủ yếu cho hoạt hình điện ảnh [url 18,
2014].Giống như 3D Studio Max, nhà phát triển hiện tại của nó là Autodesk.Maya được đặc trưng bởi sức mạnh của nó,
Khả năng mở rộng, tùy chỉnh và công cụ, ngoài ra, phần mềm này còn sở hữu MEL (Maya nhúng
Ngôn ngữ), mã hạt nhân của người Maya, có thể tạo các tập lệnh và phần mềm khác nhau.
Phần mềm này cung cấp các công cụ cho hoạt hình, mô hình hóa, mô phỏng, kết xuất, kỹ thuật chuyển động và
thành phần.
Google phác họa:
Phần mềm này cho phép tạo các mô hình 3D thông qua các công cụ trực quan và dễ hiểu.
Nó dành cho bất kỳ loại người dùng nào, nhờ số lượng lớn các hướng dẫn, một trung tâm hỗ trợ hoàn chỉnh và
cho một cộng đồng người dùng toàn cầu.Nhờ Sketchup, các mô hình có thể được xây dựng từ đầu hoặc tải xuống
Điều đó là cần thiết thông qua bộ sưu tập có sẵn trên Google [URL 19, 2014].
Không giống như các chương trình mô hình 3D khác, trong Sketchup, tất cả các mô hình 3D đều được hình thành
Chỉ có hai yếu tố: cạnh và đa giác.Ngoài ra còn có các công cụ như "đẩy/ném", trong đó
Nó cho phép chúng ta thêm các bề mặt phẳng đến các dạng ba chiều.Một số đặc điểm của phần mềm này là: màu
trực tiếp trên bề mặt, chia mô hình thành các phần (để xem nó bên trong), sử dụng các lớp để đặt hàng
Số liệu, trao đổi thông tin với Google Earth (vì họ thuộc cùng một gia đình), trong số những người khác.
Rạp chiếu phim4D:
Được phát triển bởi Maxon, Cinema4D là một phần mềm tạo đồ họa và hoạt hình cấp 3D
Chuyên nghiệp [URL 20, 2014].Một số đặc điểm của phần mềm này là: triển khai vật liệu và kết cấu
Cổ điển và nâng cao, các công cụ hoạt hình, cho phép nhập và xuất sang nhiều định dạng
Lưu trữ để tích hợp với nhiều phần mềm khác, rất nhiều khả năng ánh sáng và bóng mờ, A
Động cơ kết xuất mạnh mẽ, trong số những người khác.
Một số lợi thế của Cinema4D là giao diện linh hoạt và có thể tùy chỉnh cao, cho phép
thích ứng với hình thức công việc của phần mềm dễ dàng hơn;và một đường cong học tập khá cao (trong
So sánh với các loại phần mềm khác để tạo các mô hình 3D).
Zbrush:
Phần mềm điêu khắc kỹ thuật số và các mô hình 3D được phát triển bởi Công ty Pixologic [URL 21,
2014].Zbrush được đưa vào thế giới như một ứng dụng nghệ thuật thử nghiệm với một công nghệ độc đáo, mà
33
Ông đã có thể tạo ra các mô hình với rất nhiều chi tiết và hiệu ứng.Các mô hình mà họ làm việc trên này
Phần mềm, chúng rất khó thực hiện trong các chương trình mô hình hóa thông thường, do kiến trúc của chúng
Định hướng để thực hiện các kỹ thuật mô hình đa giác.
Một quy trình công việc điển hình đang tạo ra cơ sở của hình học mô hình trong một chương trình mô hình hóa
thông thường và sau đó xuất nó sang phần mềm ZBRush để tăng số lượng chi tiết.
Máy xay:
Blender là phần mềm miễn phí, đa nền tảng và nguồn mở.Hiện đang được phát triển bởi
Quỹ Blender theo giấy phép GPL [URL 22, 2014].Hiện tại, Blender tương thích với các nền tảng
Windows, Mac OS X, Linux, Solaris, FreeBSD E Irix.
Phần mềm này cung cấp một phổ rộng của mô hình hóa, hoạt hình, kết cấu và video sau xử lý,
Tất cả điều này trong một gói duy nhất.Một số tính năng chính của phần mềm này là [Hess, 2010]:
Một bộ sáng tạo được tích hợp đầy đủ, cung cấp một loạt các công cụ thiết yếu cho
Việc tạo ra các mô hình 3D, trong số đó là: việc tạo ra các mô hình thông qua các kỹ thuật của
Mô hình thông thường, hỗ trợ điêu khắc kỹ thuật số, kết cấu bởi Vertex Paint, trong số những người khác.
Giao diện đồ họa đặc biệt, hoàn toàn linh hoạt và có thể thích ứng với các yêu cầu khác nhau của
người dùng.
Đa hình thức, do giao diện đồ họa dựa trên OpenGL của nó.
Chất lượng tuyệt vời, sáng tạo nhanh chóng và quy trình làm việc hiệu quả.
Một số lượng lớn người dùng sử dụng phần mềm này.
Kích thước thực thi khá giảm và dễ phân phối.
Hỗ trợ tạo trò chơi video thông qua ngôn ngữ lập trình Python.
34
Chương 4: Phát triển dự án
4.1 Trường hợp nghiên cứu
Các điểm khác nhau tạo nên trường hợp nghiên cứu của dự án này được giải thích dưới đây,
tập trung vào đầu trong trạng thái nghệ thuật của dự án, sau đó là tập hợp các công nghệ được sử dụng cho
Phát triển động cơ đồ họa, sau đó là sự phát triển của trường hợp nghiên cứu và cuối cùng là các thông số kỹ thuật của
Xe được chọn để mô phỏng.Luôn ở trong tâm trí mọi lúc làm thế nào để mô phỏng các sự kiện khác nhau
Theo các mục tiêu của dự án.
4.1.1 Trạng thái nghệ thuật
Một phần lớn các mô phỏng hiện tại đang phát triển bởi các công ty chỉ dành cho
Mô phỏng 3D, ngoài chính ứng dụng, một môi trường gần như thực tế mô phỏng các điều kiện với
Một trong những điều mà người ta sẽ thực sự hoạt động, môi trường này có thể xem xét một tập hợp các màn hình, Manudrios giống hệt
Thực tế, hệ thống treo, tăng tốc bằng độ nghiêng, trong số nhiều hệ thống khác.
Trong [Johnson, 2009] động cơ mô -men xoắn động cơ đồ họa đã được sử dụng để mô phỏng cổng Seattle,
Mục tiêu ban đầu là thực hiện một nghiên cứu khả thi và hiểu về quy trình sản xuất mô phỏng để
thông qua một động cơ trò chơi bắn súng đầu tiên.Phân tích tập trung vào một nơi thực tế cho
Đại diện cho trung thành hơn các vấn đề thực tế mà điều này liên quan đến.Kết quả đồ họa của
Mô phỏng cổng cũng như hiệu suất dựa trên số lượng mô hình được tải trong thời gian thực.bên trong
Hình 4.1 Tải trọng của mô hình 3D đối với động cơ mô -men xoắn có thể được quan sát
Độ trung thực của mô hình đối với môi trường mô hình hóa đã được sử dụng.
Hình 4.1 tải trên mô hình 3D cho ứng dụng [Johnson, 2009]
35
Mô phỏng 3D không chỉ cho phép bạn thiết lập các quy tắc cho việc học nhân viên mà còn có thể
Đóng một vai trò quan trọng trong các lĩnh vực khác, chẳng hạn như phát hiện các yếu tố hạt nhân từ các cảm biến
chuyên.Trong [Christiansen et al., 2008] Việc phát hiện các mối đe dọa này trong một cảng được đánh giá từ
Mô phỏng dựa trên một công cụ trò chơi video.Điều này xem xét các cảm biến có khả năng phát hiện một bộ sóng
Omnidetrectional được ban hành bởi các mối đe dọa, như có thể thấy trong Hình 4.2, (a) tương ứng với mối đe dọa,
(b) các sóng phát ra và (c) cảm biến có khả năng phát hiện các sóng này.Dự án này được thực hiện dựa trên động cơ
OpenArena, là một dẫn xuất động cơ cát quoke III.
Hình 4.2 Phát hiện các mối đe dọa thông qua các cảm biến [Christiansen et al., 2008]
Mô phỏng 3D cũng cho phép dữ liệu được tạo từ nhiều nguồn
Môi trường thực thi, điều này giúp quá trình học tập và hiểu.
Hình 4.3 Trực quan hóa dữ liệu nhiều nguồn [URL 28, 2014]
36
Trong mô phỏng được thực hiện bởi Viện Geodesy và Navigation [URL 28, 2014], bộ đã được tạo ra
của các đối tượng giai đoạn thực sự, dựa trên các hệ thống vệ tinh điều hướng toàn cầu (GNSS) khác nhau.
4.1.2 Công nghệ sẽ được triển khai
Trong trường hợp này, các công nghệ và khái niệm khác nhau được tiếp xúc trong các chương trước sẽ được áp dụng để
Tạo các nguyên mẫu gia tăng khác nhau, các công nghệ đã được chọn từ phân tích khả năng tương thích
giữa những điều này và nhu cầu của dự án.Hầu hết trong số này đã được chọn dựa trên các chức năng
cấp và số lượng tài liệu có sẵn dựa trên sự tích hợp của họ với nền tảng phát triển, chẳng hạn như
Cũng tích hợp với các công nghệ khác.
Như đã đề cập ở trên, API đồ họa sẽ được sử dụng tương ứng với OpenGL, chủ yếu là
Các khả năng đồ họa tuyệt vời được cung cấp và cho khả năng mang dự án đến các nền tảng khác nhau,
thậm chí đến một nền tảng web.Nó cũng đã được coi là sử dụng các đặc điểm mới của OpenGL, vì vậy
rằng các chức năng của đường ống mới sẽ được thực hiện, theo cách này, Shaader khác nhau có thể được sử dụng
thông qua ngôn ngữ lập trình GLSL (ngôn ngữ Shader OpenGL).
Ngôn ngữ lập trình được chọn là C ++, điều này vì khả năng tương thích tồn tại với một lượng lớn
Các thư viện liên quan đến sự phát triển bản thân đòi hỏi một công cụ đồ họa (thư viện vật lý, thư viện xử lý
các sự kiện, thư viện để tạo ra các cửa sổ, các nhà sách âm thanh, trong số những người khác), và cũng để sử dụng rộng rãi và
Tài liệu hiện có với việc triển khai OpenGL trong tất cả các phiên bản của nó (cả hai phiên bản họ tạo
Sử dụng đường ống cũ của OpenGL làm đường ống mới).
Xem xét các yếu tố trên, để tạo và quản lý các cửa sổ, SDL 2.0 đã được chọn
(Lớp DirectMedia đơn giản), là thư viện phát triển đa nền tảng cung cấp quyền truy cập cấp thấp
Âm thanh, bàn phím, chuột, cần điều khiển và phần cứng đồ họa thông qua OpenGL và Direct3D [URL 23, 2014].Hiệu sách này
Nó được viết bằng C và hoạt động nguyên bản với C ++.Trong phiên bản 2.0 của nó, nó cũng cho phép tạo ra nhiều
Windows, trong tương lai có thể cho phép mở rộng khả năng hiển thị của trình giả lập thành môi trường nhân với
Rất ít sửa đổi mã nguồn giả lập.
Để tải các hình ảnh sẽ được áp dụng bằng kết cấu bằng tọa độ UV cho
Các mô hình khác nhau, cũng như cho bất kỳ loại hình ảnh nào khác mà bạn muốn đại diện trong trình giả lập
(như các yếu tố GUI), Nhà sách Freeimage sẽ được sử dụng [URL 24, 2014], chỉ đơn giản
Tải rất nhiều định dạng hình ảnh (PNG, JPEG, BMP, GIF, trong số các định dạng khác), có được từ các
Đặt các bit cần thiết cho bốn kênh (RGBA) sau đó sẽ được OpenGL đọc.
Để đọc các nguồn, hiệu sách SDL_TTF 2.0 [URL 25, 2014] sẽ được sử dụng, cho phép tạo ra
một hình ảnh từ tệp đài phun nước TTF (trueType) và văn bản được xác định trước, cuối cùng tạo ra một
37
hình ảnh tương tự như các hình ảnh được tạo bởi sdl_image, cho phép sau đó tải tập hợp
de bit một opengl.
Để hoàn thành các âm thanh khác nhau, hiệu sách SDL_Mixer [URL 26, 2014] đã được chọn, trong đó
cấp một tập hợp các chức năng để tái tạo nội dung âm thanh, chấp nhận rất nhiều
định dạngNgoài ra, SDL_Mixer cho phép dễ dàng thực hiện âm thanh và âm nhạc để phát triển
Ứng dụng trong C/C ++.Hiệu sách này đã được chọn và không cho một
Mức độ trừu tượng thấp mà họ làm việc trong một sự cởi mở.
Bởi vì các chức năng OpenGL cho phép lưu trữ một đống ma trận cho cả hai phép chiếu
Đối với chế độ xem và các mô hình đã được thiết lập là lỗi thời trong phiên bản đơn giản hóa của đường ống, nó được thực hiện
cần thiết để sử dụng một thư viện toán học tạo điều kiện cho các tính toán đại số nội tại khác nhau trong
Phát triển động cơ đồ họa.Đây là lý do tại sao Thư viện GLM (Toán học OpenGL) [URL 27,
2014], có cú pháp khá giống với ngôn ngữ lập trình GLSL Shader.Cửa hàng sách này cho phép
cũng tạo ra cả ma trận chiếu trực giao và trong quan điểm cho cảnh cuối cùng
của môi trường 3D, cũng cho phép áp dụng các bản dịch, xoay và mở rộng cho các mô hình thông qua các ma trận của
Chuyển đổi được xác định trước.
Cuối cùng là một động cơ vật lý sẽ sử dụng Vật lý Bullet [URL 6, 2014], cho phép tạo ra môi trường
Vật lý sẽ mô phỏng các chuyển động và vòng quay khác nhau của từng yếu tố tạo nên cảnh 3D,
cũng như tính toán các va chạm khác nhau có thể được thực hiện mọi lúc.Một yếu tố
Điều quan trọng cần xem xét là việc thực hiện các ràng buộc, điều này sẽ cho phép mô phỏng nhiều hơn
Thực tế các chuyển động của các phần khác nhau tạo nên cần cẩu của người đặt tiếp cận, cho phép áp dụng nó
kết nối phức tạp với những điều này, cố gắng thể hiện các chuyển động mà chúng sẽ có trong một kịch bản thực sự theo cách
gần nhất có thể.
Điều đáng nói là sự phát triển của các mô hình 3D khác nhau tạo nên môi trường giả lập là
Họ sẽ thực hiện thông qua phần mềm mô hình máy xay, vì như đã đề cập ở trên, nó miễn phí và tài trợ
một số lượng lớn các công cụ tạo điều kiện đáng kể cho toàn bộ quá trình phát triển đòi hỏi
Tạo ra các mô hình 3D.
4.1.3 Phát triển trường hợp nghiên cứu
Dự án sẽ bao gồm một kịch bản ba chiều trong đó các mô hình khác nhau sẽ được đặt
3D, chúng sẽ đại diện cho tất cả các thực thể mà người dùng có thể tương tác.Môi trường này sẽ được mô phỏng
Từ các hiện tượng vật lý khác nhau có thể xảy ra
Vị trí hoặc sự sụp đổ của một bộ container được xếp chồng lên nhau bởi một cuộc đụng độ có thể với chiếc xe.
38
Các đối tượng 3D sẽ tương tác chủ yếu trong môi trường là các container và phạm vi tiếp cận-
StackerXe sẽ được tách thành một bộ các bộ phận sẽ được kết nối bởi hình ảnh động
Thủ tục với sự trợ giúp của hiệu sách vật lý, điều này cũng sẽ cho phép bạn áp dụng các loại xoay khác nhau cho
các bộ phận theo đặc điểm và giới hạn vật lý của chúng, tất cả thông qua các tính toán thực tế của các tính toán khác nhau
Ràng buộc mà các bộ phận này sẽ tham gia, phong trào bánh xe cũng sẽ được tính toán với hiệu sách
Vật lý, sẽ cho phép di chuyển trên cả bề mặt phẳng và không đều.Liên quan đến các container, những thứ này
Chúng sẽ có trọng lượng tương ứng với kích thước của điều này (20ft hoặc 40ft) và có thể được xếp chồng lên nhau giữa một số.Bốn
Các góc bề mặt container sẽ có các điểm kết nối mà từ đó thiết bị lại có thể
Đặt cần cẩu, theo cách này, container có thể được nâng lên và di chuyển đến một nơi khác, điều này được dự định
Kết hợp bốn hình ảnh va chạm trong hình dạng của một container ở các góc của container, phải được nối
Với bốn con số va chạm khác tương ứng với các điểm kết nối của cần cẩu xe, tính toán của
va chạm giữa các hộp này sẽ được thực hiện bởi AABB, chủ yếu là do phương pháp đơn giản và nhanh chóng của nó
thực hiện;Sau khi tính toán này nếu kết nối được thiết lập, ràng buộc sẽ được áp dụng
tương ứng với từng điểm, kết nối nó và áp dụng vật lý tương ứng với liên minh đã nói.
Để duy trì sự kiểm soát lớn hơn đối với môi trường có thể nhìn thấy của trình giả lập, sự kết hợp của một
Tập hợp các máy ảnh có các đặc điểm khác nhau, những máy ảnh này là:
Một buồng ở người đầu tiên, tương ứng với buồng chính của trình giả lập, nơi
Người dùng điều khiển phương tiện nên phát triển chủ yếu.Máy ảnh này được đặt thành
Chuyển động xe.
Một camera miễn phí, có thể được thay thế tự do bởi môi trường, lưu diễn này mà không phụ thuộc vào
Chuyển động xe.Có thể được sử dụng để đặt điểm thu thập container và cho biết
Người dùng nơi bạn phải để lại container đã nói.
39
4.2 Thiết kế hệ thống
Trong phần này, giai đoạn thiết kế tương ứng với hoạt động của động cơ đồ họa và cả
của trình giả lập, nơi các đặc điểm được cấp cho người dùng của trình giả lập sẽ được xác định một mặt và bởi
Một chức năng khác được thực hiện trong nội bộ bởi động cơ.
4.2.1 Sơ đồ trường hợp sử dụng
Dưới đây là sơ đồ trường hợp sử dụng tương ứng với các hành động khác nhau có thể
Thực hiện người dùng trong trình giả lập (xem Hình 4.4), các chức năng này được trình bày chi tiết bên dưới:
Sửa đổi camera:
o Thay đổi buồng thứ nhất: sửa đổi vị trí của máy ảnh và đặt nó bên trong cabin của
phương tiện, đưa ra một quan điểm thực tế hơn nhiều về cách các đối tượng khác nhau được hình dung trong
xung quanh.
o Thay đổi buồng khán giả: sửa đổi vị trí của máy ảnh và định vị nó bên ngoài cabin của
Xe, ở chế độ miễn phí, cho phép một tầm nhìn lớn hơn về môi trường.
Xe hiển thị:
Hoặc trước: Thay thế phương tiện về phía trước, theo hướng mà nó là.
hoặc lùi xuống: lùi xuống xe theo nghĩa mà nó được tìm thấy.
Hoặc lượt: Nó cho phép xoay bánh sau của xe.
Truyền nhân thao tác:
hoặc xoay Spreder: nó cho phép máy rải có được các thùng chứa ở những vị trí khó khăn của
Tiếp cận khi chiếc xe không được căn chỉnh hoàn toàn với container đã nói.
hoặc mở rộng máy rải: cho phép mở rộng máy rải để có thể móc cái này với nhiều thùng chứa hơn
lớn (cụ thể là 40ft container).
o Trình lứa đấu tranh: Cho phép bạn
nhỏ (cụ thể là 20ft container).
hoặc hộp chứa Hook: Một khi các phần tương ứng của container đã được ghép nối với
Các mảnh rải, thùng chứa này được nối.
Hoặc giải phóng container: Phát hành tải mà máy rải sở hữu.
Boom Manipular:
hoặc xoay vòng bùng nổ: nó cho phép tăng hoặc giảm góc của sự bùng nổ của xe, đạt được điều này
Tiếp cận đối tượng ở độ cao cao hơn.
hoặc mở rộng sự bùng nổ: cho phép mở rộng sự bùng nổ từ xe, cho phép tiếp cận các container đến
khoảng cách xa hơn.
40
hoặc thu hẹp sự bùng nổ: cho phép thu nhỏ sự bùng nổ, giảm khoảng cách cần thiết để đạt được
đối tượng nhất định.
Cabin ca: Cho phép bạn di chuyển cabin của chiếc xe về phía trước hoặc lùi, điều này cho phép bạn có
khả năng hiển thị nhiều hơn của các bộ phận xe khi máy ảnh giả lập ở đầu tiên
persona.
Hình 4.4 Sơ đồ sử dụng chức năng người dùng [ELAB.Sở hữu]
Hệ thống
Người dùng mô phỏng
Sửa đổi camera
Thay đổi camera 1
Persona
Thay đổi chế độ camera
Người xem
<< mở rộng >> << mở rộng >>
Di chuyển xe
Thay thế
Thao tác
Rotarspreader
Extenderpreader
HOOT container
Giải phóng
<< Mở rộng >>
<< Mở rộng >>
<< Mở rộng >>
Bầm tím
<< mở rộng >> << mở rộng >>
Boom Manipular
Rotarboom
Extenderboom
Brucerboom
<< mở rộng >> << mở rộng >>
<< Mở rộng >>
Nâng cao
Quay lại
<< Mở rộng >>
<< mở rộng >> << mở rộng >>
41
4.2.2 Sơ đồ lớp
Hình 4.5 Sơ đồ lớp động cơ đồ họa [ELAB.Sở hữu]
Trong Hình 4.5, bạn có thể thấy các lớp khác nhau liên quan đến hoạt động của động cơ đồ họa.
Mỗi trong số này được mô tả dưới đây theo mức độ trừu tượng của chúng, nơi đầu tiên có những người đầu tiên
có mức độ trừu tượng cao hơn:
WindowDevice: Lớp này cho phép tạo và xử lý cửa sổ, từ đó chúng được quản lý
các quản trị viên khác nhau của động cơ đồ họa, chẳng hạn như trình điều khiển sự kiện và hình ảnh
Object3d
Nút
Lưới thép
Cảnh tượng
Skybox
Lưới
Máy ảnh
Vật liệu
Vật liệu vật liệu vật liệu vật liệu
TextureCubetexture
ImageLoader
Hình học
FPSMANAGER
Meshloader
Shaderloader
Quản lý sự kiện
Hình họcfactory
WindowDevice
Người kết xuất
Shaderl Library
Shader
PhysicsManager ReachStackerrayCaster
Âm thanh âm thanh
Mycontactresultcallback
42
môi giây.Lớp này tương ứng với điểm bắt đầu chính của trình giả lập, trong đó
ví dụ của cửa sổ và các mô hình 3D khác nhau được gửi để được hiển thị.
Trình quản lý sự kiện: Nó cho phép quản lý tốt hơn các sự kiện khác nhau được bắt bởi
Quản trị viên cửa sổ, các phương thức xác định cho phép biết nếu có bất kỳ khóa nào của
Máy tính, nếu chuột đã bị dịch chuyển hoặc nhấn nút của một thiết bị bên ngoài.
FPSManager: Điều chỉnh lượng hình ảnh được hiển thị trên màn hình mỗi giây.
Kết xuất: phụ trách thực hiện quá trình kết xuất các đối tượng 3D khác nhau của môi trường,
Thiết lập các thuật toán cần thiết để xác định số liệu nào phải được ẩn, tìm kiếm
Cải thiện hiệu suất cuối cùng của ứng dụng.Trong lớp này, các tọa độ của thế giới và
camera, được gửi đến các shader khác nhau để thực hiện tính toán cuối cùng của từng
Vectơ đối tượng.
Object3D: Quản lý ma trận chuyển đổi của các đối tượng sẽ được biểu diễn trên sân khấu,
Ma trận này được nhân với từng đỉnh của mỗi đối tượng, cuối cùng xác định vị trí của nó
và xoay.Theo cách tương tự, ma trận chuyển đổi được tạo ra bởi động cơ vật lý được lưu trữ một lần
thực hiện các tính toán của các vật lý khác nhau liên quan.
Hình học: Lưu trữ thông tin định vị, tỷ lệ và xoay vòng cơ bản của từng
đối tượng môi trường.Lớp kết xuất sử dụng lớp này để tạo vị trí cuối cùng của đối tượng.
Camera: Thiết lập quan điểm mà người dùng có trong trình giả lập.Máy ảnh này có thể được thiết lập trong
Người đầu tiên hoặc 3 người.Chủ yếu quản lý chế độ xem và quan điểm của động cơ đồ họa.
Nút: Xem xét số lượng các yếu tố đã được tích hợp vào động cơ đồ họa, nó đã được thiết lập
Là đơn vị kết xuất nút.Từ điều này, bạn có thể tạo các cấu trúc được liên kết với đa dạng
Thông tin, chủ yếu được quản lý bởi cảnh tượng.
Cảnh tượng: tương ứng với cấu trúc dữ liệu cây, trong đó gốc của điều này được xác định và
Các phương pháp cần thiết để kết xuất đệ quy tất cả các nút.
Vật liệu: lớp cơ sở để tạo ra các vật liệu khác nhau có thể được áp dụng cho các đối tượng của
phong cảnh.Điều này lưu trữ thông tin tương ứng với shader mà
người mẫu.
ARGETBASIC: Vật liệu được áp dụng cho các mô hình 3D khác nhau, điều này lưu trữ thông tin hình ảnh
sẽ được áp dụng bởi các tọa độ UV AL Modelo.
Vật liệu SPITEMBOX: Tài liệu chỉ được tạo ra với mục đích được áp dụng cho SkyBox, điều này lưu trữ
Thông tin về các hình ảnh tương ứng với từng mặt của khối lập phương mà từ đó
Cielo.
Vật liệu: Tài liệu kiểm tra để tinh chế mã.
Kết cấu: Lưu trữ thông tin từ một hình ảnh sau đó được tải trong bộ nhớ.Hình ảnh này là
Được gửi đến một shader, cho phép nó áp dụng nó cho các mô hình theo tọa độ UV mà nó có.
43
TextureCube: Lưu trữ thông tin từ một hình ảnh bao gồm 6 phần, được áp dụng
Cuối cùng đến Skybox.
Shader: Lưu trữ thông tin tương ứng với chương trình Shader, trong đó đỉnh được xác định
Shader và Fragment Shader, từ đó vị trí cuối cùng của mỗi đỉnh của đối tượng 3D, được thiết lập,
cũng như các thông tin liên quan đến các pixel khác nhau tạo nên đối tượng.
ShaderLibray: Lớp tĩnh cho phép truy cập vào tập hợp các shader được tải trong trình giả lập.Đã sử dụng
Chủ yếu bởi kết xuất động cơ đồ họa.
Lưới: Lớp chính để tạo các đối tượng 3D trong môi trường, lớp này lưu trữ thông tin
tương ứng với bộ đệm mô hình khác nhau, các tham chiếu đến hình học và vật liệu của chúng.Các
Các thành phần hoặc mảnh khác nhau của bộ xếp tiếp cận sẽ được mô hình hóa từ việc tạo ra một số đối tượng
3D, sẽ có các đặc điểm vật lý của riêng họ, và sẽ được kết hợp từ các ràng buộc khác nhau
được cấp bởi động cơ vật lý đạn.
Skybox: Cho phép tạo ra thiên đường từ kết cấu khối.
Lưới: Xác định một lưới chia cho các dòng, nó phục vụ để phân biệt điểm cơ sở của động cơ vật lý khi
Ông đã thiết lập bất kỳ kịch bản.
Imagelloader: Thần lực cho phép gánh nặng hình ảnh của các định dạng khác nhau
GIF, JPG, PNG, BMP, trong số những người khác.
Hình họcfactory: thực dụng để tạo ra các hình học khác nhau, trong đó có
Grilla và hình học hình học.
Meshloader: Thuốc để tải các mô hình 3D từ các tệp, việc triển khai đã được thực hiện
của các tập tin OBJ.
Shaderlader: Tiện ích tải các tệp Shader và Fragment Shader của Vertex.
PhysicsManager: Cho phép bạn thêm các đối tượng vật lý khác nhau vào thế giới (khác với các đối tượng
ba chiều), tính toán các va chạm trên thế giới, tạo ra các ràng buộc hoặc các công đoàn giữa
Các đối tượng khác nhau, tạo ra một cách tiếp cận cơ thể va chạm từ các mô hình
ba chiều, trong số những người khác.
ReachStackerrayCaster: Do đặc điểm kỹ thuật của các va chạm tồn tại giữa các loại khác nhau của
Các cơ quan trên thế giới, một sửa đổi đã được thực hiện trong thuật toán đúc tia được thực hiện trong
Bánh xe xe.
Mycontactresultcallback: Nó cho phép phát hiện xem hai cơ thể của động cơ vật lý bị va chạm.Cái này
Lớp học chủ yếu được sử dụng để phát hiện sự va chạm giữa máy rải và các container.
Âm thanh: Lưu trữ một bản nhạc trong một kênh âm thanh nhất định.Cho phép sinh sản và dừng lại
Theo dõi.
Thư viện âm thanh: Trình quản lý các âm thanh khác nhau sẽ được sao chép trong ứng dụng, đơn giản hóa
Tải và gán các kênh âm thanh cho mỗi âm thanh.
44
Các lớp chính của động cơ đồ họa sẽ được mô tả chi tiết hơn.
4.2.2.1 WindowDevice
Hình 4.6 Lớp WindowDevice [ELAB.Sở hữu]
45
Như có thể thấy trong Hình 4.6, lớp WindowDevice quản lý các quản trị viên khác nhau của
Đồ họa, trong số đó là: vật lý, sự kiện, kết xuất và quản lý hình ảnh mỗi giây.
Lớp này cho phép bạn tạo cửa sổ nơi OpenGL Canvas hoạt động.Khi tạo cửa sổ
Chính, tập hợp các cấu hình của cả cửa sổ và API đồ họa phải được chỉ định.Bởi vì
rằng phiên bản mới nhất của đường ống OpenGL đang được sử dụng, bối cảnh của việc này phải thích nghi với nói
Đường ống, cho phép shader sử dụng.Khi lớp được khởi tạo, nó sẽ tự động tạo
Quản trị viên Đồ họa, cho phép họ sử dụng chúng ở bất cứ đâu trong ứng dụng.
Một điểm quan trọng khác của lớp này là quản lý vòng lặp chính của ứng dụng, có thể là
được gọi là bên ngoài, gọi các phương pháp tương ứng để làm sạch bộ đệm, bắt giữ các sự kiện,
và xử lý và tạo ra hình ảnh cuối cùng.Các phương pháp được đề cập ở trên tương ứng là:
Làm sạch, đánh dấu và vẽ.Phương pháp sạch có trách nhiệm làm sạch bộ đệm màu và độ sâu, sau khi điều này gọi
Tự động bắt giữ các sự kiện bằng cách gọi phương thức đánh dấu, việc bắt giữ này được gửi đến lớp
EventManager mà bạn có thể làm việc sau này.Cuối cùng, phương pháp vẽ chịu trách nhiệm thực hiện
Bộ đệm đổ trên màn hình và cập nhật của quản trị viên hình ảnh mỗi giây.
4.2.2.2 FPSManager
Hình 4.7 Lớp FPSManager [ELAB.Sở hữu]
Do tốc độ xử lý tuyệt vời mà bộ xử lý có thể thực hiện, cả hệ thống và
Đồ họa, lượng hình ảnh được tạo ra mỗi giây (FPS) vượt quá những hình ảnh cần thiết, thực hiện quá trình tái xử lý
mà cuối cùng có thể ảnh hưởng đến hoạt động của động cơ đồ họa.Cũng xem xét rằng bạn là
thực hiện một động cơ vật lý, phải thực hiện các tính toán theo các hình ảnh được trình bày bởi
Thứ hai, nó là cần thiết để thiết lập một giá trị SPF nhất định.
46
Lớp FPSManager chịu trách nhiệm điều chỉnh số lượng hình ảnh được tạo mỗi giây, thiết lập
Giá trị tối đa cho điều này, theo cách này, các cuộc gọi đến các phương thức của vòng lặp cập nhật khá thấp hơn,
Phát hành rất nhiều tải cho bộ xử lý của cả hệ thống và đồ họa.
4.2.2.3 Quản lý sự kiện
Từ việc cập nhật các sự kiện được tổ chức trong lớp WindowDevice, tập hợp
Các nút tương ứng với mã bàn phím.Mỗi khi nhấn nút, điều này sẽ cập nhật bộ
của các phím được lưu trữ trong vector keyisdown, cho phép tham khảo sau bằng khóa nói trên bất kỳ
một phần của ứng dụng.
Hình 4.8 Lớp EventManager [ELAB.Sở hữu]
4.2.2.4 Kết xuất
Trình kết xuất là lớp chịu trách nhiệm hiển thị các hình ảnh trong bộ đệm mà sau này sẽ bị lật
màn hình.Ban đầu, thực hiện các shader khác nhau được sử dụng bởi ứng dụng, cho dù là shader đỉnh hay
Shader mảnh.Bằng cách sở hữu một con trỏ tới lớp camera ứng dụng, bạn có thể gửi ma trận
về chế độ xem, mô hình và phép chiếu (MVP) cho từng shader được sử dụng bởi các mô hình ba chiều.
47
Hình 4.9 Lớp kết xuất [ELAB.Sở hữu]
4.2.2.5 Vật lý quản lý
Lớp PhysicsManager lưu trữ các thuộc tính được sử dụng bởi động cơ vật lý để khởi tạo
Bao quanh để mô phỏng.
Một số thuộc tính phải được khởi tạo trước đó trước khi thực hiện sẽ được chi tiết bên dưới
Sử dụng động cơ vật lý:
Broadphase là một giai đoạn trong động cơ mà các cặp vật thể không va chạm được loại bỏ
Trong số họ sử dụng một thuật toán đơn giản (như AABB), tất cả điều này trước khi tính toán được gọi là
"Va chạm hẹp", chậm hơn nhiều vì nó xem xét cơ thể va chạm chính xác của
nhân vật.
Cấu hình va chạm sử dụng các bộ lọc va chạm khác nhau được sử dụng bởi
Broadphase, cho phép loại trừ các va chạm sẽ không được thực hiện bởi phần còn lại của hệ thống.
DebugDrawer cho phép tạo ra các mô hình ba chiều từ một nhà máy điều trị tích hợp xuất hiện
Với viên đạn động cơ vật lý, chủ yếu tập trung vào lập trình viên, bởi vì
cơ thể va chạm của các vật thể, hình dạng và góc của các ràng buộc, trong số các khía cạnh khác của mỗi
Thực thể vật lý.
48
Hình 4.10 Lớp PhysicsManager [ELAB.Sở hữu]
Bộ giải cho phép các đối tượng tương tác với nhau một cách chính xác, có tính đến trọng lực,
Các lực lượng liên quan đến các phong trào, va chạm và ràng buộc.
Thế giới động tương ứng với thế giới vật lý nơi sự tương tác giữa tất cả
Đối tượng được chuyển đến động cơ vật lý.
Một phương pháp đã được thực hiện giúp đơn giản hóa rất nhiều việc tạo ra các cơ quan va chạm cho
Các mô hình 3D khác nhau được tải trong ứng dụng.Phương pháp tương ứng với
GeometryTrotoconveXShape, được gửi một hình học và trở lại như một sự trở lại một cách tiếp cận của cơ thể
va chạm, điều này do số lượng xử lý lớn cần thiết trong giai đoạn va chạm hẹp cho
Xác định xem nó có va chạm với một đối tượng khác không.Khi cơ thể va chạm này được tạo ra, con số có thể được thêm vào
3D đến thế giới vật lý thông qua phương pháp addrigidbody.
4.2.2.6 Object3D
Do tính chất của các đối tượng khác nhau tương tác với môi trường ba chiều, nó đã được tạo ra
Một lớp cho phép thể hiện các biến đổi mà các đối tượng này có thể bị ảnh hưởng theo thời gian.Xem xét
Ngoài ra, một động cơ vật lý đã được triển khai, cần phải cho phép sử dụng ma trận biến đổi
49
được xử lý trước bởi động cơ này, điều này có nghĩa là một khi các đối tượng đã được biến đổi vật lý,
Ma trận chuyển đổi cuối cùng của đối tượng nói trên (vị trí, tỷ lệ và xoay) có thể được lấy trực tiếp từ
động cơ vật lý và áp dụng nó cho đối tượng tương ứng.
Hình 4.11 Lớp đối tượng3D [ELAB.Sở hữu]
Nếu đối tượng không có thân cứng (như máy ảnh), các phép biến đổi của nó có thể được gán trực tiếp
.
nhau.Trong trường hợp nếu bạn có một cơ thể cứng nhắc (như hầu hết các đối tượng 3D), ma trận được chỉ định
thu được từ động cơ vật lý, mà các bản cập nhật cho biết thông tin trong thuộc tính btrigidbody tương ứng
Mô hình nói.
50
4.2.2.7 Máy ảnh
Hình 4.12 Lớp camera [ELAB.Sở hữu]
Máy ảnh tạo thành một trong những đối tượng quan trọng nhất của động cơ đồ họa, trong đó
Tạo ra ma trận chiếu, được thiết lập như một quan điểm, và các ma trận quan điểm và mô hình, mà
Cuối cùng họ tạo ra ma trận MVP, tương ứng với một ma trận lưu trữ kết quả của phép nhân
Trong số các ma trận được đề cập ở trên.Ma trận này rất cần thiết cho các đối tượng 3D được định vị
Đồ họa trong thế giới 3D một cách chính xác, một khi mô hình 3D đã được thiết lập ma trận của nó
chuyển đổi, điều này được nhân với ma trận MVP, định vị, xoay và leo lên từng đỉnh của
Mô hình trong shader đỉnh tương ứng.Nếu muốn thực hiện định vị ở vị trí thứ ba
người, bạn có thể sử dụng các phương pháp mà nó sở hữu, trong trường hợp mong muốn định vị đầu tiên
người, vị trí của điều này được xác định bằng cách định vị cabin của xe, vì vậy
Nó trực tiếp gán ma trận chuyển đổi tương ứng với mô hình camera.
51
4.2.2.8 lưới
Mỗi mô hình ba chiều được tải trong ứng dụng cuối cùng được biểu thị bằng một
Lưới, lớp này kế thừa từ một nút, cần thiết để thêm các mô hình vào cảnh, lớp
Cuối cùng, phụ trách gửi cho từng mô hình 3D.
Hình 4.13 Lớp lưới [ELAB.Sở hữu]
Khi hình học mô hình được tải từ tệp obj mặt sóng, phương thức init phải được gọi,
phụ trách gán các thuộc tính khác nhau của shader cho mô hình và tạo bộ đệm các đỉnh bình thường,
Tọa độ UV và chỉ số.Những bộ đệm này được lưu trữ trong GPU, vì vậy kết xuất của chúng nhanh hơn nhiều.
Trước khi gọi phương thức kết xuất, lớp trình kết xuất chịu trách nhiệm cập nhật các thuộc tính mô hình,
Xem hoặc chiếu được gửi đến shader tương ứng của đối tượng đã nói, sau đó là phương thức kết xuất của
người mẫu.Trong phương pháp này, một liên kết shaader được thực hiện được thực hiện, điều đó có nghĩa là kết xuất các hành động
Sau khi bideo này sẽ được thực hiện bằng cách sử dụng shader nói.
52
4.2.2.9 Skybox
Lớp học này cho phép tạo ra một khối lập phương đại diện cho bầu trời của thế giới 3D.Về cơ bản nó là một lớp học
Lưới, nhưng đã được kết hợp với khả năng chỉ định kích thước của khối lập phương được tạo ra.Các
Áp dụng kết cấu trong mô hình được lấy từ lớp texturecube, trong đó
Tập hợp các hình ảnh được lưu trữ trong bộ nhớ tương ứng với từng mặt của khối lập phương.
Hình 4.14 Lớp Skybox [ELAB.Sở hữu]
Skybox có shader riêng, cho phép nhận dưới dạng tham số một kết cấu của loại "Samplerube",
trong đó có sáu mặt của khối lập phương.Bởi vì lưới này phải luôn được định vị vào trung tâm của
ứng dụng, nghĩa là không bị ảnh hưởng bởi bất kỳ ma trận chuyển đổi nào sửa đổi bản dịch của nó, chỉ
Họ gửi ma trận chiếu và xem, điều khiển phép nhân với ma trận mô hình.
4.2.2.10 Shader
Mỗi mô hình 3D cuối cùng sẽ được hiển thị phải sử dụng shader, mỗi shader có
Các tham số riêng, phải được gửi trước cuộc gọi kết xuất.Cho việc tải một shader,
Lớp shaderl Library được sử dụng, tạo ra một thể hiện của shader, tạo ra một chương trình biên dịch và
Thực thi trong GPU.Dự án này sử dụng cả Shader đỉnh và Shaders Fragment, loại bỏ
Shader hình học hoặc shader tessellation, vì chúng không phải là nền tảng cho việc kết xuất cuối cùng của hình ảnh.
Việc gửi các đối số loại thống nhất của mỗi shader được thực hiện thông qua phương pháp truyền tải,
chấp nhận các loại tham số khác nhau, trong đó là kết cấu, kết cấu khối, toàn bộ, điểm
Nổi, vectơ, ma trận, trong số những người khác.
53
Hình 4.15 Lớp Shader [ELAB.Sở hữu]
4.2.2.11 Vật liệu
Hình 4.16 Lớp vật liệu [ELAB.Sở hữu]
Vì lớp cuối cùng, tài liệu được trình bày, chủ yếu phụ trách khái quát các loại khác nhau của
Các vật liệu có thể được áp dụng cho các mô hình 3D, cũng như làm cho shader liên kết
54
Phóng viên.Có nhiều loại vật liệu khác nhau, trong số đó là vật liệu, vật liệu
và vật chất.Vật liệu tương ứng với một vật liệu chung cho số lượng lớn nhất các mô hình 3D
Họ có kết cấu UV với bản đồ bit tương ứng
có khả năng lưu trữ kết cấu kết cấu, khác với lớp kết cấu chung trong phương pháp
Lưu trữ hình ảnh.Cuối cùng, vật liệu là một vật liệu có thể được áp dụng để thực hiện
Các thử nghiệm trên các mô hình vì nó sử dụng một shader có thể được sửa đổi mà không ảnh hưởng đến các shader khác.
4.2.3 Thông số kỹ thuật của xe
Chương này sẽ mô tả tập hợp các thông số kỹ thuật của phương tiện sắp xếp lại tiếp cận
Mô phỏng 3D.
Bộ nối tiếp cận được chọn tương ứng với MR450 TCM.Chiếc xe này có khả năng nâng
Các thùng chứa có trọng lượng tối đa 45 tấn, với kích thước thay đổi từ 20ft đến 40ft.Xe này cho phép
Xoay các thùng chứa lên đến một góc 185 ° (xem Hình 4.17).
Hình 4.17 Góc xoay Spreder [URL 2, 2014]
Để cải thiện tầm nhìn của người lái, chiếc xe này cho phép bạn di chuyển cabin điều khiển xung quanh
2150mm đến một số vị trí từ phía trước và phía sau (xem Hình 4.18), điều này cho phép tăng sự an toàn và hiệu quả của
công việc được thực hiện bởi người lái xe.
Hình 4.18 Cabin trượt [URL 2, 2014]
55
Hình 4.19 Khoảng cách liên quan đến góc quay [URL 2, 2014]
Khoảng cách tương ứng trong Hình 4.19 có thể được quan sát trong Bảng 4.1.
Bảng 4.1 Khoảng cách về góc quay [URL 2, 2014]
Mô hình Tamaño (MM)
Thùng chứa 20ft
4300
8300
13000
Thùng chứa 40ft
5400
9100
14900
56
Chương 5: Thực hiện
Trong chương này, một phân tích sẽ được thực hiện dựa trên sự tuân thủ các mục tiêu khác nhau của dự án,
đánh giá trong trường hợp đầu tiên tạo ra và tích hợp các thành phần khác nhau tạo nên động cơ
đồ thị, sau đó là sự phát triển và tích hợp của các mô hình 3D khác nhau tạo nên cả
phương tiện như thế giới, sau đó, một phân tích về hàm ý vật lý được thực hiện cho thế giới
Mô phỏng, hệ thống va chạm, ràng buộc, hệ thống lái xe và cuối cùng là sửa đổi
Họ đã làm với mục đích cải thiện ứng dụng.
5.1 Động cơ đồ họa
Sự phát triển của động cơ đồ họa đã được thực hiện dựa trên các loại động cơ đồ họa khác, chẳng hạn như
IRRICHT [URL 29, 2014], Crystalspace [URL 30, 2014] và Ogre3D [URL 31, 2014].Mỗi động cơ trong số này
Đồ họa thực hiện các kỹ thuật lập trình đồ họa khác nhau đã được sử dụng để phát triển điều này
giả lập.Một số kỹ thuật đã được thực hiện trong công cụ đồ họa sẽ được giải thích dưới đây.
5.1.1 Hệ thống tọa độ và MVP
Hệ thống tọa độ đã được triển khai xem xét một khu vực cắt tập trung vào điểm
Nguồn gốc, nghĩa là tại thời điểm này, điều này đơn giản hóa các biến đổi khác nhau có thể được thực hiện trong
mô hình ba chiều.Trong Hình 5.1, bạn có thể thấy hai vùng cắt, trong đó nó đã được chọn
Thứ hai từ trái sang phải theo hệ tọa độ 3D Cartesian.
Hình 5.1 Các vùng cắt [Wright et al., 2007]
Khi hệ tọa độ và hệ thống cắt được thiết lập, loại hình chiếu
sẽ sửa đổi các đỉnh của từng mô hình muốn được biểu diễn trên màn hình, cũng như ma trận xem
và mô hình, cuối cùng tạo thành ma trận MVP.Trong đường ống OpenGL cũ, có các ma trận được xác định trước
57
và các hệ thống pin ma trận mà từ đó người ta có thể thêm hoặc loại bỏ ma trận tùy thuộc vào
thuận lợi.Mặc dù sự đơn giản mà phương pháp này tài trợ, nhưng nó không có thể mở rộng và khó sửa đổi trong một
Môi trường phát triển động, đó là lý do tại sao trong đường ống OpenGL mới, chúng đã được thành lập như các chức năng
đã lỗi thời, do đó cho phép người dùng xác định ma trận và pin của riêng họ, có thể được gửi đến
Các shaders độc lập.
Hình 5.2 Ma trận chiếu [Wright et al., 2007]
Từ những điều trên, thông qua việc sử dụng thư viện toán học GLM, những cái mới đã được xác định
Cấu trúc dữ liệu cho phép làm việc với các vectơ và ma trận, ngoài ra thì cửa hàng sách này có ma trận
được xác định trước, chẳng hạn như ma trận chiếu trong phối cảnh hoặc trực giao, có thể được quan sát trong Hình 5.2,
trong đó chế độ xem thu được từ buồng (A) được trình bày và ma trận chiếu tương ứng của nó (B).
Ma trận này được nhân với tất cả các đỉnh mà sau này sẽ được biểu diễn trên màn hình.Các
Vista và ma trận mô hình ban đầu là ma trận nhận dạng, có nghĩa là phép nhân với
Những ma trận này sẽ không ảnh hưởng đến kết quả.Dưới đây là sự khởi tạo của ba ma trận, được thực hiện để
Từ các phương pháp được cấp bởi GLM:
.;// Đặt mô hình*Xem ma trận cho các biến đổi mô hìnhMatrix = glm :: mat4 (1.0f);ViewMatrix = GLM :: mat4 (1.0f);
58
5.1.2 Kết cấu
Mỗi kết cấu được áp dụng cho các vật liệu của từng mô hình được tải trong bộ nhớ
Thông qua hiệu sách Freeimage, hiệu sách này cho phép nhiều định dạng hình ảnh khác nhau được tải trong các định dạng khác nhau
Độ sâu, lưu trữ từng giá trị RGBA một cách riêng biệt và cho phép đạt được độ cao và chiều rộng của hình ảnh.TRONG
Trường hợp của một kết cấu phẳng với tọa độ UV thông thường, hình ảnh đơn được tải, nó thu được
Bộ bit của điều này được tải trong bộ nhớ và cuối cùng kết cấu trong OpenGL được tạo ra.Sau đó tôi biết
Trình bày mã gửi một bộ bit đến kết cấu OpenGL:
GlactiveTexture (Texid);GLGENTEXTURES (1, & Texid);glbindtexture (gl_texture_2d, texid);gltexparameterf (GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);gltexparameterf (GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);gltexparameterf (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);gltexparameterf (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);glteximage2d (gl_texture_2d, 0, gl_rgba, chiều rộng, chiều cao, 0, gl_bgra, gl_unsigned_byte, bit);
Để thiết lập loại kết cấu, mục tiêu của điều này phải được xác định, đối với kết cấu của hai tọa độ
Nó được thành lập dưới dạng g_texture_2d.Tập hợp các tham số được xác định khi tạo kết cấu
Chúng cho phép thiết lập thuật toán mở rộng và giảm pixel, cũng như thuật toán gói
trong đó áp dụng cho tọa độ UV.Cuối cùng, cuộc gọi đến hàm glteximage2d cho phép tạo kết cấu,
có thể được sử dụng sau này bằng cách làm cho sự ràng buộc của điều này theo Texid của nó.
Trong trường hợp kết cấu khối được sử dụng để tạo ra skybox, cần phải thay đổi mục tiêu thành
G_texture_cube_map, trong đó các tham số tương tự như kết cấu thông thường được gửi, với
Sự khác biệt mà các bản đồ bit của mỗi khuôn mặt phải được gửi.Bởi vì mục tiêu được gửi đến phương thức
Gteximage2d là một tập hợp các giá trị liên tiếp, không cần thiết phải khai báo riêng biệt,
Cho phép bạn sử dụng một phán đoán cho tải của nó.Sau đó, tải của một bản đồ kết cấu khối:
GlactiveTexture (Texid);GLGENTEXTURES (1, & Texid);glbindtexture (GL_TEXTURE_CUBE_MAP, TEXID);gltexparameterf (GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);gltexparameterf (GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);gltexparameterf (GL_TEXTURE_CUBE_MAP, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE);gltexparameterf (gl_texture_cube_map, gl_texture_mag_filter, gl_linear);gltexparameterf (GL_TEXTURE_CUBE_MAP, GL_TEXTURE_MIN_FILTER, GL_LINEAR);for (int i = 0; i <6; i ++)
glteximage2d (gl_texture_cube_map_positive_x + i, 0, gl_rgba, chiều rộng, chiều cao, 0, gl_bgra,
GL_UNSIGNED_BYTE, bit [i]);
59
5.2 Phát triển và tích hợp các mô hình 3D
Hầu hết các mô hình tạo nên thế giới ba chiều đã phát triển thông qua
Ứng dụng Blender, phần còn lại của các đối tượng đã được lấy từ cơ sở dữ liệu mô hình miễn phí.Mỗi
Các mô hình này cuối cùng đã được xuất sang định dạng OBJ, bởi vì việc tải các mô hình trong ứng dụng được thực hiện
thông qua nhà nhập khẩu riêng của nó chỉ chấp nhận định dạng này.
Mô hình stacker tiếp cận bao gồm một số phần, sau đó được tham gia
ứng dụng.Trong Hình 5.3, bạn có thể thấy mô hình xe hoàn chỉnh, nơi chúng được tìm thấy theo một cách
tách các bộ phận sáng tác nó.Mỗi phần này chỉ được thực hiện bằng cách sử dụng kỹ thuật
của mô hình đa giác, không cần phải thực hiện nurbs hoặc điêu khắc (các công cụ được tìm thấy
Có sẵn trong ứng dụng mô hình).
Hình 5.3 Mô hình máy xay sinh tố tiếp cận [ELAB.Sở hữu]
Như đã đề cập ở trên, định dạng xuất được sử dụng để tạo ra các mô hình khác nhau của
Simulator là obj mặt sóng, chủ yếu là do sự đơn giản của nó và thực tế là một hình ảnh động là không cần thiết
trong các mô hình.Định dạng này lưu trữ thông tin của từng đỉnh của mô hình, các đỉnh bình thường của
Những đỉnh này, tọa độ UV của kết cấu và các hình tam giác tạo nên từng mặt có thể nhìn thấy của mô hình.
Công cụ đồ họa cho phép tải định dạng này bằng cách lưu trữ theo vector thông tin của từng phần tử
đã đề cập ở trên và một bộ đệm lưu trữ tập hợp các chỉ mục của các đỉnh tạo nên mỗi
Tam giác.
60
Dưới đây là một ví dụ về mô hình 3D được lưu trữ ở định dạng OBJ, tương ứng với một
Bánh xe xe tiếp cận.Tập dữ liệu phải được lưu trữ trong một tập hợp các vectơ được xác định bởi
Từ đầu tiên của mỗi dòng, trong trường hợp các đỉnh được ký hiệu là "V", tọa độ UV của mỗi đỉnh
Đối với một "VT", những cái bình thường cho một "VN" và cuối cùng là khuôn mặt của mỗi tam giác cho một "f".Theo cách này, được thiết kế riêng
Tiến trình đó đang được thực hiện trong tệp, các vectơ dữ liệu khác nhau được lưu cho đến khi các mặt của
các hình tam giác, nơi chúng phải hình thành từ các vectơ dữ liệu được lưu trước đó theo
chỉ số mà khuôn mặt chỉ ra.
# Blender v2.71 (phụ 0) Tệp OBJ: 'Reachstacker.Blend' # www.blender.org O xi lanh_cylinder.004 V -0.621132 0.000000 1.558658 V -0.621132 81926VT 0,217293 0,982106 VT 0,479564 0,873766 ... VN 0,000000 -0.831500 -0.555600 VN 0,000000 /85/50 56/88/50 72/105/50 F 54/98/50 70/106/50 71/107/50 F 52/92/50 68/108/50 69/109/50 F 64/90/5063/94/50 79/110/50 ...
Trong khuôn mặt đầu tiên, bạn có thể thấy bộ dữ liệu 58/86/50 74/103/50 75/104/50, có nghĩa là điều đó
Đỉnh số một tương ứng với 58, có kết cấu 86 và bình thường 50, sau đó các đỉnh số hai tương ứng
Ở 74, nó có kết cấu 103 và bình thường 50;Và cuối cùng là đỉnh thứ ba tương ứng với 75, có kết cấu 104 và
Bình thường 50. Trong hầu hết các trường hợp, bình thường của ba đỉnh tạo nên khuôn mặt là như nhau, nhưng
Điều này có thể thay đổi khi mô hình 3D được hoạt động trong công cụ mô hình hóa được sử dụng.
5.3 Tích hợp động cơ vật lý
Khi một hệ thống định vị, xoay và tỷ lệ cho các mô hình 3D khác nhau đã được thiết lập,
Sự kết hợp của một động cơ vật lý tái sử dụng các giá trị này và sửa đổi chúng theo các sự kiện hoặc hành động khác nhau
Chúng được thực hiện trong thế giới vật chất.Thế giới vật lý tương ứng với một hệ thống độc lập với môi trường đồ họa
mà liên tục thực hiện các tính toán dựa trên các cơ thể vật lý được tìm thấy trong điều này, và một lần
thực hiện các tính toán tương ứng, thông tin từ các ma trận chuyển đổi của
cơ thểMỗi cơ thể này tương ứng với các phương pháp hình học với các mô hình 3D khác nhau
Chúng đã được tải trong động cơ đồ họa.
61
Vật lý đạn cấp một bộ các cơ thể va chạm có thể được điều chỉnh cho một số mô hình 3D nhất định như
Phương pháp tiếp cận hình học của những điều này.Một số cơ thể va chạm này tương ứng với hình khối, hình cầu, ống,
trong số những người khác.Mặc dù ở trên, nó đã được chọn để thực hiện một phương pháp cho phép xấp xỉ
thực tế hơn về cơ thể va chạm của hầu hết các mô hình mô phỏng, chủ yếu dựa trên
Hình học mô hình gốc.
Trong thuật toán sau, bạn có thể thấy việc tạo ra một btconvexshape, tương ứng với một
Cơ thể va chạm được hình thành từ hình học của mô hình 3D.Kết quả của thế hệ cơ thể nói trên
va chạm được xử lý một lần nữa để đơn giản hóa nó (cho phép tính toán được nhiều hơn
Nhanh chóng), cuối cùng sẽ trả lại cơ thể va chạm gần đúng cho mô hình đó.
btconvexshape *PhysicsManager :: PoMetryToconveXShape (Hình học *Hình học) {// Tạo lưới tam giác Bttrianglemesh *trimesh = new bttrianglemesh ();for (int i = 0; i <(int) hình học-> chỉ số.size (); i += 3) {glm :: vec3 vertexa = hình học-> đỉnh [hình học-> chỉ số [i]];GLM :: VEC3 vertexb = hình học-> đỉnh [hình học-> Chỉ số [i + 1]];GLM :: VEC3 vertexc = hình học-> đỉnh [hình học-> Chỉ số [i + 2]];btVector3 btvertexa (vertexa.x, vertexa.y, vertexa.z);btVector3 btvertexb (vertexb.x, vertexb.y, vertexb.z);btVector3 btvertexc (vertexc.x, vertexc.y, vertexc.z);Trimesh-> Addtriangle (btvertexa, btvertexb, btvertexc);} // chuyển đổi lưới tam giác thành hình dạng lồi btconvexshape *tmpshape = new btconvextrianglemeshshape (trimesh);// Tạo một xấp xỉ thân btshapehull *Hull = new Btshapehull (tmpshape);BTSCalar Margin = tmpShape-> getMargin ();Hull-> buildhull (lề);tmpshape-> setuserpulum (Hull);trả lại tmpshape;}
Một khi cơ thể va chạm cho mô hình 3D được sở hữu, nó phải được kết hợp vào thế giới vật lý, để
Điều này sẽ tạo ra một btrigidbody, xác định khối lượng của cơ thể, quán tính, xoay, định vị và ma sát của nó.Anh ta
Trung tâm khối cơ thể thích hợp hơn để xác định nó trong công cụ mô hình hóa, tương ứng với điểm
Nguồn gốc của hệ tọa độ Cartesian, nghĩa là điểm (0, 0, 0).
Nếu mô hình 3D đã được khởi tạo bằng cách tạo btrigidbody và sau đó được thêm vào thế giới
Vật lý, ma trận chuyển đổi cuối cùng được gửi đến shader tương ứng có thể được lấy từ
của phương pháp GetOpenglMatrix được cấp bởi Vật lý Bullet.Phương thức này trả về một ma trận chuyển đổi đã
được xử lý, nghĩa là, một ma trận có xoay, dịch và tỷ lệ cuối cùng phải được áp dụng cho mô hình.
62
Dưới đây là cách để có được ma trận này:
biến đổi Bttransform;RigidBody-> getMotionState ()-> getWorldTransform (Transform);biến đổi.getOpEnglMatrix (GLM :: value_ptr (ma trận));
5.3.1 Mặt nạ va chạm
Bởi vì một số cơ thể nhất định là không thể va chạm với nhau, đặc biệt là các bộ phận tạo nên
Người tiếp cận, cần phải xác định một số mặt nạ va chạm nhất định loại bỏ các xác nhận va chạm giữa
cơ thể trong giai đoạn đầu của đường ống động cơ vật lý.Mặt nạ va chạm được khai báo bởi một
Cấu trúc dữ liệu đơn giản, trong thuật toán được trình bày dưới đây, việc khai báo một
tập hợp các mặt nạ cho phép nhóm các loại cơ thể khác nhau bằng một cái tên, trong đó
Sau đó, chúng được sử dụng để tuyên bố hành vi được thực hiện bởi một cơ quan va chạm với
phần còn lại.
#Define bit (x) (1 << (x)) enum collisionTypes {
Col_nothing = 0, // va chạm với không có gì col_ground = bit (0), // va chạm với col_reachstacker = bit (1), // va chạm với ReachStacker col_container = bit (2), // va chạm với container col_box = bit (3), // va chạm với hộp
};// Xác định các loại va chạm int groundCollideswith = col_ReachStacker |Col_container;int ReachStackerCollideswith = col_ground |Col_container;int containerCollidesWith = col_ground |Col_ReachStacker |Col_container;int collisionboxcollideswith = col_box;
Khi các loại mặt nạ đã được xác định, tại thời điểm kết hợp các mô hình vào thế giới vật lý, nó phải
Chỉ định cơ thể cứng nhắc của bạn, loại mặt nạ của nó và các mặt nạ mà va chạm này, nghĩa là gửi
Btrigidbody, loại của nó từ các collisiontypes có thể sử dụng (hoặc còn được gọi là nhóm lọc) và mặt nạ
với sự va chạm này tương ứng.
5.3.2 Thực hiện ràng buộc
Bởi vì các bộ phận khác nhau tạo nên chiếc xe yêu cầu kết nối vật lý cho phép
Áp dụng các lực khác nhau để sửa đổi góc của những điều này, sử dụng ràng buộc, về cơ bản
cho phép thiết lập kết nối giữa hai cơ thể vật lý giữ nguyên các thuộc tính khác của chúng, cũng như
Ngoài ra con số va chạm của bạn.
63
Đối với phương tiện sắp xếp lại, ràng buộc của loại thanh trượt và loại bản lề được thực hiện.Các ràng buộc
Thanh trượt chủ yếu được đặc trưng bằng cách cho phép một loại trượt giữa hai cơ thể, một trong số đó
Nó vẫn cứng nhắc và các di chuyển khác qua các lực lượng.Ngoài việc áp dụng các lực lượng cho
Chuyển vị, cả giới hạn dịch thuật và tuyến tính có thể được xác định.
Như có thể thấy trong Hình 5.4, phần bùng nổ của xe được kết nối bởi loại này
ràng buộc, trong đó phần màu xanh của sự bùng nổ là phần vẫn cứng nhắc, trong khi phần màu đỏ là
di chuyển thông qua ứng dụng của các lực lượng.
Hình 5.4 Loại thanh trượt ràng buộc trong bộ nối tiếp cận Boom [ELAB.Sở hữu]
Thuật toán được trình bày dưới đây, theo đó ràng buộc thanh trượt được tạo:
// Kết nối boom_1 với boom_2 locala.setidentity ();LocalB.SetIdentity ();locala.setrotation (btquaternion ((float) m_pi_2, 0,0f, 0,0f));locala.setorigin (BTVector3 (0,0F, 0,0F, 0,0F));localb.setrotation (btquaternion ((float) m_pi_2, 0,0f, 0,0f));localb.setorigin (BTVector3 (0,0F, 0,0F, 0,0F));btsliderconstraint *sliderboom2ct = new BtsLiderConstraint ( *Rigidboom_1, *Rigidboom_2, locala,
Localb, đúng);
Hình 5.5 Loại bản lề ràng buộc trong thiết bị phân phối bộ phận tiếp cận [ELAB.Sở hữu]
64
Ràng buộc bản lề được đặc trưng bằng cách cho phép xoay qua một trục giữa hai cơ thể,
Trong trường hợp giống như ràng buộc trước đó, một trong những điều này vẫn còn cứng nhắc.Trong ràng buộc này, bạn cũng có thể
Xác định giới hạn xoay.Trong Hình 5.5, bạn có thể thấy kết nối được thực hiện giữa hai phần của máy rải của
Người tiếp cận, trong đó phần màu xanh vẫn còn cứng và phần màu đỏ thực hiện một vòng quay dựa trên
trục nhất định.
Thuật toán được trình bày dưới đây từ đó bản lề ràng buộc được tạo:
// Kết nối Spreader_1 với Truyền_2 Locala.SetIdentity ();LocalB.SetIdentity ();locala.setrotation (btquaternion ((float) m_pi_2, (float) m_pi_2, 0,0f));locala.setorigin (BTVector3 (0,0F, -0,5f, 0,0F));localb.setrotation (btquaternion ((float) m_pi_2, (float) m_pi_2, 0,0f));localb.setorigin (BTVector3 (0,0F, 0,5F, 0,0F));bthingeconstraint *hingespreader2ct = new
Địa phương, địa phương, đúng);
Chiếc xe cuối cùng bao gồm bảy ràng buộc, là sự kết hợp giữa các ràng buộc
của loại thanh trượt và loại ràng buộc của loại bản lề.
5.3.3 Hệ thống lái xe
Hệ thống lái xe ban đầu có thể được nghĩ đến bằng cách sử dụng ràng buộc của loại bản lề
Cho phép quay bánh trước của xe, vấn đề của phương pháp này là khả năng hạn chế
Nó cung cấp một khi bạn muốn cải thiện chủ nghĩa hiện thực này, bằng cách áp dụng giảm xóc trong
Bánh xe, hệ thống phanh, thao tác xe, trong số những người khác.Vật lý đạn cấp một hệ thống lái xe
Bằng thuật toán đúc tia, chủ yếu được sử dụng để phát hiện các bề mặt có thể nhìn thấy.Trong này
Hệ thống lái xe được cấp bởi Bullet có thể để thiết lập lượng bánh xe được coi là thuận tiện,
Nén hệ thống treo, ma sát của bánh xe, ảnh hưởng của xoay, thư giãn của các bánh xe, trong số những người khác.
Cũng xem xét loại lái xe cụ thể mà các phương tiện tiếp cận sở hữu, nơi các bánh xe
phía trước tác dụng lực chuyển động và phía sau cho phép hướng của xe, hệ thống
Dây dẫn động cơ vật lý cho phép bạn xác định những bánh xe nào chịu trách nhiệm hoàn thành từng chức năng,
Thiết lập giới hạn tốc độ, lực phanh, góc quay tối đa, trong số các lực khác.
Bởi vì hệ thống mặt nạ va chạm không áp dụng cho các bánh xe từ cơ thể cứng nhắc nơi
Chúng được tham gia, cần phải xác định lại phương pháp Raycasting được sử dụng, nếu không, chiếc xe không
Anh ta sẽ va chạm với bất kỳ cơ thể nào, giảm dần về kịch bản vô hạn.Vì vậy, mặt nạ va chạm
Chúng hoạt động đúng trên các bánh xe tại thời điểm Raycasting, cần phải xác định lại một lớp mới
mà kế thừa các lớp vật lý đạn được xác định trước phụ trách thực hiện raycasting.
65
Việc triển khai này được thực hiện trong lớp ReachStackerRayCaster, kế thừa lớp
Btvehicleraycaster.
5.4 Hệ thống quá giang
Do các loại container mà bộ đặt tiếp cận có thể hoạt động,
Việc thực hiện một hệ thống chuỗi được gắn vào từng lịch trình của máy rải, cũng như các điểm
của quá giang mỗi container.Điều này cho phép bạn điều chỉnh sự lây lan theo kích thước tương ứng với mỗi
Container và phát hiện khi các hệ thống chuỗi này va chạm với nhau.Trong Hình 5.6 bạn có thể
Quan sát hệ thống chuỗi liên kết với cả bộ nối tiếp cận và container.
Hình 5.6 Hệ thống chuỗi [ELAB.Sở hữu]
Xem xét rằng một phát hiện va chạm phải được thực hiện cho mỗi điểm va chạm, nó đã được
Kết hợp lớp mycontactresultcallback, trong đó xác định lại phương pháp bổ sung của một lớp phát hiện
của các va chạm cơ sở cơ bản.Định nghĩa lại này cho phép chỉ định theo giá trị boolean nếu hai cơ thể
Họ đang ở trong tình trạng va chạm.Khi điều này được thực hiện, va chạm có thể được xác minh một cách độc lập
Giữa mỗi chuỗi, cho dù từ xe tập hợp lại như của các container.Trong trường hợp tồn tại
Một sự va chạm của từng điểm này, người dùng có khả năng tạo móc của container tại spred,
Điều đó bên trong thực hiện một liên kết container với xe thông qua các ràng buộc.Sự giải phóng của
Container được thực hiện bằng cách loại bỏ các ràng buộc liên quan đến kết nối nói trên.
66
Thuật toán để tạo ra chuỗi va chạm cho bốn container được trình bày dưới đây:
Container *newContainer = new Container (hàng hóa);for (int j = 0; j <4; j ++) {
Lưới *collisionboxcargo = temp_collisionbox-> clone ();collisionboxcargo-> init ();cảnh-> addChild (collisionboxcargo);PhysicsManager-> addrigidbody (CollisionBoxCargo, 0,001F, GLM :: VEC3 (0), 1.0F, GLM :: VEC3 (0), GLM :: VEC3 (0,0F), Shapecollisionbox, Col_box, CollisionboxCollideswith);newContainer-> addCollisionBox (true, collisionboxcargo-> getrigidbody (), j, PhysicsManager);} container.push_back (newContainer);
Bởi vì các thùng chứa có thể thay đổi cả về số lượng và loại, một sự sắp xếp của
Các container nơi mỗi trong số này giữ thông tin của các cơ thể cứng nhắc của container và bốn cái của nó
chuỗi.Điều này cho phép một mặt phát hiện sự va chạm giữa các chuỗi ngăn xếp tiếp cận với mỗi chuỗi
một trong những chuỗi của các container, và trong trường hợp bốn điểm đang va chạm, xây dựng
Ràng buộc giữa cơ thể cứng nhắc của spreder và cơ thể cứng nhắc của container.
5.5 Tích hợp âm thanh
Việc tích hợp âm thanh cho ứng dụng cung cấp trải nghiệm người dùng lớn hơn khi sử dụng
điều này, cũng cho phép dễ dàng hiểu hơn những hành động đang được thực hiện theo một cách
đồng thời.Thư viện SDL_Mixer cho phép bạn tải các âm thanh khác nhau trong bộ nhớ, có thể được sao chép
trong các kênh cấu hình khác nhau trong thời gian thực hiện.Ngoài việc tải và tái tạo các âm thanh này, nó là
cần thiết điều chỉnh thời gian sinh sản của những điều này theo các điều kiện đang được thực hiện trong mỗi
thời điểm, nghĩa là có thể xác định liệu một âm thanh nhất định phải được sao chép vô hạn thành một
thời điểm nhất định, hoặc nếu điều này sẽ được sao chép chỉ một lần.
Một số điều kiện cho phép xác định thời lượng của âm thanh là giới hạn của
Xoay hoặc dịch của ràng buộc, nếu chiếc xe đang chuyển động, nếu nó ngược lại, nếu nó kết thúc
Để móc một container, trong số những người khác.
Xem xét những điều trên, lớp âm thanh đã được triển khai, lưu trữ thông tin của một bản nhạc
âm thanh và kênh mà nó sẽ được sao chép, cho phép tải âm thanh, sao chép nó, dừng lại và loại bỏ nó khỏi
Bộ nhớ khi ứng dụng kết thúc.Xem xét rằng mỗi âm thanh phải được lưu trữ trong một kênh khác nhau,
Lớp âm thanh đã được triển khai, quản lý tập hợp tổng số âm thanh được tải trong ứng dụng,
Điều chỉnh động lượng kênh cần thiết cho việc tái tạo từng âm thanh theo một cách nào đó
67
độc lập.Sau khi ứng dụng kết thúc, lớp này cũng cho phép phát hành bộ nhớ của
Tất cả các âm thanh được tải.
Phương pháp tĩnh của lớp âm thanh được trình bày bên dưới để tải âm thanh trong
bộ nhớ và sau đó là một ví dụ về việc sử dụng nó:
Âm thanh *Soundl Library :: Thêm (const char *name, const char *soundfile) {mix_allocatechannels (LastChannel + 1);Âm thanh *tin tức = âm thanh mới (tên);tin tức-> tải (SoundFile, LastChannel ++);SoundHash [Tên] = Tin tức;trả lại tin tức;} // Các hiệu ứng âm thanh sẽ được sử dụng âm thanh *SND_TRuck_IDLE = Soundl Library :: Thêm ("Truck_idle", "Media/Truck_idle.wav");
5.6 Phụ lục
Để cải thiện hình dung của môi trường ba chiều, khả năng nhìn thế giới ở
Chế độ khung dây, nghĩa là chỉ xem các dòng tạo nên từng mô hình trong
Kịch bản ba chiều.Trong Hình 5.7, bạn có thể thấy chế độ khung được kích hoạt, cho phép xem qua
của các đối tượng dễ dàng.
Hình 5.7 Trình mô phỏng chế độ khung dây [ELAB.Sở hữu]
68
Chương 6: Kết luận
Từ sự phát triển của dự án này, các biến khác nhau
tham gia vào việc phát triển một ứng dụng đồ họa, ngoài tầm quan trọng của việc sử dụng một phương pháp
Công việc cho phép bạn chỉ định các cột mốc nhanh chóng, xem xét một thiết kế đơn giản và hiệu quả.Bởi vì
Đường cong học tập phức tạp, cũng cần phải thích nghi với các thay đổi khác nhau được trình bày cho những gì
chiều dài của dự án, chủ yếu là do sự kết hợp của các thư viện mới cho sự phát triển của
Dự án và ứng dụng các thuật toán đang cải thiện hoạt động cơ sở động cơ.
Tập hợp các thư viện được sử dụng đã được chọn dựa trên phân tích khả năng tương thích giữa chúng,
dựa trên sự đơn giản và tiềm năng mà họ cung cấp, cũng xem xét rằng những điều này được hỗ trợ bởi một
tài liệu rộng rãi và một cộng đồng tích cực, do đó cho phép quá trình học tập và đi
Thích nghi với những thay đổi khác nhau mà động cơ phải chịu đựng theo thời gian.Do bản chất của
Dự án, các thư viện đa nền tảng cũng đã được chọn, do đó cho phép dự án dễ dàng
cho các nền tảng khác nhau.Mặc dù nhiều phương thức và hàm được cấp bởi bộ API
Họ đơn giản hóa rất nhiều công việc sẽ được phát triển, sự tích hợp của các phần khác nhau tạo nên kiến trúc
của động cơ đồ họa không phải là một quá trình tầm thường, do nhiều cách khác nhau trong đó có thể
theo lịch trình, tùy thuộc chủ yếu vào mức độ trừu tượng cuối cùng sẽ được cấp cho nhà phát triển của
giả lập.
Mặc dù có rất nhiều động cơ đồ họa, nhưng hiện tại rất khó tìm thông tin
liên quan đến việc tạo ra một, mặc dù nhiều kỹ thuật được sử dụng được công nhận rộng rãi,
Tích hợp thường thay đổi tùy thuộc vào nhu cầu cụ thể của nhà phát triển, phải
thực hiện các thuật toán yêu cầu kiến thức toán học sâu rộng được định hướng
Đô họa may tinh.Trong trường hợp động cơ đồ họa được sử dụng làm điểm tham chiếu, nhiều kỹ thuật
rằng những điều này được thực hiện trong các API khác nhau, cho dù chúng là Trình điều khiển cửa sổ, API
Các biểu đồ như OpenGL hoặc Direct3D, các nhà sách vật lý khác nhau, thư viện quản lý hình ảnh, trong số những người khác;
cản trở quá trình phân tích và trừu tượng hóa việc thực hiện của nó.
Việc thực hiện một động cơ vật lý đã cho phép trừu tượng từ các tính toán toán học phức tạp
tham gia vào hầu hết các hành động được thực hiện trong mô phỏng, cho phép tạo ra một
Xấp xỉ khá gần với thực tế.Việc sử dụng các ràng buộc theo cùng một cách đã cho phép xác định
Các kết nối cơ bản được đặt ra bởi các bộ phận tạo nên chiếc xe tập hợp lại, mà không bỏ bê
Các tính chất vật lý, chẳng hạn như ma sát, quán tính, khối lượng, trong số những người khác.Thế hệ của các cơ thể va chạm
Gần đúng với hình học ban đầu của các mô hình 3D, nó cũng có nghĩa là một sự cải thiện đáng kể
Trong mô phỏng, thiết lập các va chạm thực tế hơn nhiều và cuối cùng cải thiện trải nghiệm người dùng
Tại thời điểm sử dụng trình giả lập.
69
Ý tưởng chính của dự án này là cấp một hệ thống kết xuất đơn giản, cho phép
Kết hợp các mô hình ba chiều khác nhau vào cảnh mà không gặp khó khăn lớn, cho phép chúng cung cấp cho mỗi
Một trong những mô hình đặc điểm vật lý này mô phỏng thực tế hơn sự tương tác của chúng với nhau.Bởi vì
Cấu trúc động cơ đồ họa, sự phát triển của các ứng dụng có thể được tạo ra từ điều này không bị giới hạn
Chỉ đến khu vực cổng, nhưng với bất kỳ loại mô phỏng nào được cho là.
Về công việc trong tương lai, các cải tiến có thể được thực hiện trong phần đồ họa động cơ, chẳng hạn như
Kết hợp một hệ thống bóng năng động thông qua các bản đồ bóng tối, hệ thống ánh sáng, kết hợp của
Một hệ thống GUI tương thích với các shader sử dụng ma trận chiếu trực giao, tích hợp
Phản xạ, bản đồ kết cấu mới, v.v.Cũng như những cải tiến trong hệ thống kết xuất, chẳng hạn như
Hệ thống loại bỏ frustum được sử dụng để che giấu các mô hình không được tìm thấy trong phổ xem
của máy ảnh, việc lưu trữ các mô hình bằng các cây phân vùng nhị phân của không gian,
Tinh chế đồ họa bằng cách sử dụng shader hình học, trong số những người khác.
Xem xét rằng thế giới ba chiều có thể năng động, vị trí và loại khác nhau
Các thùng chứa có thể được đưa ra từ một trình soạn thảo đồ họa của các kịch bản tương thích với trình giả lập, đơn giản hóa
Đáng chú ý là việc tạo ra các môi trường động thích ứng với nhu cầu của mỗi người dùng.Bởi vì
rằng các phương pháp tải các mô hình ba chiều và tạo ra các cơ thể động va chạm
Tương ứng với các mô hình chung, ba chiều phù hợp với loại môi trường có thể được tích hợp
Rằng bạn muốn mô phỏng, có thể là một hiên của các container, tàu, xe lửa, cần cẩu tải, trong số những người khác.
70
Người giới thiệu
[Shalini, ౨౦౦౪] Shalini Govil-on, "Nguyên tắc của đồ họa máy tính", Lisbon: ౦ -౩౮౭-౯౫౫౦౪, ౨౦౦౪, kế hoạch.
[Bohhudas, 2008]
Haryana, Giải pháp hội nghị thuần túy Pvt Ltd., 2008, trang 2-3.
[Canós et al., 2003] Jose H. Canós, Patricio Letelier, Mª Carmen, Phương pháp Agile trong sự phát triển của
Phần mềm, Đại học Bách khoa Valencia, Hội thảo VIII phần mềm và ngày kỹ thuật cơ sở dữ liệu
(Jisbd), nước ngoài, Alicante, 2003, trang 59.
[Gregory, 2009] Jason Gregory, Kiến trúc động cơ trò chơi, ISBN: 978-1-4398-6526-2, 2009, trang 28-49.
[Reddy, 2011] Martin Reddy, Thiết kế API cho C ++, Nhà xuất bản Morgan Kaufmann, ISBN 978-0123850034, 2011,
Trang 10-50.
[Hearn và Baker, 2005] Donald Hearn, M. Pauline Baker, "Đồ họa máy tính với OpenGL", Pearson
Hội trường Prentice, ISBN 980-84-205-3980-5, 2005, trang 81-82.
[Shreiner, 2010] Dave Shreiner, Hướng dẫn lập trình OpenGL Phiên bản thứ bảy, Addison-Wesley Professional,
ISBN 978-0-321-55262-4, 2010, trang 10-14.
[Smed, 2008] Jouni Smed, Mạng cho các trò chơi máy tính, Tạp chí trò chơi máy tính quốc tế
Công nghệ, Tập 2008, ID bài viết 928712, 1 trang, 2008.
[Maroto, 2005] Joaquín Maroto Ibáñez, Phương pháp cho thế hệ môi trường ảo phân tán và
Ứng dụng để lái xe mô phỏng trực tuyến, Đại học Bách khoa Madrid, Luận án tiến sĩ về kỹ thuật
Cơ học, 2005.
[Wright y Lipchak, 2004]
và tham khảo, Addison-Wesley Publishers Inc., ISBN 978-0321712615, 2004, trang 5-30.
[Wright và cộng sự, 2007]
Đồ họa máy tính, ISBN 0-321-49882-8, 2007, trang 1-23.
[Wright và cộng sự, 2014] Richard S. Wright, Jr., Nicholas Haemel, Hướng dẫn toàn diện và tham khảo SIÊU TUYỆT VỜI TUYỆT VỜI, Graham Sellers Pearson Education, ISBN: 978-0-321-90294-7, trang 1-150, 2014.
[Thomson, 2006] Richard Thomson, Hồi Đường ống đồ họa Direct3D, Hướng dẫn tìm hiểu Direct3D, 2006, trang 43-58.
[Engel y Geva, 2000] Wolfgang Engel, Amir Geva, "Bắt đầu lập trình trò chơi Direct3D"
7615-3191-2, 2000, trang 3-6.
71
[Lengyel, 2012] Eric Lengyel, Toán học cho lập trình trò chơi 3D và đồ họa máy tính, 2012, trang 1-30.
[Gómez et al., 1999] Pedro Gómez, Marco Gómez, Enrique Alonzo, "Hoạt động của cây BSP",
Eresmas, 1999, trang 5.
[Vallejo và Martín, 2013] David Vallejo Fernández, Cleto Martín Angelina, Phát triển trò chơi video,
Video Game Motor Architecture Phiên bản thứ 2, ISBN: 978-84-686-4028-0, 2013, trang 117-159.
[Keller, 2011] Erick Keller, Giới thiệu Zbrush 4, Sybex, ISBN 04705276412011, trang 15-30.
[Valient, 2001] Michal Valient, Động cơ 3D trong trò chơi - Giới thiệu, bài viết và hướng dẫn của HTML, 2001, trang 1-6.
[Glassner, 1989] Andrew Glassner, Giới thiệu về Ray Tray, San Francisco, Morgan Kaufmann
Nhà xuất bản, ISBN 979-0122861604, 1989, trang 4-1
[Christiansen và cộng sự, 2008] Allen Christiansen, Damian Johnson và Lawrence Holder, mô phỏng dựa trên trò chơi cho
Việc đánh giá phát hiện mối đe dọa trong môi trường cảng biển, Trường Kỹ thuật Điện và Máy tính
Khoa học, Đại học bang Washington, Pullman, WA 99164, ICEC 2008, LNCS 5309, trang.221 …224,
[Hess, 2010] Roland Hess, nền tảng máy xay sinh tố: Hướng dẫn cần thiết để học tập 2,6,, Focal Press, ISBN
9780240814308, 2010, trang 1-15.
[Johnson, 2009] Damian Johnson, mô hình hóa địa phương và đánh giá kịch bản trong môi trường ảo 3D,
Thạc sĩ Khoa học Khoa học Máy tính, Đại học bang Washington, 2009.
[URL 1, 1969] ACM SIGSIM, Nhóm lợi ích đặc biệt (SIG) về mô phỏng và mô hình hóa (SIM), http: //www.acm-
Sigsim-mskr.org/, lần trước được truy cập: 06/09/2016, 1969.
[URL 2, 2014] TCM Corporation, http://tcmforktrucks.net/index.php, lần trước được truy cập: 06/09/2016, 2014.
.
2005.
.
2011.
[URL 5, 2009] Các thuật toán LOD cổ điển, http://habib.wikidot.com/techniques, lần trước được truy cập: 06/09/2016,
2009.
[URL 6, 2014] Vật lý Bullet, http://bulletphysics.org/, lần trước được truy cập: 06/09/2016, 2014.
[URL 7, 2014] Lập trình trò chơi Patters, http://gameprogrammingpotypes.com/fly weight.html, lần trước
Đã ghé thăm: 09/06/2016, 2014.
72
.
2006.
.
09/06/2016, 2004.
[URL 10, 2011] Hồ sơ splines, http://www.etereaestudios.com/training_img/subd_tips/introducion.htm, cuối cùng
Đã truy cập: 06/09/2016, 2011.
[URL 11, 2011] Điêu khắc, http://estab1986.com/blog/tag/hard-surface-sculpting, lần trước được truy cập: 06/09/2016,
2011.
[URL 12, 2008] Kết cấu, http://ptex.us/ptexaper.html, truy cập lần cuối: 09/06/2016, 2008.
[URL 13, 2009] Kết cấu thủ tục, http://www.oocities.org/valcoey/texturas_procedural.html, lần trước
Đã ghé thăm: 06/09/2016, 2009.
.
Đã truy cập: 06/09/2016, 2012.
[URL 15, 2009] Vertex Paint,
http://wiki.blender.org/index.php/doc:2.6/manual/m vật liệu
09/06/2016, 2009.
.
2006.
[URL 17, 2014] 3D Studio Max, http://usa.autodesk.com/3ds-max/, lần trước được truy cập: 09/06/2016, 2014.
[URL 18, 2014] Maya, http://usa.autodesk.com/maya/, lần trước được truy cập: 06/09/2016, 2014.
[URL 19, 2014] Google Sketchup, http://sketchup.google.com/intl/es/, lần trước được truy cập: 06/09/2016, 2014.
.
09/06/2016, 2014.
[URL 21, 2014] Zbrush, http://www.pixologic.com/home.php, truy cập lần cuối: 06/09/2016, 2014.
[URL 22, 2014] Blender, http://www.blender.org/, lần trước được truy cập: 06/09/2016.
[URL 23, 2014] Thư viện DirectMedia đơn giản, http://www.libsdl.org/, lần trước được truy cập: 06/09/2016, 2014.
[URL 24, 2014] Freeimage, http://freeimage.sourceforge.net/, lần trước được truy cập: 06/09/2016, 2014.
73
.
.
.
09/06/2016, 2014.
.
Lần trước được truy cập: 06/09/2016, 2014.
[URL 29, 2014] Irrlicht Engine, http://irllicht.sourceforge.net/, lần trước được truy cập: 06/09/2016, 2014.
.
09/06/2016, 2014.
[URL 31, 2014] Ogre3d, http://www.ogre3d.org/, lần trước được truy cập: 06/09/2016, 2014.