DirectX - Sprawdzanie czy element jest wyświetlany

0

Witam
Obecnie tworzę grę składającą się z voxeli, obecnie w wersji release programu przy widoczności 150 bloków na 150 bloków na 150 bloków jest 10 - 30 fps, przy zmniejszeniu widoczności o połowę fps rosną do 50.
Jest to spowodowane tym że główna pętla wyświetlająca obiekty wykonuje dla elementów które nie są widoczne, np. kamera jest umieszczona w pokoju o wymiarach 10 bloków na 10 bloków na 10, jednak funkcja rysuje też obiekty, które znajdują się za pokojem i nie są w żaden sposób widoczne. Nie jest to wielki problem, jednak gdyby funkcja rysowała tylko te elementy które są widoczne to ilość fps byłaby dwa razy większa.

Czy jest możliwe sprawdzenie, które bloki są wyświetlane i tylko dla nich wykonać tą pętle?
Jeżeli da się to sprawdzić np. jakąś funkcją z biblioteki DirectX lub w jakiś inny w miarę prosty sposób to bardzo się ucieszę, jeśli nie to trudno.

PS: Czy da się przyśpieszyć Release w Visual Studio 2012? Obecnie trwa on od 30 do 45 minut.

0

Czy jest możliwe sprawdzenie, które bloki są wyświetlane i tylko dla nich wykonać tą pętle?
Oczywiście że jest, ale tu już w algorytmie ci nie pomogę. Myśl, myśl, myśl, kombinuj... ;-)

PS: Czy da się przyśpieszyć Release w Visual Studio 2012? Obecnie trwa on od 30 do 45 minut.
Trudno cokolwiek podpowiedzieć gdy nie wiadomo jak wygląda projekt.
Używaj precompiled headers.
Wywal zbędne #include'y.
Podziel projekt na libki albo DLL-ki żebyś nie musiał całości rekompilować.

0

A czym są te voxele?

0

@Azarien
Dzięki za odpowiedź, co do tego że jest to możliwe to miałem pewność, jednak póki co dam sobie z tym spokój, gdyby jednak fps jeszcze bardziej spadły to wrócę do tego tematu, chciałem się tylko upewnić czy DirectX nie posiada jakiejś wbudowanej funkcji, która pozwala to sprawdzić w przyjemny sposób.

Co do długiej kompilacji to wolę zostawić to tak jak jest, problem występuje tylko w trybie realease, a w debugu trwa kilka sekund tylko.

@MiL
Pierwszy obrazek od góry po prawej stronie.
http://en.wikipedia.org/wiki/Voxel

0

Miałem na myśli czym te voxele są u ciebie bo ogólnie czym są to wiem. Jeżeli robisz to na grafice 3D to nie powinieneś mieć problemu z pominięciem rysowania zasłoniętych powierzchni bo to jest podstawowa rzecz w grafice 3D.

1 użytkowników online, w tym zalogowanych: 0, gości: 1