Zastanawiałem się nad stworzeniem małego silnika nie tylko do opracowywania małych eksperymentalnych gier, ale także jako podstawy do testowania różnych technik renderowania i tym podobnych. W tej chwili dużo myślałem o tym, jak radzić sobie z teksturami i natknąłem się na megateksturę, ale jest to nieco zagadkowe. Dużo mówi się o tym, że jest to lepsze niż tradycyjne podejście do posiadania wielu tekstur i ładowania ich w razie potrzeby, ale w jaki sposób megatexture tego unika, przeczytałem, że używają strumieniowania i możesz po prostu przesyłać strumieniowo bity i w przeciwieństwie do ładowania każdej tekstury z osobna, ale jak to zapewnia lepszą wydajność i czy nie jest to tylko inna forma uprawy roli?
Jak próbkujemy taką teksturę w module cieniującym, czy przesyłamy strumieniowo jej część do pamięci, a następnie pracujemy nad nią. Widziałem najnowsze filmy Rage'a i faktury, które wyglądają świetnie, ale czy to tylko rezultat wybitnych artystów, czy też technologia wchodzi w grę.
Podsumowując, jak to działa, dlaczego jest świetne i jak mogę zrobić coś podobnego.
Możesz myśleć o Megatexture jako swoistej teksturze „streaming”. Do wyświetlenia potrzebny jest jeden masywny, w pełni szczegółowy obraz tekstury (po prostu), który jest wczytywany jako jego fragmenty. Jestem pewien, że jest w tym o wiele więcej niż LOD / mipmapping, ładowanie i zarządzanie zasobami.
Wikipedia ma artykuł na ten temat.
źródło