MỤC LỤC
MỤC LỤC 1
LỜI MỞ ĐẦU 2
CHƯƠNG 1: TỔNG QUAN VỀ THỰC TẠI ẢO 3
1.1. Thực tại ảo là gì 3
1.2. Lịch sử ra đời và phát triển của thực tại ảo 3
1.3. Các đặc tính của thực tại ảo 5
1.3.1. Tương tác 5
1.3.2. “Đắm chìm” 5
1.3.3. Tưởng tượng 5
1.4. Các thành phần của một hệ thống thực tại ảo 5
1.4.1 Phần cứng (Hardware) 6
Phần cứng của một VR bao gồm: 6
1.4.2. Phần mềm (Solf ware) 6
1.5. Các thiết bị cơ bản của thực tại ảo 7
1.5.1.Thiết bị trợ giúp xây dựng mô hình 7
1.5.2. Thiết bị trình chiếu 7
1.5.3. Thiết bị nhận biết đối tượng 7
1.5.4. Thiết bị điều khiển 8
1.5.5. Thiết bị tương tác 8
1.6. Ứng dụng của thực tại ảo 8
CHƯƠNG 2: TÌM HIỂU VỀ NGÔN NGỮ THỰC TẠI ẢO VRML 10
2.1. Tổng quan về VRML 10
2.1.1. Định nghĩa VRML 10
2.1.2. Lịch sử ra đời và phát triển của VRML 10
2.1.3. Đặc điểm cơ bản củaVRML 11
2.1.4. Những ràng buộc trong việc thiết kế VRML 12
2.2. Tìm hiểu các vấn đề cơ bản của VRML 12
2.2.1. Các thành phần cơ bản của VRML 12
2.2.2. Môi trường, công cụ hiển thị VRML 13
2.2.3. Tập tin của VRML 13
2.2.4. Các thẻ (node) cơ bản WorldInfo, Shape, Appearance trong VRML 14
2.3. Tìm hiểu chi tiết về VRML 17
2.3.1. Một số phương pháp vẽ trong VRML 17
2.3.2. Các phương pháp biến đổi trong VRML 18
2.3.3. Tìm hiểu và xây dựng các dạng hình học cơ bản 19
2.3.4. Tìm hiểu xây dựng một số hình phức tạp hơn 23
CHƯƠNG 3: ỨNG DỤNG VRML CHO VIỆC XÂY DỰNG PHÒNG HỌC 29
3.1. Bài toán 29
3.2. Yêu cầu đặt ra 29
3.2. Kết quả 29
PHẦN KẾT LUẬN 31
32 trang |
Chia sẻ: lynhelie | Lượt xem: 5179 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Tìm hiểu về ngôn ngữ thực tại ảo VRML và ứng dụng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
. Phần mềm (Solf ware)
Phần mềm luôn là linh hồn của VR cũng như đối với bất cứ một hệ thống máy tính hiện đại nào. Về mặt nguyên tắc có thể dùng bất cứ ngôn ngữ lập trình hay phần mềm đồ họa nào để mô hình hóa (modelling) và mô phỏng (simulation) các đối tượng của VR. Ví dụ như các ngôn ngữ (có thể tìm miễn phí) OpenGL, C++, Java3D, VRML, X3D, ...hay các phần mềm thương mại như WorldToolKit, PeopleShop,... Phần mềm của bất kỳ VR nào cũng phải bảo đảm 2 công dụng chính: Tạo hình vào Mô phỏng. Các đối tượng của VR được mô hình hóa nhờ chính phần mềm này hay chuyển sang từ các mô hình 3D (thiết kế nhờ các phần mềm CAD khác như AutoCAD, 3D Studio,..). Sau đó phần mềm VR phải có khả năng mô phỏng động học, động lực học, và mô phỏng ứng xử của đối tượng.
1.5. Các thiết bị cơ bản của thực tại ảo
Để cảm nhận được thế giới ảo chúng ta cần có những thiết bị chuyên dụng làm cho con người đắm chìm trong thế giới ảo.
1.5.1.Thiết bị trợ giúp xây dựng mô hình
Thiết bị cơ bản và phổ biến là máy quét ba chiều. Máy quét ba chiều là một thiết bị phân tích môi trường hoặc phân tích một đối tượng trong thế giới thực nhằm lấy được dữ liệu về hình dạng và màu sắc của nó. Dữ liệu thu được sẽ được dùng để xây dựng các mô hình số hóa hoặc mô hình ba chiều mà chúng được dùng trong nhiều ứng dụng, nghiên cứu và phát triển. Có hai loại máy quét ba chiều là máy quét tiếp xúc được (contact scanner) và máy quét không tiếp xúc được (non- contact scanner).
1.5.2. Thiết bị trình chiếu
Thiết bị trình chiếu là thiết bị đưa ra thông tin, dữ kiện mà chúng ta nhìn thấy được và có thể nhận biết được. Mục đích của thiết bị trình chiếu là đưa ra đối tượng một cách chính xác trong thế giới mô phỏng.Thiết bị này có các loại sau: thiết bị hiển thị (visual device), thiết bị nghe (audio device), thiết bị cảm nhận va chạm (haptic device) và một số lạo khác.
Thiết bị hiển thị: gồm có màn hình, mũ đội đầu, các thiết bị chiếu hình.
Thiết bị mũ đội đầu: phải đội trên đầu nên làm cho thao tác nặng nề, cồng kềnh.
Thiết bị chiếu hình: thiết bị này là các máy chiếu và màn che.
Thiết bị nghe: làm tăng thêm cảm giác thực cho thực tại ảo.
Thiết bị cảm nhận va chạm: Các thiết bị này cảm nhận một số nhân tố sau của thiết bị khác gây ra: nhiệt độ, vận tốc di chuyển, sự chuyển động, áp lực và các ngoại lực khác.
1.5.3. Thiết bị nhận biết đối tượng
Các thiết bị nhận biết đối tượng có các loại sau: Thiết bị cơ học, thiết bị từ tính, thiết bị siêu âm, thiết bị quang học, thiết bị quán tính và thiết bị Vision-based trackers. Ba thiết bị cuối cùng là những thiết bị mới, phần dưới đây sẽ đi chi tiết về từng loại thiết bị ngoại trừ hai thiết bị cuối cùng.
1.5.4. Thiết bị điều khiển
Thiết bị điều khiển cho phép điều khiển vị trí của các đối tượng ảo, thiết bị này gồm có:
SpaceMouse
SpaceBall
SpaceNavigator
1.5.5. Thiết bị tương tác
Thiết bị tương tác cho phép điều khiển các đối tượng ảo trực tiếp bằng tay. Một số thiết bị loại này là: Pinch Glove, Data Glove, Didji Glove, Cyber Glove.
1.6. Ứng dụng của thực tại ảo
Hiện nay thực tại ảo đang được nghiên cứu ứng dụng mạnh mẽ ở rất nhiều lĩnh vực như: Hàng không, Xây dựng, Giải trí, Quân sự, Điện ảnh, y học
Trong quân sự: ở một số nước có liên quân sự mạnh như Mỹ, Nga, Trung Quốc ngừời ta đã xây dựng các hệ thống mô phỏng phục vụ cho việc tập luyện của bộ binh, hay những hệ thống mô phỏng hệ thống an ninh, mô phỏng trận địa phục vụ cho việc nghiên cứu, tập luyện nhằm tìm ra các phương pháp phòng thủ hay chiến đấu một cách hiệu quả và nâng cao chất lượng của quân sự, giúp tiết kiệm chi phí và giảm nguy hiểm đối với tính mạng và tài sản của con người.
Trong Hàng không vũ trụ: người ta xây dựng rất nhiều chương trình mô phỏng cho phi công tập luyện kết hợp với các thiết bị phần cứng để tạo ra một môi trường làm cho con người tưởng như ở trên một chiếc máy bay thật và mọi thứ diễn ra như ngoài thực tế. Một chương trình máy tính tạo ra không gian 3D kết hợp với thiết bị phần cứng cho phép người phi công thực hiện những chuyến bay đến các sân bay đã được xây dựng sẵn với các tình huống nhằm nâng cao kỹ năng xử lý tình huống như trong thực tế cho phi công Với cách này người ta sẽ giảm thiểu được thời gian đào tạo, chi phí đào tạo, và nâng cao tính an toàn của mỗi chuyến bay.
Trong Y học: thực tại ảo giải quyết được rất nhiều vấn đề trong y học: cung cấp môi trường thực hành cho nghiên cứu và học tập, rất hữu ích trong việc mô phỏng các ca phẫu thuật giúp cho bệnh nhân mau lành bệnh và tránh các rủi ro trong
phẫu thuật.
Trong Giáo dục: Hiện nay có một xu hướng mới trong việc ứng dụng tin học trong giáo dục mà rất được quan tâm nghiên cứu và phát triển đó là xây dựng các mô hình thực tại trên máy vi tính nhằm cung cấp các môi trường học tập và nghiên cứu. Những mô hình được xây dựng ở đây phải xây dựng làm sao để chuyển tải được thực tế của chúng ta vào môi trường mô phỏng đó, cung cấp khả năng tương tác của con người với môi trường mô phỏng đó, có khả năng gây kích thích cao với người tham gia, cho phép chia sẽ tài nguyên về môi trường qua môi trường mạng, chúng ta có thể thấy rằng đó chính là thực tại ảo.
Trong Thiết kế xây dựng : Những chương trình đồ hoạ mạnh nhất hiện nay chủ yếu phục vụ vào các lĩnh vực thiết kế và xây dựng như AUCAD, AUTODEST, 3DMAX, SHAPRE,Những chương trình đã giúp cho những nhà thiết kế xây dựng giảm được rất nhiều chi phí về thời gian và công sức thiết kế. Song hầu hết các chương trình này vẫn chỉ dừng lại ở mức các bản vẽ chứ chưa thực sự tạo ra cho người ta cảm giác, hay một cái nhìn về những công trình mà họ thiết kế ra trên thực tế nó sẽ như
thế nào.
Thực tại ảo tạo cho người ta cảm giác chìm đắm trong một không gian như trên thực tế mà đã được xây dựng trên máy vi tính sẽ giúp cho chúng ta có thể có một cái nhìn chi tiết về công trình đã được thiết kế.
Như vậy thực tại ảo có ứng dụng trong hầu hết các lĩnh vực của đời sống. Qua đó cũng nhận thấy được ý nghĩa to lớn của việc ứng dụng thực tại ảo, bởi những vấn đề khó khăn mà nếu không có thực tại ảo thì có thể nói là khó lòng giải quyết hay nếu có giải quyết được thì hiệu quả cũng không cao và chi phí sẽ rất tốn kém. Còn khi ứng dụng thực tại ảo vào thì những vấn đề đó trở nên đơn giản hơn và hiệu quả mang lại thật sự to lớn kể cả vật chất lẫn tinh thần.Tuy nhiên để có được các mô hình thực tại ảo như trên thì cần phải có một ngôn ngữ xây dựng chúng, chương tiếp theo sẽ tìm hiểu ngôn ngữ VRML để xây dựng mô hình thực tại ảo.
CHƯƠNG 2: TÌM HIỂU VỀ NGÔN NGỮ THỰC TẠI ẢO VRML
2.1. Tổng quan về VRML
2.1.1. Định nghĩa VRML
Ngôn ngữ mô hình hoá thực tại ảo (VRML- virtual reality modeling language) là ngôn ngữ sử dụng mô hình phân cấp trong việc thể hiện cá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ững hình ảnh 3 chiều và quang cảnh trên World Wide Web. Các tập tin VRML có kích thước nhỏ, thường không quá 1MB. Tập tin nhỏ cho phép người dùng tương tác với quang cảnh bằng cách di chuyển "qua" hình ảnh.... Ví dụ, người dùng có thể "bước vào" một tòa nhà và đi từ phòng này qua phòng khác để nhìn tòa nhà từ mọi góc độ.
2.1.2. Lịch sử ra đời và phát triển của VRML
VRML đã trở thành một ngôn ngữ tiêu chuẩn cho việc mô phỏng tương tác thế giới 3D trong World Wide Web. Với mục đích xây dựng định dạng chuẩn cho phép mô tả thế giới thực trên máy vi tính mà cho phép chạy trên môi trường web, VRML đã trở thành chuẩn ISO từ năm 1997.
VRML bắt đầu ra đời vào mùa xuân năm 1994 ở hội nghị World Wide Web hằng năm đầu tiên được tổ chức ở Geneva, Thụy sĩ. Tim Berners-Lee và Dave Raggett đã tổ chức ra phiên họp có tên là Birds-of-a-Feather (BOF) để mô tả giao diện thực tại ảo trên World Wide Web. Nhiều thành viên tham dự phiên họp BOF đã mô tả nhiều dự án thực hiện việc xây dựng các công cụ hiển thị đồ họa ba chiều cho phép có nhiều thao tác hữu ích trên Web. Những thành viên này đã nhất trí đồng ý sự cần thiết cho các công cụ này có một ngôn ngữ chung, phổ biến cho định dạng, xác định việc mô tả thế giới 3D và các siêu liên kết World Wide Web. Vì thế cụm từ “the Virtual Reality Markup Language” ra đời, từ Markup sau đó đã được đổi thành Modelling để phản ánh bản chất tự nhiên của VRML.
Sau phiên họp BOF một thời gian ngắn thì tổ chức www-vrml mailing list được lập ra để tập trung vào xây dựng phiên bản VRML đầu tiên. Sự hưởng ứng lời mời của tổ chức này kéo dài trên một tuần và có trên một nghìn khách mời tham dự. Tại buổi họp chủ tịch Mark Pesce đã thông báo ý kiến của mình là đưa ra phiên bản phác thảo xây dựng VRML đã có sẵn ở hội nghị mùa xuân năm 1994 được tổ chức mới cách đó 5 tháng. Bản phác thảo của Mark Pesce đã có được sự đồng ý chung. Ngay sau đó hội nghị đã nhất trí các yêu cầu ràng buộc cho phiên bản đầu tiên và định hướng cho việc bắt đầu tìm kiếm các công nghệ được đưa vào để đáp ứng các yêu cầu của VRML.
Vào tháng 3-1995 thì có một thảo luận trên www-vrml mailing list liên quan đến việc tạo ra những tương tác của người sử dụng với hoạt cảnh và tất cả mọi người đều đi đến thống nhất ý kiến những thứ mới đưa ra đó thực sự cần thiết cho VRML. Công ty Silicon Graphics cộng tác với hãng Sony Research và Mitra để đưa ra phiên bản mới cho VRML. Bản đệ trình của Silicon Graphics có tên là Moving Worlds đến tổ chức Request-for-Proposals cho việc xây dựng phiên bản mới VRML, bản đệ trình này là một minh chứng cho sự cộng tác thành công của tất cả các thành viên của Silicon Graphics, Sony Research và Mitra. Năm 1996 tại New Orleans, phiên bản đầu tiên của VRML 2.0 được đưa ra.
Vào tháng 7/1996 tổ chức tiêu chuẩn quốc tế (ISO) đã thống nhất ý kiến phiên bản năm 1996 của VRML 2.0 như là một đề xuất mà sẽ được đưa ra xem xét vào tháng 4/1997. Bản thảo đó của VRML được biết như “VRML97” (như một tên quy ước kết hợp tên và năm). Sau khi bỏ phiếu về chuẩn ISO thì VRML97 được đưa ra như một chuẩn ISO năm 1997.
2.1.3. Đặc điểm cơ bản củaVRML
Tiêu chuẩn cho việc xác định đối tượng 3D, quang cảnh và cho sự liên kết các mô hình với nhau là:
Không phụ thuộc nền nghĩa là chạy trên các máy tính do các nhà sản xuất khác nhau chế tạo.
Có thể mở rộng nghĩa là có thể chấp nhận các lệnh mới do người sử dụng thêm vào hoặc quy định.
Thao tác được thế giới ảo thông qua môi trường Internet có băng thông thấp.
2.1.4. Những ràng buộc trong việc thiết kế VRML
VRML được thiết kế nhằm đáp ứng các yêu cầu sau:
Sự uỷ nhiệm (Authorability): cho phép phát triển các chương trình máy tính có khả năng tạo, chỉnh sửa và bảo trì các tập tin VRML. Bên cạnh đó, người dùng có thể viết các chương trình dịch tự động cho phép chuyển đổi các định dạng tập tin ba chiều thông dụng sang các tập tin định dạng VRML.
Có khả năng kết hợp hay cấu thành tổng thể (Composability): Hỗ trợ khả năng sử dụng và kết hợp các đối tượng ba chiều động bên trong một tổng thể và do đó cho phép tái sử dụng.
Có thể mở rộng (Extensibility): cung cấp khả năng chèn thêm các kiểu đối tượng mới chưa được định nghĩa sẵn trong VRML.
Có nhiều khả năng cài đặt (Be capable of implementation): VRML có thể được cài đặt trên một lượng lớn các hệ thống máy tính.
Sự thể hiện (Performance): Có được sự thể hiện tương tác, co giãn trên nhiều loại nền khác nhau.
Hiệu suất cao: nhấn mạnh hiệu suất khả co, tương tác trên một lượng lớn các hệ nền tính toán.
Tính khả co: cho phép tạo ra các thế giới ba chiều động có độ lớn tùy ý.
2.2. Tìm hiểu các vấn đề cơ bản của VRML
2.2.1. Các thành phần cơ bản của VRML
Gồm các trình duyệt (Browses) và bộ soạn thảo riêng dành cho ngôn ngữ VRML (Editor). Các file VRML chỉ có thể đọc nếu hệ thống có trình duyệt VRML.
Trình duyệt VRML giống như các trình duyệt Internet (Như Internet Explorer hay Nescape Navigator).
Thực chất trình duyệt VRML được tích hợp vào các trình duyệt thông dụng Internet trên.
Bộ soạn thảo VRML là môi trường cho phép người lập trình gõ mã VRML. Hiện nay, có nhiều bộ soạn thảo. Nhưng bộ soạn thảo VRML Pad là bộ soạn thảo thông dụng, cho phép người lập trình gõ mã VRML sau đó có thể dùng trình duyệt VRML trực tiếp để xem kết quả ngay lập tức.
2.2.2. Môi trường, công cụ hiển thị VRML
Công cụ hiển thị được coi la mạnh nhất của VRML hiện nay là ứng dụng Cortona VRML Client là hãng Parallel Graphics cho việc truy xuất các ứng dụng VRML trên các trình duyệt web. Giúp bạn thuận tiện hơn khi xem các mô hình ảo trên máy tính một cách trực quan sinh động.
Yêu cầu trước khi cài đặt Cortona VRML Client:
- Hệ điều hành Microsoft® Windows® ME/2000/XP.
- Trình duyệt Web Internet Explorer 6.0 trở lên, Netscape Navigator 8.0 trở lên Mozilla Firefox 1.5 trở lên, Opera 8.5 trở lên.
- CPU Pentium® II 300 MHz trở lên.
- RAM tối thiểu 64 MB.
- Độ phân giải màn hình tối thiểu 1024x768.
- Card đồ họa hỗ trợ 3D và cài đặt DirectX 9.
Cortona VRML Client tương thích với hầu hết các trình duyệt như Internet Explorer, Netscape Browser, Mozilla, Mozilla Firefox và các công cụ văn phòng như Word, PowerPoint...
Tính năng của Cortona VRML Client:
Cortona VRML Client sẽ trình diễn toàn bộ mô hình 3D trên máy tính một cách hoàn hảo như khi người tạo ra đó. ứng dụng hoàn chỉnh trên toàn bộ hiệu ứng trên nhiều hệ thống như Flash, DirectX9, MPEG4... Khi bạn truy xuất vào một ứng dụng VRML, toàn bộ hình mô phỏng sẽ được trình diễn tương tác trên nền 3D dạng mở. Rất ấn tượng và bắt mắt.
2.2.3. Tập tin của VRML
Tập tin VRML có thể được tạo từ nhiều cách, tuy nhiên đơn giản nhất bạn chỉ cần dùng một trình xử lý văn bản như NotePad để soạn thảo, và lưu tập tin với phần mở rộng .wrl. Để xem một file VRML trình diễn, bạn nhấp đúp chuột vào tập tin đó để trình duyệt (có plug-in cho phép thể hiện VRML) bắt đầu xử lý. Để xem phần mô tả (source) một file VRML bạn có thể nhấp chuột phải vào tên tập tin VRML rồi vào “Open with...” , sau đó chọn NotePad.
Cấu trúc một tập tin VRML gồm có các thành phần: header, scene graph, prototype, và event routing. Các nội dung này được xử lý để trình diễn và tương tác bởi một chương trình (đó chính là trình duyệt VRML).
1. Header: dùng để nhận dạng tập tin VRML và cách mã hóa. Header của VRML file bắt đầu bằng dấu #. Ngoại trừ lúc xuất hiện trong phần header, dấu # có ý nghĩa đánh dấu những gì theo sau nó là phần chú thích. File tiêu đề của VRML
có dạng :
#VRML V1.0 ascii dành cho phiên bản VRML 1.0, #VRML V2.0 utf-8 dành cho phiên bản VRML 2.0. Như vậy tiêu đề chỉ ra phiên bản của VRML 1.0 hay 2.0 và chỉ ra bảng mã ký tự được sử dụng hoặc là ascii hoặc là utf-8. Một file VRML bao giờ cũng bắt đầu bằng một tiêu đề ở dòng đầu tiên :
#VRML v2.0 utf8
Tên “utf 8" xuất hiện ở tiêu đề cho phép sử dụng các ký tự quốc tế khi xây dựng mô hình thực tại ảo bằng ngôn ngữ VRML.
2. Scene graph: chứa những nút mô tả các đối tượng và những thuộc tính đi kèm. Nó gần như một cây phả hệ gồm các nhóm đối tượng (hình học).
3. Prototype: cho phép một tập các nút kiểu VRML được mở rộng bởi người sử dụng. Các định danh kiểu này có thể được bao hàm trong file (mà chúng được sử dụng ) hay định nghĩa ở bên ngoài (file đó).
4. Event routing: một số nút có thể phát sinh những sự kiện đáp trả những thay đổi môi trường do tương tác phía người dùng. “Event routing” (tạm dịch: đường dẫn sự kiện) cho phép một sự kiện phát sinh được truyền đến các “đích” – những nút trong cùng hệ thống, từ đó gây ra những thay đổi cho riêng nút đó và/hoặc toàn hệ thống
2.2.4. Các thẻ (node) cơ bản WorldInfo, Shape, Appearance trong VRML
Thẻ WorldInfo : Đây là nút chứa thông tin chung của File VRML, được hiển thị trong thanh tiêu đề của cửa sổ trình duyệt.
Thẻ Shape: Tất cả các đối tượng trong thẻ Shape đều nhìn thấy được. Thẻ Shape có hai thuộc tính: appearance và geometry. Thuộc tính appearance cho biết thẻ Appearance được dùng để xác định màu và các thao tác như quay, co giãn, dịch chuyển đối tượng hình học. Thuộc tính geometry chỉ rõ dạng hình học được vẽ ra như thế nào.
Thẻ Appearance xác định hình dạng của một đối tượng hình học nào đó. Thẻ này chỉ ở bên trong thẻ Shape. Thẻ Appearance có các thuộc tính: material, texture và textureTransform. Không nhất thiết phải có toàn bộ các thuộc tính này nhưng phải có ít nhất một thuộc tính nào đó.
Trường material có thẻ Material. Thẻ này chỉ rõ màu sắc của đối tượng hình học, ánh sáng của đối tượng phản chiếu lại và sự trong suốt của đối tượng. Thẻ Material chỉ có thể ở bên trong thẻ Appearance. Thẻ này có sáu thuộc tính:
diffuseColor: xác định màu sắc khuếch tán trên bề mặt đối tượng hình học. Dạng thức của diffusecolor a b c trong đó a, b, c là các giá trị tương ứng với 3 màu RGB (Red, Green, Blue).
emissiveColor: xác định màu sắc, ánh sáng phát ra từ đối tượng hình học.
ambientIntensity: xác định hàm lượng ánh sáng mà đối tượng phản chiếu.
specularColor: cho biết màu sắc của các điểm ảnh trên bề mặt đối tượng hình học.
shininess: điều khiển cường độ của độ sáng cho các điểm sáng. Giá trị bé cho ánh sáng mềm, dịu. Giá trị cao làm cho ánh sáng bé và rõ nét hơn.
transparency: điều khiển sự trong suốt của đối tượng hình học. Trường có giá trị là 1 thì đối tượng hoàn toàn tối mờ, còn là 0 thì đối tượng hoàn toàn rõ nét.
Tất cả các trường “Color“ có một giá trị dựa trên ba màu nền RGB (Red, Green, Blue) nghĩa là có một giá trị giống như một véc tơ có ba điểm thành phần nằm trong khoảng 0.0 và 1.0. Các trường còn lại có một giá trị điểm đơn nằm trong khoảng 0.0 và 1.0.
Trường texture: chỉ chứa một trong các thẻ: thẻ imageTexture, thẻ MovieTexture và thẻ PixelTexture.
Thẻ ImageTexture: xác định vị trí của hình ảnh. Thẻ này có ba thuộc tính: url, repeatS, repeatT. Tất cả các thuộc tính này là tùy chọn. Nếu bỏ qua url thì sẽ không có hình ảnh nào, khi không có repeatS, repeatT thì hình ảnh sẽ được đặt một giá trị mặc định nào đó.
url: cho biết vị trí của ảnh. Các định dạng mà trình duyệt hỗ trợ là PEG Joint Photographic Experts Group), GIF (Graphical Interchange Format) và PNG (Portable Network Graphics). Khi có nhiều ảnh, bộ trình duyệt sẽ tìm kiếm dữ liệu trong các vị trí của ảnh theo thứ tự ưu tiên giảm dần.
repeatS: có kiểu Boolean, cho biết hình ảnh có được đặt theo chiều thẳng đứng hay không.
repeatT: có kiểu Boolean, cho biết hình ảnh có được đặt theo chiều ngang
hay không.
Tham khảo địa chỉ sau để tìm hiểu chi tiết về thẻ MovieTexture:
Tham khảo địa chỉ sau để tìm hiểu chi tiết về thẻ PixelTexture:
Trường textureTransform: có thẻ TextureTransform. Thẻ này phải được đặt bên trong thẻ Appearance. Thẻ TextureTransform cho phép chúng ta thực hiện các thao tác biến đổi, quay, dịch chuyển và đặt tỉ lệ với các đối tượng hình học.
Cú pháp :
TextureTransform {
scale 1 1
rotation 0
center 0 0
translation 0 0
}
Giá trị của center chỉ rõ điểm trung tâm (center point) mà tại đó thực hiện việc quay và chia tỉ lệ.
VRML 2.0 chia ra vật thể ra làm hai loại hình học: các hình thể dạng đơn giản như là hình hộp chữ nhật, hình nón, hình trụ, hình cầu và các hình thể dạng phức tạp như là hình ảnh tập hợp các điểm có màu, tập hợp các đường thẳng có màu. Tất cả các đối tượng này được tìm hiểu trong phần tiếp theo.
2.3. Tìm hiểu chi tiết về VRML
2.3.1. Một số phương pháp vẽ trong VRML
Trong VRML, chúng ta có thể vẽ trực tiếp các đối tượng. Tuy nhiên, trong nhiều trường hợp, đối tượng này được sử dụng lại nhiều lần. Nếu ta vẽ trực tiếp các đối tượng này thì sẽ mất rất nhiều thời gian và công sức .
Ví dụ, trong một lớp học có rất nhiều bộ bàn ghế. Các bàn ghế này giống hệt nhau. Như vậy, ta sẽ chỉ cần vẽ một lần, sau đó có thể dùng lại nhiều lần những bộ bàn ghế này.
Có nhiều biện pháp đưa ra để giải quyết vấn đề này. Ta đưa ra 3 biện pháp thông dụng sau :
a) Sử dụng Hàm Inline:
Hàm Inline cho phép chúng ta gọi trực tiếp một đối tượng bên ngoài thế giới vào thế giới hiện tại.
Cú pháp của Inline như sau :
Inline { url “ Tên đường dẫn “}
Với phương pháp này, ta sẽ vẽ đối tượng và lưu lại, giả sử với tên là “Ban. wrl”.Sau đó, mỗi lần cần sử dụng đối tượng, ta chỉ việc gọi đối tượng thông qua
hàm Inline.
Inline{ url “Ban. wrl” }
b) Dùng từ khóa định nghĩa DEF (DEFine):
Từ khoá này cho phép ta định nghĩa một đối tượng hay một kiểu thuộc tính. Giả sử ta định nghĩa một đối tượng banghe kiểu Transform
DEF Banghe Transform {
# Vẽ đối tượng
}
Sau đó, nếu muốn dùng lại đối tượng, ta chỉ việc gọi hàm bằng từ khoá USE
(sử dụng)
USE Banghe
c) Dùng từ khoá PROTO ( Hàm nguyên mẫu PROTOTYPE):
PROTO TenHam [
#Các thuộc tính
]
{ # Xây dựng đối tượng }
Các thuộc tính của hàm gồm có: Vị trí đặt đối tượng, góc quay, tỉ lệ
Khi muốn gọi đối tượng đã được định nghĩa nguyên mẫu, ta chỉ việc gọi tên đối tượng đó mà thôi.
Ví dụ :
TenHam{}
2.3.2. Các phương pháp biến đổi trong VRML
Phép quay (Rotation): Cho phép quay đối tượng trong không gian 3 chiều xung quanh một trục nào đó với một góc quay. Góc quay được sử dụng theo Radian.
Cú pháp : rotation x y z a Trong đó x, y ,z tương ứng là 3 trục , a là góc quay.
Hình 2.1: Phép quay
Phép dịch chuyển(Translation): Cho phép chuyển dịch đối tượng đến vị trí có toạ độ bất kì trong không gian 3 D
Cú pháp: translation x y z với x, y, z là các toạ độ theo 3 trục tương ứng.
Hình 2.2:Phép dịch chuyển
Phép tỉ lệ (Scale) : Cho phép nhân đối tượng với các tỉ lệ khác nhau
Cú pháp : scale x y z trong đó x,y,z là tỉ lệ theo 3 trục tương ứng.
Hình 2.3: Phép tỉ lệ
Ba loại biến đổi trên được sử dụng bên trong thẻ Transform và có thể kết hợp cùng một lúc 3 phép biến đổi.
Hình 2.4: Kết hợp ba phép biến đổi
2.3.3. Tìm hiểu và xây dựng các dạng hình học cơ bản
Hình hộp:
Thẻ Box cho phép xây dựng một hình hộp chữ nhật mà chúng ta có thể xây dựng nó bằng cách xác định độ dài, độ cao và độ sâu của hình hộp trong thuộc tính size. Nếu độ dài, độ cao và độ sâu không được đưa ra thì sẽ có một giá trị mặc định. Trung tâm của hình hộp là tọa độ (0,0,0) trong hệ tọa độ.
Ví dụ:
#VRML V2.0 utf8
Transform{
translation 0.0 0.0 -2.0 #di chuyển đến tọa độ x,y,z
children [
Shape {
appearance Appearance {
material Material { diffuseColor 1 1 0 }
# màu sắc theo (R,G,B) với khoảng giá trị 0..1
}
geometry Box { size 1 2 1} #x,y,z
}
]
}
Hình hộp cần xây dựng có chiều dài là 1 mét, độ cao là 2 mét và độ sâu là
1 mét:
Hình 2.5: Ví dụ về hình hộp
b) Hình nón :
Thẻ Cone cho phép chúng ta không chỉ xác định độ cao, bán kính của hình nón mà còn vẽ các phần bao quanh mà chúng ta muốn vẽ. Thẻ Cone có các thuộc tính bottomRadius, height, side và bottom.
Hai giá trị của thuộc tính là bán kính đáy và độ cao của hình nón phải lớn
hơn 0.0.
Thuộc tính side và bottom chỉ rõ các phần mà hình nón được vẽ. Giá trị hai trường này có kiểu Boolean, nếu side là FALSE thì chỉ có đáy của hình nón là một hình tròn được nhìn thấy. Một bên của hình nón là sáng, bên đối diện với nó là màu
tối sẫm.
Tất cả các trường là tùy ý lựa chọn. Trung tâm của hình nón là tọa độ (0,0,0) trong hệ tọa độ.
Shape{
appearance Appearance{
material Material{}
}
geometry Cone {
bottomRadius 1.0
height 2.0
side TRUE
bottom TRUE
}
}
Hình 2.6: Ví dụ về hình nón
c) Hình trụ:
Thẻ Cylinder cho phép chúng ta không chỉ xác định độ cao, bán kính của hình trụ mà còn vẽ các phần bao quanh mà chúng ta muốn vẽ. Thẻ này có năm thuộc tính: radius, height, side, bottom và top.
Thuộc tính side, bottom và top chỉ rõ các phần mà hình trụ được vẽ. Ba trường này có giá trị Boolean, ví dụ nếu side là FALSE thì chỉ thấy được đỉnh và đáy của hình trụ. Một bên của hình trụ là sáng, bên đối diện với nó là màu tối sẫm. Giá trị của thuộc tính radius và height phải lớn hơn 0.0. Tất cả các thuộc tính là tùy ý lựa chọn. Trung tâm của hình trụ là tọa độ (0,0,0) trong hệ tọa độ.
Shape {
appearance Appearance{
material Material{}
}
geometry Cylinder {
radius 1.0
height 2.0
side TRUE
bottom TRUE
top TRUE
}
}
Hình 2.7: Ví dụ về hình trụ
d) Hình cầu:
Thẻ Sphere có một trường cho phép xác định bán kính của hình cầu. Trường này là tuỳ ý lựa chọn. Nếu bán kính không được đưa ra thì giá trị mặc định là 1. Trung tâm của hình cầu là tọa độ (0,0,0) trong hệ tọa độ.
Shape{
appearance Appearance {
material Material{}
}
geometry Sphere {radius 1.0}
}
Hình 2.8: Ví dụ về hình cầu
2.3.4. Tìm hiểu xây dựng một số hình phức tạp hơn
a) Hình ảnh dạng văn bản:
Thẻ Text cho phép hiển thị xâu kí tự trong thế giới VRML. Thẻ này có các thuộc tính sau:
string chứa nội dung văn bản. Nội dung có thể có một hoặc nhiều dòng. Trong trường hợp nhiều dòng thì mỗi dòng là một xâu.
fontStyle có thẻ FontStyle. Thẻ này cho phép xây dựng văn bản hiển thị như thế nào như chữ có độ đậm, nghiêng,
length xác định độ dài của xâu văn bản theo đơn vị độ đo của VRML chứ không phải theo đơn vị đếm số kí tự xuất hiện trong xâu. Giá trị 0 hoặc không thiết lập giá trị thì độ dài của xâu được đặt một giá trị mặc định cho trước.
maxExtent, nếu giá trị của trường này lớn hơn hoặc bằng giá trị của length thì xâu hiển thị theo kích thước không đổi, ngược lại nếu giá trị này bé hơn length và càng giảm dần thì kích thước xâu sẽ càng bé đi. Trường này có giá trị kiểu là float. Nếu giá trị được đặt là 0 thì độ dài xâu sẽ hiển thị theo giá trị của thuộc tính length.
Cú pháp:
Text {
stri
Các file đính kèm theo tài liệu này:
- Baocaotomtat.doc
- NguyenThanhLong.ppt