1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ họa máy tính và hiện thực ảo tìm hiểu ngôn ngữ VRML

74 4 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đồ Hoạ Máy Tính Và Hiện Thực Ảo Tìm Hiểu Ngôn Ngữ VRML
Tác giả Nguyễn Vĩnh Thuận
Người hướng dẫn Thầy Hựng
Trường học Đại học BKHN
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 74
Dung lượng 652,29 KB

Cấu trúc

  • II. Scripting (38)
  • III. Nội dung của bài tập lớn (62)
  • IV. Các đối tượng cơ bản trong bài tập lớn (62)

Nội dung

Scripting

Trong phần trước, chúng ta đã khám phá hầu hết các tiêu chuẩn của VRML97 Bây giờ, chúng ta sẽ chuyển sang một chủ đề mới, đó là mô tả VRML97 như một ngôn ngữ lập trình tuần tự Chúng ta sẽ học cách sử dụng công cụ mạnh nhất của VRML97: scripting.

Java, JavaScript, VRMLScript và ECMAScript là những khái niệm thường bị nhầm lẫn Java là một ngôn ngữ lập trình độc lập với nền tảng máy tính, cho phép lập trình viên biên dịch mã nguồn thành bytecode có thể chạy trên bất kỳ máy nào có cài đặt máy ảo Java Với nhiều ưu điểm nổi bật, Java rất phù hợp cho việc phát triển các ứng dụng quy mô lớn.

JavaScript là ngôn ngữ lập trình được phát triển bởi Netscape, có cú pháp tương tự như Java nhưng không hoàn hảo bằng và không phải là ngôn ngữ biên dịch Được thiết kế chủ yếu để sử dụng cho các script trên trang web, JavaScript thường khá đơn giản và bao gồm ngôn ngữ căn bản cùng với một số đối tượng hỗ trợ chức năng như truyền thông tin với các văn bản hiện tại.

Khi VRML 2.0 được phát triển, cần một ngôn ngữ đơn giản cho các script của VRML, và Java đã được xem xét Tuy nhiên, họ cần một ngôn ngữ đơn giản hơn cho các script không quan trọng, vì vậy một phiên bản giản lược của JavaScript đã được tạo ra, gọi là VRMLScript Trình duyệt VRML cũng cung cấp một số đối tượng tương tự như các trình duyệt thông thường Trước khi VRML 97 trở thành tiêu chuẩn, phần lõi của JavaScript đã được chuẩn hóa thành ECMAScript Về cơ bản, VRMLScript tương tự như ECMAScript nhưng đã được chuẩn hóa riêng.

Không phải tất cả các trình duyệt đều hỗ trợ ECMAScript, điều này có thể gây khó khăn khi làm việc với các trình duyệt khác nhau nếu không tích hợp ECMAScript Trong bài viết này, tôi sẽ giới thiệu về cách làm việc với ECMAScript, trước khi chuyển sang tìm hiểu về Java ECMAScript là lựa chọn phù hợp hơn cho những người mới bắt đầu.

2,Sử dụng ECMAScript trong VRML

Với sự phát triển phức tạp, mặc dù các trình duyệt hỗ trợ ECMAScript cho các script node, bạn vẫn có thể sử dụng giao thức URL "javascript " Ngoài ra, VRML Script cũng có thể được sử dụng thông qua "vrlmscript " Tuy nhiên, hiện nay bạn có thể bỏ qua việc sử dụng VRMLScript vì tất cả các script đều có thể được thực hiện bằng ECMAScript.

Bạn có thể viết các mã lệnh ECMAScript trong các file khác nhau và tham chiếu đến các file đó bằng tr-ờng URL trong Script node

Các tệp nguồn ECMAScript thường có đuôi js, ví dụ như filename.js Mặc dù bạn có thể tham chiếu các dòng lệnh từ tệp khác, nhưng điều này chỉ hiệu quả khi nhiều script cùng sử dụng những dòng lệnh đó.

3,LËp tr×nh tuÇn tù trong ECMAScript

ECMAScript là một ngôn ngữ lập trình tuần tự, khác biệt với VRML, một ngôn ngữ có nhiều khai báo hơn Trong khi VRML khai báo các vật thể với các thuộc tính khác nhau, ECMAScript tập trung vào việc lập trình tuần tự để tạo ra các ứng dụng.

Chương trình ECMAScript là một chuỗi các câu lệnh được thực thi một lần nhằm tạo ra kết quả mong muốn Các khái niệm như biến, biểu thức, vòng lặp và hàm trong ECMAScript tương tự như trong các ngôn ngữ kịch bản khác, do đó sẽ không đi sâu vào chi tiết Tuy nhiên, cần lưu ý về các đối tượng trong ECMAScript.

