Warsztat.GD

Programowanie => Inne => Wątek zaczęty przez: soku11 w Sierpień 30, 2008, 20:37:00

Tytuł: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Sierpień 30, 2008, 20:37:00
WITAM!
Pisze sobie powolutku engine/framework i postanowilem przetestowac go na innych kompach. Jako, ze moj nie jest najwyzszej klasy (kodze na laptopie), to zwracam sie z prosba do was. Odrazu dodam, ze to jest bardzo prymitywny programik, ktory ma tylko pokazac, czy dziala obsluga bledow, czy sie nigdzie nie wywala i jaki jest sredni FPS. Z gory dziekuje za poswiecony czas.
Oto link do paczki (exec+folder z texturami):

http://rapidshare.com/files/141354005/Release.rar.html (http://rapidshare.com/files/141354005/Release.rar.html)
http://www.sendspace.com/file/65li62 (http://www.sendspace.com/file/65li62)


Przyciskiem F1 mozna wylaczyc wskazanie FPS. Strzalka lewo/prawo ustawiamy sie po okregu wokol skrzynek. Strzalka gora/dol zmienia wysokosc kamery.

Pozdrawiam.

// EDIT by Q8 - znacznik code jest do kodu, znacznik url jest do URL-i :P
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: BTM w Sierpień 30, 2008, 20:48:12
Nie znaleziono d3dx9_37.dll, failed.

Vista, DX10
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: agent_J w Sierpień 30, 2008, 20:52:58
Nie znaleziono d3dx9_37.dll, failed.

Vista, DX10

Przecież prościej zassać DX Web Setup, który sam pościąga dxdx9*.dll, niż bawić się w szukanie DLLi ...

U mnie na GF9500 jest 1200FPS przy wszystkich widocznych obiektach.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Sierpień 30, 2008, 20:56:52
Co do braku dll, to nie wiem :/ Aplikacja pisana pod XP z Dx SDK march 2008.
Dzieki za test :) Mysle, ze jest to dobry wynik jak na te kilka obiektow z teksturka :) Pozdrawiam.

Nikt inny nie ma checi przetestowac??
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Gravell w Sierpień 30, 2008, 21:55:32
Nikt inny nie ma checi przetestowac??

Spokojnie, dopiero pół godziny od wysłania wątku, daj ludziom czas na znalezienie tego tematu :P.

@Aplikacja:
FPS: ~215
Sprzęt: WinXP, Radeon 9000 Series

Pozdro.

PS DLL'ki podorzucaj, bo nie każdemu będzie się chciało ściągać...
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Konon w Sierpień 30, 2008, 21:57:22
GF7600 GS
850FPS, przy wszystkich obiektach.  ;)
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: vashpan w Sierpień 30, 2008, 21:59:01
Pewnie wiecej by ludzi sie wzielo za to gdyby nie rapidshare, mialem tego farta akurat ze udalo mi sie trafic w okno kiedy nikt nic nie pobieral ( lokalna siec ) ale inni moga nie miec szczescia :) sendspace np.

***

A64 3500+
GF 9600GSO
Win XP 32bit

~2100 fps przy pierwotnym zoomie, 7000 gdy nie widac podlogi ;p Wszystko ok.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Wiadomo w Sierpień 30, 2008, 22:10:47
FPS: 537


Athlon X2 5000+
4GB RAM
Windows XP
GeForce 8600GT 512MB
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: asasm w Sierpień 30, 2008, 22:14:33
FPS 2466 - podaje z tego pliku tekstowego co sie wygenerował

Konfiguracja
CD 4500
3 gb RAM
GeForce 8800 GT
Win XP 32 Bit
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Sierpień 30, 2008, 22:16:54
Ok dorzucilem linka na sendspace. Co do plikow dll, to nie mam pojecia jakie sa wymagane, wiec nie wiem co ani skad dorzucac :P Dzieki wszystkim za testy. Wyniki troche porozrzucane, ale mysle, ze wszystko jest ok.
Gravell, czy ta karta jest zintegrowana?? Bo ~ takie wyniki mam u siebie majac zintegrowana karte (program wybiera wtedy przewaznie software vertex processing).
Jak ktos ma chec, to prosze dalej testowac, moze wyskoczy jakis Segfault albo cos, chociaz niby wszystko powinno byc obslugiwane i ewentualne bledy powinny byc logowane do innego pliku. Pozdrawiam.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: scoobyskub w Sierpień 30, 2008, 22:21:05
1373 FPS
GF 7900 gs
c2d E4400 3ghz
2gb ram

