Próbuję zaimplementować wykres sceny i we wszystkich artykułach, które napotkałem, jest mowa o sortowaniu obiektów. Aby na przykład posortować obiekty według „materiału”. Teraz, dopóki nie usiadłem i nie zacząłem go wdrażać, uznałem to za coś oczywistego, ponieważ miało to sens. Ale teraz zastanawiam się, co tak naprawdę zmienia sortowanie?
W moim silniku mam menedżera UBO, używam tych do przechowywania danych, które będą współdzielone między programami, w tej chwili, które dotyczą tylko czasu, matryc kamery i projekcji oraz świateł (nie martwię się o zarządzanie, które światła wpływają które obiekty ATM).
Teraz dla każdego modelu muszę zmienić model na mundur macierzy światowej, żadne sortowanie tego nie zmieni. Czy zatem przejście od zmiany tej macierzy do ustawienia materiału dla każdego obiektu jest tak złe?
I niejasno pamiętam czytanie gdzieś, że za każdym razem gdy coś zmienić w rurociągu, to musi się zaczerwieniona i może powodować problemy z wydajnością. Ale dla każdego wezwania do rysowania i tak tworzę model macierzy światowej, więc jaki sens ma kiedykolwiek martwienie się tym?
BTW jest jakaś informacja o tym, czy zmiana munduru i wywołanie glBufferSubData jest droższe (czy mniej).