mirror of
https://github.com/kuhyx/praca_magisterska.git
synced 2026-07-04 13:23:05 +02:00
feat: shorten bibliography made it less specific
This commit is contained in:
parent
6ef11b36d5
commit
066ab6e805
@ -449,49 +449,6 @@
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unity_profiler_cpu,
|
||||
author = {{Unity Technologies}},
|
||||
title = {CPU Usage Profiler module reference},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/ProfilerCPU.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unity_profiler_gpu,
|
||||
author = {{Unity Technologies}},
|
||||
title = {GPU Usage Profiler module},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/ProfilerGPU.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unity_profiler_memory,
|
||||
author = {{Unity Technologies}},
|
||||
title = {Memory Profiler module reference},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/ProfilerMemory.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unity_profiler_audio,
|
||||
author = {{Unity Technologies}},
|
||||
title = {Audio Profiler module reference},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/ProfilerAudio.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unity_profiler_physics,
|
||||
author = {{Unity Technologies}},
|
||||
title = {Physics Profiler module},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/ProfilerPhysics.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unity_frame_debugger,
|
||||
author = {{Unity Technologies}},
|
||||
title = {Introduction to the Frame Debugger},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.unity3d.com/Manual/FrameDebugger.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
% Unreal Insights Modules
|
||||
@misc{unreal_insights,
|
||||
author = {{Epic Games}},
|
||||
title = {Unreal Insights in Unreal Engine},
|
||||
@ -499,63 +456,6 @@
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unreal_timing_insights,
|
||||
author = {{Epic Games}},
|
||||
title = {Timing Insights in Unreal Engine 5},
|
||||
howpublished = {Dostęp zdalny: \url{https://dev.epicgames.com/documentation/en-us/unreal-engine/timing-insights-in-unreal-engine-5}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unreal_memory_insights,
|
||||
author = {{Epic Games}},
|
||||
title = {Memory Insights in Unreal Engine},
|
||||
howpublished = {Dostęp zdalny: \url{https://dev.epicgames.com/documentation/en-us/unreal-engine/memory-insights-in-unreal-engine}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unreal_animation_insights,
|
||||
author = {{Epic Games}},
|
||||
title = {Animation Insights in Unreal Engine},
|
||||
howpublished = {Dostęp zdalny: \url{https://dev.epicgames.com/documentation/en-us/unreal-engine/animation-insights-in-unreal-engine}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unreal_network_insights,
|
||||
author = {{Epic Games}},
|
||||
title = {Networking Insights in Unreal Engine},
|
||||
howpublished = {Dostęp zdalny: \url{https://dev.epicgames.com/documentation/en-us/unreal-engine/networking-insights-in-unreal-engine}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unreal_stat_commands,
|
||||
author = {{Epic Games}},
|
||||
title = {Stat Commands in Unreal Engine},
|
||||
howpublished = {Dostęp zdalny: \url{https://dev.epicgames.com/documentation/en-us/unreal-engine/stat-commands-in-unreal-engine}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
% NVIDIA Nsight Graphics
|
||||
@misc{nsight_graphics_features,
|
||||
author = {{NVIDIA Corporation}},
|
||||
title = {Nsight Graphics Features},
|
||||
howpublished = {Dostęp zdalny: \url{https://developer.nvidia.com/nsight-graphics-features}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{nsight_graphics_userguide,
|
||||
author = {{NVIDIA Corporation}},
|
||||
title = {NVIDIA Nsight Graphics User Guide},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.nvidia.com/nsight-graphics/UserGuide/index.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{nsight_gpu_trace,
|
||||
author = {{NVIDIA Corporation}},
|
||||
title = {GPU Trace Profiler Overview},
|
||||
howpublished = {Dostęp zdalny: \url{https://docs.nvidia.com/nsight-graphics/UserGuide/gpu-trace-overview.html}},
|
||||
year = {2024}
|
||||
}
|
||||
|
||||
@misc{unity_hub,
|
||||
author = {Unity Technologies},
|
||||
title = {Unity Hub},
|
||||
|
||||
BIN
latex/main.pdf
BIN
latex/main.pdf
Binary file not shown.
@ -60,8 +60,7 @@ platformie .NET/Mono, co zapewnia:
|
||||
|
||||
Architektura Unity opiera się na wzorcu \textit{GameObject-Component},
|
||||
gdzie każdy obiekt w scenie (GameObject) może posiadać dowolną
|
||||
liczbę komponentów definiujących jego zachowanie
|
||||
\cite{unity_components_docs, unity_gameobject_docs}.
|
||||
liczbę komponentów definiujących jego zachowanie.
|
||||
Podejście to promuje kompozycję nad dziedziczeniem i ułatwia
|
||||
tworzenie modularnego kodu.
|
||||
|
||||
@ -73,17 +72,15 @@ Unity oferuje kompleksowy zestaw narzędzi do tworzenia gier 2D i 3D:
|
||||
\item \textbf{Rendering} -- wsparcie dla wielu pipeline'ów
|
||||
renderowania: Built-in, Universal Render Pipeline (URP) dla platform
|
||||
mobilnych oraz High Definition Render Pipeline (HDRP) dla wysokiej
|
||||
jakości grafiki \cite{unity_urp_docs, unity_hdrp_docs}
|
||||
\item \textbf{Fizyka} -- integracja z silnikami PhysX (3D) i Box2D
|
||||
(2D) \cite{unity_physics}
|
||||
jakości grafiki
|
||||
\item \textbf{Fizyka} -- integracja z silnikami PhysX (3D) i Box2D (2D)
|
||||
\item \textbf{Animacja} -- system Mecanim z obsługą maszyn stanów
|
||||
i blendingu animacji \cite{unity_animation_docs}
|
||||
i blendingu animacji
|
||||
\item \textbf{Audio} -- wbudowany system dźwięku przestrzennego
|
||||
\cite{unity_audio_docs}
|
||||
\item \textbf{UI} -- dwa systemy interfejsu użytkownika: uGUI oraz
|
||||
nowoczesny UI Toolkit \cite{unity_ugui_docs, unity_uitoolkit_docs}
|
||||
nowoczesny UI Toolkit
|
||||
\item \textbf{Multiplayer} -- Netcode for GameObjects oraz
|
||||
integracja z usługami sieciowymi \cite{unity_netcode_docs}
|
||||
integracja z usługami sieciowymi
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Narzędzia deweloperskie}
|
||||
@ -139,25 +136,25 @@ być mniej wydajne niż natywny C++.
|
||||
Unreal Engine wyróżnia się zaawansowanymi możliwościami graficznymi:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Rendering} -- fotorealistyczna grafika z obsługą ray tracingu, Nanite i Lumen \cite{unreal_nanite,unreal_lumen}
|
||||
\item \textbf{Fizyka} -- silnik Chaos Physics z obsługą destrukcji i symulacji ciał miękkich \cite{unreal_docs}
|
||||
\item \textbf{Animacja} -- Control Rig, Animation Blueprints, IK Retargeting \cite{unreal_docs}
|
||||
\item \textbf{Landscape} -- zaawansowane narzędzia do tworzenia dużych terenów \cite{unreal_docs}
|
||||
\item \textbf{Niagara} -- system efektów cząsteczkowych nowej generacji \cite{unreal_niagara}
|
||||
\item \textbf{Sequencer} -- narzędzie do tworzenia cinematików i cutscen \cite{unreal_docs}
|
||||
\item \textbf{Rendering} -- fotorealistyczna grafika z obsługą ray tracingu, Nanite i Lumen
|
||||
\item \textbf{Fizyka} -- silnik Chaos Physics z obsługą destrukcji i symulacji ciał miękkich
|
||||
\item \textbf{Animacja} -- Control Rig, Animation Blueprints, IK Retargeting
|
||||
\item \textbf{Landscape} -- zaawansowane narzędzia do tworzenia dużych terenów
|
||||
\item \textbf{Niagara} -- system efektów cząsteczkowych nowej generacji
|
||||
\item \textbf{Sequencer} -- narzędzie do tworzenia cinematików i cutscen
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Narzędzia deweloperskie}
|
||||
|
||||
Unreal Editor oferuje rozbudowane środowisko deweloperskie:
|
||||
Unreal Editor oferuje rozbudowane środowisko deweloperskie~\cite{unreal_docs}:
|
||||
\begin{itemize}
|
||||
\item Edytor poziomów z obsługą streamingu i Level of Detail (LOD) \cite{unreal_docs}
|
||||
\item Blueprint Visual Scripting -- programowanie wizualne \cite{unreal_docs}
|
||||
\item Material Editor -- węzłowy edytor materiałów \cite{unreal_material_editor}
|
||||
\item Wbudowany profiler z analizą GPU/CPU i pamięci \cite{unreal_docs}
|
||||
\item Marketplace -- sklep z zasobami i pluginami \cite{unreal_docs}
|
||||
\item Dostęp do kodu źródłowego silnika \cite{unreal_wikipedia}
|
||||
\item Live Coding -- eksperymentalne wsparcie dla hot reload w C++ \cite{unreal_docs}
|
||||
\item Edytor poziomów z obsługą streamingu i Level of Detail (LOD)
|
||||
\item Blueprint Visual Scripting -- programowanie wizualne
|
||||
\item Material Editor -- węzłowy edytor materiałów
|
||||
\item Wbudowany profiler z analizą GPU/CPU i pamięci
|
||||
\item Marketplace -- sklep z zasobami i pluginami
|
||||
\item Dostęp do kodu źródłowego silnika
|
||||
\item Live Coding -- eksperymentalne wsparcie dla hot reload w C++
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Porównanie architektoniczne}
|
||||
|
||||
@ -6,41 +6,41 @@
|
||||
\subsubsection{Wsparcie dla różnych technik renderingu}
|
||||
|
||||
\paragraph{Unity}
|
||||
Unity oferuje dwa główne pipeline'y renderowania: Built-in Render Pipeline (legacy), Universal Render Pipeline (URP) oraz High Definition Render Pipeline (HDRP)~\cite{unity_urp_docs, unity_hdrp_docs}. URP jest zoptymalizowany pod kątem wydajności i~kompatybilności między platformami, podczas gdy HDRP koncentruje się na~wysokiej jakości grafiki dla~platform o~dużej mocy obliczeniowej~\cite{gregory2018game}.
|
||||
Unity oferuje dwa główne pipeline'y renderowania: Built-in Render Pipeline (legacy), Universal Render Pipeline (URP) oraz High Definition Render Pipeline (HDRP). URP jest zoptymalizowany pod kątem wydajności i~kompatybilności między platformami, podczas gdy HDRP koncentruje się na~wysokiej jakości grafiki dla~platform o~dużej mocy obliczeniowej~\cite{gregory2018game}.
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Forward rendering} -- domyślny tryb w~URP, efektywny dla~scen z~niewielką liczbą źródeł światła~\cite{unity_urp_docs}
|
||||
\item \textbf{Deferred rendering} -- dostępny w~HDRP, umożliwia obsługę większej liczby świateł~\cite{unity_hdrp_docs}
|
||||
\item \textbf{Forward rendering} -- domyślny tryb w~URP, efektywny dla~scen z~niewielką liczbą źródeł światła
|
||||
\item \textbf{Deferred rendering} -- dostępny w~HDRP, umożliwia obsługę większej liczby świateł
|
||||
\item \textbf{Ray tracing} -- wsparcie w~HDRP dla~kart graficznych NVIDIA RTX~\cite{parker2010optix}
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
Unreal Engine wykorzystuje zaawansowany deferred rendering pipeline z~obsługą ray tracingu w~czasie rzeczywistym~\cite{unreal_lumen, unreal_nanite}.
|
||||
Unreal Engine wykorzystuje zaawansowany deferred rendering pipeline z~obsługą ray tracingu w~czasie rzeczywistym~\cite{unreal_docs}.
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Deferred shading} -- standardowy pipeline dla~większości projektów~\cite{gregory2018game}
|
||||
\item \textbf{Forward shading} -- opcjonalny tryb dla~projektów VR wymagających niskiej latencji~\cite{anthes2016state}
|
||||
\item \textbf{Ray tracing} -- pełne wsparcie dla~Lumen (global illumination) i~ray-traced reflections~\cite{unreal_lumen}
|
||||
\item \textbf{Nanite} -- zwirtualizowana geometria pozwalająca na~renderowanie miliardów poligonów~\cite{unreal_nanite}
|
||||
\item \textbf{Ray tracing} -- pełne wsparcie dla~Lumen (global illumination) i~ray-traced reflections
|
||||
\item \textbf{Nanite} -- zwirtualizowana geometria pozwalająca na~renderowanie miliardów poligonów
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Systemy materiałów i shaderów}
|
||||
|
||||
\paragraph{Unity}
|
||||
Unity oferuje Shader Graph -- wizualny edytor do~tworzenia shaderów bez~pisania kodu~\cite{unity_shader_graph}. Dodatkowo wspiera shadery pisane w~HLSL oraz~Cg~\cite{farina2013shader}.
|
||||
Unity oferuje Shader Graph -- wizualny edytor do~tworzenia shaderów bez~pisania kodu. Dodatkowo wspiera shadery pisane w~HLSL oraz~Cg~\cite{farina2013shader}.
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Shader Graph} -- intuicyjny, oparty na~węzłach interfejs~\cite{unity_shader_graph}
|
||||
\item \textbf{Shader Graph} -- intuicyjny, oparty na~węzłach interfejs
|
||||
\item \textbf{HLSL/Cg} -- możliwość pisania custom shaderów~\cite{farina2013shader}
|
||||
\item \textbf{Shader variants} -- system wariantów dla~optymalizacji~\cite{unity_shader_graph}
|
||||
\item \textbf{Shader variants} -- system wariantów dla~optymalizacji
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
Unreal oferuje Material Editor -- zaawansowany system węzłowy do~tworzenia materiałów~\cite{unreal_material_editor}.
|
||||
Unreal oferuje Material Editor -- zaawansowany system węzłowy do~tworzenia materiałów~\cite{unreal_docs}.
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Material Editor} -- bogaty zestaw węzłów i~funkcji~\cite{unreal_material_editor}
|
||||
\item \textbf{Material Functions} -- możliwość tworzenia wielokrotnego użytku komponentów~\cite{unreal_material_editor}
|
||||
\item \textbf{Material Editor} -- bogaty zestaw węzłów i~funkcji
|
||||
\item \textbf{Material Functions} -- możliwość tworzenia wielokrotnego użytku komponentów
|
||||
\item \textbf{Custom HLSL} -- integracja własnego kodu HLSL~\cite{farina2013shader}
|
||||
\end{itemize}
|
||||
|
||||
@ -48,18 +48,18 @@ Unreal oferuje Material Editor -- zaawansowany system węzłowy do~tworzenia mat
|
||||
|
||||
\paragraph{Unity}
|
||||
\begin{itemize}
|
||||
\item \textbf{Real-time lighting} -- dynamiczne oświetlenie w~czasie rzeczywistym~\cite{unity_hdrp_docs}
|
||||
\item \textbf{Baked lighting} -- przedkalkulowane mapy oświetlenia (lightmaps)~\cite{unity_urp_docs}
|
||||
\item \textbf{Mixed lighting} -- połączenie światła dynamicznego i~baked~\cite{unity_hdrp_docs}
|
||||
\item \textbf{Real-time lighting} -- dynamiczne oświetlenie w~czasie rzeczywistym
|
||||
\item \textbf{Baked lighting} -- przedkalkulowane mapy oświetlenia (lightmaps)
|
||||
\item \textbf{Mixed lighting} -- połączenie światła dynamicznego i~baked
|
||||
\item \textbf{Global Illumination} -- Progressive Lightmapper dla~światła odbitego~\cite{gregory2018game}
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
\begin{itemize}
|
||||
\item \textbf{Lumen} -- dynamiczne global illumination w~czasie rzeczywistym~\cite{unreal_lumen}
|
||||
\item \textbf{Lumen} -- dynamiczne global illumination w~czasie rzeczywistym
|
||||
\item \textbf{Lightmass} -- high-quality baked lighting~\cite{gregory2018game}
|
||||
\item \textbf{Ray-traced lighting} -- fizycznie dokładne oświetlenie~\cite{parker2010optix}
|
||||
\item \textbf{Volumetric fog} -- zaawansowane efekty atmosferyczne~\cite{unreal_lumen}
|
||||
\item \textbf{Volumetric fog} -- zaawansowane efekty atmosferyczne
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Systemy fizyki i symulacji}
|
||||
@ -67,44 +67,38 @@ Unreal oferuje Material Editor -- zaawansowany system węzłowy do~tworzenia mat
|
||||
\subsubsection{Rigid body physics}
|
||||
|
||||
\paragraph{Unity}
|
||||
Unity wykorzystuje NVIDIA PhysX jako~silnik fizyki~\cite{nvidia_physx, unity_physics}.
|
||||
Unity wykorzystuje NVIDIA PhysX jako~silnik fizyki~\cite{nvidia_physx}.
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Rigidbody} -- komponent dla~obiektów fizycznych~\cite{unity_physics}
|
||||
\item \textbf{Colliders} -- różne typy koliderów (box, sphere, mesh, etc.)~\cite{unity_physics}
|
||||
\item \textbf{Joints} -- więzy i~połączenia (hinge, spring, fixed, etc.)~\cite{nvidia_physx}
|
||||
\item \textbf{Rigidbody} -- komponent dla~obiektów fizycznych
|
||||
\item \textbf{Colliders} -- różne typy koliderów (box, sphere, mesh, etc.)
|
||||
\item \textbf{Joints} -- więzy i~połączenia (hinge, spring, fixed, etc.)
|
||||
\item \textbf{Wydajność} -- efektywne dla~setek obiektów fizycznych~\cite{messaoudi2017performance}
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
Unreal przeszedł z~PhysX na~Chaos Physics --
|
||||
Unreal przeszedł z~PhysX na~Chaos Physics --
|
||||
własny silnik fizyki~\cite{unreal_docs}.
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Chaos Physics} -- nowy,
|
||||
zaawansowany system
|
||||
fizyki~\cite{unreal_docs}
|
||||
\item \textbf{Destruction} -- wbudowane
|
||||
wsparcie dla~destrukcji
|
||||
obiektów~\cite{unreal_docs}
|
||||
\item \textbf{Cloth simulation} --
|
||||
symulacja tkanin~\cite{unreal_docs}
|
||||
\item \textbf{Vehicles} -- zaawansowany
|
||||
system pojazdów~\cite{gregory2018game}
|
||||
\item \textbf{Chaos Physics} -- nowy, zaawansowany system fizyki
|
||||
\item \textbf{Destruction} -- wbudowane wsparcie dla~destrukcji obiektów
|
||||
\item \textbf{Cloth simulation} -- symulacja tkanin
|
||||
\item \textbf{Vehicles} -- zaawansowany system pojazdów~\cite{gregory2018game}
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Systemy cząstek}
|
||||
|
||||
\paragraph{Unity}
|
||||
\begin{itemize}
|
||||
\item \textbf{Shuriken Particle System} -- klasyczny system cząstek~\cite{unity_vfx_graph}
|
||||
\item \textbf{Visual Effect Graph} -- system cząstek GPU-based dla~milionów cząstek~\cite{unity_vfx_graph}
|
||||
\item \textbf{Shuriken Particle System} -- klasyczny system cząstek
|
||||
\item \textbf{Visual Effect Graph} -- system cząstek GPU-based dla~milionów cząstek
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
\begin{itemize}
|
||||
\item \textbf{Cascade} -- legacy system cząstek~\cite{unreal_niagara}
|
||||
\item \textbf{Niagara} -- zaawansowany, skalowalny system efektów wizualnych~\cite{unreal_niagara}
|
||||
\item \textbf{Cascade} -- legacy system cząstek
|
||||
\item \textbf{Niagara} -- zaawansowany, skalowalny system efektów wizualnych
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Systemy audio}
|
||||
@ -113,15 +107,15 @@ własny silnik fizyki~\cite{unreal_docs}.
|
||||
|
||||
\paragraph{Unity}
|
||||
\begin{itemize}
|
||||
\item Obsługiwane formaty: WAV, MP3, OGG, AIFF~\cite{unity_physics}
|
||||
\item Kompresja: Vorbis, MP3, ADPCM~\cite{unity_physics}
|
||||
\item Obsługiwane formaty: WAV, MP3, OGG, AIFF
|
||||
\item Kompresja: Vorbis, MP3, ADPCM
|
||||
\item Audio middleware: integracja z~Wwise, FMOD~\cite{firat2022sound}
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
\begin{itemize}
|
||||
\item Obsługiwane formaty: WAV, OGG, FLAC~\cite{unreal_metasounds}
|
||||
\item Natywna integracja z~MetaSounds~\cite{unreal_metasounds}
|
||||
\item Obsługiwane formaty: WAV, OGG, FLAC
|
||||
\item Natywna integracja z~MetaSounds
|
||||
\item Wsparcie dla~Wwise, FMOD~\cite{firat2022sound}
|
||||
\end{itemize}
|
||||
|
||||
@ -159,18 +153,18 @@ Oba silniki oferują zaawansowane systemy dźwięku przestrzennego z~obsługą~\
|
||||
|
||||
\paragraph{Unity}
|
||||
\begin{itemize}
|
||||
\item Unity Profiler -- analiza wydajności CPU, GPU, pamięci~\cite{unity_profiler}
|
||||
\item Console -- logi i~błędy w~czasie rzeczywistym~\cite{unity_profiler}
|
||||
\item Frame Debugger -- analiza procesu renderowania klatka po~klatce~\cite{unity_profiler}
|
||||
\item Memory Profiler -- szczegółowa analiza alokacji pamięci~\cite{unity_profiler}
|
||||
\item Unity Profiler -- analiza wydajności CPU, GPU, pamięci
|
||||
\item Console -- logi i~błędy w~czasie rzeczywistym
|
||||
\item Frame Debugger -- analiza procesu renderowania klatka po~klatce
|
||||
\item Memory Profiler -- szczegółowa analiza alokacji pamięci
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
\begin{itemize}
|
||||
\item Unreal Insights -- kompleksowe narzędzie profilowania~\cite{unreal_insights}
|
||||
\item Visual Logger -- wizualizacja logów w~kontekście gry~\cite{unreal_insights}
|
||||
\item Session Frontend -- monitoring wielu instancji gry~\cite{unreal_insights}
|
||||
\item GPU Visualizer -- analiza wydajności GPU~\cite{unreal_insights}
|
||||
\item Unreal Insights -- kompleksowe narzędzie profilowania
|
||||
\item Visual Logger -- wizualizacja logów w~kontekście gry
|
||||
\item Session Frontend -- monitoring wielu instancji gry
|
||||
\item GPU Visualizer -- analiza wydajności GPU
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Wsparcie dla platform docelowych}
|
||||
@ -289,14 +283,14 @@ Wielkość i~aktywność społeczności deweloperskiej jest istotnym czynnikiem
|
||||
|
||||
\paragraph{Unity}
|
||||
\begin{itemize}
|
||||
\item \textbf{Dokumentacja oficjalna} -- ponad 5000 stron dokumentacji API~\cite{unity_urp_docs}
|
||||
\item \textbf{Dokumentacja oficjalna} -- ponad 5000 stron dokumentacji API
|
||||
\item \textbf{Unity Learn} -- ponad 750 darmowych kursów i~tutoriali~\cite{christopoulou2017overview}
|
||||
\item \textbf{Certyfikacje} -- 4 poziomy certyfikacji (User, Associate, Professional, Expert)~\cite{barczak2019comparative}
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Unreal Engine}
|
||||
\begin{itemize}
|
||||
\item \textbf{Dokumentacja oficjalna} -- obszerna dokumentacja z~ponad 3000 stron~\cite{unreal_lumen}
|
||||
\item \textbf{Dokumentacja oficjalna} -- obszerna dokumentacja z~ponad 3000 stron
|
||||
\item \textbf{Unreal Online Learning} -- ponad 200 darmowych kursów wideo~\cite{christopoulou2017overview}
|
||||
\item \textbf{Epic Developer Community} -- oficjalne forum wsparcia~\cite{barczak2019comparative}
|
||||
\end{itemize}
|
||||
|
||||
BIN
latex/tex/img/nvidia_nsight.jpg
Normal file
BIN
latex/tex/img/nvidia_nsight.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 458 KiB |
8
latex/tex/img/sources.txt
Normal file
8
latex/tex/img/sources.txt
Normal file
@ -0,0 +1,8 @@
|
||||
unity_profiler:
|
||||
https://unity.com/blog/engine-platform/profiling-in-unity-2021-lts-what-when-and-how
|
||||
|
||||
unreal_profiler:
|
||||
https://dev.epicgames.com/documentation/unreal-engine/profiler-tool-reference?application_version=4.27
|
||||
|
||||
nvidia_nsight:
|
||||
https://developer.nvidia.com/nsight-systems
|
||||
BIN
latex/tex/img/unity_profiler.avif
Normal file
BIN
latex/tex/img/unity_profiler.avif
Normal file
Binary file not shown.
BIN
latex/tex/img/unity_profiler.png
Normal file
BIN
latex/tex/img/unity_profiler.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 782 KiB |
BIN
latex/tex/img/unreal_profiler.png
Normal file
BIN
latex/tex/img/unreal_profiler.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 297 KiB |
@ -14,29 +14,43 @@ Zarówno Unity, jak i~Unreal Engine oferują własne, wbudowane narzędzia do an
|
||||
Unity dostarcza rozbudowany profiler dostępny bezpośrednio w~edytorze (Window $\rightarrow$ Analysis $\rightarrow$ Profiler)~\cite{unity_profiler}. Narzędzie to oferuje:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{CPU Profiler} -- analiza czasu wykonania poszczególnych funkcji, z~podziałem na kategorie (rendering, skrypty, fizyka, animacje)~\cite{unity_profiler_cpu}
|
||||
\item \textbf{GPU Profiler} -- pomiar czasu renderowania na karcie graficznej~\cite{unity_profiler_gpu}
|
||||
\item \textbf{Memory Profiler} -- szczegółowa analiza alokacji pamięci, wykrywanie wycieków~\cite{unity_profiler_memory}
|
||||
\item \textbf{Audio Profiler} -- monitorowanie obciążenia systemu dźwiękowego~\cite{unity_profiler_audio}
|
||||
\item \textbf{Physics Profiler} -- analiza wydajności silnika fizyki~\cite{unity_profiler_physics}
|
||||
\item \textbf{Frame Debugger} -- krokowa analiza procesu renderowania pojedynczej klatki~\cite{unity_frame_debugger}
|
||||
\item \textbf{CPU Profiler} -- analiza czasu wykonania poszczególnych funkcji, z~podziałem na kategorie (rendering, skrypty, fizyka, animacje)
|
||||
\item \textbf{GPU Profiler} -- pomiar czasu renderowania na karcie graficznej
|
||||
\item \textbf{Memory Profiler} -- szczegółowa analiza alokacji pamięci, wykrywanie wycieków
|
||||
\item \textbf{Audio Profiler} -- monitorowanie obciążenia systemu dźwiękowego
|
||||
\item \textbf{Physics Profiler} -- analiza wydajności silnika fizyki
|
||||
\item \textbf{Frame Debugger} -- krokowa analiza procesu renderowania pojedynczej klatki
|
||||
\end{itemize}
|
||||
|
||||
Unity Profiler umożliwia również zdalne profilowanie aplikacji uruchomionej na urządzeniu docelowym (np.~smartfonie), co jest szczególnie przydatne przy optymalizacji gier mobilnych.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{tex/img/unity_profiler.png}
|
||||
\caption{Interfejs Unity Profiler z~widokiem analizy wydajności CPU i~GPU.}
|
||||
\label{fig:unity-profiler}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{Unreal Insights}
|
||||
|
||||
Unreal Engine oferuje narzędzie Unreal Insights, które zastąpiło starszy system Session Frontend~\cite{unreal_insights}. Kluczowe funkcjonalności obejmują:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Timing Insights} -- precyzyjny pomiar czasu wykonania poszczególnych systemów silnika~\cite{unreal_timing_insights}
|
||||
\item \textbf{Asset Loading Insights} -- analiza czasu ładowania zasobów~\cite{unreal_insights}
|
||||
\item \textbf{Memory Insights} -- monitorowanie alokacji i~dealokacji pamięci~\cite{unreal_memory_insights}
|
||||
\item \textbf{Animation Insights} -- profilowanie systemu animacji~\cite{unreal_animation_insights}
|
||||
\item \textbf{Network Insights} -- analiza ruchu sieciowego w~grach multiplayer~\cite{unreal_network_insights}
|
||||
\item \textbf{Timing Insights} -- precyzyjny pomiar czasu wykonania poszczególnych systemów silnika
|
||||
\item \textbf{Asset Loading Insights} -- analiza czasu ładowania zasobów
|
||||
\item \textbf{Memory Insights} -- monitorowanie alokacji i~dealokacji pamięci
|
||||
\item \textbf{Animation Insights} -- profilowanie systemu animacji
|
||||
\item \textbf{Network Insights} -- analiza ruchu sieciowego w~grach multiplayer
|
||||
\end{itemize}
|
||||
|
||||
Dodatkowo Unreal Engine udostępnia komendy konsolowe (np.~\texttt{stat fps}, \texttt{stat unit}, \texttt{stat gpu}) pozwalające na szybki podgląd podstawowych metryk wydajności podczas rozgrywki~\cite{unreal_stat_commands}.
|
||||
Dodatkowo Unreal Engine udostępnia komendy konsolowe (np.~\texttt{stat fps}, \texttt{stat unit}, \texttt{stat gpu}) pozwalające na szybki podgląd podstawowych metryk wydajności podczas rozgrywki~\cite{unreal_docs}.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{tex/img/unreal_profiler.png}
|
||||
\caption{Interfejs Unreal Insights z~widokiem analizy wydajności.}
|
||||
\label{fig:unreal-profiler}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{Ograniczenia narzędzi wbudowanych}
|
||||
|
||||
@ -56,12 +70,19 @@ Z~powyższych powodów zdecydowano się na zastosowanie zewnętrznego, niezależ
|
||||
|
||||
NVIDIA Nsight Graphics to narzędzie do profilowania i~debugowania
|
||||
aplikacji graficznych, oferujące wgląd w~działanie GPU
|
||||
niezależnie od używanego silnika czy API graficznego~\cite{nvidia_nsight, nsight_graphics_userguide}.
|
||||
niezależnie od używanego silnika czy API graficznego~\cite{nvidia_nsight}.
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
\includegraphics[width=1.0\textwidth]{tex/img/nvidia_nsight.jpg}
|
||||
\caption{Interfejs NVIDIA Nsight Graphics z~widokiem analizy GPU.}
|
||||
\label{fig:nvidia-nsight}
|
||||
\end{figure}
|
||||
|
||||
\subsubsection{Uzasadnienie wyboru}
|
||||
|
||||
Wybór NVIDIA Nsight jako głównego narzędzia pomiarowego podyktowany
|
||||
był następującymi czynnikami~\cite{nsight_graphics_features}:
|
||||
był następującymi czynnikami:
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Niezależność od silnika} -- Nsight analizuje aplikację na poziomie wywołań API graficznego (DirectX, Vulkan, OpenGL), co zapewnia porównywalność wyników między Unity a~Unreal Engine
|
||||
@ -73,10 +94,10 @@ był następującymi czynnikami~\cite{nsight_graphics_features}:
|
||||
|
||||
\subsubsection{Możliwości narzędzia}
|
||||
|
||||
NVIDIA Nsight Graphics oferuje szereg funkcjonalności istotnych dla badań wydajnościowych~\cite{nsight_graphics_userguide}:
|
||||
NVIDIA Nsight Graphics oferuje szereg funkcjonalności istotnych dla badań wydajnościowych:
|
||||
|
||||
\paragraph{Frame Profiler}
|
||||
Główny moduł analizy wydajności, umożliwiający~\cite{nsight_graphics_features}:
|
||||
Główny moduł analizy wydajności, umożliwiający:
|
||||
\begin{itemize}
|
||||
\item Przechwycenie i~analizę pojedynczej klatki (frame capture)
|
||||
\item Hierarchiczny widok wszystkich wywołań GPU
|
||||
@ -86,7 +107,7 @@ Główny moduł analizy wydajności, umożliwiający~\cite{nsight_graphics_featu
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{GPU Trace}
|
||||
Moduł do długoterminowej analizy wydajności~\cite{nsight_gpu_trace}:
|
||||
Moduł do długoterminowej analizy wydajności:
|
||||
\begin{itemize}
|
||||
\item Rejestrowanie metryk przez określony czas (nie tylko pojedyncza klatka)
|
||||
\item Wykrywanie spadków wydajności i~ich przyczyn
|
||||
@ -95,7 +116,7 @@ Moduł do długoterminowej analizy wydajności~\cite{nsight_gpu_trace}:
|
||||
\end{itemize}
|
||||
|
||||
\paragraph{Shader Profiler}
|
||||
Narzędzie do optymalizacji shaderów~\cite{nsight_graphics_userguide}:
|
||||
Narzędzie do optymalizacji shaderów:
|
||||
\begin{itemize}
|
||||
\item Analiza wydajności poszczególnych shaderów
|
||||
\item Identyfikacja nieefektywnych instrukcji
|
||||
@ -109,7 +130,7 @@ Dane zebrane przez NVIDIA Nsight wymagają odpowiedniego przetworzenia w~celu uz
|
||||
|
||||
\subsubsection{Eksport danych}
|
||||
|
||||
Nsight umożliwia eksport danych w~kilku formatach~\cite{nsight_graphics_userguide}:
|
||||
Nsight umożliwia eksport danych w~kilku formatach:
|
||||
\begin{itemize}
|
||||
\item \textbf{CSV} -- tabularyczne dane liczbowe
|
||||
\item \textbf{JSON} -- strukturalne dane z~pełną hierarchią wywołań
|
||||
|
||||
Loading…
Reference in New Issue
Block a user