ps: Pierwszy post :E.
Testowałem 5 minut i nic nie wyskoczyło.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: reveur w Sierpień 30, 2008, 22:28:12
~350FPS

Intel T9300, Viśta, Radeon 3650

Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Gravell w Sierpień 30, 2008, 22:33:14
Co do plikow dll, to nie mam pojecia jakie sa wymagane, wiec nie wiem co ani skad dorzucac :P
Ja "dociągałem" d3dx9_37.dll.

Gravell, czy ta karta jest zintegrowana?? Bo ~ takie wyniki mam u siebie majac zintegrowana karte (program wybiera wtedy przewaznie software vertex processing).
Zintegrowana, przynajmniej z tego co mi wiadomo :D.

Pozdro.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Fiołek w Sierpień 30, 2008, 22:38:20
FPS: 2160,
~4700 gdy nie ma podłogi :P

NVidia GeForce 9600GT
Core2Quad Q6600
Vista Home Premium x64
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Sierpień 30, 2008, 22:41:12
Ta podloga cos problematyczna jest jak widze :/ Byc moze przez to, ze zwykly plane jest skalowany, a pozniej nakladana na niego tekstura powtorzona 10x10 razy :/ No nic widocznie tak ma byc. Dzieki za testy i pozdrawiam :)
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Zene w Sierpień 30, 2008, 23:27:40
DELL GX270 (P4 2,8Ghz,2048 MB) + GF4Ti4200 128MB = 266 FPS.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: SirMike w Sierpień 31, 2008, 10:43:20
Athlon X2 4600+, 2GB RAM, GF 8600GT
FPS: 1187.78

Nie wiem czy ten FPS bedzie miarodajny bo krecilem kamera i skakal od 1187 do ponad 3000 ;)
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: benethorpl w Sierpień 31, 2008, 12:02:28
FPS: 515

C2D E4500(2.2)@2.8
2GB DDRII/800
Radeon HD3650
XP SP2
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: piko84 w Sierpień 31, 2008, 13:17:32
2300 startowe
7000 jak nic nie widać
Zauważyłem że chodzi tylko na 2 rdzeniach a pozostałe 2 były zupełnie nieużywane.

AMD Phenom 9550 Quad-Core Procesor
4GB RAM
Vista Home Premium 64 bit
ATI Radeon 4800HD 512MB
DirectX 10
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Haxy.M w Sierpień 31, 2008, 14:28:18
516 FPS tak wyliczyło mi Twoje cudo :) (Core2 duo 2.0 GHz, 2048 MB ramu i GeForce GO 7600)

I jeszcze mały edit:
Jak pojadę kamerą, tak że nie widać podłogi to skacze nagle na 3772 fpsów, nie wiem jak to zrobiles, ale wygląda ciekawie :P
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Sethis w Sierpień 31, 2008, 15:31:28
Core 2 Duo e6850 (3.0mHz)
GF 8800 GTS 640mb
2Gb ram
WinXp Home
3400min-7455max fps przy wszystkim widocznym
Ledwo co bylo widac, tak szybko te cosie lataly ;]
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: krecik88 w Sierpień 31, 2008, 16:22:38
c2d 8400
4gb ram
radeon 4850
vista dx10 (nie mialem odziwo problemow z dllkami od dx9?:P)

2500-7000
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: misioslaw w Sierpień 31, 2008, 16:52:12
GF8400 GS: 400-3000FPS
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: LizarD w Sierpień 31, 2008, 16:56:39
FPS: 913

