24.01.2014 Views

Praca magisterska BVH

Praca magisterska BVH

Praca magisterska BVH

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

26 Spłaszczone hierarchiczne przedziały ograniczające<br />

Listing 2.2. Przykładowy kod źródłowy węzła drzewa SBIH2.<br />

s t r u c t<br />

{<br />

} ;<br />

f l o a t plaszczyznaMin [ 4 ] ;<br />

f l o a t plaszczyznaMax [ 4 ] ;<br />

i n t wskaznik [ 4 ] ;<br />

i n t liczbaTrojkatow [ 4 ] ;<br />

2.2.2. Budowa struktury<br />

Budowa struktury SBIH jest bardzo podobna do budowy hierarchicznych struktur<br />

drzewiastych opisanych w punkcie 1.2.2. W tym punkcie budowa ta zostanie<br />

opisana dokładnie.<br />

Opis zmiennych pomocniczych:<br />

n i<br />

bb i<br />

C i<br />

liczba trójkątów w i-tym kubełku;<br />

bryła AABB otaczająca wszystkie trójkąty znajdujące się w i-tym kubełku;<br />

środek ciężkości i-tego trójkąta;<br />

BB i<br />

N L,j<br />

N R,j<br />

bryła AABB i-tego trójkąta;<br />

suma wszystkich n i od 0 do j, N L,j = ∑ i=j<br />

i=0 n i ;<br />

suma wszystkich n i od j + 1 do n, gdzie n to liczba wszystkich kubełków,<br />

N R,j = ∑ i=n<br />

i=j+1 n i ;<br />

A L,j pole powierzchni bryły otaczającej trójkąty znajdujące się w kubełkach od 0<br />

do j, A L,j = SA( ∪ i=j<br />

i=0 bb i );<br />

A R,j<br />

pole powierzchni bryły otaczającej trójkąty znajdujące się w kubełkach od<br />

j + 1 do n, A R,j = SA( ∪ i=n<br />

i=j+1 bb i );<br />

Algorytm budowy:<br />

1. oblicz bryły otaczające dla wszystkich trójkątów (można to zrobić efektywnie<br />

z wykorzystaniem instrukcji SIMD), w tym kroku oblicz również środki<br />

ciężkości wszystkich trójkątów oraz bryłę V otaczającą całą scenę<br />

2. wrzuć na stos węzeł zawierający wszystkie trójkąty<br />

3. wykonuj poniższą pętlę dopóki stos jest niepusty:<br />

(a) ściągnij z wierzchołka stosu węzeł z danymi do stworzenia drzewa;<br />

(b) jeśli w danym węźle jest mało trójkątów, to stwórz z niego liść i zakończ;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!