Aplikacije je izvedena kao Win32 aplikacija uz koritenje
grafičkog standarda Direct3D koji je dio
programskog sučelja DirectX 9.0b. Program
prihvaća modele zapisane u .X formatu, to je
DirectX format za zapis trodimenzijskih
objekata. Ulazni modeli moraju biti formirani
kao mree trokuta, to je u slučaju .X modela u
pravilu uvijek ispunjeno. Obzirom da aplikacija
slui za umetanje vodenog iga (engl.
Watermark) u .X modele, za naziv aplikacije
je izabrana sloenica WatermarX.
Dominantni dio sučelja čini radna povrina za prikaz i
manipulaciju 3D objektom. Pomicanjem mia uz
pritisnutu lijevu tipku izvodi se rotacija
objekta oko bilo koje osi, pomicanjem mia uz
pritisnutu srednju tipku (kotačić) izvodi se
skaliranje objekta, dok se pomicanjem mia uz
pritisnutu desnu tipku izvodi translacija
objekta.

Slika 4-8. Izgled sučelja WatermarX aplikacije.
Izbornik se sastoji od tri
skupa funkcija File, Watermark i
Help:
Izborom skupine funkcija "File" dolazi se do izbornika u kojem
je moguće učitati izvorni i označeni model, kao
i spremiti označeni model. Izborom skupine
"Help" dolazi se do izbornika u kojem je moguće
izabrati pomoć. Izbornik "Watermark" sadri
naredbe za umetanje i dohvat vodenog iga, a tu
se nalazi i opcije "WatermarX Options..."
čijim izborom se otvara novi prozor u kojem
je moguće podesiti parametre vodenog iga.

Slika 4-9. Prozor za odabir parametara vodenog
iga.
U polje označeno "Watermark Strength" se unosi
koeficijent . Pri tom je bitno napomenuti
da je pretpostavljena vodeća nula (0.) pa nije
svejedno se unese li se iznos 05 (=0.005) ili 5 (=0.5). Uobičajene vrijednost
za taj parametar su između 0.005 i 0.01. U polje
"Permutation value" unosi se koeficijent
permutacije (uobičajena vrijednost je primjerice
100). Dok se u polje "Secret Key"
unosi tajni ključ. Alternativno, moguće je
odabrati da program sam generira tajni 160 bitni
ključ kao SHA-1 saetak izvornog dokumenta.
Prebacivanje između prikaza izvornog modela i označenog modela
izvodi se tipkama 1 (izvorni model) i 2
(označeni model). Ako su učitana oba modela
pritiskom na tipku 3 moguće je izabrati prikaz
oba modela koji slui za potrebe procjene
otpornosti algoritma na pogreku registracije,
ali se moe iskoristiti i za potrebe ručne
registracije dva modela. U tom načinu prikaza
izvorni model stoji nepomičan, a označenim
modelom se moe manipulirati uz 7 uobičajenih 7
stupnjeva slobode (rotacija, translacija,
skaliranje). Nakon to je postignuto
zadovoljavajuće preklapanje potrebo je
pritisnuti tipku R.

Slika
4-10. Prikaz oba modela odabire se pritiskom na
tipku 3, i slui za potrebe procjene otpornosti
algoritma na pogreku registracije a moe
posluiti i u svrhu ručne registracije modela.
Umetanje vodenog iga izvodi se kombinacijom tipaka ctrl+x,
dok se dohvat vodenog iga izvodi
kombinacijom tipaka ctrl+m ili iz
izbornika "Watermark".
Tijekom postupka umetanja ili dohvata vodenog iga, na dnu
ekrana se pojavljuje traka napretka (engl.
progress bar) koja pokazuje napredovanje
postupka.
U tablici 4-1 dan je pregled jo nekih opcija:
Tablica 4-1 Prikaz
dodatnih opcija programa WatermarX:
Tipka |
Svrha |
W |
ičani prikaz modela |
S |
Prikaz modela plohama |
X |
Rotacija modela za 0.1 stupanj oko osi X |
Y |
Rotacija modela za 0.1 stupanj oko osi Y |
Z |
Rotacija modela za 0.1 stupanj oko osi Z |
A |
Rotacija modela za 0.1 stupanj oko sve tri
osi |
N |
Unos uma u označeni model, iznosa 0.1%
promjera modela |
P |
Paljenje/gaenje spot-lighta |
strelice |
Usmjeravanje spot lighta po modelu |
U svrhu testiranja implementacije algoritma koriten je model
svemirskog broda iz DirectX kolekcije X modela
koja se distribuira u sklopu DirectX 9.0 SDK
(datoteka bigship1.X). Model se sastoji 4647
vrhova spojenih u 8686 trokuta. Umetnut je
vodeni ig duljine 50 bitova uz
Na slici 4-12 (a) je prikazan
izvorni model, dok je na slici 4-12 (b) prikazan
model nakon umetanja vodenog iga. Vizualna
usporedba dva modela vidimo da je umetnuti ig
vizualno gotovo neprimjetljiv. Ispitivani model
podvrgnut je operacijama simplifikacije,
odsijecanja, dodavanja uma, kao i uniformnoj
rotaciji du sve tri osi, kako bi se ispitala
otpornost algoritma na pogreku registracije.

