TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 1
TH3813 Realiti Maya
Cahaya dan Persekitaran
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 2
Kesan cahaya dalam
dunia maya
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 3
Latarbelakang
Secara default, pemercahati memepunyai satu
cahaya dalam pandangan, terletak di kepela.
Untuk kesan lebih nyata, boleh tambahkan
pelbagai kesan cahaya:
matahari, mentol, lilin flashlight, spotlight, firelight
Cahaya boleh diposisikan, putar dan diwarnakan. Cahaya tidak hasilkan bayang-bayang.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 4
Contoh
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 5
Penggunaan jenis cahaya
Terdapat tiga jenis cahaya dalam VRML Point lights - sinarkan cahaya pada kesemua arah
daripada satu punca (titik)
Directional lights - menuju kepada satu arah daripada kedudukan yang jauh
Spot lights - menuju dalam satu arah daripada satu titik, sinaran dalam kon.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 6
Penggunaan fitur lazim cahaya
Setiap jenis cahaya mempunyai beberapa medan
yang sama:
on - on atau off kan cahaya
intensity - kawalan kecerahan cahaya ambientIntensity - kawalan kesan ambien color - pilih warna
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 7
Penggunaan fitur lazim cahaya
Point light dan spot light juga mempunyai medan: location - kedudukan sumber cahaya
radius - jarak pencahayaan maksimum
attenuation - pengecilan/atenuasi dengan jarak
Directional ligtht dan spot light juga mempunyai: direction - arah tujuan
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 8
Sintaks: PointLight
Nod PointLight menggemerlap dalam jejari
tertentu daripada satu titik/punca.
PointLight { location 0.0 0.0 0.0 intensity 1.0 color 1.0 1.0 1.0 } [pntlite.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 9
Sintaks: DirectionalLight
Nod DirectionalLight menggemerlap pada satu
arah daripada satu kedudukan yang jauh
DirectionalLight { direction 1.0 0.0 0.0 intensity 1.0 color 1.0 1.0 1.0 } [dirlite.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 10
Sintaks: SpotLight
Nod SpotLight menggemerlap daripada satu
punca/titik, dalam satu arah, di dalam kon
Spot { location 0.0 0.0 0.0 direction 1.0 0.0 0.0 intensity 1.0 color 1.0 1.0 1.0 cutOffAngle 0.785 } [sptlite.wrl]
Sintaks: SpotLight
Lebar maksimum untuk kon spot light dikawal
oleh medan cutOffAngle.
Bahagi dalam kon dengan kecerahan seragam di
kawal oleh medan beamWidth. SpotLight { . . . cutOffAngle 0.785 beamWidth 0.52 }
Contoh
[temple.wrl]TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 13
Contoh-contoh lain
[simulasi-matahari.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 14
Latar belakang
(Background)
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 15
Pengenalan
Bentuk berikan bahagian hadapan (terhampir)
dalam pandangan maya anda.
Boleh hasilkan latar belakang (background). Latar belakang deskripsikan:
warna langit dan dasar
imej panorama gunung, bandar dll Latar belakang adalah lebih cepat dilukis
berbanding jika gunakan bentuk.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 16
Penggunaan komponen latar
belakang
Latar belakang hasilkan 3 bentuk khusus: sfera langit (sky sphere)
hemisfera dataran (ground hemishere) dalam sfera
langit
kotak panorama (panorama box) dalam hemisfera
dataran
Hemisfera langit dan dataran dilorekkan dengan
satu kecerunan warna.
Kotak panorama dipetakan secara bertekstur
dengan 6 imej.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 17
Penggunaan komponen latar
belakang
Bahagian transparen hemisfera dataran serlahkan
sfera langit.
Bahagian transparen kotak panorama serlahkan
dataran dan langit.
Pemerhati boleh melihat, atas, bawah, dan
kanan-kiri untuk melihat bahagian berbeza latar belakang.
Pemerhati walaubagaimanapun tak boleh hampiri
latar belakang.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 18
Sintaks: Background
Nod Background deskripsikan warna latar
belakang.
skyColor dan skyAngle - kecerunan langit
groundColor dan groundAngle - kecerunan dataran
Background { skyColor [ 0.1 0.1 0.0, . . . ] skyAngle [ 1.309, 1.571 ] groundColor [ 0.0, 1.571 ] groundAngle [ 1.309, 1.571] }
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 19
Penggunaan sudut langit & warna
Warna pertama langit terletak pada kutub utara. Warna langit selebihnya adalah berdasarkan
sudut langit yang diberikan:
sudut maksimum ialah 1800= 3.1415 radian.
Warna terakhir tercalit ke arah kutub selatan.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 20
Penggunaan sudut dataran dan
warna
Warna pertama dataran terletak pada kutub utara. Warna selebihnya adalah berdasarkan sudut
dataran
sudut maksimum adalah 900= 1.5708 radian
Selepas warna terakhir, hemisfera selebihnya
adalah transparen.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 21
Contoh latar belakang
Background { skyColor [ 0.0 0.2 0.7 0.0 0.5 1.0 1.0 1.0 1.0 ] skyAngle [ 1.309, 1.571] groundColor [ 0.1 0.10 0.0, 0.4 0.25 0.2, 0.6 0.60 0.6, ] groundAngle [ 1.309, 1.571]
} TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 22
Contoh latar belakang
[back.wrl]
Sintaks: Background
Nod Backround deskripsikan imej latar belakang frontUrl, dll - URL bagi imej tekstur
Background { . . . frontUrl “mountns.png” backUrl “mountns.png” leftUrl “mountns.png” rightUrl “mountns.png” topUrl “clouds.png” bottomUrl “ground.png” }
Contoh latar belakang
a) Bahagian warna tekstur gunung
a) Bahagian transparen tekstur gunung
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 25
Contoh latar belakang
frontUrl “mountns.png” backUrl “mountns.png” leftUrl “mountns.png” rightUrl “mountns.png” } Background { skyColor [ 0.0 0.2 0.7 0.0 0.5 1.0 1.0 1.0 1.0 ] skyAngle [ 1.309, 1.571] groundColor [ 0.1 0.10 0.0, 0.4 0.25 0.2, 0.6 0.60 0.6, ] groundAngle [ 1.309, 1.571]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 26
Contoh latar belakang
[back2.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 27
Kabut (fog)
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 28
Pengenalan
Untuk tingkatkan realisme:
gunakan kabut untuk hasilkan dunia bekabut/kabur gunakan kabut untuk hasilkan bilik/penjara yang
gelap
gunakan fog untuk setkan mood
Lebih jauh/kedalam pemerhati boleh lihat, lebih
terperinci perlu kita model & lukis.
Untuk singkatkan masa pembangunan dan
pelukisan, hadkan penglihatan pengguna dengan menggunakan kabut.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 29
Contoh
[fog2.wrl] [fog4.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 30
Kawalan kebolehlihatan
Jenis kabut (fog type) tentukan jenis pengurangan
kebolehlihatan sama ada linear atau eksponen melalui jarak
Linear lebih mudah dikawal Eksponen lebih realistik dan “tebal”
Julat kebolehlihatan (visibility range) tentukan
jarak di mana kabut telah mencapai ketebalan maksimum
Kabut adalah “clear” pada pemerhati, dan secara beransur kurangkan kebolehlihatan
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 31
Pemilihan warna kabut
Kabut mempunyai warna
Biasanya putih, tetapi hitam, merah
berkemungkinan.
Bentuk semakin terpudar terhadap warna kabut
berdasarkan jarak.
Latar belakang tidak terjejas
Untuk kesan terbaik, hasilkan warna latar belakang sama dengan warna kabut.
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 32
Sintaks: Fog
Nod Fog hasilkan kabut berwarna color - warna kabut
fogType - LINEAR atau EXPONENTIAL
visibilityRange - had kebolehlihatan maksimum Fog {
color 1.0 1.0 1.0 fogType “LINEAR” visibilityRange 10.0 }
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 33
Contoh kabut
[fog1.wrl] [fog2.wrl]
[fog3.wrl] [fog4.wrl]
Tanpa kabut Kabut linear, julat
kebolehlihatan 30.0 Kabut eksponen, julat kebolehlihatan 30.0 Kabut linear, julat dengan latar belakang
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 34
Contoh kabut (Linear)
visibilityRange = 0.0 visibilityRange = 40.0
visibilityRange = 30.0 visibilityRange = 20.0
Penggunaan bunyi
Pengenalan
Bunyi boleh dicetuskan oleh tindakan pengguna Bunyi boleh berterusan pada latar belakang
bunyi angin, muzik dalam lif
Bunyi terpancar daripada lokasi, pada satu arah,
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 37
Penghasilan bunyi
Bunyi terdiri daripada 2 komponen:
sumber bunyi - berikan isyarat bunyi (sound signal)
)komponen stereo
Pemancar bunyi yang terjemahkan isyarat bunyi kepada bunyi maya
)pembesar suara stereo
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 38
Sintaks: AudioClip
Nod AudioClip ciptakan sumber bunyi digital url - URL bagi fail bunyi
pitch - kelajuan main-semula
kawalan main-semula, sama seperti nod TimeSensor Sound { source AudioClip { url “myfile.wav” pitch 1.0 startTime 0.0 stopTime 0.0 loop FALSE } }
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 39
Sintaks: MovieTexture
Nod MovieTexture ciptakan sumber bunyi movie url - URL bagi fail tekstur movie
speed - kelajuan main-semula
kawalan main-semula, seperti nod TimeSensor
Sound { source MovieTexture { url “movie.mpg” speed 1.0 startTime 0.0 stopTime 0.0 loop FALSE }
} TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 40
Pemilihan jenis sumber bunyi
Nod AudioClip menyokong: WAV - fail bunyi digital
)sesuai untuk kesan bunyian
MIDI - fail muzik MIDI yang lazim )sesuai untuk muzik latar belakang
Nod MovieTexture menyokong: MPEG - fail movie dengan bunyi
)sesuai untuk TV maya
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 41
Sintaks: Sound
Nod Sound deskripsikan pemancar bunyi source - nod AudioClip atau MovieTexture location dan direction - penempatan pemancar
Sound {
source AudioClup { . . . } location 0.0 0.0 0.0 direction 0.0 0.0 1.0 }
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 42
Sintaks: Sound
Nod Sound deskripsikan pemancar bunyi. intensity - volume
spatialize - guna pemprosesan spatial priority - memberi keutamaan bunyi Sound { . . . intensity 1.0 spatialize TRUE priority 0.0 }
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 43
Sintaks: Sound
Nod Sound deskripsikan pemancar bunyi. minFront, minBack - elipsoid dalaman maxFront, maxBack - elipsoid luaran Sound { . . . minFront 1.0 minBack 1.0 maxFront 10.0 maxBack 10.0
} TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 44
Penentuan julat bunyi
Medan julat bunyi spesifikasikan 2 elipsoid minFront dan minBack kawal elipsoid dalaman maxFront dan maxBack kawal elipsoid luaran
Bunyi mempunyai volume yang seragam di dalam
elipsoid dalaman
Bunyi turun kepada volume sifar daripada elipsoid
dalaman ke elipsoid luaran
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 45
Penghasilan bunyi yang
dicetuskan
Nod AudioClip: loop FALSE
Tentukan startTime daripada nod pengesan Nod Sound:
spatialize TRUE
minFront dll dengan nilai kecil
priority 1.0
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 46
Contoh penggunaan bunyi yang
dicetuskan
Group { children [
Shape {
appearance Appearance {
material Material {diffuseColor 1.0 1.0 1.0 } }
geometry Box ( size 0.23 0.1 1.5 } }
DEF C4 TouchSensor { } Sound {
source DEF PtchC4 AudioClip { url “tone1.wav” pitch 1.0 } maxFront 100.0 maxBack 100.0 } ] }
ROUTE C4.touchTime TO PitchC4.set_startTime
Contoh penggunaan bunyi yang
dicetuskan
[kbd.wrl]
Penghasilan bunyi berterusan
setempat
Nod AudioClip: loop TRUE startTime 0.0 (default) stopTime 0.0 (default) Nod Sound:spatialize TRUE (default)
minFront dll dengan nilai pertengahan (medium) priority 0.0 (default)
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 49
Contoh penggunaan bunyi
berterusan setempat
Sound { source AudioClip { url “willow1.wav” loop TRUE startTime 1.0 stopTime 0.0 } minFront 5.0 minBack 5.0 maxFront 10.0 maxBack 10.0 } Transform { translation 0.0 -1.65 0.0 children [Inline { url “sndmark.wrl” } ]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 50
Contoh penggunaan bunyi
berterusan setempat
[ambient.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 51
Penghasilan bunyi latar belakang
berterusan
Nod AudioClip: loop TRUE startTime 0.0 (default) stopTime 0.0 (default) Nod Sound:spatialize FALSE (default)
minfront dll dengan nilai yang tinggi priority 0.0 (default)
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 52
Contoh lain
[sound.wrl] [earth.wrl] [virtualtv.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 53
Kawalan titik pandangan
(viewpoint)
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 54
Pengenalan
Secara default, pemerhati memasukai dunia
maya pada ko-ordinat (0.0, 0.0, 10.0)
Boleh hasilkan viewpoint tersendiri: Pilih kedudukan titik masuk
Pilih pandangan yang menjadi minat pemerhati
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 55
Penghasilan viewpoint
Viewpoint spesifikasikan lokasi yang diperlukan,
orientasi dan medan sudut pandangan kamera
Viewpoint boleh ditransformasikan menggunakan
nod Transform
Viewpoint pertama dalam fail merupakan titik
masuk
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 56
Sintaks: Viewpoint
Nod Viewpoint spesifikasikan nama lokasi untuk
pemerhatian
position dan orientation - lokasi pemerhatian
fieldOfView - sudut lensa kamera description - deskripsi menu viewpoint
Viewpoint {
position 0.0 0.0 10.0 orientation 0.0 0.0 1.0 0.0 fieldOfView 0.785
description “Entry View” }
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 57
Contoh penggunaan berbilang
viewpoint
[windmill.wrl]
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 58
Contoh-contoh lain
[house.wrl] [melnikov.wrl]
Kawalan navigasi
Pengenalan
Dunia maya yang berbeza memerlukan kaedah
navigasi yang berbeza:
berjalan di dalam sebuah bilik
terbang ke awan
memeriksa bentuk dalam aplikasi CAD Boleh pilih jenis navigasi
Boleh deskripsikan saiz dan kelajuan avatar bagi
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 61
Pemilihan jenis navigasi
Terdapat 5 kaedah navigasi piawai: WALK - berjalan, di tarik oleh graviti
FLY - terbang, tidak dipengaruhi oleh graviti EXAMINE - memeriksa objek pada jarak dekat NONE - tiada navigasi, pergerakan dikawal oleh
dunia dan bukan pemerhati
ANY - benarkan pemerhati menukar jenis navigasi Sesetengah brower menyokong jenis navigasi
tambahan
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 62
Penentuan avatar
Saiz avatar (lebar, ketinggian, ketinggian langkah)
dan kelajuan boleh ditentukan
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 63
Kawalan headlight
Headlight diletakkan di kepala dan ditujukan pada
arah kepala
Boleh on/off kan headlight
majoriti browser berikan menu untuk mengawal
headlight
boleh juga kawal headlight dengan menggunakan
nod NavigationInfo
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 64
Sintaks: NavigationInfo
Nod NavigationInfo pilih jenis navigasi dan ciri-ciri
avatar:
type - gaya navigasi
avatarSize dan speed - ciri-ciri avatar headlight - on/off
NavigationInfo { type [“WALK”, “ANY”] avatarSize [ 0.25, 1.6, 0.75 ]
speed 1.0
headlight TRUE
}
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 65
Contoh
NavigationInfo { type [“WALK”] avatarSize [ 0.25, 1.6, 0.75 ] speed 1.0 headlight TRUE }TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 66
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 67
Pengenalan
Mengesani pemerhati membolehkan pencetusan
animasi
bila kawasan boleh dilihat oleh pemerhati
bila pemerhati berada dalam kawasan bila pemerhati bertembung dengan bentuk Nod LOD dan Billboard adalah pengesan
pemerhati khusus dengan sistem tindak balas terbina
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 68
Mengesani pemerhati
Terdapat 3 jenis pengesan pemerhati: Nod VisibilitySensor - mengesan jika pemerhati
berada dalam kawasan boleh lihat
Nod ProximitySensor - mengesan jika pemerhati
telah berada dalam satu kawasan
Nod Collision mengesan jika pemerhati telah bertembung dengan bentuk
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 69
Penggunaan pengesan visibility
dan proximity
Nod VisibilitySensor dan ProximitySensor
mengesan kawasan berbentuk kotak
center - kawasan tengah
size - dimensi kawasan
Kedua-dua nod mempunyai output yang sama: enterTime
exitTime isActive
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 70
Sintaks: VisibilitySensor
Nod VisibilitySensor mengesan jika satu kawasan yang
berbentuk kotak “boleh lihat”oleh pemerhati center dan size - saiz dan lokasi kawasan
enterTime dan exitTime - hantarkan masa kepada entry/exit
isActive - hantarkan true/false kepada entry/exit
DEF VisSense VisibilitySensor { center 0.0 0.0 0.0 size 14.0 14.0 14.0 }
ROUTE VisSense.enterTime TO Clock.set_startTime
Contoh: VisibilitySensor
Sintaks: ProximitySensor
Nod ProximitySensor mengesan jika pemerhati
masuk atau keluar daripada kawasan
center dan size - lokasi dan saiz kawasan enterTime dan exitTime - hantarkan masa pada
entry/exit
isActive - hantarkan true/false pada entry/exit
DEF ProxSense ProximitySensor { center 0.0 0.0 0.0 size 14.0 14.0 14.0 }
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 73
Sintaks: ProximitySensor
Nod ProximitySensor mengesan pemerhati
apabila berada dalam kawasan
position dan orientation - hantarkan kedudukan dan orientasi pada ketika pemerhati berada dalam kawasan
DEF ProxSense ProximitySensor { . . . } ROUTE ProxSense.position_changed TO PetRobotFollower.set_translation
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 74
Contoh: ProximitySensor
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 75
Mengesan pertembungan
pemerhati-bentuk
Nod pengumpulan Collision mengesan bentuk
dalam kumpulan
mengesan jika pemerhati bertembung dengan sebarang bentuk dalam kumpulan
secara automatik berhentikan pemerhati daripada berjalan menembusi bentuk
Pertembungan berlaku apabila avatar pemerhati
berhampiran dengan bentuk
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 76
Penghasilan kumpulan
pertembungan
Penyemakan pertembungan agak rumit, oleh itu
semak pertembungan dengan bentuk proksi
bentuk proksi adalah versi termudah bentuk sebenar
bentuk proksi tidak pernah dilukis
Kumpulan pertembungan dengan bentuk proksi,
tetapi tanpa children, hasilkan bentuk tertembung tanpa boleh dilihat
tingkap dll
had dunia tanpa boleh dilihat
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 77
Sintaks: Collision
Nod pengumpulan Collision mengesan jika
pemerhati bertembung dengan kumpulan bentuk
collide - enable/disable pengesan
proxy - mengesan bentuk mudah children - nod children untuk dikesan
collideTime - hantarkan masa pada pertembungan
DEF Collide Collision { collide TRUE
proxy Shape {geometry Box { . . . } } children [ . . . ]
}
ROUTE Collide.collideTime TO OuchSound.set_startTime TH3813 11 VRML 9
© Dr. Shahrul Azman Mohd Noah
samn@ftsm.ukm.my 78
Contoh penggunaan sensor proksi
dan kumpulan pertembungan
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 79
Contoh: Collision
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 80
Pengoptimuman pengesanan
pertembungan
Collision adalah on (default) offkan seboleh mungkin
Wapaubagaimanapun, jika nod bapa offkan
pertembungan, nod anak tidak boleh onkan semula
Pertembungan berlaku apabila pemerhati
bertembung dengan bentuk, tetapi bukan daripada bentuk yang bertembung dengan pemerhati
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 81
Penggunaan pengesan berbilang
Seberapa bilangan pengesan boleh mengsan
pada masa yang sama
boleh mempunyai pelbagai keolehlihatan, proksimiti, dan pengesan pertembungan
kawasan pengesan boleh bertindih
sensor berbilang boleh dicetuskan
TH3813 11 VRML 9 © Dr. Shahrul Azman Mohd Noahsamn@ftsm.ukm.my 82
http://www.ftsm.ukm.my/jabatan/tp/samn/TH3813.htm