mirror of
https://github.com/kuhyx/praca_magisterska.git
synced 2026-07-04 13:43:05 +02:00
fix: some mintor visual errors
This commit is contained in:
parent
01e7d3d037
commit
5c49242587
BIN
latex/main.pdf
BIN
latex/main.pdf
Binary file not shown.
@ -86,7 +86,7 @@ uwzględniając specyficzne wymagania tych dziedzin.
|
||||
|
||||
\textbf{Badania społeczności i ekosystemu}
|
||||
Barczak i Woźniak \cite{barczak2019comparative} przeprowadzili kompleksowe studium porównawcze silników gier, analizując nie tylko aspekty techniczne, ale również dostępność zasobów edukacyjnych, aktywność społeczności i długoterminowe wsparcie.
|
||||
|
||||
\newpage
|
||||
\textbf{Motywacja i cel pracy}
|
||||
|
||||
Przegląd literatury pokazuje, że istnieje wiele badań porównawczych
|
||||
|
||||
@ -93,7 +93,7 @@ progresywnie zwiększała obciążenie poprzez:
|
||||
\item \textbf{Maksymalna liczba przeciwników} -- limit jednoczesnych
|
||||
przeciwników na scenie wynosi 200 jednostek
|
||||
\end{itemize}
|
||||
|
||||
\newpage
|
||||
Na potrzeby profilowania rozgrywka została podzielona na trzy fazy czasowe:
|
||||
|
||||
Początkowa faza z~niskim obciążeniem. Spawner generuje wyłącznie podstawowych
|
||||
|
||||
@ -476,7 +476,6 @@ SM Issue [\%] & 13,94 & 0 & 99 \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
Metryka \texttt{GPU Active} określa procentowy udział czasu, w którym karta graficzna wykonuje jakąkolwiek pracę obliczeniową.
|
||||
Średnia wartość \textbf{90,98\%} dla faz 1--2 (aktywna rozgrywka) oznacza, że GPU był niemal w pełni wykorzystany podczas właściwej rozgrywki.
|
||||
Faza 3 wykazała niższą wartość (49,55\%) ze względu na włączenie ekranu zwycięstwa i procesu zamykania gry.
|
||||
@ -601,8 +600,10 @@ Minimalne wartości odpowiadają krótkim momentom niższego obciążenia podcza
|
||||
|
||||
Dzięki zastosowaniu profilowania fazowego uzyskano \textbf{kompletne dane} śledzenia Vulkan API z całego 90-sekundowego przebiegu gry Unreal Engine.
|
||||
Dane podzielone na trzy fazy (0--30s, 30--60s, 60--90s) umożliwiają szczegółową analizę ewolucji wykorzystania GPU w czasie rozgrywki.
|
||||
|
||||
\begin{table}[H]
|
||||
\begingroup
|
||||
\setlength{\textfloatsep}{0.5\baselineskip}
|
||||
\setlength{\intextsep}{0.5\baselineskip}
|
||||
\begin{table}[H]
|
||||
\centering
|
||||
\caption{Porównanie wywołań Vulkan API silnika Unreal Engine między fazami}
|
||||
\label{tab:unreal-vulkan-phases}
|
||||
@ -622,7 +623,7 @@ vkCmdBindPipeline & 2\,236\,013 & 2\,528\,014 & 1\,007\,615 \\
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
\endgroup
|
||||
Tabela~\ref{tab:unreal-vulkan-phases} ujawnia znaczącą dynamikę wydajności między fazami.
|
||||
Fazy 1 i 2 (aktywna rozgrywka) osiągają wysoką wydajność
|
||||
(332--339 FPS), natomiast faza 3 pokazuje \textbf{znaczący spadek do 162 FPS} -- redukcję o
|
||||
@ -668,7 +669,6 @@ wskazuje na konsystentną architekturę potoku renderowania niezależną od obci
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
W przeciwieństwie do Unity, gdzie dominującą funkcją był \texttt{vkWaitForFences},
|
||||
w Unreal Engine \textbf{57--72\% czasu} Vulkan API
|
||||
pochłonęły funkcje tworzenia potoków.
|
||||
@ -704,7 +704,6 @@ Nsight Systems tworzy nową sesję dla każdej fazy.
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
W ostrzym kontraście z Unity (gdzie \texttt{vkWaitForFences} stanowił 95,2\% czasu), w Unreal Engine funkcja ta pochłonęła zaledwie
|
||||
\textbf{0,5\% czasu} ze średnim czasem oczekiwania 3,63 $\mu$s. Tak niski czas oczekiwania wskazuje na:
|
||||
\begin{itemize}
|
||||
@ -736,7 +735,6 @@ wieloma przebiegami (deferred rendering, post-processing, UI).
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
Liczba wywołań \\ \texttt{vkCmdBindPipeline} (\textbf{5\,771\,642}
|
||||
łącznie we wszystkich fazach) jest \\ ponad \textbf{213 razy większa} niż w
|
||||
Unity (27\,027), \\ co odpowiada około 218 zmianom potoku na klatkę. Tak wysoka wartość wynika z:
|
||||
@ -784,9 +782,7 @@ wielowątkowego Unreal Engine. Łącznie zarejestrowano ponad \textbf{9 milionó
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
|
||||
|
||||
Funkcja \texttt{pthread\_cond\_wait} \\ pochłonęła \textbf{64,6\% czasu} przy
|
||||
\textbf{3\,095\,188 wywołaniach} we wszystkich trzech fazach.
|
||||
Funkcja \texttt{pthread\_cond\_wait} \\ pochłonęła \textbf{64,6\% czasu} przy \textbf{3\,095\,188 wywołaniach} we wszystkich trzech fazach.
|
||||
Jest to funkcja POSIX do oczekiwania na zmienną warunkową, używana gdy wątek musi czekać na spełnienie określonego warunku sygnalizowanego przez
|
||||
inny wątek.
|
||||
|
||||
@ -1007,7 +1003,6 @@ większe jednostki pracy autonomicznie, co minimalizuje narzut komunikacji.
|
||||
|
||||
\textbf{Unreal Engine} implementuje drobnoziarnisty paralelizm poprzez system TaskGraph. Praca jest dzielona na tysiące
|
||||
małych zadań często komunikujących się ze sobą (ponad 3 miliony wywołań synchronizacji w 90 sekund).
|
||||
|
||||
\subsection{Podsumowanie wyników testów wydajności}
|
||||
\label{subsec:podsumowanie-testow}
|
||||
|
||||
@ -1029,6 +1024,7 @@ Potoki graficzne utworzone & 3 & $\sim$2\,400 \\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{table}
|
||||
\newpage
|
||||
|
||||
Przeprowadzone testy wydajnościowe pozwalają na sformułowanie następujących wniosków:
|
||||
|
||||
|
||||
@ -48,7 +48,7 @@ podgląd podstawowych metryk wydajności podczas \\ rozgrywki~\cite{unreal_docs}
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=0.9\textwidth]{tex/img/unreal_profiler.png}
|
||||
\includegraphics[width=0.8\textwidth]{tex/img/unreal_profiler.png}
|
||||
\caption{Interfejs Unreal Insights z~widokiem analizy wydajności.}
|
||||
\label{fig:unreal-profiler}
|
||||
\end{figure}
|
||||
@ -95,7 +95,6 @@ był następującymi czynnikami:
|
||||
|
||||
|
||||
NVIDIA Nsight Graphics oferuje szereg funkcjonalności istotnych dla badań wydajnościowych:
|
||||
\newpage
|
||||
Główny moduł analizy wydajności, umożliwiający:
|
||||
\begin{itemize}
|
||||
\item Przechwycenie i~analizę pojedynczej klatki (frame capture)
|
||||
|
||||
@ -209,7 +209,7 @@ Część respondentów wyraziła zainteresowanie silnikiem Godot jako alternatyw
|
||||
|
||||
Respondenci przewidywali, że jeśli Unity nie poprawi swojego wizerunku \\
|
||||
i~oferty, Godot może w~przyszłości stać się poważną konkurencją w~segmencie gier indie.
|
||||
|
||||
\newpage
|
||||
\subsection{Podsumowanie wyników badań jakościowych}
|
||||
\label{subsec:podsumowanie-wywiady}
|
||||
|
||||
@ -239,7 +239,6 @@ Na podstawie przeprowadzonych wywiadów można sformułować następujące wnios
|
||||
\item Poradniki koncentrujące się na implementacji kosztem dobrych praktyk
|
||||
\item Problemy z kompatybilnością między wersjami silników
|
||||
\end{itemize}
|
||||
\newpage
|
||||
|
||||
Na podstawie wywiadów można zasugerować następujące kryteria wyboru silnika:
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user