AMD AthlonX2 4000
2gb ram
GE 8500GT
XP SP2
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Sierpień 31, 2008, 18:42:20
Jeszcze raz dzieki za testy :) A FPS rzeczywiscie wzrasta, gdy nie widac podlogi. Testowalem programem PIX wywolania funkcji D3D i nie zauwazylem nic dziwnego. Tzn. rysowanie polega na zmienianiu tekstur, buforow, FVF i rysowaniu po kolei prymitywow. Gdy nie widac podlogi nic sie nie rysuje poprzez culling i dlatego to dziala szybciej. Ide dalej cos napisac. Jak dodam cos porzadniejszego (wiecej obiektow, itd) to na pewno wrzuce i zobaczymy jaki bedzie wtedy efekt :)
Co do tego procka Quad, to ja nie pisalem obslugi dwoch rdzeniow, wiec dziwne ze wogole ich uzywa :P
Pozdrawiam.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: kafor7 w Wrzesień 05, 2008, 18:30:26
okolo 500 fps (jak wszystko widać) na lapku ( 1bg ramu intel core 2 duo 1,73 Radeon HD 2300)
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Wrzesień 05, 2008, 22:15:22
Mam teraz pytanie odnosnie wydajnosci. Dodalem sobie bowiem obsluge swiatel i instancjonowanie obiektow. Zrobilem test poprzez dodanie 1000 obiektow na scene w postaci kostki i ruchomym swiatlem. W programie PIX sprawdzilem wywolania funkcji D3D i wystepuja tak jak chcialem tylko zmiany macierzy swiata a pozniej drawindexedprimitive (az 1000, bo kazdy wywoluje swoja oddzielna). Dostaje teraz tylko okolo 12FPS :/ Tekstura jest tylko jedna. Pytanie - czy cos zle zaimplementowalem, czy tak ma byc?? O czym poczytac, by zwiekszyc ilosc FPS ?? Da sie jakos odrzucac wywolania draw(...) szescianow niewidocznych, tzn. zakrytych przez inne szesciany?? Z gory dzieki za pomoc. Pozdrawiam.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Sethis w Wrzesień 16, 2008, 14:27:32
Octree?
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: desco w Wrzesień 16, 2008, 15:03:03
GeForce 8800GT

698 FPS
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: counterClockWise w Wrzesień 16, 2008, 20:11:29
Mam teraz pytanie odnosnie wydajnosci. Dodalem sobie bowiem obsluge swiatel i instancjonowanie obiektow. Zrobilem test poprzez dodanie 1000 obiektow na scene w postaci kostki i ruchomym swiatlem. W programie PIX sprawdzilem wywolania funkcji D3D i wystepuja tak jak chcialem tylko zmiany macierzy swiata a pozniej drawindexedprimitive (az 1000, bo kazdy wywoluje swoja oddzielna). Dostaje teraz tylko okolo 12FPS :/ Tekstura jest tylko jedna. Pytanie - czy cos zle zaimplementowalem, czy tak ma byc?? O czym poczytac, by zwiekszyc ilosc FPS ?? Da sie jakos odrzucac wywolania draw(...) szescianow niewidocznych, tzn. zakrytych przez inne szesciany?? Z gory dzieki za pomoc. Pozdrawiam.

Poczytaj sobie o drzewach BSP i mniej ogólnych ósemkowych. Poza tym jak je umieścisz na drzewie zrób FrustrumCulling (bo czemu nie, prawie za darmo go masz) a sześciany, które nie zostaną odrzucone (będą do wyświetlania) posortuj dodatkowo front-to-back. Karta graficzna nie będzie cieniować pikseli, które i tak nie będą wyświetlone.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Sebastian w Wrzesień 16, 2008, 21:48:01
FPS: ~2600, ~5600 bez podłogi
2x HD3870, Q6600

Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Syriusz w Wrzesień 17, 2008, 17:03:24
GeForce 9800 GT
Pentium Core2Duo 2,53
Vista
normalnie 2446
bez podłogi 5945
bez niczego 6300
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Wrzesień 17, 2008, 18:09:48
Mam pytanie odnosnie tych drzew osemkowych, bo chyba nie za bardzo to rozumiem... Majac swoja mape z jakimis modelami(obiektami x lub zwyklymi) musze w jakis sposob znalezc rozmiar calej mapy, tak by objac ja szescianem. Pozniej dziele ten szescian na 8, i tak dalej... Pierwsze pytanie - czy obszar dzieli sie tylko raz, czy co klatke ?? Drugie pytanie - dokad mam to tak dzielic ?? Trzecie pytanie - co takie drzewo ma w sobie przechowywac?? Czwarte pytanie - jak majac pozycje kamery i kierunek w ktory sie patrze odrzucac te zbedne geometrie ?? Z gory dziekuje za jakies wyjasnienia, ewentualnie link do artykulu gdzie jest to opisane pod wzgledem programowania takich map... Pozdrawiam.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Reg w Wrzesień 17, 2008, 20:43:52
1. Tylko raz. Co klatkę to marnowanie czasu. Jeśli obiekty są nieruchome, nowe nie przybywają, nie są usuwane, nie zmieniają rozmiaru (słowem - są statyczne), to podziel raz, na początku i potem korzystaj z tego drzewa. Jeśli są dynamiczne, to musisz dopisać funkcję wstawiania i usuwania obiektów z istniejącego drzewa, najlepiej z automatycznym rozbijaniem i łączeniem węzłów - nieproste, ale da się zrobić. Z resztą na początek tego nie musisz robić.