Để tạo scripts bằng VRML, bạn cần sử dụng đối tượng ECMAScript, vốn được tích hợp trong trình duyệt Trình duyệt cung cấp nhiều thuộc tính, hàm khởi tạo và phương thức hữu ích Chẳng hạn, đối tượng SFVec3f có nhiều phép xử lý hình học, bao gồm chiều dài, điểm và giao điểm, mà bạn có thể áp dụng trong quá trình lập trình.

Hầu hết các kiểu dữ liệu cơ bản trong VRML đều tương ứng với ECMAScript, ví dụ như giá trị SFVec3f trong VRML tương ứng với đối tượng SFVec3f trong ECMAScript Tuy nhiên, các kiểu dữ liệu như SFFloat, SFInt32 và SFTime trong ECMAScript đều được ánh xạ trực tiếp đến các kiểu số.

SFBool ánh xạ trực tiếp tới kiểu boolean, cho phép sử dụng giá trị true và false trong ECMAScript tương tự như TRUE và FALSE trong VRML.

Tất cả các kiểu dữ liệu khác trong VRML đều ánh xạ tới các đối t-ợng của ECMAScript, chẳng hạn nh- SFVec3f, SFColor, MFNode vv

Các đối tượng trình duyệt (Browser object) cung cấp thông tin hữu ích từ trình duyệt, cho phép người dùng truy cập và sử dụng dữ liệu một cách hiệu quả.

Để sử dụng hiệu quả đối tượng 3 chiều, bạn cần có kiến thức vững về hình học 3 chiều Điều này giúp bạn nắm bắt và áp dụng các khái niệm một cách chính xác.

Các đối tượng SFxxx có các hàm và chức năng riêng biệt cho từng kiểu cụ thể Vì sự khác biệt này, tôi sẽ không đề cập chi tiết ở đây Để hiểu rõ hơn về cách hoạt động của từng kiểu, tôi khuyên bạn nên tham khảo phụ lục C, nơi cung cấp thông tin đầy đủ và hướng dẫn sử dụng chi tiết.

Nội dung của bài tập lớn

Trong bài tập lớn này, chúng tôi sẽ mô phỏng một tòa nhà dựa trên mô hình từ nhà C14_15 DHBKHN, sử dụng ngôn ngữ VRML kết hợp với JavaScript Chương trình cho phép người dùng quan sát tòa nhà từ xa hoặc gần, và tham quan các phòng học với đầy đủ các chi tiết như bàn ghế, cửa ra vào, cửa sổ và quạt trần, mang lại trải nghiệm thực tế.

Các đối tượng cơ bản trong bài tập lớn

Mã VRML có dạng như sau:

SENSOR CylinderSensor { diskAngle 0.78 maxAngle 3 minAngle 0 }

