Một số loại node được sử dụng trong VRML...10 Chương IV: Ứng dụng VRML – Viết chương trình mô phỏng dao động của con lắc đơn trong không gian...20 1... Ngôn ngữ mô hình hóa thực tại ảo V
Trang 1LỜI CẢM ƠN
Trước hết nhóm chúng em xin gửi lời cảm ơn sâu sắc đến thầy Hùng, cô Hiền Anh, thầy
cô đã giúp đỡ em rất nhiều về định hướng nghiên cứu, hướng dẫn cho chúng em trong suốt thờigian học tập môn này
Cuốn báo cáo này được nhóm chúng em hoàn thành theo đúng thời gian quy định của nhàtrường cũng như của khoa không chỉ là sự nỗ lực của chúng em mà còn sự giúp đỡ, chỉ bảo củathầy,cô hướng dẫn và các bạn sinh viên trong lớp giúp đỡ
Chúng em xin chân thành cảm ơn thầy cô đã giảng dạy chúng em, đặc biệt là các thầy côgiáo trong khoa CNTT
Xin cảm ơn các bạn sinh viên trong lớp đã giúp đỡ tôi rất nhiều mặt: như phương tiện, sách
vở, ý kiến …
Mặc dù nhóm đã rất cố gắng hoàn thành nghiên cứu này song cũng không tránh khỏinhững sai sót, mong thầy cô và các bạn đóng góp những ý kiến quí báu để nghiên cứu đượcthành công hơn
Nhóm sinh viên thực hiện:
Trang 2Mục lục
LỜI MỞ ĐẦU 3
Chương I: Tổng quan về Thực tại ảo 4
Chương II: Tổng quan ngôn ngữ mô hình hóa thực tại ảo VRML 5
CHƯƠNG III : TÌM HIỂU CHI TIẾT NGÔN NGỮ MÔ HÌNH THỰC TẠI ẢO VRML6 1 Làm việc với file VRML 6
2 Cấu trúc file VRML *.wrl 6
3 Các đối tượng hình học cơ bản 6
4 Các phép biến đổi trong VRML 8
5 Một số loại node được sử dụng trong VRML 10
Chương IV: Ứng dụng VRML – Viết chương trình mô phỏng dao động của con lắc đơn trong không gian 20
1 Mô tả thí nghiệm 20
2 Cơ sở lý thuyết 20
3 Yêu cầu bài toán 20
4 Thiết kế 20
5 Dựng hình 21
Trang 3LỜI MỞ ĐẦU
Đồ họa máy tính luôn là một trong những lĩnh vực được quan tâm nhất trong ngành công nghệ thông tin nói chung và khoa học máy tính nói riêng Chúng ta có thể bắt gặp nhiều ứng dụng của đồ họa máy tính trên nhiều lĩnh vực của đời sống: như khoa học – y tế - quân sự - xây dựng kiến trức, giải trí v.v…
Trong những ứng dụng ấy việc mô phỏng lại thế giới thực bằng cách xây dựng thế giới thực bằng cách xây dựng mô hình “ảo” trên máy tính luôn là một vấn đề lớn mà đồ họa máy tính hướng tới giải quyết Từ đó mà công nghệ “thực tại ảo” ra đời, với khả năng mô phỏng một cách sống động hầu hết những mô hình trong thế giới thực, từ đơn giản cụ thể cho tới phức tạp trừu tượng Ngôn ngữ mô hình hóa thực tại ảo VRML đã được xây dựng từ nhu cầu phát triển của công nghệ “thực tại ảo” – mà dựa trên đó, con người có thẻ giải quyết bài toán mô phòng lại thế giới thực trên máy tính
Nội dung của báo cáo được chia thành 4 chương cụ thể như sau:
Chương I: Tổng quan về Thực tại ảo
Chương II: Tổng quan ngôn ngữ mô hình hóa thực tại ảo VRML
Chương III: Tìm hiểu chi tiết ngôn ngữ mô hình hóa thực tại ảo VRML
Chương IV: Ứng dụng VRML – Viết chương trình mô phỏng dao động của con lắc đơn trong không gian
Page 3
Trang 4Chương I: Tổng quan về Thực tại ảo
Thực tại ảo hay còn gọi là thực tại ảo (tiếng Anh là virtual reality, viết tắt là VR) là
thuật ngữ miêu tả một môi trường mô phỏng bằng máy tính Đa phần các môi trường thực tại ảo chủ yếu là hình ảnh hiển thị trên màn hình máy tính hay thông qua kính nhìn ba chiều, tuy nhiên một vài mô phỏng cũng có thêm các loại giác quan khác khác như âm thanh hay xúc giác
Công nghệ thực tế ảo là một thuật ngữ mới xuất hiện khoảng đầu thập kỷ 90, nhưng
thực sự phát triển mạnh trong vòng vài năm trở lại đây Theo dự đoán của Gartner (tổ chức nghiên cứu thị trường toàn cầu), VR đứng đầu danh sách 10 công nghệ chiến lược năm 2009 Tại
Mỹ và châu Âu thực tế ảo (VR) đã và đang trở thành một công nghệ mũi nhọn nhờ khả năng ứngdụng rộng rãi trong mọi lĩnh vực (nghiên cứu và công nghiệp, giáo dục và đào tạo, du lịch, dịch
vụ bất động sản, thương mại và giải trí, ) và tiềm năng kinh tế, cũng như tính lưỡng dụng (trong dân dụng và quân sự) của nó Trong loạt các bài viết sau, tôi sẽ trình bày có hệ thống về VR: khái niệm, ứng dụng, phần mềm, phần cứng, mạng liên kết, nhằm giúp các bạn trẻ Việt Nam
có cái nhìn tổng quát về công nghệ VR trên thế giới, khả năng ứng dụng phần mềm để thiết kế thế giới ảo và xây dựng hệ thống VR tại Việt Nam
VR là một hệ thống mô phỏng trong đó đồ họa máy tính được sử dụng để tạo ra một thế giới "như thật" Hơn nữa, thế giới "nhân tạo" này không tĩnh tại, mà lại phản ứng, thay đổi theo ýmuốn (tín hiệu vào) của người sử dụng (nhờ hành động, lời nói, ) Điều này xác định một đặc tính chính của VR, đó là tương tác thời gian thực (real-time interactivity) Thời gian thực ở đây
có nghĩa là máy tính có khả năng nhận biết được tín hiệu vào của người sử dụng và thay đổi ngaylập tức thế giới ảo
Thực tại ảo có ứng dụng trong hết lĩnh vực của cuộc sống, nếu không có thực tại ảo, nhiều vấn đề khó khăn sẽ rất khó giải quyết được, hoặc có thể nhưng với hiệu quả thấp và chi phítốn kém hơn rất nhiều
Trang 5Chương II: Tổng quan ngôn ngữ mô hình hóa thực tại ảo VRML
VRML (Virtual Reality Modeling Language) là ngôn ngữ mô hình hóa thực tế ảo, một định dạng tập tin được sử dụng trong việc mô tả các thế giới và các đối tượngđồ họa tương tác bachiều VRML được thiết kế dùng trong môi trường Internet,Intranet và các hệ thống máy khách cục bộ (local client) VRML còn được dự trù trở thành một chuẩn trao đổi đa năng cho đồ họa bachiều tích hợp và truyền thông đa phương tiện VRML có thể được sử dụng trong rất nhiều lĩnh vực ứng dụng chẳng hạnnhư trực quan hóa các khái niệm khoa học và kỹ thuật, trình diễn đa phương tiện, giảitrí và giáo dục, hỗ trợ web và chia sẻ các thế giới ảo
Về căn bản VRML chỉ đơn giản là một định dạng trao đổi 3D Nó định nghĩa được các vấn đề thường được sử dụng trong các ứng dụng 3D, chẳng hạn như các biếnđổi phân cấp
(hierarchical tranformations), nguồn ánh sáng (líght sources), điểm nhìn(view points), hình học (geometry), sương mù (fog), thuộc tính của chất liệu (material properties) và các bản đồ kết cấu (texture mapping) Ngôn ngữ VRML là ngôn ngữ sử dụng mô hình phân cấp trong việc thể hiệncác tương tác với các đối tượng của mô hình, VRML được sử dụng để phát triển nhữnghình ảnh 3D và quang cảnh trên Web Các file VRML có kích thức nhỏ, thường không
quá 1Mb
Ngôn ngữ mô hình hóa thực tại ảo VRML là một chuẩn không chính thức đểmô tả thực tế
ảo mà không phụ thuộc vào hệ điều hành thông qua Internet Chỉ với mộtfile text bạn có thể mô
tả, tương tác, điều khiển một thế giới ảo mà không bị hạn chếnhiều
VRML cho phép truyền đi trong mạng những hình ảnh 3D Với kích thước khả nhỏ so với băng thông, phần lớn giới hạ n trong khoảng 100 - 200Kb nên các file
VRML được truyền đi một cách khá dễ dàng Nếu HTML là định dạng văn bản thìVRML là định dạng đối tượng 3D Hiện nay VRML có lợi thế là sự đơn giản, hỗ trợ dịch vụ web 3D
Page 5
Trang 6CHƯƠNG III : TÌM HIỂU CHI TIẾT NGÔN NGỮ MÔ HÌNH THỰC TẠI ẢO VRML
1 Làm việc với file VRML.
Chúng ta có thể tạo một file VRML đơn giản bằng cách dùng một trình soạn thảo văn bản như Notepad hay WordPad, rồi sau đó lưu file vớ i phần mở rộng rl Bên cạnh đó , giúp cho viêcsoạn thảo code VRML hiệu quả hơn
Việc dịch và chạy một file *.wrl lại yêu cầu một bộ Player trợ giúp cho hiển thị các hiệu ứng trong VRML Trong nhiều bộ Player hỗ trợ VRML hiệnnay, em chọn sử dụng bộ Cortona 3D viewer đượ cung cấp miễn phí
2 Cấu trúc file VRML *.wrl
1 file VRML (*.wrl) có 3 thành phần cơ bản :
Tiêu đề: Dùng để nhận dạng tập tin VRML và cách mã hóa
Phần chú thích: Bắt đầu bằng dấu # và được chương trình bỏ qua khi dịch và chạy
Các node: hay còn gọi là các thẻ, là thành phần chính của file VRML bao gồm các phần tổng quát sau:
Loại node :
Tên node phải viết hoa
Các cặp dấu trong mở ngoặc {…} bắt buộc phải có
Các trường: có thể có nhiều trường trong một node
Các trường gồm nhiều giá trị thì phải nằm trong các cặp […]
3 Các đối tượng hình học cơ bản
Thế giới ảo xây dựng từ các file VRML được tạo nên từ các đối tượng hình học cơ bản bao gồm : hình hộp, hình cầu, hình trụ, hình nón và văn bản Các đối tượng này được tạo ra trong node Shape với hai trường appearance và geometry
Trang 7tương ứng là mặt đáy trên – top, mặt đáydưới – bottom ,và mặt bên – side.
Các mặt không tồn tại sẽ không được xét tới nếu toàn khối trụ tham gia vào các sự kiện (ví dụ như phát hiện ra va chạm hoặc kích hoạt cảm biến)
Cone – Hình nón
Hình nón được tạo ra từ node Cone có tâm tại (0,0,0) , có bán kính mặt đáy quy định qua trường bottom Radius và có chiều cao quy định qua trường height
Text
Chuỗi văn bản được tạo từ node Text sẽ được quy định trong trường string,chuỗi này được
mã hóa theo chuẩn mã hóa utf-8
Page 7
Trang 84 Các phép biến đổi trong VRML
Mặc định mọi đối tượng được xây dựng trong VRML đều được đặt ở tọa độ gốc Biến đổi là tạo ra một hệ thống trục hệ tọa độ mới mà hệ trục này có vị trí tương đối so với hệ tọa độ mặc định Các các phép biến đổi như: di chuyển, quay, tỷ lệ
Các phép biến đổi trong VRML được thực hiện trên các đối tượng thông qua node
Transform{…}
Trang 9Page 9
Trang 105 Một số loại node được sử dụng trong VRML
Node Geometry sẽ bao gồm các node Box, Cone, Cylinder, Sphere, Text tương ứng với các đối tượng đượ c tạo ra trong node Shape đ là : hình h ộ p, hình nón, hình tr ụ , hình c ầu, và văn là : hình h ộ p, hình nón, hình tr ụ , hình c ầu, và văn bản.Ngoài ra nodeGeometrycòn chứa nodeIndexedLineSetvàIndexedFaceSet để t ạo nên tương
ng là đườ ng th ẳ ng và m ặ t phẳng trong không gian
Trang 11 Material
Page 11
Trang 12 Texture
Trang 13 IndexedFaceset
Page 13
Trang 14 Viewpoint
Trang 15 CylinderSensor
Page 15
Trang 16 TouchSensor
Trang 17 TimeSensor
Page 17
Trang 18 Anchor
Trang 20Chương IV: Ứng dụng VRML – Viết chương trình mô phỏng dao động của con lắc đơn trong không gian.
1 Mô tả thí nghiệm
Mô tả thí nghiệm: Treo ba hòn bi bằng thép có khối lượng bằng nhau vào 3 sợi dây, sao cho khi 3 dây song song và thẳng đứng thì 3 hòn bi tiếp xúc với nhau Ta kéo cho hòn bên phải lệch đi một góc a và thả nó ra Nó chuyển động tới đập vào hòn bi ở giữa đang đứng yên
và dừng lại,lực này tác động lên cả 2 hòn bi đứng giữa và hòn bi bên trái, kết quả là hòn bi giữa đứng yên còn hòn bi bên trái chuyển động tiếp về phía bên trái cho đến khi lệch một góc a thì chuyển động ngược lại, đập vào hòn bi giữa, rồi rồi đứng yên Hòn bi bên phải lại chuyển động và quá trình cứ tiếp diễn như vậy
2 Cơ sở lý thuyết
Khi hai vật tác dụng tương hỗ thì động lượng có thể truyền từ vật nọ sang vật kia, nghĩa
là chúng có thể trao đổi động lượng với nhau Ta sẽ xét xem sự trao đổi ấy diễn ra theo quy luật như thế nào với thí nghiệm đơn giản sau:
Treo hai hòn bi bằng thép có khối lượng bằng nhau vào 2 sợi dây, sao cho khi hai dây song song và thẳng đứng thì hai hòn bi tiếp xúc với nhau Ta kéo cho hòn bên phải lệch đi một góc a và thả nó ra Nó chuyển động tới đập vào hòn bi bên trái đang đứng yên và dừng lại, còn hòn bi bên trái chuyển động tiếp về phía bên trái cho đến khi lệch một góc a thì chuyển động lại, đập vào hòn bi bên phải rồi đứng yên Hòn bi bên phải lại chuyển động và quá trình cứ tiếp diễn như vậy
Giả sử khối lượng của mỗi hòn bi là m, vận tốc của hòn bi bên phải ngay trước lúc va chạm là v Vì lúc ấy hòn bi bên trái đứng yên nên động lượng của cả hai hòn bi ngay trước lúc vachạm là mv và hướng về bên trái Ngay sau lúc va chạm, vận tốc của hòn bi cũng phải là v do haigóc lệch bằng nhau, đồng thời hòn bi bên phải đứng yên, vậy động lượng của hai hòn bi lúc đó cũng bằng mv và hướng về bên trái, nghĩa là bằng động lượng của chúng trước lúc va chạm
Vậy thí nghiệm đã chứng minh rằng: tác dụng tương hỗ của hai vật không làm thay đổi động lượng tổng cộng của chúng
3 Yêu cầu bài toán
Xây dựng một mô hình mô tả chuyển động của con lắc đơn trong không gian 3D mà khi
Trang 21e Mô tả sự dao động của con lắc
Trang 26# Vị trí và góc dao động theo thời gian
DEF Daodong Script {
eventIn SFFloat set_fraction
eventOut SFRotation gocconlac1
eventOut SFRotation gocconlac3
if (goc < 0) gocconlac1[3] = goc; else gocconlac1[3] = 0;
if (goc > 0) gocconlac3[3] = goc; else gocconlac3[3] = 0;}"
}
ROUTE Clock.fraction_changed TO Daodong.set_fraction
ROUTE Daodong.gocconlac1 TO Conlac.set_rotation
ROUTE Daodong.gocconlac3 TO Conlac3.set_rotation