2. Proponuję zatrzymać rekurencyjne dzielenie, kiedy spełniony jest co najmniej jeden z tych warunków:
a) Rekurencja osiągnęła pewną głębokość (np. 6 czy 8 poziomów).
b) Liczba obiektów w bieżącym węźle (tym co byśmy go ewentualnie dalej podzielili) jest już mała, np. 16.

3. Co chcesz :) Najlepiej wskaźniki do tych obiektów albo jakieś inne odniesienia do nich.

4. Musisz opisać kształt pola widzenia kamery frustumem, czyli taką bryłą co ma taki kształt, jak pole widzenia takiej kamery :) A potem testować kolizję, czyli sprawdzać specjalną magiczną funkcją matematyczną, czy frustum przecina się z prostopadłościanem opisującym dany węzeł drzewa. Jeśli tak, to wchodzimy do tego węzła, rysujemy zgromadzone w nim obiekty i testujemy frustum dalej rekurencyjnie z jego podwęzłami. Jeśli nie, to cały ten węzeł razem z podwęzłami ignorujemy. Zobacz mój artykuł:
http://www.warsztat.gd/articles.php?x=view&id=279
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Wrzesień 17, 2008, 22:11:53
Dzieki wielkie juz mi troche rozjasniles :) Artykul na pewno nie omieszkam przeczytac.
Jeszcze mi tak w miedzyczasie pojawilo sie jedno pytanko.
Zalozmy, ze mapa to tylko zwykly dlugi plane, np. 500x10. Wtedy dzielac przestrzen co kawalek na 8 (majac najpierw szescian w srodku plane'a o boku dlugosci 500) otrzymuje puste wezly. Rozumiem, ze tez wypada je przechowywac, tylko beda mialy poprostu pusta tablice/wektor obiektow statycznych do wyswietlenia. Jednak wskazniki na plane'a beda istnialy w kilku wezlach. Jak sobie wtedy poradzic z renderingiem tak, zeby rysowac tylko raz jeden obiekt ?? Czy zrobic cos na ksztalt 'ogolnej' tablicy, do ktorej bym co klatke wrzucal widoczne elementy sprawdzajac, czy czasami nie jest on juz w niej umieszczony ??

Pozdrawiam.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: counterClockWise w Wrzesień 18, 2008, 15:56:31
Dzieki wielkie juz mi troche rozjasniles :) Artykul na pewno nie omieszkam przeczytac.
Jeszcze mi tak w miedzyczasie pojawilo sie jedno pytanko.
Zalozmy, ze mapa to tylko zwykly dlugi plane, np. 500x10. Wtedy dzielac przestrzen co kawalek na 8 (majac najpierw szescian w srodku plane'a o boku dlugosci 500) otrzymuje puste wezly. Rozumiem, ze tez wypada je przechowywac, tylko beda mialy poprostu pusta tablice/wektor obiektow statycznych do wyswietlenia. Jednak wskazniki na plane'a beda istnialy w kilku wezlach. Jak sobie wtedy poradzic z renderingiem tak, zeby rysowac tylko raz jeden obiekt ?? Czy zrobic cos na ksztalt 'ogolnej' tablicy, do ktorej bym co klatke wrzucal widoczne elementy sprawdzajac, czy czasami nie jest on juz w niej umieszczony ??

Pozdrawiam.

W przypadku takiego "plane 500x10" octree nie jest optymalnym wyborem, ale rezygnując z np. drzewa ósemkowego na rzecz czegoś bardziej wyspecjalizowanego pod problem tracisz na ogólności - a co jeśli nagle będziesz chciał zmienić mapę?

Dla takiego przypadku proponuję:
a) zrezygnować ze struktury 3d (skoro to plane-płaszczyzna, to od drzewa ósemkowego lepsze byłoby czwórkowe).
b) Możesz zrobić takie drzewo:
- węzeł reprezentuje prostokątny obszar o boku (a,b) - zależność między a i b niezdefiniowana
- każdy węzeł, który nie jest liściem ma 4 dzieciaki
- każdy węzeł, który nie jest korzeniem ma 1 rodzica
- Jeśli węzeł ma prostokąt o środku [x,y] i długości boków (a,b) to dzieci mają środki [x +- a/4, y +- b/4] i boki (a/2, b/2)
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Wrzesień 19, 2008, 00:59:03
Czyli w przypadku takim bardziej 'plaskim' stosujac to drzewo ma ono byc takie nieregularne ?? W sensie, ze majac wspomnianego wczesniej 'plane 500x10' oraz obok niego jakiegos boxa, to najpierw ograniczam obie te geometrie, a pozniej dziele na dwie czesci jedna dla boxa a jedna dla plane'a ?? Pozdrawiam.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Reg w Wrzesień 20, 2008, 00:09:31
Jeśli przestrzeń sceny nie jest w miarę sześcienna tylko raczej płaska, to zamiast octree rozważ użycie innej struktury danych, np. quadtree - drzewa czwórkowego albo k-d tree - drzewa binarnego, które za każdym razem dynamicznie dobiera płaszczyznę podziału.