|

|
Slika 4-12. (a)
Izvorni model . |
Slika 4-12. (b) Model
označen vodenim igom. |
Za potrebe simplifikacije upotrijebljena je pretvorba u
progresivnu mreu, nakon čega je model reduciran
na 50%, 40%, 30%, 20% i 10% broja vrhova izvornog
modela to je prikazano na slikama 4-13 (a) (d).
Pripadni rezultati korelacije, prikazani u tablici
4-2, pokazuju da takve simplifikacije nisu
unitile vodeni ig.

|

|
Slika 4-13. (a) Model nakon uklanjanja 50%
vrhova. |
Slika 4-13. (b) Model nakon uklanjanja 60%
vrhova. |

|

|
Slika 4-13. (c) Model nakon uklanjanja 70%
vrhova. |
Slika 4-13. (d) Model nakon uklanjanja 80%
vrhova. |

|
Slika 4-13. (e) Model nakon uklanjanja 90%
vrhova. |
Tablica 4-2. Korelacija između umetnutog i
dohvaćenog vodenog iga nakon operacija poligonske
simplifikacije. Koritena je linearna korelacija
prema formuli 4.2 koja daje vrijednost između -1 i
+1.
Preostalo vrhova (%) |
50% |
40% |
30% |
20% |
10% |
Preostalo vrhova (broj) |
2322 |
1859 |
1395 |
930 |
465 |
Korelacija |
1.0 |
1.0 |
0.85 |
0.96 |
0.7 |
Algoritam je testiran i na odsijecanje. Na slikama
4-14 (a) (d) prikazan je testirani model nakon
to je uklonjeno 15%, 30%, 45% i 60% modela.
Rezultati, prikazani u tablici 4-3. Koritena je
foruma za linearnu korelaciju (4.2) koja kao
rezultat daje vrijednosti između
-1 i +1.

|

|
Slika 4-14. (a) Model nakon uklanjanja 15%
modela. |
Slika 4-14. (b) Model nakon uklanjanja 30%
modela. |

|

|
Slika 4-14. (c) Model nakon uklanjanja 45%
modela. |
Slika 4-14. (c) Model nakon uklanjanja 60%
modela. |
Tablica 4-3. Korelacija između umetnutog i
dohvaćenog vodenog iga nakon operacije
odsijecanja modela.
Preostalo trokuta (%) |
85 |
70 |
55 |
40 |
Preostalo trokuta (broj) |
7400 |
6114 |
4857 |
3562 |
Korelacija |
1.0 |
1.0 |
1.0 |
1.0 |
Testiranje na um izvedeno je tako to je svaki vrh pomaknut u
slučajnom smjeru za iznose 0.1%-0.5% promjera
objekta (dobivenog kao promjer modelu opisane
krunice). Modeli su prikazani na slikama 4-15 (a)
(e) dok su rezultati dohvata vodenog iga
prikazani u
tablici 4-4.

|

|
Slika 4-15. (a) Model nakon unesenog uma
0.1%. |
Slika 4-15. (b) Model nakon unesenog uma
0.2%. |

|

|
Slika 4-15. (c) Model nakon unesenog uma
0.3%. |
Slika 4-15. (d) Model nakon unesenog uma
0.4%. |

|
Slika 4-15. (d) Model nakon unesenog uma
0.5%. |
Tablica 4-4. Korelacija između umetnutog i
dohvaćenog vodenog iga nakon operacije unosa
uma.
um |
0.1% |
0.2% |
0.3% |
0.4% |
0.5% |
Korelacija |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
Ako je model napadnut transformacijama sličnosti (rotacija,
translacija, uniformno skalirane du sve tri osi)
mora se model prije dohvata vodenog iga vratiti
na izvorni poloaj, u izvornu orijentaciju i u
izvorno mjerilo. Budući da se registracija izvodi
između napadnutog i izvornog modela, moguće je da
tijekom registracije dođe do pogreaka. Zbog toga
je algoritam testiran i na na transformacije
sličnosti. Testiranje je izvedeno uniformnom
rotacijom du sve tri osi za 0.2, 04, 0.6, 0.8 i
1.0 stupanj. Rezultati dohvata vodenog iga
prikazani su tablici 4-5.
Tablica 4-5. Korelacija između umetnutog i
dohvaćenog vodenog iga nakon uniformne rotacije
modela oko sve tri osi.
Stupanj rotacije |
0.2 |
0.4 |
0.6 |
0.8 |
1.0 |
Korelacija |
1.0 |
1.0 |
1.0 |
0.878 |
0.92 |
|