petuyetlovekute

New Member

Download miễn phí Đồ hoạ máy tính và hiện thực ảo





 

 

 

Lời nói đầu . .1

MỤC LỤC .2

I. Gớới thiệu về VRML .4

1.Về ngụn ngữ VML.4

 a,Về trỡnh duyệt . .4

 b,Soạn thảo VRML . .4

 c,Kỹ thuật nén, MIME và xuất bản .4

 d,Headers và chú thích . .5

 e,Các nút trong VRML . .5

 e1.Các nút appearrance .7

 e2.Các nút Material . 7

 e3.Kết cấu hình ảnh( image texture) . .8

 e4.Movie Texture . .9

 e5.Pixel Texture .9

 e6.Văn bản và kiểu font( text và fontstyle) . .10

 e7.Các đối tượng cơ bản .11

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

3.Hệ toạ độ trongVRML . . .14

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

5.Các sự kiện .16

6.Các router . .17

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 . 25

 d,Lắp ráp .26

II.Scripting . 26

 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

 4.Ví dụ . .29

 5.The Browser object .33

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

 1.Cửa ra vào 43

 2.Cửa kộo 43

 3.Quạt trần . . 44

 4.Bảng kộo . 47

 5.Ánh sỏng . .47

 6.Ghế . . . 47 7.Bàn học . . 48

 

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


