Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 183 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
183
Dung lượng
1,33 MB
Nội dung
Kỹ thuật lập trình mô giới thực NGUYỄN VĂN HUÂN (Chủ biên) VŨ ĐỮC THÁI - NGUYỄN VĂN TỚI NGUYỄN THỊ THANH NHÀN - TRẦN THỊ HỒNG NHÂM KỸ THUẬT LẬP TRÌNH MÔ PHỎNG THẾ GIỚI THỰC Thái Nguyên - 2006 Kỹ thuật lập trình mô giới thực MỞ ĐẦU Trong năm gần công nghệ thông tin đạt bước phát triển nhảy vọt phần cứng lẫn phần mềm Những ứng dụng vào sống ngày phong phú đa dạng thiết thực Từ lĩnh vực khoa học bàn, kinh tế kỹ thuật cho đơn lĩnh vực như:giải trí, du lịch, không lĩnh vực ứng dụng thiết thực hiệu công nghệ thông tin Sự phát triển không ngừng sức mạnh máy tính làm cho số lĩnh vực khó phát triển trước có khả phát triển đạt thành tựu đáng kể Chúng ta kể đến lĩnh vực như: hệ chuyên gia hệ xử lý thời gian thực lĩnh vực khác cần phải nói Thực ảo (Virtual reality) Thực ảo môi trường ba chiều phát sinh, tổng hợp điều khiển thông qua máy vi tính nhằm mục đích mô lại giới thực giới theo tương tượng người Nó cho phép người dùng thông qua thiết bị ngoại vi tương tác với vật, tượng giới ảo giống tương tác với vật, tượng giới thực Hiện nay, thấy tin học chương trình quản lý kế toán, hay trang web mà thấy tin học có phát triển theo chiều sâu, phục vụ ngành công nghiệp sản xuất như:tự động hoá điều khiển, khai thác, thăm dò, hàng không, quân Đặc biệt giáo dục người ta trọng vào việc phát triển tư tin học tuý, mà đưa mô hình để áp dụng tin học nhà trường nhằm phát triển tư người cách toàn diện có khả sáng tạo Thực ảo vấn đề thời nóng bỏng giới, song nước ta lại lĩnh vực mẻ mà nghe qua hay biết đến qua ứng dụng thực tế lĩnh vực như: y học, hàng không, xây dựng, kiến trúc Thực lại ảo, giới thực song lại ảo, phần giới thực tái tạo máy vi tính, môi trường không gian ba chiều gắn với thiết bị đầu vào, cho phép người tương tác với môi trường ảo Những tương tác chương trình sử lý để đem lại cho người cảm nhận thay đổi môi trường thực tế Tất điều diễn môi trường không gian ba chiều Những ứng dụng, hiệu ứng dụng thực ảo vô lớn Hãy tưởng tương ví dụ đơn giản:chúng ta lái máy bay mà không cần có máy bay hay thực ca mổ mà không cần phải sử dụng đến đối tượng thực hiệu mang lại nghiên cứu, học tập, sản xuất nào… Kỹ thuật lập trình mô giới thực Cũng lĩnh vực khác Công nghệ thông tin, Thực ảo cần có công cụ phục vụ cho mục đích Các ứng dụng thực ảo thường xây dựng dựa mô hình thực ảo Hiện giới có nhiều mô hình thực ảo khác Morfit mô hình tương đối gọn nhẹ đầy đủ hiệu Cuốn giáo trình trình bày cách chi tiết lý thuyết tập ứng dụng thực hành giúp cho người học dễ tiếp thu kiến thức Nội dung giáo trình gồm có chương: Chương 1:Trình bày tổng quan thực ảo Chương 2:Giới thiệu chung mô hình xử lý.Mofit Chương 3: Điều khiển giới Morfit Trong trình biên soạn tác giả nhận ý kiến quý báu giúp đỡ nhiệt tình giáo sư bạn bè đồng nghiệp khoa Tác giả xin cảm ơn PGS - TS Ngô Quốc Tạo, TS Đỗ Năng Toàn, PGS - TS Hàn Việt Thuận,Ths Phạm biệt Bình dành nhiều thời gian đọc kỹ thảo cho nhiều ý kiến quý báu Tác giả bày tỏ lòng biết ơn Ban chủ nhiệm Khoa Công nghệ Thông tin - Đại học Thái Nguyên, Hội đồng Khoa học - Đào tạo tạo điều kiện đê tài liệu mắt bạn đọc Hà Nội tháng 10 năm 2006 Các tác giả Kỹ thuật lập trình mô giới thực CHƯƠNG I TỔNG QUAN VỀ THỰC TẠI ẢO 1.1 THỰC TẠI ẢO VÀ LỊCH SỬ PHÁT TRIỂN 1.1.1 Khái niệm thực ảo Có nhiều khái niệm khác thực ảo, song cách chung định nghĩa sau: Thực ảo môi trường ba chiều phát sinh, tổng hợp điều khiển thông qua máy vi tính nhằm mục đích mô lại giới thực giới theo tưởng tượng người Nó cho phép người dùng thông qua thiết bị ngoại vi chuyên đôi tương tác với vật, hành động giới ảo giống tương tác với kiện, hành động cua giới thực Ví dụ : Người sử dụng dịch chuyển vật giới ảo, cảm nhận vật chạm vào nó…Trong thiết bị ngoại vi làm nhiệm vụ chuyên hoạt động người sử dụng vào chuyển đổi, sau chuyển đổi chuyển tín hiệu thành tương tác vào môi trường ảo, đồng thời môi trường chuyển tác dụng đến chuyển đổi chuyển đổi chuyển đến thiết bị ngoại vi, sau thiết bị ngoại vi tác động đến người sử dụng Vì vậy, người sử dụng có khả tương tác với môi trường ảo tương tác môi trường thực Ngoài thuật ngữ thực ảo (virtual reality) người ta hay đề cập tới thuật ngữ giới ảo (virtual world) Thực chất hai khái niệm tương đồng để không gian ảo mà không gian người sử dựng tương tác với đối tượng không gian ảo, người sử dụng tương tác với không gian Nói chung, hệ thống thực ảo phải xử lý khối lượng lớn thông tin đa phần thông tin đối tượng 3D tốn nhớ đòi hỏi thời gian xứ lý thời gian thực yêu cầu lượng nhớ RAM lớn xử lý thiết bị vào có tốc độ cao Vì vậy, bắt đầu nghiên cứu từ lâu, số năm gần thực ảo có phát triển ứng dụng mở rộng đáng kề Các thiết bị ngoại vi sử dụng lĩnh vực thực ảo ngày đại đa dạng Một thiết bị phải kể đến hệ thống HMD (Head-Mounted Display) Đây hệ thống phát triển để phục vụ lĩnh vực Ngày nay, hệ thống thiếu lĩnh vực thực ảo Hệ thống gồm có hai hình gắn trực tiếp vào hai mắt, cho phép bạn nhìn, cảm nhận giới ảo không gian giới thực thiết bị nhạy nhằm xác định vị trí góc quay HMD Từ đó, hệ thống tính toán góc nhìn Kỹ thuật lập trình mô giới thực vị trí bạn giới ảo Hệ thống HMD mô tả hình vẽ sau: Ngoài hệ thống HMD, thiết bị ngoại vi sử dụng lĩnh vực thực ảo có BOOM CAVE BOOM (Binocular Omni-orientation Monitor) CAVE (Ca ve Automatic Virtual Environment) hai hệ thống tương tự HMD, song chúng có vài điểm khác, ví dụ BOOM không dùng mũ gắn đầu mà dùng cần gắn hình vào đầu có tay cầm hình Khi bạn nhìn vào hình dịch chuyến nó, thiết bị nháy dịch chuyển theo góc nhìn, vị trí nhìn bạn thay đổi ! Hệ thống BOOM mô tả hình vẽ đây: Ngày nay, thiết bị phát triển hoàn thiện hơn, đồng thời ngành ứng dụng người ta phát triển hệ thống thiết bị đặc trưng cho ứng dụng Công nghệ ngày đưa nhiều thiết bị đại cho phép người tiến gần tới thực ảo hơn.Ví dụ như: găng tay liệu (data gloves), áo liệu v.v…và thiết bị đầu vào ba chiều máy quét chiều, máy quay chiều v.v Thực ảo môi trường 3D máy vi tính, sử dụng lượng lớn thông tin đồ hoạ thông tin luôn biến đổi Do đó, dùng phương pháp thông thường đê truy cập nhớ đồ họa (vì tốc độ chậm), mà phải dùng phương pháp truy cập trực tiếp nhớ sử dụng tăng tốc đồ hoạ Vì vậy, người ta cần phần mềm cho phép truy cập trực tiếp nhớ điều khiển Kỹ thuật lập trình mô giới thực tăng tốc đồ hoạ Hiện số chuẩn phần mềm sử dụng nhiều như: Directx, OpenGL, MiniGL v.v Hiện thực ảo sử dụng rộng rãi, ứng dụng mạng ngày nhiều nên tổ chức W3C đưa mô hình chuẩn mạng cho thực ảo Đó mô hình VRML (Virtual Reality Modeling Language) 1.1.2 Lịch sử phát triển thực ảo Thực ảo quan tâm nhiều vài năm gần đây, song lại có lịch sử hình thành từ lâu Cách khoảng 40 năm, nhà làm phim có tên Morton Heilig (Mỹ) đưa ý tưởng người không tận dụng nốt 72% góc nhìn khán giả? Anh ta nói " bị kích động, không hiểu người thấy 28% góc nhìn khán giả với ảnh 2D? Tại không làm điều với ảnh 3D để 00% góc nhìn khán giả, kết hợp với âm thanh?" Do không hỗ trợ tài chính, Heilig hoàn thành ước mơ mình, song anh tạo thiết bị gọi "Scnsorama Simulator" Thiết bị này, tương tự máy cho trơi ngày Sensorama kết hợp với chiếu film âm thanh, chuyển động,gió chí mùi khiến cho người ta cảm thấy giới thực đơn giản xem Thiết bị công bố vào khoảng đầu năm 1960 (Hình l.3) Thiết bị sử dụng hình ảnh 3D, thu từ camera 35mm kết hợp thành camera gồm hệ thống âm kết hợp với cảnh quay chiều thực Người nhìn ngồi xe máy, cảm thấy gió chuyển động (gió tạo quạt) chí họ cảm thấy đoạn đường có ổ gà Mặc dù máy đơn giản thô sơ, song mở nhiều ý tưởng nghiên cứu chưa có giới Năm 1966, Ivan Sutherland - sinh viên tốt nghiệp trường Utah, tiếp tục nghiên cứu vấn đề mà Heilig bỏ dở Sutherland cho cảnh quay tương tự không đáp ứng yêu cầu thực tế Anh ta bắt đầu ý tưởng tăng tốc đồ hoạ, phần quan trọng mô thực đại chế tạo hệ thống HMD kết nối tới máy tính Quân đội nhanh chóng nhận thấy tiềm ý tưởng ngành hàng không ứng dụng vào việc bay mô Trong năm 70, người ta chế tạo mũ thể hình ảnh chuyến bay Đồng thời NASA bắt đầu sử đụng công nghệ cho chuyến bay vũ trụ đổ lên mặt trăng sau Kỹ thuật lập trình mô giới thực Năm 1970, Sutherland tiếp tục phát triển hoàn thiện phần cứng HMD trường đại học Utah.Thiết bị nhẹ hơn, thay hình trắng đen hình màu Cũng khoảng thời gian này, Myron Kreuger phát triển thiết bị có tên VIDEOPLACE VIDEOPLACE kết dự án thực ảo Trong VIDEOPLACE Myron Kreuger sử dụng hình lớn đối diện với người dùng Trên hình, bóng người sử dụng hiển thị Người sử dụng dùng ngón tay in lên bầu trời.Hệ thống có khả hiển thị nhiều người sử dụng hình Đặc biệt, thực ảo phát triển mạnh mẽ có nhiều thành đáng kể ứng dụng nhiều ngành, lĩnh vực khác từ năm 1990 1.2 CÁC ỨNG DỤNG CỦA THỰC TẠI ẢO Những lĩnh vực nghiên cứu ứng đụng thực ảo cách mạnh mẽ là: y học,giáo dục, tin học, thương mại, giao thông, hàng không, xây dựng, khoa học quân sự,quốc phòng, thiết kế nội thất trang trí nhà cửa giải trí, quân sự, điện ảnh Tại lĩnh vực lại ứng dụng thực ảo ý nghĩa việc ứng dụng vào lĩnh vực sao, thành thực tế đem lại nào, vấn đề xem xét Khoa học quân sự, quốc phòng: Đây lĩnh vực đặt móng cho nghiên cứu thực ảo Hiện nay, ứng dụng thực ảo lĩnh vực phong phú, ví dụ huấn luyện quân lính, thử nghiệm loại vũ khí, phương tiện chiến tranh, đồ hoá khu vực (hệ thống định vị toàn cầu) v.v Các vấn đề môi trường, điều kiện kinh tế, kỹ thuật an toàn tính mạng người vấn đề khó khăn hàng đầu quân quốc gia Kỹ thuật lập trình mô giới thực Chúng ta biết lúc có chiến tranh, song chiến tranh xảy lúc chuẩn bị lực lượng Vậy lấy đâu môi trường thực tế để rèn luyện chuẩn bị lực lượng? Trên thực tế, tạo môi trường tập luyện thực Nhưng vấn đề đặt tạo môi trường tập luyện thực tế mà lại không tốn hay nguy hiểm đến tính người Người ta giải vấn đế cách thực hiệu ứng dụng thực ảo Điều thấy rõ số nước có quốc phòng mạnh Mỹ, Nga, Trung Quốc, người ta xây dựng hệ thống mô phục vụ cho việc tập luyện binh, hay hệ thống mô hệ thống an ninh, mô trận địa phục vụ cho việc nghiên cứu, tập luyện nhằm tìm phương pháp phòng thủ chiến đấu cách hiệu Khi ứng dụng thực ảo vào quân việc sử dụng môi trường tạo theo cách chia sẻ thông tin, hiệu kinh tế có mang lại thực to lớn, người ta giảm lượng lớn kinh phí phục vụ cho việc tập luyện, hay thực điều mà thực tế khó thực được, hay vấn đề thực tế phải áp dụng quy tắc an toàn nghiêm ngặt song có mối nguy hiểm lớn đến tính mạng tải sản người ví dụ: trận địa chiến đấu, mô hình phòng thủ quốc gia Giáo dục đào tạo: Để có kết học tập cao nhất, phải sử dụng nhiều phương pháp học tập khác nhau, có phương pháp trực quan Thực tế cho thấy, học hình ảnh trực quan nhanh phương pháp khác Vì vậy, thực ảo đã, trở thành công cụ hữu hiệu giáo dục, đặc biệt với trẻ em Ngoài ra, phương tiện giáo dục mạnh số ngành nghề đòi hỏi phải thực hành Ví dụ như: huấn luyện phi công, lái xe Một số trường đào tạo lái xe Việt Nam sử dụng phương tiện cho phép học viên thực hành sở thực ảo Giáo dục mối quan tâm hàng đầu quốc gia Việc nghiên cứu để đưa phương pháp giáo dục hiệu khó, song vấn đề khó khăn kích thích niềm say mê học tập, nghiên cứu người học tác động đến tính tự giác, khả tư tưởng tượng người học sinh, cung cấp môi trường học tập, nghiên cứu tốt nhất, nhằm phát huy hết khả người Cứ theo cách giáo dục truyền thống, nhiều cung cấp môi trường nghiên cứu học tập lý tưởng, không khơi dậy niềm say mê, hứng thú học tập khả sáng tạo người học Do đó, phát huy hết khả tưởng tượng tư người Vì vậy, hiệu giáo dục không cao Chúng ta thấy hiệu to lớn việc áp dụng tin học vào giáo dục Kỹ thuật lập trình mô giới thực giới Việt Nam Song, phần lớn ứng dụng tin học vào giáo dục mà biết giáo trình tin học nhằm rèn tư tin học cho người, ứng dụng nhằm rèn luyện khả khác người chưa thực phố biến Thực tế chứng minh, chương trình nhằm rèn luyện tư nói chung, rèn luyện khả tưởng tượng, cung cấp mô hình thực nghiệm kích thích trí tò mò chưa nhiều hay nói chưa có hiệu Các chương trình chưa có khả phát huy hết cảm nhận người nhận thức, chưa gây ấn tượng sâu sắc vấn đề cho đối tượng cần truyền đạt, không gây trí tò mò, hay niềm đam mê người học Hiện nay, xu hướng việc ứng dụng tin học giáo dục quan tâm xây dựng mô hình thực máy vi tính nhằm cung cấp môi trường học tập nghiên cứu cho người sử dụng Những mô hình xây dựng chuyển tải thực tế vào môi trường mô phỏng, cung cấp khả tương tác người với môi trường mô phỏng, có khả gây kích thích cao với người tham gia, cho phép chia sẻ tài nguyên môi trường qua môi trường mạng v.v Đó mô hình thực ảo Y học : Đây lĩnh vực hứa hẹn nhiều triển vọng thực ảo Hiện giới, việc ứng dụng thực ảo vào y học phong phú Đặc biệt Mỹ phẫu thuật bác sĩ tiến hành phẫu thuật môi trường ảo, không cần có bệnh nhân mà phẫu thuật bệ nhân thật Các bác sĩ tiến hành phẫu thuật từ xa thông qua thiết bị thực ảo Thực ảo có ứng dụng lĩnh vực tâm thần Người ta chứng minh, thực ảo có khả chữa chứng bệnh sợ, ví dụ: sợ bóng tối, sợ nhện, sợ đông người v.v…Phương pháp sử dụng là: đưa người bệnh vào môi trường thực ảo có nỗi sợ họ, đồng thời có lời kích thích, hướng dẫn họ, giúp họ dần làm quen với nỗi sợ thân từ vượt qua nỗi sợ hãi sống v.v Phương pháp hiệu nhiều so với phương pháp truyền thống Xã hội ngày phát triển, vấn đề sức khoẻ người ngày quan tâm Càng ngày, người ta cố gắng để tìm phương pháp chữa trị bệnh cho người ngày tốt Dưới số hình ảnh việc nghiên cứu ứng dụng tin học y học: Kỹ thuật lập trình mô giới thực Đây dự án nghiên cứu châu âu vào tháng 11 năm 1993 Dự án cho phép xây dựng lại mô hình cánh tay người không gian 3D từ liệu hình anh y học mô tất thay đổi có phận co dãn v.v Trong dự án này, thực ảo làm nhiệm vụ mô lại cánh tay người cung cấp dịch vụ thể thay đổi cánh tay người có tương tác người sử dụng Chúng ta tìm hiểu thêm dự án trang Web có địa chi : http://www.ligww.epf1.ch Kỹ thuật lập trình mô giới thực vậy, trước xây dựng chương trình bạn nên hiểu rõ ràng khác hai chế độ rendering Tại lần đầu tiên, bạn load giới vào nhớ chế độ Viewer Mode engine tự động tạo lượng lớn cấu trúc liệu gọi BSP (Bsp_tree) Kích thước cấu trúc lớn, đặc biệt ta sử dụng nhiều đa giác giới ta lớn thời gian để xây dựng cấu trúc đáng kể Vì thế, sau tạo cấu trúc engine lưu lại cấu trúc nhớ để sử dụng cho lần sau Cây BSP sử dụng để định bề mặt hiển thị thời gian Vì thế, bạn thực thao tác nào, song thay đổi hình dạng đối tượng Ví dụ: Ta thay đổi phần đa giác giới song cấu trúc khối giới giới tồn nên ta kết khối đa giác vừa tạo Nếu muốn kết khối đa giác chúng trình lại phải xây dựng lại BSP, việc làm (vì việc xây dựng BSP tốn thời gian) Bỏi lý mà ta tạo đối tượng chế độ Viewer Mode Cũng lý mà ta thay đổi kích cỡ đối tượng hay chí quay dịch chuyển chúng Đương nhiên ngoại trừ đối tượng động, bới đối tượng động cấu trúc BSP Chúng ta dùng chế độ Viewer Mode nào: Bởi việc tính toán vùng bị che dấu vô nhanh chế độ Viewer Mode (nó tiết kiệm tới 40% thời gian rendering so với chế độ Editor Mode) Vì có thể, bạn nên cố gắng viết chương trình chế độ Viewer Mode Chúng ta sử dụng chế độ Viewer Mode khi: Thế giới bạn chứa số lượng đối tượng cần dịch chuyển Bất kỳ đối tượng cần chuyển động phải đối tượng động Nếu hầu hết đối tượng giới động việc sử dụng chế độ Viewer Mode không nhanh chế độ Editor Mode Bạn sử dụng chế độ Viewer Mode bạn không cần tạo huỷ bỏ đối tượng Ta sử dụng chế độ Editor Mode :Muốn tạo hay huỷ đối tượng giới, thay đổi kích thước, hình dạng đối tượng ta sử dụng chế độ Editor Mode Hoặc giới lớn ta tiến hành load phần giới thay load toàn cải thiện' tốc độ render Tóm tắt: Phần giới thiệu chế độ Viewer Mode Editor Mode, đưa cách sử dụng hai chế độ cách lựa chọn hai chế độ khác chúng 3.13 XÂY DỰNG ĐỊA HÌNH (THE TERRAIN BUILDER) Tất giới mà thiết kế dựa vào mẫu 168 Kỹ thuật lập trình mô giới thực (templates) định sẵn như: BlankFloor, BlankRoom sở thích Để tạo vùng đất, khoảng không gian phức tạp hơn, bạn sử dụng Morfit Tenain Builder Terrain Builder cho phép bạn đưa hình ảnh lên quay terrain Terrain Builđer converts màu pixel hình ảnh vùng cao so với mặt biển giới Những màu sáng song ảnh trở thành dãy núi màu tối trở thành thung lũng Một cách dễ dàng để hiểu cách làm việc Terrain Builder thử Mở Terrain Builder_ tìm thấy Morfit->Tools folder Cửa số Terrain Builder có dạng sau: Hình 3.27 Giao diện cửa sổ Terram Builder Trước tiên bạn cần chọn ảnh nguồn source bitmap Rồi nhấn vào nút Browse để tìm ảnh mà bạn cần tìm Bạn tìm ảnh vệ tinh nhiều nơi khác Web Một số hình ảnh đơn giản kèm theo với chương trình Vào trình duyệt window để chọn số hình ảnh Bạn nhấn vào View Bitmap để view ( edit) ảnh mà bạn chọn, ảnh lưu trữ với định dạng là: BMP, JPEG, or JBM Bạn chọn ảnh nhấn vào nút "Create terrain" Chấp nhận lựa chọn default nhấn OK Chương trình tạo giới bạn hiền thị lên hình Chú ý: Chương trình vẽ giới dựa sở độ cao so với mặt biển Các vị trí cao có màu sáng vị trí thấp có màu tối hơn.Ngoài cách lia chọn "Default", bạn thay đổi cách lựa chọn khác "Painting Method" Nếu bạn chọn Bitmap, ảnh chọn bao phủ lên giới Thử điều để xem hiệu ứng Nếu bạn chọn Legend màu dựa sở độ cao so với mặt biển, bạn xác định màu mà bạn sử dụng với kiểu altitude Chọn Legend để đưa hộp thoại sau: 169 Kỹ thuật lập trình mô giới thực Hình 3.28 Cửa sổ thêm/huỷ bỏ màu cho đối tượng Bắt đầu từ hộp đỉnh bên trái dịch chuyển sang phải, chọn hộp, sau nhấn vào nút "Add/change color” Màu bạn chọn điền vào mặt thấp nhất, hộp điền vào mặt tháp tiếp tục hết Nếu bạn muốn tất terrain màu, bạn lựa chọn màu hộp loại bỏ tất hộp khác cách để trắng Nếu bạn thay đổi painting method, bạn phải tạo lại tenain để xem hiệu ứng thay đổi Khi bạn tạo terrain, hộp thoại xuất cho phép bạn điều khiển terrain tạo theo hộp thoại sau: Hình 3.29 Điều khiển Terrain tạo Trong đó: -Thanh điều khiển level of optintization: Cho phép làm giảm số đa giác sử dụng cách làm trơn bên ảnh Những số nhỏ đưa terrain chi tiết cách sử dụng số đa giác cao -Thanh điều khiển maxintum of polygon: Sẽ sử đụng để xây dựng terrain, nhiều đa giác mà bạn sử dụng hơn, nhiều terrain chi tiết việc load chậm -Dintensions: Điều khiển kích thước terrain tạo Thử nghiệm với hình ảnh thay đổi, phương pháp vẽ ảnh thuộc tính tạo Các Camera Option cung cấp điều khiển chướng trình hiển thị terrain mà bạn tạo 170 Kỹ thuật lập trình mô giới thực Cách vào Viewer Window để hiển thị terrain chế độ full screen Khi bạn cảm thấy hài lòng với terrain, bạn lưu vào file với phần mở rộng là: wld Bây bạn load file World Builder 3.14 TRÌNH BIÊN TẬP THẾ GIỚI (THE WORLD EDITOR) Thời gian biên tập chiếm 99% tổng thời gian, bạn sử dụng để sử dụng World Builder để tạo tất hiệu ứng mà bạn mong muốn Nếu muốn điều khiển cách xác đối tượng giới, bạn edit giới cách trực tiếp Trong bạn mở file wld chế độ text editor (giống Notepad) Morfit cung cấp công cụ World Editor hỗ trợ công việc cách dễ dàng Chúng ta thiết kế giới đơn giản World Builder, sau dưa vào chế độ World Editor Tạo giới cách mở World Builder vào File/New/BlankFloor template Tiếp theo, Model gallery/models/forms/3Dformsl/ chọn hình chóp toàn màu đỏ, dùng chuột giữ kẻo đối tượng sang BlankFloor Khi giới hình sau Hình 3 Mô tả cách tạo giới Để giới đơn giản hơn, không lưu giới cách trực tiếp, mà làm sau Vào File/Release, xuất hộp thoại (Hình 3.31) Sử dụng hộp thoại để huỷ bỏ đa giác mẫu (sàn đen trắng, trường hợp chọn sau): 171 Kỹ thuật lập trình mô giới thực 172 Hình 3.31 Hủy bỏ đa giác mẫu Bây giờ, bắt đầu với World Editor, chế độ tìm thấy Morfit>Tools folder Mở tô giới mà bạn tạo Bạn thấy file text, gồm đoạn mã sau: // This file was created hy Morfit VR Engine /* notes… BEGIN DESIGN: ATMOSPHERE: 160 160 170 FOG: 0.0100 LIGHT: DEFAULT _COLOR: 1601 60 170 BEGIN _MODULE: main OBJECT: MODULE _NAME: PYRAMID_ _2 MATRIX: 0 0 0 0 349.6577272727143 -5.7009090909099 99.05802724908517 END _OBJECT: END _MODULE: main BEGIN _MODULE: PYRAMID_ 2_ POLYGON: pNewFilledArea_ 40 COLOR 255 79 79 172 Kỹ thuật lập trình mô giới thực 173 BITMAP: NO _BITMAP TRANSPARENT: -1 DISABLE_ BLENDING ROTATED: NO LIGHT _DINTINUTION: 40 NUM _OF _POINTS: -127.7873960812481 127.7873960812557 9.999999996743541E_007 100 -97.03302724908008 127.7873960812561 127.7873960812338 0.9999990000000001 9.999999996743541E_007 100 1E-006 -97.03302724908008 0.8246716256430773 5.226219457199477E_011 97.03302724908008 POLYGON: front 0.5032267265849094 0.4999999999999489 100 ORIENTATION: FRONT COLOR: 155 0 BITMAP: NO _BITMAP TRANSPARENT: -1 DISABLE _LENDING ROTATED: NO LIGHT _DINTINUTION:40 NUM _OF _POINTS:3 -127.7873960812519 -127.7873960812525 -97.03302724908735 1E_006 0.999999 100 -127.7873960812481 127.873960812557 -97.03302724908008 1E_006 9.999999996743 54 E_007 100 0.8246716256472837 5.521627599591739E_011 97.03302724908735 0.5032267265849094 POLYGON: pNewFilledArea _60 0.4999999999999489 100 COLOR: 185 0 BITMAP:NO_BITMAP TRANSPARENT: - DISABLE_BLENDING ROTATED: NO LIGHT_DINTINUTION: 40 173 Kỹ thuật lập trình mô giới thực 174 NUM_OF_POINTS: 127.787396081252 -27.7873960812507 0.9999989999999889 0.9999989999998996 100 -97.03302724907826 -127.7873960812561 -l27873960812557 -97.03302724908008 lE_O06 0.999999 100 0.8246716256472837 5.521627599591739E_011 97.03302724908735 0.5032267265849094 POLYGON: pNewFilledArea_ 70 0.4999999999999489 100 COLOR: 255 4 BITMAP: NO_ BITMAP TRANSPARENT: -1 DISABLE_ BLENDING ROTATED: NO LIGHT_ DINTINUTION: 40 NUM _OF_ POINTS: 127.7873960812561 127.7873960812338 0.9999990000000001 9.999999996743541E-007 100 -97.03302724908008 127.787396081252 -127.7873960812507 -97.03302724907826 0.9999989999999889 0.9999989999998996 100 0.8246716256472837 5.521627599591739E_011 97.03302724908735 POLYGON: BOTTOM 0.5032267265849094 0.4999999999999489 100 ORIENTATION: BOTTOM COLOR: 128 150 128 BITMAP:NO _BITMAP TRANSPARENT: -1 DISABLE_BLENDING ROTATED: NO LIGHT_DINTINUTION: 40 NUM OF_POINTS : 127.787396081256l 127.7873960812338 -97.03302724908008 0.9999990000000001 9.999999996743541E_007 100 -127.7873960812481 127.7873960812557 -97.03302724908008 174 Kỹ thuật lập trình mô giới thực 0.9999989999999737 9.999998993432865E_007 175 100 -127.7873960812561 -127.7873960812557 -97.03302724908008 0.9999989999999637 0.9999989999998997 100 127.787396081252 -127.873960812507 -97.03302724907826 0.999998999999989 0.9999989999998997 100 END_ MODULE: PYRAMID _2 _2 END_ DESIGN: Đoạn mã trông phức tạp, trông nhiều thông tin đối tượng Nhưng đưa phần Thế giới lưu trữ chuỗi gối xếp lồng vào Khối phía khối design, khối chứa toàn giới Thế giới bao quanh câu lệnh: BEGIN _DESIGN: … END _DESIGN Bây định nghĩa thuộc tính global giới_ thuộc tính tác động đến giới Ví dụ, định nghĩa màu cho khí quyền (không khí) độ đậm màu sau: ATMOSPHERE: 160 160 170 FOG: 0.0100 LIGHT: DEFAULT_ COLOR: 160 160 170 Để sử dụng text editor để thay đổi giới, thay đổi background green Edit dòng đê định nghĩa màu mặc định: DEFAULT_ COLOR: 40 220 40 Lưu giới mở World Builder_ Bây bạn thấy sáng xanh Thay mở giới World Builder thời điểm bạn muốn thấy thay đổi, bạn view giới trực tiếp từ World Editor Bạn chọn Run->load World, bạn thấy có lựa chọn: Viewer Mode, Editor Mode Auto Behavior Mode Auto Behavior Mode giống Viewer Mode, bạn sử dụng phím mũi tên phím space bar để dịch chuyển camera xuyên suốt giới Chạy giới Auto Behavior Mode Khi chưa tạo camera, có lẽ viewer quay xa đối tượng tất nhìn thấy toàn xanh Giữ phím mũi tên trái phải để quay camera bạn nhìn thấy hình chóp Kết hình sau: 175 Kỹ thuật lập trình mô giới thực 176 Sau thuộc tính global hình thành module mình, giới phải có module chứa tất đối tượng đa giác Thế giới đối tượng, mà cụ thể hình chóp: BEGIN MODULE: main OBJECT: MODULE _NAME: PYRAMID_ _2 MATRIX: 0 0 0 0 349.6577272727143 -15.7009090909099 99.05802724908517 END _OBJECT: END MODULE: main Mọi đối tượng chứa đựng cặp lệnh OBJECT END_OBJECT Đầu tiên nói đến hướng dẫn MODULE _NAME, đặt tên cho đối tượng mô tả nơi thiết kế đối tượng Sau mô tả đến matrix đối tượng Việc thay đổi matrix đối tượng làm quay, thay đổi tỉ lệ dịch chuyển đối tượng giới Sau định nghĩa module chính, chúng định nghĩa module khác mà cần Trong trường hợp này, phải định nghĩa module PYRAMII)_2_đây module mà quy vào bên main Module PYRAMID_2_2 xây dựng với cấu trúc sau: BEGIN _MODULE: PYRAMID_ 2_ POLYGON: pNewFilledArea_40 176 Kỹ thuật lập trình mô giới thực 177 POLY.GON: front POLYGONpNewFilledArea_60 POLYGON: pNewFilledArea 60 POLYGON: BOTTOM END _MODULE:PYRAMID_2_2 Module định nghĩa đa giác cấu tạo nên đối tượng hình chóp Các đối tượng xếp lồng Ví dụ Module HOUSE định nghĩa sau: BEGIN_ MODULE: HOUSE POLYGON: front POLYGON:left POLYGON: right POLYGON: back OBJECT: MODULE _NAME: ROOF MATRIX: 0 END _OBJECT: END_ MODULE: HOUSE Sau đó,bạn cần định nghĩa module ROOF Quay lại ví dụ _ module hình chóp bao gồm vài đa giác Mỗi đa giác lại định nghĩa sau: POLYGON: BOTTOM ORIENTATION: BOTTOM CƠLOR: 128 150 128 BITMAP: NO_ BITMAP TRANSPARENT: _1 DISABLE_BLENDING ROTATED: NO LIGHT _DINTINUTION: 40 NUM _OF _POINTS: 127.7873960812561 127.7873960812338 -97.03302724908008 0.9999990000000001 9.999999996743541E_007 100 177 Kỹ thuật lập trình mô giới thực 178 -127.7873960812481 127.7873960812557 -97.03302724908008 0.9999989999999737 9.999998993432865E_007 100 127.7873960812561 -127.7873960812557 -97.03302724908008 0.9999989999999637 0.9999989999998997 100 127.787396081252 -127.7873c)60812507 -97.03302724907826 0.999998999999999 0.9999989999998997 100 Đa giác có tên định hướng lựa chọn (TOP, BOTTOM, FRONT, or BACK) Nó có mầu RGB hình ảnh độ suốt, góc quay lượng ánh sáng xác định Cuối cùng, chứa danh sách điểm cấu tạo nên đỉnh Bây giờ, bạn sử dụng trình soạn thảo World bạn muốn thêm đối tượng vào giới Để thêm camera vào giới bạn cần vào menu/insert/camera Bạn thấy hộp thoại xuất hiện, hộp thoại bạn thiết lập thuộc tính camera như: name, location direction, view field, culling depth, v.v Bạn sử dụng menu/insert để thêm thứ mà bạn muốn đưa vào giới cameras, anintations, tracks, objects, backgrounds, v.và Một điều quan trọng cần nhớ sau đây: Các đa giác, đối tượng đối tượng động phải chèn vào module Chúng đặt module module khác Còn modules, cameras, anintations, tracks backgrounds phải chèn bên module, bên cặp dẫn BEGIN_DESIGN END_DESIGN Tóm tắt: Trong World Builder sử dụng dễ dàng để tạo giới hiệu ứng cách hoàn hảo, bạn lại cần điều chỉnh giới bạn cách trực tiếp sửa file văn Khi bạn muốn sửa giới cách trực tiếp, trình soạn thảo World Text Editor công cụ tốt để sử dụng bạn trở nên quen thuộc với cách sử dụng đê giới nhỏ đơn giản 3.15 KẾT LUẬN VÀ MỘT SỐ CÔNG CỤ PHÁT TRIỂN Như phần tìm hiểu số khái niệm định dạng giới Morfit số API để điều khiển giới Lưu ý giới thiệu cách sơ lược khái niệm Morfit Còn muốn làm việc thực với Morfit.Còn bạn tham khảo tài liệu trang: www.morfit.com www.3DSTATE.com Morfit cung cấp cho số công cụ phát triển (cả miễn phí, mua) công cụ soạn thảo để tạo giới Word 3D hay Edit 3D v.v số công cụ chuyển đổi từ định dạng giới khác sang định dạng Morfit Để tìm hiểu chi tiết bạn tới trang web Morfit 178 Kỹ thuật lập trình mô giới thực 179 MỤC LỤC Trang CHƯƠNG I: TỔNG QUAN VỀ THỰC TẠI ẢO 1.1 THỰC TẠI ẢO VÀ LỊCH SỬ PHÁT TRIỂN 1.1.1 Khái niệm thực ảo 1.1.2 Lịch sử phát triển thực ảo 1.2 CÁC ỨNG DỤNG CỦA THỰC TẠI ẢO 1.3 CÁC VẤN ĐỀ GẶP PHẢI TRONG VIỆC PHÁT TRIỂN THỰC TẠI ẢO 14 1.3.1 Các vấn đề phần cứng 14 1.3.2 Các vấn đề phần mềm việc thiết kế phần mềm 14 1.4 CÁC GIẢI PHÁP SỬ DỤNG ĐỂ GIẢI QUYẾT VẤN ĐỀ 17 1.4.1 Vấn đề giải pháp 17 1.4.2 Một số mô hình xây dửng thực ảo: 18 CHƯƠNG II: GIỚI THIỆU CHUNG VỀ MÔ HÌNH XỬ LÝ MORFIT 20 2.1 GIỚI THIỆU CHUNG 20 2.2 PHUƠNG PHÁP ĐỊNH NGHĨA THẾ GIỚI CỦA MORFIT 21 2.2.1 Giới thiệu chung 21 2.2.2 Phương pháp sử dụng đối tượng để xây dựng giới 23 CHƯƠNG III: ĐIỀU KHIỂN THẾ GIỚI BẰNG MORFIT 34 3.1 CÁC VẤN ĐỂ CƠ SỞ 34 3.1.1 Hệ tọa độ (Coordinate System) 34 3.1.2 Liên kết (HANDLES) 38 3.1.3 Tổng quan hàm Morfit 38 3.2 ỨNG DỤNG SDK 40 3.2.1 Tạo ứng dụng Console 40 3.2.3 Thêm thư viện Mồm vào Project 40 3.2.4 Thêm file”mrft_api.h”vào đầu project 40 3.2.5 Thiết lập thư mục làm việc Proiect 41 3.2.6 Hiển thị giới 41 3.2.7 Điều khiển giới 43 3.2.8 Tóm tắt 46 3.3 ĐỐI TƯỢNG (Object) 46 3.3.1 Viewer Mode đối tượng động 46 3.3.2 Các phương thức truy cập đối tượng đặt tên đối tượng 47 3.3.3 Các thao tác với vị trí đối tượng giới (Moving Objects) 48 3.3.4 Phát va chạm đối tượng (Collision Detection) 70 3.3.5 Một số hàm tiện ích cho đối tượng (Utility Functions) 73 3.3.6 Tóm tắt 74 3.4 LÀM VIỆC VỚI CAMERA(Working With Cameras) 74 3.4.1 Vị trí camera (camera_location) 75 3.4.2 Hướng camera (camera direction) 76 3.4.3 Không gian camera (camera zoom) 78 3.4.4 Chất lượng hình ảnh(Picture Quality) 85 3.4.5 Một số chức thường dùng khác (Other Useful Camera Functions) 86 3.4.6 Tóm tắt 87 3.5 SỬ DỤNG MFC 87 3.5.1 Tạo giới 87 3.5.2 sử dụng ứng dụng Wizard để tạo giới 87 3.5.3 Khởi tạo MFC 88 3.5.4 Rendering giới 89 179 Kỹ thuật lập trình mô giới thực 180 3.5.5 Xây dựng giới rộng lớn 90 3.5.6 Tóm tắt 105 3.6 NHÓM (group) 105 3.6.1 Xây dựng nhóm (Building Groups) 106 3.6.2 Làm việc với group 109 3.6.3 Tóm tắt 130 3.7 CÁC HÀM API engine 130 3.7.1 Khởi tạo giới 130 3.7.2 Hiển thị giới 132 3.7.3 Độ xác hiển thị (Display Accuracy) 133 3.7.4 Dịch chuyển 138 3.7.5.Một API engine khác 138 3.8 ẢNH VÀ ẢNH ĐỘNG 141 3.8.1.Làm việc với ảnh 141 3.8.2 Ảnh động: 144 3.8.3.Tóm tắt 146 3.9 ĐA GIÁC (Polygon) 146 3.9.l Khái niệm 147 3.9.2 Tạo đa giác 147 3.9.3 Quay dịch chuyển đa giác (Rotating and Moving Polygons) 149 3.9.4 Một số thuộc tính đa giác 150 3.9.5.Màu ảnh ảnh động 151 3.9.6 Tóm tắt 154 3.10 BÓNG VÀ ÁNH SÁNG 154 3.10.1 Bóng (Shadows) 155 3.10.2 Ánh sáng 157 3.10.3 Tóm tắt 167 3.11 CÁC API KHÁC 167 3.12 CHẾ ĐỘ EDITOR MODE VÀ VIEWER MODE 167 3.13 XÂY DỰNG ĐỊA HÌNH (THE TERRAIN BUILDER) 168 3.14 TRÌNH BIÊN TẬP THẾ GIỚI (THE WORLD EDITOR) 171 3.15 KẾT LUẬN VÀ MỘT SỐ CÔNG CỤ PHÁT TRIỂN 178 180 Kỹ thuật lập trình mô giới thực 181 TÀI LIỆU THAM KHẢO 1.Nguyễn Văn Huân - Phạm Việt Bình, Xử lý hiệu ứng màu khí thực ảo, Kỳ yếu hội thảo quốc gia lần thứ 8, Hải Phòng, 2006 NguyễnVăn Huân-Vũ Đức Thái, Một số kỹ thuật cải tiến xử lý hiệu ứng màu khí thực ảo, Hội nghị khoa học Khoa Công nghệ Thông tin- Đại học Thái nguyên, 14/12/2005 Nguyễn Văn Huân - TS Đỗ Năng Toàn, Chế tác quần áo cho nhân vật 3D thực ảo, Hội thảo khoa học quốc gia ICT.RDA'06, Hà Nội, 20- 21/05/2006 Nguyễn Văn Huân - Vũ Đức Thái - TS Đỗ Năng Toàn, Cái tiến kỹ thuật mô vải Semi - Intplicit thực ảo, Hội thảo quốc gia lần thứ 9,Đà Lạt, 1517/06/2006 Nguyên Văn Huân-Vũ Đức Thái- TS Đỗ Năng Toàn, Kỹ thuật gỡ rối vải cho nhân vật 3D thực ảo, Kỷ yếu hội thảo khoa học quốc gia SGK'06, Huế, 9- 0/09/2006 Nguyễn Văn Huân-Vũ Đức Thái-Đỗ Năng Toàn, Mô chất liệu cho đối tượng thực ảo, Hội thảo khoa học Lần thứ 4-Khoa CNTT-ĐHTN, 2/2006 Nguyễn Văn Huân-Vũ Đức Thái; Tổng quan mô nước thực ảo, Hội thảo khoa học Lần thứ - Khoa CNTT-ĐHTN, 2/2006 http://www.3dnews.com http://on.starblvd.net/meet/Morfit_forum 10.http:///www.vb3d.com-The site for the Morfit VB developers, run hy Bucky 11.http://www.onelist.com/communitv/MorfitDev-Morfit List-The Morfit offlcial mailing list Developer Mailing 12.http://www.3dng.com-Morfit 3D for Euphoria Web Page Run by Mark Brown 13 http://members.xoom.com/Manget/Morfit - Morfit C++ website - A page for an Morfit users, and specifically MSVC++ 6.0 14.http://www.morfitbuilder.com - Morfit for Borland Builder C++ users 15.http://atlana.20m.com - Beros 3D World - One of the most promising arcade games under development Visit to see screenshots and a demo 16.http://Morfit.tripod.com/index.html - Morfit Projects - This page includes 181 Kỹ thuật lập trình mô giới thực 182 11nks and information on different Morfit projects 17 http://homepage.virgin.net/rj.bolt/3ddemos.html - Morfit 3D Engine & Visual Basic _ Run hy Robert B http://www.Morfit.com - Morfit ltd (2000) 19 http://www.ahs.uic.edu - Hình ảnh việc nghiên cứu hộp sọ người theo tạp chí địa 182 ... Morfit đưa mô hình cho phép xây dựng thực ảo hiệu quả, mềm dẻo xu hướng Đó là: Xây dựng mô hình giới thực 20 Kỹ thuật lập trình mô giới thực giới thực thư viện cho phép kết hợp với chương trình để... tìm hiểu, nghiên cứu mô hình xây dựng mô hình thực ảo máy vi tính không gian 3D, ứng dụng mô hình tương lai xu hướng mô hình xây dựng thực ảo 13 Kỹ thuật lập trình mô giới thực Hiện nay, việc... chương trình mô theo hướng 19 Kỹ thuật lập trình mô giới thực CHƯƠNG II GIỚI THIỆU CHUNG VỀ MÔ HÌNH XỬ LÝ MORFIT 2.1 GIỚI THIỆU CHUNG Morfit mô hình cho phép ta xây dựng phần mềm mô đối tượng