Natomiast jeśli dobrze rozumiem że pytasz o problem kiedy obiekt nie mieści się w całości w jednym z podwęzłów, bo jest duży albo leży na granicy, to możesz to rozwiązać na dwa sposoby:

1. (Ja preferuję ten) Umieszczasz obiekt w węźle nadrzędnym, w tym w którym mieści się w całości wewnątrz. Po prostu zakładasz, że nie tylko liście drzewa, ale każdy węzeł może posiadać listę obiektów które w nim leżą. To niczego nie komplikuje, a rozwiązuje problem.
2. Umieść wskaźnik do tego obiektu w każdym z podwęzłów, z którym się przecina. Wtedy podczas renderowania czy innego przechodzenia musisz sobie każdy obiekt jakoś zaznaczać (pole bool CzyOdwiedzone albo lepiej int NumerKlatkiWKtorejOdwiedzony), żeby go nie rozpatrywać dwa razy.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Wrzesień 20, 2008, 00:45:13
Wlasnie tak myslalem nad tym drugim rozwiazaniem, ale rzeczywiscie za duzo by bylo roboty z tym oznaczaniem itd. Tylko dalej cos mi sie ta pierwsza metoda nie podoba :/ Bo wedlug ciebie bede mial wskaznik na ten obiekt TYLKO w nadrzednym wezle. Tak wiec jak bede badal frustuma kamery i bedzie on miescil sie w mniejszych kwadratach, to przeciez obiekt ten nie bedzie widoczny 'nizej' w hierarchi... A jesli zrobic, ze kazdy taki wezel bedzie mial oddzilne wskazniki, to bede rysowal kilkakrotnie :/ Nie wiem czy ja cos zle mysle dzis, czy co :/

Jeszcze jedno pytanie dodatkowe:
Jak bedzie teraz wygladac renderowanie ?? Zalozmy, ze mam juz podzielony caly obszar i kazdy wezel ma wskazniki na dane obiekty w nim widoczne. Teraz jesli chce wyrysowac na ekranie cos z widoku danej kamery, to buduje sobie jej frustuma, a nastepnie przeszukuje od roota do lisci odrzucajac cale kwadraty geometrii. Jesli dany kwadrat jest we frustumie, to poprostu mam wyrenderowac wszystkie jego obiekty metoda render ?? Dobrze to rozumiem??