có sự thay đổi. Nếu bạn sử dụng set_fieldname để thiết lập giá trị của trường, nút sẽ phát sinh một sự kiện fieldname_changed. Để dễ dàng sử dụng, các thành phần set_ và _changed của sự kiện có thể nghiêng về phía trái và browser sẽ làm việc khi sự kiện được sử dụng. Nếu một trường không được phơi bày ra, nó không thể thay đổi do các sự kiện và giá trị trong trường được sử dụng trong suốt các khoảng thời gian. Để xem xét trường nào được bày ra đối với mỗi nút, hãy giữ lấy một tham chiếu từ một vị trí từ trang liên kết hay nhận lấy tham chiếu nút trong phụ lục.
6.Các router
Để thực hiện hiệu quả mọi thứ với các sự kiện, chúng ta cần nối chúng với nhau. Việc kết nối được biết đến như ROUTER. Ví dụ để dẫn từ touchTime eventOut tới startTime eventIn, chúng ta sẽ dẫn sự kiện như sau:
ROUTE SENSOR.touchTime TO SOUND.startTime
Vì vậy, bít này của mã sẽ dẫn tới sự kiện touchTime từ TouchSensor ( sẽ đề cập đến ở phần sau) tới sự kiện startTime trong nút sound ( cũng được đề cập ở phần sau). Do đó, khi TouchSensor bị kích vào, âm thanh được chơi. Bạn cần sử dụng DEF cho mỗi nút mà bạn dẫn tới hay từ đó sao cho nó có một tên riêng lẻ. Vì vậy, các nút TouchSensor và Sound sẽ được định nghĩa:
DEF SENSOR TouchSensor {
}
DEF SOUND Sound {
}
Ngoại trừ các trường bên trong chúng. Nếu bạn có một số các đối tượng với cùng một tên (do sử dụng USE), và dẫn tới hay từ chúng, tất cả các đối tượng bị ảnh hưởng, vì vậy nếu bạn chỉ muốn một đối tượng bị ảnh hưởng, đưa cho nó một tên duy nhất hay sử dụng PROTO, được giải thích sau.
7,Camera, âm thanh, ánh sáng
Trong phần này chúng tui sẽ trình bày cách để giúp các bạn làm cho phong cảnh của bạn trở nên hiện thực hơn. Nó bao gồm máy quay phim, ánh sáng, âm thanh, nền và trạng thái của tất cả những yếu tố khác. Trước hết ta hủy bỏ đi điểm khởi đầu ngầm định và xem xét máy quay phim (camera).
a,Camera
VRMR browser tạo ra một cổng vào mặc định cho một cảnh, nó được đặt dọc theo trục +Z sao cho toàn bộ thế giới được hiển thị trong cửa sổ. Tuy nhiên bạn không nên bắt đầu từ vị trí này mà bạn nên để người quan sát có thể chọn một trong số các điểm nhìn. Để làm được điều này bạn hãy đặt thêm các camera trong phong cảnh của bạn và sử dụng các nút điểm nhìn (Viewpoint node).
Nút điểm nhìn có một số trường, trường thứ nhất là vị trí (position), đó là một SFVec3f (như một bộ ba các số thực mô tả các tọa độ X, Y, Z). Trường này xác định vị trí của camera trong thế giới. Trường thứ hai là hướng (orientation), đó là một SFRolation, nó cũng gồm 3 số thực để xác định sự quay của camera. Hướng ngầm định là nhìn về hướng -Z với độ lệch +X ở bên phải và +Y ở phía trên.
Trường thứ 3 là phạm vi nhìn (FieldofView). Trường này là một số thực tính theo đơn vị radian có giá trị từ 0 đến pi. Nó dùng để xác định góc nhìn, giá trị nhỏ hơn tương ứng với góc nhìn nhỏ hơn, nó cho ta kết quả thu nhỏ. Giá trị lớn tương ứng với hình ảnh được phóng to. Giá trị ngầm định là 0,78 radian ứng với hình ảnh trung bình.
Mỗi điểm nhìn còn có một trường mô tả (description). Đây là trường mà brouser dùng để xác định camera, trường này là một SFString. Cú pháp đầy đủ của một điểm nhìn là như sau:
Viewpoint {
position 0 5 5
orientation 1 0 0 0.39
fieldOfView 0.39
description "Camera 1"
}
Bạn cũng có thể sử dụng những camera khác để tạo ra những cổng vào khác cho phong cảnh của bạn bằng cách liên kết tên của camera với trang mà nó được dùng làm cổng vào cho phong cảnh. Ví dụ như để đ vào một phong cảnh tại camera có tên CAM1 bạn phải thực hiện kết nối như sau:
World.wrl#CAM1
Những vấn đề liên quan:
Brouser sẽ bắt đầu kiểm tra hình ảnh trong thế giới của bạn tại camera đầu tiên mà nó tìm thấy trong file, vì vậy hãy chắc chắn rằng là cổng đầu tiên mà bạn đã ghi nhận. Một vấn đề nhỏ nữa là việc lập kế hoạch cho các điểm nhìn là khá phức tạp. Nếu bạn biết camera ở đâu và nơi nào bạn muốn xem thì sẽ rất khó để điều chỉnh đúng hướng. Tuy nhiên có một công cụ nhỏ từ Vapour Technology sẽ giúp bạn thực hiện toàn bộ điều này, hãy gọi Peek
b,Âm thanh
Để làm cho thế giới của bạn trở nên hấp dẫn hơn, chúng ta sẽ thêm âm thanh vào đó. Ta có thể tạo âm thanh nền, tiếng chuông cửa, còi báo động hay những âm thanh khác mà bạn muốn. Tất cả những điều đó được thực hiện bởi 2 loại nút là nút Sound (Sound nodes) và nút AudioClip (AudioClip nodes). Bạn hãy tưởng tượng: một nút Sound giống như sự xác định ở nơi nào trong không gian bạn sẽ nghe thấy âm thanh và nó bắt nguồn từ đâu. Còn bản thân âm thanh sẽ được xác định bởi nút AudioClip.Trước tiên chúng ta hãy xem xét nút Sound.
Nút Sound:
Một nút Sound được sử dụng để xác định vị trí và sự định hướng của một nguồn âm thanh trong thế giới của bạn. Nút sound được đặt tại một nơi nào đó. Cho dù bạn nghe âm thanh hay bất cứ liên quan nào khác với âm thanh thì âm thanh vẫn được phát ra dưới dạng những mặt elipsoid .
Trong vùng màu đỏ, âm thanh sẽ được nghe thấy với toàn bộ cường độ của nó. Trong vùng màu vàng, âm thanh loãng đi theo khoảng cách đến nguồn âm. Các khoảng cách minFront, maxFront, minBack, maxBack là các trường được xác định bởi nút sound, đó là các hướng. Cú pháp của nút Sound như sau:
Sound {
SFVec3f direction 0 0 1
SFFloat intensity 1
SFVec3f location 0 0 0
SFFloat maxBack 10
SFFloat maxFront 10
SFFloat minBack 1
SFFloat minFront 1
SFFloat priority 0
SFNode source NULL
SFBool spatialize TRUE
}
Các trường khác có tác dụng như sau: Direction là một vectơ xác định hướng mà âm thanh truyền tới. Intensity là cường độ của âm thanh. Giá trị 1 là toàn bộ cường độ của âm thanh trong file, còn giá trị 0 là hoàn toàn yên lặng. Location là vị trí của nguồn âm thanh trong thế giới. 4 thông số max/ min/ Front/Back xác định hình dạng của elipsoid như đã nói ở trên. Ví dụ: Để có một âm thanh có thể nghe rõ như nhau ở tất cả các hướng bạn hãy lấy maxFront = maxBack, minFront = minBack. Nếu bạn không muốn âm thanh bị giảm theo khoảng cách. Bạn hãy đặt tất cả các giá trị với cùng một khoảng cách mà khoảng cách đó đủ lớn để có thể bao trùm toàn bộ thế giới của bạn. Nếu bạn muốn cho âm thanh của bạn nhỏ dần đi theo khoảng cách, hãy đặt các giá trị max là 10 nhân với giá trị min.
Priority là mức độ ưu tiên của âm thanh. Brouser có một số các kênh âm thanh và Priority của các âm thanh được sử dụng để xác định xem âm thanh nào sẽ được phát ra, nó sẽ lấy giá trị 0 hay 1. âm thanh nền có mức độ ưu tiên thấp với giá trị là 0, mức độ ưu tiên cao nên dùng với những âm thanh ngắn như tiếng chuông, tiếng còi ... nó có giá trị 1.
Trường Spatialize được brouser dùng để xác định việc truyền âm thanh, điều đó có nghĩa rằng nó sẽ phát âm thanh thông qua các speaker được xem là các nguồn âm thanh, vì vậy bạn sẽ nghe thấy âm thanh thay đổi khi bạn thay đổi cách liên hệ với nó. Nếu như trường này là FALSE thì brouser sẽ không thực hiện điều này. Trường này có ích trong việc tối ưu hóa cũng như trong việc tạo ra các âm thanh bao xung quanh.
Có một yếu tố còn chưa có trong nút sound, đó chính là nút nguồn â...

 

Các chủ đề có liên quan khác

Top