Jestem prawie pewien, że Source Engine to jedyny silnik, który obsługuje to po wyjęciu z pudełka. Możesz przeczytać o niektórych problemach technicznych w artykule, który znalazłem na Gamasutra , skopiowanym tutaj dla przyszłych czytelników:
„Kolejnym problemem, na jaki natrafiliśmy, była potrzeba zmiany systemów opartych na odległości, takich jak poziom szczegółowości (LOD) dla modeli, ponieważ w naszej grze odległość jest zależna od lokalizacji portalu.
Oznacza to, że obliczenia odległości stały się wyborem trzech linii łączących dwa punkty, a nie tylko jednej linii. Ponadto linia wzroku może przejść przez jeden portal więcej niż raz, aby dotrzeć do celu.
Silnik źródłowy wykonuje wiele wcześniej obliczonych optymalizacji widoczności w celu wyrównywania. Umożliwienie użytkownikom łączenia mostów widoczności z portalami zwiększyło złożoność.
W celu lepszego renderowania zaimplementowaliśmy metodę rysowania bufora szablonów dla widoków portalu, co dało nam dużą elastyczność w obsłudze głębokości rekurencji portalu. To pozwoliło nam renderować nieskończenie dużą liczbę portali (ograniczonych tylko wydajnością), co sprawiło, że nasze „nieskończone” korytarze wyglądały całkiem schludnie.
Rysowanie szablonowe pomogło nam również rozwiązać problem prawidłowej integracji z innymi technologiami w silniku Source, takimi jak rozkwit HDR. Ponieważ musimy dwa razy renderować nasze sceny dla naszych portali, włożyliśmy wiele wysiłku w to, aby portale renderowały się tak szybko, jak to możliwe, takie jak specjalne wycinanie frustum widoku na podstawie krawędzi portalu i optymalizowanie listy renderowania do rysowania portalu. „
Pamiętam też, że czytałem gdzieś, że jest wiele specjalnych przypadków, takich jak portale po przeciwnych stronach tego samego bloku. Tworzenie portali nie jest prostym zadaniem.
EDYTOWAĆ:
Znaleziono inny dobry artykuł zawierający ten artykuł :
Szybko zdaliśmy sobie sprawę, że potrzebujemy bardziej niezawodnej metody renderowania portali i umożliwienia graczowi i innym obiektom płynnego przemieszczania się między nimi. Wymagało to od nas głębszego zagłębienia się w rendering i kod fizyki silnika Source i musieliśmy zaprogramować własny system portalu.
Zasadniczo musieliśmy powiedzieć systemowi fizyki Źródła, aby wykonał tymczasową dziurę tylko z jednej strony ściany i że wszystko za portalem jest połączone z geometrią w innej części mapy. Uruchomienie tego i optymalizacja rozwiązań do działania w czasie rzeczywistym było dużym wyzwaniem.