DEF OBJECT Transform { children [ canhcua{ pos 0 0 0}

ROUTE SENSOR.rotation_changed TO OBJECT.rotation

Để xây dựng cánh cửa quay, trước tiên cần tạo ra một cánh cửa tĩnh Sau đó, lắp đặt cảm biến Cylinder với điều kiện tâm của hệ tọa độ di chuyển đến cạnh bên của cánh cửa.

Mã VRML có dạng như sau:

Group { children [ Transform { translation 0.4 2.39 0 scale 0.6 1.52 1 children [ DEF SENSOR PlaneSensor { maxPosition 1 0 minPosition 0.05 0 }

DEF SLIDER Transform { rotation 0 1 0 1.57 children [ cuaso{pos 0 0 0}

Quạt trần có thể quay được nhờ trong quạt có định nghĩa một nút nội suy về hướng, hoạt động theo một TimerSensor

Mã VRML có dạng như sau:

DEF fan Transform { translation 0 290 200 scale 1.5 1.5 1.5 children [

DEF gocquay OrientationInterpolator { key[0 0.25 0 5 0.75 1.0] keyValue [0 1 0 0,

DEF ts1 TimeSensor { cycleInterval 1.3 loop TRUE }

ROUTE fanon.isActive TO scr.turnin ROUTE scr.turnchange TO time.enabled ROUTE time.fraction_changed TO gocquay.set_fraction ROUTE gocquay.value_changed TO q1.rotation

Quạt được trang bị công nghệ TouchSensor, cho phép người dùng dễ dàng bật và tắt thiết bị bằng cách chạm vào nút Chức năng này cũng bao gồm khả năng điều chỉnh Timer, giúp người dùng linh hoạt trong việc thiết lập thời gian hoạt động của quạt.

Ngoài ra còn dùng các hàm javasciript để xác định trạng thái của quạt đang hay đang tắt ,từ đó sẽ xác định quạt quay hay dừng

Bảng kéo giảng đường được thiết kế với 4 tấm có khả năng điều chỉnh lên xuống theo nhu cầu sử dụng Nguyên tắc hoạt động của bảng tương tự như cửa kéo, sử dụng công nghệ planesensor để điều khiển sự dịch chuyển của các tấm bảng.

5,Ánh sáng Đầu tiên ta xây dựng các ánh sáng điểm có dạng như sau:

DEF light PointLight { radius 100 location 0 0 0 color 0 0 0}

Ánh sáng chưa có tác động ban đầu Sau đó, chúng ta xây dựng các hàm để kích hoạt nguồn sáng khi tác động vào một nút gắn liền Hàm này được định nghĩa như sau:

DEF scr Script { eventIn SFBool set_light eventOut SFColor light_change field SFBool IsOpen FALSE url "javascript: function set_light(val) { if(IsOpen) { light_change[0] = 0; light_change[1] = 0; light_change[2] = 0;

} else { light_change[0] = 1; light_change[2] = 1;

Chúng tôi đã phát triển một hàm Java mới nhằm xác định trạng thái của nguồn sáng, từ đó cho phép chúng tôi biết được liệu khi nhấn công tắc, nguồn sáng sẽ được bật hay tắt.

Chiếc ghế đ-ợc xây dựng từ các đối t-ợng hình học cơ bản : hép, trô, cÇu

DEF chair Transform { rotation 0 1 0 -1.57 children [ DEF ps1 PlaneSensor { autoOffset TRUE offset 0 0 0 maxPosition 0 0 minPosition -40 0 }

DEF Quay CylinderSensor { autoOffset TRUE maxAngle 0 minAngle 1 diskAngle 0.2 enabled TRUE }

] ROUTE Quay.rotation_changed TO Trenghe.rotation }

Ghế được cấu tạo từ hai phần chính: phần ngồi và chân ghế Phần ngồi có khả năng xoay quanh trục, trong khi toàn bộ ghế có thể di chuyển trên một trục nằm ngang.

DEF ngankeo Transform { translation -2 0 -25 children [

} Bàn có các ngăn kéo có thể kéo ra vào

Trong việc xây dựng nhà C14-15 theo nguyên tắc VRML, trước tiên cần xác định tọa độ tâm để dễ dàng bố trí các phòng Tâm được đặt tại góc ngoài cùng bên trái của phòng 102 Nguyên tắc cơ bản là xây dựng bộ khung trước, sau đó mới tiến hành xây dựng các phòng và đặt chúng vào vị trí chính xác.

Khi thiết kế một phòng, ba yếu tố cơ bản cần xác định là cửa sổ, cửa chính và bức tường Đầu tiên, bạn cần xây dựng ba yếu tố này, sau đó tiến hành nhân bản và đặt chúng ở các vị trí chính xác trong không gian phòng.

This article covers various aspects of VRML (Virtual Reality Modeling Language), including its language structure, browser compatibility, and drafting techniques It discusses essential topics such as compression methods, MIME types, and publishing standards Additionally, it delves into headers and annotations, as well as the different nodes within VRML, including appearance nodes, material nodes, image textures, movie textures, pixel textures, and text and font styles The article also highlights fundamental objects within VRML, providing a comprehensive overview of its functionalities and applications.

2.Các kiểu dữ liệu trong VRML……… …………13

4 4.Các phép biến đổi trong VRML……… ……… 15 a,Translation and Scale ( Phép biến đổi và tính tỉ lệ)………16 b,Rotation ( phÐp quay)………16

7.Camera, âm thanh, ánh sáng ……… …… …18 a,Camera……… …….………18 b,©m thanh……….…… …………19 c,,ánh sáng và màu sắc……….………21

8.Một số vấn đề về lập trình VRML……… …… 23 a,Tái sử dụng các đối tượng……….………23 b,Proto……… ……….………….24 c,ExternProto………

1.Java, JavaScript, VRMLScript, hay ECMAscript? 27

2.Sử dụng ECMAScript trong VRML……….27

3.LËp tr×nh tuÇn tù trong ECMAScript………….28

III.Nội dung của bài tập lớn……….42

IV.Các đối tượng cơ bản trong bài tập lớn……….…………42

Ngày đăng: 10/10/2022, 15:56

HÌNH ẢNH LIÊN QUAN

4,Bảng kộo - Đồ họa máy tính và hiện thực ảo tìm hiểu ngôn ngữ VRML
4 Bảng kộo (Trang 66)
e3.Kết cấu hình ảnh( image - Đồ họa máy tính và hiện thực ảo tìm hiểu ngôn ngữ VRML
e3. Kết cấu hình ảnh( image (Trang 71)
4.Bảng kộo - Đồ họa máy tính và hiện thực ảo tìm hiểu ngôn ngữ VRML
4. Bảng kộo (Trang 73)

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

TÀI LIỆU LIÊN QUAN

w