oki... wiec tak:
mam jakis tam engine 3D (moj pierwszy, na piecu od miecha kodze).
ok. 1500 scian w 640x400x32b:
- na p200/virge_pci/32MB_simmy wysicka 12,4 fps (bedzie ok.18-20 :).
ale nie o to chodzi.
-na k6300/riva_m64_pci/64MB_dimm osiaga 12,1 (!) fps.
- ma p500/geoforz_AGP/64_dimm - ............ 12,1 FPS !!!!!!
kurde, nie znam jeszcze na tyle architektury/kodzenia na pc, ale
to chyba lekka przesada ?
mam wiec pytanka:
- czemu tak sie dzieje ?
- jak to i pod co pooptymalizowac ?
Caly engine softwareowy, jak sie domyslam rysujesz w pamieci komputera a potem
przewalasz na ekran (do pamieci karty graficznej) - mozesz powiedziec jak sie (i
czy w ogole) synchornizujesz engine z ramka lub jakims innym timer'em, bo wyglada
mi na to iz do synchronizacji mozesz uzywac standartowego timer'a ktory jest
domyslnie przez system ustawiony na czas ok ~55ms (co daje w porywach jakies (18
FPS), jezeli synchronizujesz sie z tym timer'em bez zmiany czestotliwosci jego
wywolania to wiecej niz 18FPS nie osiagniesz, drugim ograniczeniem jest
przewalenie do karty graficznej (640*400*3)=750kb, i tu nie ma znaczenia jakiej
karty uzyjesz, wlasciwie wszystkie karty przy bezposrednim przewalaniu do jej
pamieci video osiagaja te sama predkosc, niezalezna od wydajnosci karty
graficznej, radze wykonac eksperyment polegajacy na starej metodzie i obejrzeniu
sobie ile czasu rastrowgo zajmuje ci przewalenie do pamieci karty tych 750kb,
zobacz sobie ile tez zajmuje wyczysczenie bufora ramki w pamieci komputera...
pozdrawiam
Seban/SLIGHT