Reg karma ++ ile tam mam, bo naprawde duzo mi pomagasz :)
BTW. Zdaje mi sie, ze troche zeszlismy z tematu, takze prosilbym jakiegos moda o stworzenie nowego tematu o nazwie w stylu Quadtrees i wrzucenie tam postow dotyczacych tematu. Z gory dziekuje.
Pozdrawiam.
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Daro (RDG) w Wrzesień 20, 2008, 01:10:47
GeForce 9800 GT
Pentium Core2Duo 2,53
Vista
normalnie 2446
bez podłogi 5945
bez niczego 6300

9600GT @ 730Mhz/1900Mhz/2050Mhz
Athlon 64 X2 5200XP+ @ 2.78Mhz
XP SP3
normalnie 2700
bez niczego 7000

Vista ścina osiągi kart ...  :(
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: Reg w Wrzesień 23, 2008, 20:43:20
Wlasnie tak myslalem nad tym drugim rozwiazaniem, ale rzeczywiscie za duzo by bylo roboty z tym oznaczaniem itd. Tylko dalej cos mi sie ta pierwsza metoda nie podoba :/ Bo wedlug ciebie bede mial wskaznik na ten obiekt TYLKO w nadrzednym wezle. Tak wiec jak bede badal frustuma kamery i bedzie on miescil sie w mniejszych kwadratach, to przeciez obiekt ten nie bedzie widoczny 'nizej' w hierarchi... A jesli zrobic, ze kazdy taki wezel bedzie mial oddzilne wskazniki, to bede rysowal kilkakrotnie :/ Nie wiem czy ja cos zle mysle dzis, czy co :/

Jeszcze jedno pytanie dodatkowe:
Jak bedzie teraz wygladac renderowanie ?? Zalozmy, ze mam juz podzielony caly obszar i kazdy wezel ma wskazniki na dane obiekty w nim widoczne. Teraz jesli chce wyrysowac na ekranie cos z widoku danej kamery, to buduje sobie jej frustuma, a nastepnie przeszukuje od roota do lisci odrzucajac cale kwadraty geometrii. Jesli dany kwadrat jest we frustumie, to poprostu mam wyrenderowac wszystkie jego obiekty metoda render ?? Dobrze to rozumiem??
Tak, źle myślisz. Procedura do renderowania obiektów z drzewa z użyciem frustum culling wygląda tak:

function RenderujDrzewo()
{
  RenderujWęzeł(Korzeń);
}

function RenderujWęzeł(węzeł)
{
  foreach (Obiekt "obj" z listy obiektów w tym węźle)
    obj.Renderuj();
  foreach (Węzeł "podwęzeł" z listy podwęzłów tego węzła)
    if (Frustum przecina podwęzeł.AABB)
      RenderujWęzeł(podwęzeł);
}
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: soku11 w Wrzesień 23, 2008, 22:07:21
Napisz jak mozesz czy dobrze zrozumialem:
Tworze drzewo i zapisuje w kazdym z jego wezlow i lisci obiekt, ktory sie miesci w nim maksymalnie. Czyli majac np. teren jako cala mape bedzie sie on znajdywal w korzeniu. a obiekty malutkie beda w lisciach, a te srednie gdzies w innych wezlach.
Troche trudno bedzie napisac to zeby tak sie ladnie posegregowalo, no ale sprobuje. Bo to pewnie trzeba poznajdowac ograniczajacy box dla kazdego obiektu i go wrzucac dopiero do drzewa. Wniosek - najpierw stworzyc drzewo ??
I rzeczywiscie dla tego sposobu ten pseudokod by sie sprawdzal :) Jeszcze tylko pytanie - co to jest AABB ?? Nigdy o czyms takim nie slyszalem :) Pozdrawiam.

BTW. Co prawda mam odzielny temat o Quad/Octrees, no ale...
Tytuł: Odp: Prosba o przetestowanie poczatkow frameworka/engine'a
Wiadomość wysłana przez: voytech w Wrzesień 24, 2008, 11:19:15
AABB - axis-aligned bounding box, czyli takie bryły, których płaszczyzny ograniczające są prostopadłe do osi współrzędnych.