diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/GameMaker.png b/NotProgramming/SDM2/presentations/my_thesis/images/GameMaker.png new file mode 100644 index 00000000..416f5302 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/GameMaker.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/RPG_Maker_MV_Logo.webp b/NotProgramming/SDM2/presentations/my_thesis/images/RPG_Maker_MV_Logo.webp new file mode 100644 index 00000000..bb3e3149 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/RPG_Maker_MV_Logo.webp differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/RenPy.png b/NotProgramming/SDM2/presentations/my_thesis/images/RenPy.png new file mode 100644 index 00000000..919fa36b Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/RenPy.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/bad_fps.png b/NotProgramming/SDM2/presentations/my_thesis/images/bad_fps.png new file mode 100644 index 00000000..da5af607 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/bad_fps.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/dx12_frame_health.png b/NotProgramming/SDM2/presentations/my_thesis/images/dx12_frame_health.png new file mode 100644 index 00000000..3e7cb278 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/dx12_frame_health.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/fps_overview.png b/NotProgramming/SDM2/presentations/my_thesis/images/fps_overview.png new file mode 100644 index 00000000..f7d838c7 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/fps_overview.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/fps_pick.png b/NotProgramming/SDM2/presentations/my_thesis/images/fps_pick.png new file mode 100644 index 00000000..7a8f5181 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/fps_pick.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/godot.png b/NotProgramming/SDM2/presentations/my_thesis/images/godot.png new file mode 100644 index 00000000..86acb15e Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/godot.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/logo_vertical_color_light.svg b/NotProgramming/SDM2/presentations/my_thesis/images/logo_vertical_color_light.svg new file mode 100644 index 00000000..bd2e2e8d --- /dev/null +++ b/NotProgramming/SDM2/presentations/my_thesis/images/logo_vertical_color_light.svg @@ -0,0 +1 @@ + diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/maxresdefault (1).jpg b/NotProgramming/SDM2/presentations/my_thesis/images/maxresdefault (1).jpg new file mode 100644 index 00000000..01d5bfb2 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/maxresdefault (1).jpg differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/maxresdefault.jpg b/NotProgramming/SDM2/presentations/my_thesis/images/maxresdefault.jpg new file mode 100644 index 00000000..1281f02c Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/maxresdefault.jpg differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization.png b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization.png new file mode 100644 index 00000000..5a93fa6f Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_gpu_vram.png b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_gpu_vram.png new file mode 100644 index 00000000..e2e246a3 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_gpu_vram.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_memory_transfer.png b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_memory_transfer.png new file mode 100644 index 00000000..39bd7734 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_memory_transfer.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_resource_migrations.png b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_resource_migrations.png new file mode 100644 index 00000000..21d984c2 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/memory_utilization_resource_migrations.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/nvida_nsighty.jpg b/NotProgramming/SDM2/presentations/my_thesis/images/nvida_nsighty.jpg new file mode 100644 index 00000000..b9dd79bb Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/nvida_nsighty.jpg differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_filter b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_filter new file mode 100644 index 00000000..e5cd0ed6 --- /dev/null +++ b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_filter @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_filter.drawio.pdf b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_filter.drawio.pdf new file mode 100644 index 00000000..6c71c2fe Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_filter.drawio.pdf differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_main.png b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_main.png new file mode 100644 index 00000000..8287d788 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_main.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_release.png b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_release.png new file mode 100644 index 00000000..c473c373 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_release.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_technologia.png b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_technologia.png new file mode 100644 index 00000000..6e9f0558 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_technologia.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_type.png b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_type.png new file mode 100644 index 00000000..4bf2ee55 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/steamdb_type.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/stutter_row.png b/NotProgramming/SDM2/presentations/my_thesis/images/stutter_row.png new file mode 100644 index 00000000..2e4c9185 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/stutter_row.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/unisex-black-gamemaker-logo-gamemaker.jpg b/NotProgramming/SDM2/presentations/my_thesis/images/unisex-black-gamemaker-logo-gamemaker.jpg new file mode 100644 index 00000000..4716bb2b Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/unisex-black-gamemaker-logo-gamemaker.jpg differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/unity.png b/NotProgramming/SDM2/presentations/my_thesis/images/unity.png new file mode 100644 index 00000000..e9020bc6 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/unity.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/unity_profiler.png b/NotProgramming/SDM2/presentations/my_thesis/images/unity_profiler.png new file mode 100644 index 00000000..2ced8b9f Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/unity_profiler.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/unreal.png b/NotProgramming/SDM2/presentations/my_thesis/images/unreal.png new file mode 100644 index 00000000..b709db88 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/unreal.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/unreal_profiler.jpg b/NotProgramming/SDM2/presentations/my_thesis/images/unreal_profiler.jpg new file mode 100644 index 00000000..b22cff4b Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/unreal_profiler.jpg differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/usedEngines.pdf b/NotProgramming/SDM2/presentations/my_thesis/images/usedEngines.pdf new file mode 100644 index 00000000..411e58dd Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/usedEngines.pdf differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/images/vulkan_frame_health.png b/NotProgramming/SDM2/presentations/my_thesis/images/vulkan_frame_health.png new file mode 100644 index 00000000..7676f2fb Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/images/vulkan_frame_health.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/main.pdf b/NotProgramming/SDM2/presentations/my_thesis/main.pdf new file mode 100644 index 00000000..86245a0a Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/main.pdf differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/main.tex b/NotProgramming/SDM2/presentations/my_thesis/main.tex new file mode 100644 index 00000000..324fdc4c --- /dev/null +++ b/NotProgramming/SDM2/presentations/my_thesis/main.tex @@ -0,0 +1,332 @@ +\documentclass{beamer} + +\usepackage[fontsize=20pt]{fontsize} +\usepackage{graphicx} +\usepackage{tikz} +\usepackage{changepage} % Add to your preamble +\usepackage{svg} +\usepackage[polish]{babel} + + +\graphicspath{ {./images/} } +\usetheme{Warsaw} + + + +%Information to be included in the title page: + +% Custom title page layout adjustments +\title{\large Porównanie wydajności i możliwości współczesnych silników do gier komputerowych} +\author{Krzysztof Rudnicki} +\institute{ + \textbf{Promotor} \\ + dr inż. Michał Chwesiuk +} +\date{\scriptsize \today} % Adjust the font size here + + +\setbeamertemplate{footline}[frame number]{} +\beamertemplatenavigationsymbolsempty +\setbeamertemplate{headline}{} + + + + + + +\begin{document} + +\begin{frame} + \vspace{-0.5cm} % Adjust vertical space above title + \maketitle + % Alternatively, use a completely custom layout: + %\begin{center} + % {\Large\inserttitle\par} + % \vskip1em + % {\insertauthor\par} + % \vskip1em + % {\insertinstitute\par} + % \vskip1em + % {\insertdate\par} + %\end{center} +\end{frame} + +\begin{frame} +\frametitle{Plan prezentacji} +\tableofcontents +\end{frame} + +\section{Definicje} +\begin{frame} + \frametitle{Gra komputerowa} + \large Aplikacja dostępna na platformie "Steam" oznaczona typem "Game" +\end{frame} +\begin{frame} +\frametitle{Silnik do gier} +\large Oprogramowanie zaprojektowane i stworzone do kreacji gier komputerowych +\end{frame} + +\begin{frame} + \frametitle{Nowoczesne} + \large Ponad 1000 gier w tej dekadzie na platformie "Steam" +\end{frame} + + +{ + \setbeamercolor{footline}{fg=white} +\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_main.png}} +\begin{frame} +\end{frame} +} + + +{ +\usebackgroundtemplate{\includegraphics[width=\paperwidth, height=\paperheight]{steamdb_filter.drawio.pdf}} +\begin{frame} +\end{frame} +} + +\begin{frame} + \frametitle{Wybrane silniki - start} + \begin{center} + \includegraphics[width=0.8\paperwidth, height=0.8\paperheight]{usedEngines.pdf} +\end{center} +\end{frame} + +\begin{frame} + \frametitle{Wybrane silniki} + \begin{itemize} + \item Wyeliminowanie nie generycznych - Ren'Py, RPGMaker + \item Wybór najpopularniejszych - Unity, Unreal + % Prawie 25k i ponad 7.5k + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Wydajność silnika} + \begin{itemize} + \item Klatki na sekundę (FPS) + \item Zużycie CPU, GPU, RAM i VRAM + \item Liczba draw calls + \item Czas ładowania assetów + \item Czas odpowiedzi na interakcję gracza + \end{itemize} +\end{frame} +\begin{frame} + \frametitle{Możliwości Silnika} + \begin{itemize} + \item Renderowanie grafiki + % Ray tracing, HDR lighting, dynamic shadows, particle systems, animacja + \item Silnik Fizyczny + \item Multiplatformowość (VR) + % Linux, Windows, MacOS, Android, IOs, Xbox, PlayStation, Nintendo, VR + \item Skryptowanie logiki gier (AI) + \item Gry online + \item Sklepy z assetami + \end{itemize} + \end{frame} + \section{Narzędzia} + \frametitle{Unity Profiler} + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {unity_profiler.png}} + \begin{frame} + \end{frame} + } + + \frametitle{Unreal Profiler} + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {unreal_profiler.jpg}} + \begin{frame} + \end{frame} + } + + \frametitle{Nvidia nsight} + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {nvida_nsighty.jpg}} + \begin{frame} + \end{frame} + } + + \begin{frame} + \frametitle{Nsight - Analiza FPS} + \center + \includegraphics[width=1\textwidth]{fps_overview.png} + % Ile klatek pokazaliśmy na ile + % ile trwała średnio klatka + % Ile trwała najkrótsza klatka + % Ile trwała najdłuższa klatka + % Przeciętne klatki na sekundę dla pokazanego wycinka + % Tyle lub mniej czasu trwało 99% klatek + \end{frame} + + \begin{frame} + \frametitle{Nsight - Analiza FPS} + \center + \includegraphics[width=1\textwidth]{stutter_row.png} + % Wykrywanie "zawieszek" + % Wykrywamy klatki których długość + % jest znacznie dłuższa od długości mediany pobliskich 19 klatek + % zawieszka musi być dłuższa niż 4 milisekundy + \end{frame} + + \begin{frame} + \frametitle{Nsight - Analiza FPS} + \center + \includegraphics[width=1\textwidth]{dx12_frame_health.png} + % Możemy sprawdzić jaka klatka miała zawieszkę + % I jaka metoda w api tę zawieszkę spowodowała + \end{frame} + + + \begin{frame} + \frametitle{Nsight - Zużycie VRAM} + \center + \includegraphics[width=1\textwidth]{memory_utilization_gpu_vram.png} + % Zielony -> ile pamięci mamy dostępnej + % Pomarańczowy -> ile pamięci zużyliśmy + % VidMm Device Suspension -> okresy czasku kiedy przetransferowano + % Jeden duży zasób pamięci + % Demoted Memory -> w GPU mamy local memory (szybsze) i global memory + % (wolniejsze) to może nam mówić o "wyciekach" pamięci + % źle zooptymalizowanej pamięci itd. + % Allokacja pamięci -> zielone aplikacja, szare -> system + \end{frame} + + \begin{frame} + \frametitle{Nsight - Zużycie VRAM} + \center + \includegraphics[width=1\textwidth]{memory_utilization_resource_migrations.png} + % W kolejności co najwięcej zużyło zasobów + % Konkretnie ile i kiedy + \end{frame} + + \begin{frame} + \frametitle{Nsight - Zużycie VRAM} + \center + \includegraphics[width=1\textwidth]{memory_utilization_memory_transfer.png} + % W kolejności co najwięcej zużyło zasobów + % Konkretnie ile i kiedy + \end{frame} + + \begin{frame} + \frametitle{Jak porównywać?} + \begin{itemize} + \item Stworzenie gry na obu + \item Porównywanie istniejących gier + \item Porównanie samych edytorów + \end{itemize} + \end{frame} + + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {maxresdefault (1).jpg}} + \begin{frame} + \end{frame} + } + + \begin{frame} + \frametitle{Wybór gatunku} + FPS: + \begin{itemize} + \item Wystarczająco skomplikowany + \item Grafika + \item Fizyka + \item Klasyczny benchmark + % Wolfenstein, Doom, Quake, Crysis + \end{itemize} + \end{frame} + \begin{frame} + \frametitle{Problem} + Inklinacja Silnika \\ + \begin{itemize} + \item $ \frac{2478}{39713} \approx 6\% $ gier Unity to FPS \\ + \item $ \frac{1765}{11158} \approx 15\% $ gier Unreal to FPS \\ + \end{itemize} + Źródło: steamdb.info + \end{frame} + + \begin{frame} + \frametitle{Wybór gatunku} + Bullet hell: + \begin{itemize} + \item Wystarczająco skomplikowany + \item Grafika + \item Czas jest ważny + % W Bullet hell czas jest ważny, gra musi być płynna + \end{itemize} + \end{frame} + + { + \setbeamercolor{footline}{fg=white} + \usebackgroundtemplate{ + \includegraphics[width=\paperwidth, height=\paperheight] + {maxresdefault.jpg}} + \begin{frame} + \end{frame} + } + \begin{frame} + \frametitle{Wyzwania} + \begin{itemize} + \item Sprzęt + % Ten sam, jeden i ten sam komputer użyty w procesie kreacji obu + \item Umiejętności + % Nie mam + \item Podobne wersje silnika + % Użyje ostatniego LTS + \item Inklinacja Silnika \\ (3\% Unity, 2.4\% Unreal) + % ??? Ch + % 1577 FPS UNITY, 271 FPS UNREAL + % 39713 Total Unity, 11158 Total Unreal (proporcjonalnie 2 razy więcej :<) + \end{itemize} + \end{frame} + + \begin{frame} + \frametitle{Ocena łatwości użycia} + \begin{itemize} + \item Dokumentacja + \item Intuicyjność + \item Materiały + \item Zasoby (Assety) + \item Dostępne funkcje + \end{itemize} + \end{frame} + + + + \begin{frame} + \frametitle{Po stworzeniu} + Przejść obie gry, monitorując przy użyciu Nvidia Nsight i porównać wyniki + \end{frame} + + + \section{Źródła} +\begin{frame} + \frametitle{Źródła} + \begin{itemize} + \item \href{https://steamdb.info/}{https://steamdb.info/} + \item \href{https://docs.nvidia.com/nsight-systems}{https://docs.nvidia.com/nsight-systems} + \item An Overview Study of Game Engines, Faizi Noor Ahmad + \item Game Engine Architecture, Jason Gregory + \end{itemize} + \end{frame} + + \begin{frame} + \frametitle{Źródła obrazów} + \begin{itemize} + \item Crysis - kanał youtube \href{https://www.youtube.com/watch?v=vGjOALIrL_U}{Thronefull} + \item BulletHell - kanał youtube \href{https://www.youtube.com/watch?app=desktop&v=h-wr6LoETA0}{Beat that boss} + \end{itemize} + \end{frame} + +\end{document} \ No newline at end of file diff --git a/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/1.png b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/1.png new file mode 100644 index 00000000..f7d838c7 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/1.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/2.png b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/2.png new file mode 100644 index 00000000..2e4c9185 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/2.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/3.png b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/3.png new file mode 100644 index 00000000..3e7cb278 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/3.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/4.png b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/4.png new file mode 100644 index 00000000..e2e246a3 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/4.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/5.png b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/5.png new file mode 100644 index 00000000..21d984c2 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/5.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/6.png b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/6.png new file mode 100644 index 00000000..39bd7734 Binary files /dev/null and b/NotProgramming/SDM2/presentations/my_thesis/obrazki_do_pokazania/6.png differ diff --git a/NotProgramming/SDM2/presentations/my_thesis/script.txt b/NotProgramming/SDM2/presentations/my_thesis/script.txt new file mode 100644 index 00000000..2ae14544 --- /dev/null +++ b/NotProgramming/SDM2/presentations/my_thesis/script.txt @@ -0,0 +1,15 @@ +Dzień dobry państwu, nazywam się Krzysztof Rudnicki i chciałbym opowiedzieć o mojej pracy magisterskiej pod promotorstwem Pana doktora Michała Chwesiuka, o tytule Porównanie wydajnośći i możliwości współczesnych silników gier komputerowych + +Jeżeli pojawią się jakieś pytania to można je jak najbardziej zadawać w trakcie + +Plan prezentacji wygląda następująco, najpierw omówię krótko co +rozumiem pod pojęciem silnika do gier, +jakie są współczesne silniki do gier, +które z nich będę porównywał, +czym są możliwości i wydajności tych silników +i jak zamierzam je porównywać + +Chciałbym aby po tej prezentacji wiedzieli Państwo więcej o tym jak można +porównywać silniki graficzne niż przed nią + + diff --git a/NotProgramming/SPD/lab2_spd/lab2.drawio b/NotProgramming/SPD/lab2_spd/lab2.drawio new file mode 100644 index 00000000..a7b7307a --- /dev/null +++ b/NotProgramming/SPD/lab2_spd/lab2.drawio @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/NotProgramming/SPD/lab2_spd/lab2_1.drawio b/NotProgramming/SPD/lab2_spd/lab2_1.drawio new file mode 100644 index 00000000..b025fbca --- /dev/null +++ b/NotProgramming/SPD/lab2_spd/lab2_1.drawio @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/NotProgramming/SPD/lab2_spd/lab2_2.drawio b/NotProgramming/SPD/lab2_spd/lab2_2.drawio new file mode 100644 index 00000000..c1c34522 --- /dev/null +++ b/NotProgramming/SPD/lab2_spd/lab2_2.drawio @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/SPD/lab2_spd/lab2_3.drawio b/NotProgramming/SPD/lab2_spd/lab2_3.drawio new file mode 100644 index 00000000..9f6b5f1e --- /dev/null +++ b/NotProgramming/SPD/lab2_spd/lab2_3.drawio @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/SPD/lab2_spd/lab4 b/NotProgramming/SPD/lab2_spd/lab4 new file mode 100644 index 00000000..ba265b2b --- /dev/null +++ b/NotProgramming/SPD/lab2_spd/lab4 @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/SPD/lab4_spd/main.py b/NotProgramming/SPD/lab4_spd/main.py new file mode 100644 index 00000000..b50d9926 --- /dev/null +++ b/NotProgramming/SPD/lab4_spd/main.py @@ -0,0 +1,128 @@ +import matplotlib.pyplot as plt + +# Prepare the datasets +datasets_200Hz = [] +datasets_400Hz = [] + +# Dataset 1: Wieloton 200 Hz, 7 (1400 Hz), 3 składowe +# Starting x value is 1400 Hz +datasets_200Hz.append({ + 'name': '200 Hz, 7 (1400 Hz), 3 składowe', + 'x': [1400 + 0, 1400 + 50, 1400 + 100, 1400 + 150], + 'y': [200, 200, 215, 230] +}) + +# Dataset 2: Wieloton 200 Hz, 7 (1400 Hz), 7 składowych +datasets_200Hz.append({ + 'name': '200 Hz, 7 (1400 Hz), 7 składowych', + 'x': [1400 + 0, 1400 + 50, 1400 + 100, 1400 + 150], + 'y': [190, 190, 200, 195] +}) + +# Dataset 3: Wieloton 200 Hz, 10 (2000 Hz), 3 składowe +# Starting x value is 2000 Hz +datasets_200Hz.append({ + 'name': '200 Hz, 10 (2000 Hz), 3 składowe', + 'x': [2000 + 0, 2000 + 50, 2000 + 100, 2000 + 150], + 'y': [225, 215, 220, 265] +}) + +# Dataset 4: Wieloton 200 Hz, 10 (2000 Hz), 7 składowych +datasets_200Hz.append({ + 'name': '200 Hz, 10 (2000 Hz), 7 składowych', + 'x': [2000 + 0, 2000 + 50, 2000 + 100, 2000 + 150], + 'y': [190, 205, 205, 210] +}) + +# Dataset 4: Wieloton 200 Hz, 10 (2000 Hz), 7 składowych +datasets_200Hz.append({ + 'name': 'Shouten - 7', + 'x': [1400 + 0, 1400 + 50, 1400 + 100, 1400 + 150], + 'y': [200, 207.5, 214, 222] +}) + +# Dataset 4: Wieloton 200 Hz, 10 (2000 Hz), 7 składowych +datasets_200Hz.append({ + 'name': 'Shouten - 10', + 'x': [2000 + 0, 2000 + 50, 2000 + 100, 2000 + 150], + 'y': [200, 205, 210, 215] +}) + + + +# Dataset 5: Wieloton 400 Hz, 7 (2800 Hz), 3 składowe +# Starting x value is 2800 Hz +datasets_400Hz.append({ + 'name': '400 Hz, 7 (2800 Hz), 3 składowe', + 'x': [2800 + 0, 2800 + 100, 2800 + 200, 2800 + 300], + 'y': [405, 410, 410, 405] +}) + +# Dataset 6: Wieloton 400 Hz, 7 (2800 Hz), 7 składowych +datasets_400Hz.append({ + 'name': '400 Hz, 7 (2800 Hz), 7 składowych', + 'x': [2800 + 0, 2800 + 100, 2800 + 200, 2800 + 300], + 'y': [410, 420, 420, 425] +}) + +# Dataset 7: Wieloton 400 Hz, 10 (4000 Hz), 3 składowe +# Starting x value is 4000 Hz +datasets_400Hz.append({ + 'name': '400 Hz, 10 (4000 Hz), 3 składowe', + 'x': [4000 + 0, 4000 + 100, 4000 + 200, 4000 + 300], + 'y': [407, 419, 425, 425] +}) + +# Dataset 8: Wieloton 400 Hz, 10 (4000 Hz), 7 składowych +# Note: The last two 'Wynik [Hz]' values seem inconsistent. +# They are much lower than expected based on prior values. +# Assuming there might be typos, and they should be 2200 and 2400 +# instead of 220 and 240. +datasets_400Hz.append({ + 'name': '400 Hz, 10 (4000 Hz), 7 składowych', + 'x': [4000 + 0, 4000 + 100, 4000 + 200, 4000 + 300], + 'y': [405, 410, 415, 415] # Original data +}) + +datasets_400Hz.append({ + 'name': 'Shouten - 7', + 'x': [2800 + 0, 2800 + 100, 2800 + 200, 2800 + 300], + 'y': [400, 414, 428, 443] +}) + + +datasets_400Hz.append({ + 'name': 'Shouten - 10', + 'x': [4000 + 0, 4000 + 100, 4000 + 200, 4000 + 300], + 'y': [400, 410, 420, 430] # Original data +}) + +# Plot the data for 200 Hz +plt.figure(figsize=(12, 8)) +for dataset in datasets_200Hz: + if 'Shouten' in dataset['name']: + plt.plot(dataset['x'], dataset['y'], marker='s', color='red', label=dataset['name']) # Shouten datasets + else: + plt.plot(dataset['x'], dataset['y'], marker='o', label=dataset['name']) # Other datasets +plt.xlabel('Frequency [Hz]') +plt.ylabel('Result [Hz]') +plt.title('Combined Graph of Results for 200 Hz') +plt.legend() +plt.grid(True) +plt.savefig('results_200Hz.png') # Save the plot +plt.show() + +# Plot the data for 400 Hz +plt.figure(figsize=(12, 8)) +for dataset in datasets_400Hz: + if 'Shouten' in dataset['name']: + plt.plot(dataset['x'], dataset['y'], marker='s', color='red', label=dataset['name']) # Shouten datasets + else: + plt.plot(dataset['x'], dataset['y'], marker='o', label=dataset['name']) # Other datasets +plt.xlabel('Frequency [Hz]') +plt.ylabel('Result [Hz]') +plt.title('Combined Graph of Results for 400 Hz') +plt.legend() +plt.grid(True) +plt.savefig('results_400Hz.png') # Save the plot +plt.show() \ No newline at end of file diff --git a/NotProgramming/SPD/lab4_spd/results_200Hz.png b/NotProgramming/SPD/lab4_spd/results_200Hz.png new file mode 100644 index 00000000..c04317ed Binary files /dev/null and b/NotProgramming/SPD/lab4_spd/results_200Hz.png differ diff --git a/NotProgramming/SPD/lab4_spd/results_400Hz.png b/NotProgramming/SPD/lab4_spd/results_400Hz.png new file mode 100644 index 00000000..6f8b2dae Binary files /dev/null and b/NotProgramming/SPD/lab4_spd/results_400Hz.png differ diff --git a/NotProgramming/SPD/spd3/cw1.png b/NotProgramming/SPD/spd3/cw1.png new file mode 100644 index 00000000..c7c4f73f Binary files /dev/null and b/NotProgramming/SPD/spd3/cw1.png differ diff --git a/NotProgramming/SPD/spd3/main.py b/NotProgramming/SPD/spd3/main.py new file mode 100644 index 00000000..fab8d2fa --- /dev/null +++ b/NotProgramming/SPD/spd3/main.py @@ -0,0 +1,136 @@ +import matplotlib.pyplot as plt + +# Values 1 +x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6] +y1 = [33.2, 35.48, 27.67, 19.41, 15.3, 15.44, 13.59] + +# Values 2 +x2 = [0.4, 0.5, 0.6, 0.7] +y2 = [13.29, 11.25, 12.55, 13.26] + +# Values 3 +x3 = [0.4, 0.5, 0.6, 0.7] +y3 = [22.06, 15.48, 18.74, 17.71] + +# Create the plot +plt.figure(figsize=(10, 6)) + +# Plot each line with different styles +plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='symetrycznie 500 Hz') +plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='asymetrycznie 550 Hz') +plt.plot(x3, y3, marker='^', linestyle='-.', color='red', label='asymetrycznie 450 Hz') + +# Add labels and title +plt.xlabel('parametr g', fontsize=40) +plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40) +plt.title('500 Hz', fontsize=48) + +# Add a legend +plt.legend(fontsize=32) + +# Optional: Add gridlines +plt.grid(True) +plt.xticks(fontsize=32) +plt.yticks(fontsize=32) + +# Display the plot +plt.show() + +# Values 1 +x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6] +y1 = [33.06, 35.28, 23.33, 17.14, 14.33, 10.01, 4.43] + +# Values 2 +x2 = [0.4, 0.5, 0.6, 0.7] +y2 = [15.22, 8.16, 6.45, 6.27] + +# Values 3 +x3 = [0.4, 0.5, 0.6, 0.7] +y3 = [13.0, 13.06, 7.8, 1.7] + +# Create the plot +plt.figure(figsize=(10, 6)) + +# Plot each line with different styles +plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='symetrycznie 1500 Hz') +plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='asymetrycznie 1650 Hz') +plt.plot(x3, y3, marker='^', linestyle='-.', color='red', label='asymetrycznie 1350 Hz') + +# Add labels and title +plt.xlabel('parametr g', fontsize=40) +plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40) +plt.title('1500 Hz', fontsize=48) + +# Add a legend +plt.legend(fontsize=32) + +# Optional: Add gridlines +plt.grid(True) +plt.xticks(fontsize=32) +plt.yticks(fontsize=32) + +# Display the plot +plt.show() + +# Values 1 +x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6] +y1 = [33.2, 35.48, 27.67, 19.41, 15.3, 15.44, 13.59] + +# Values 2 +x2 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6] +y2 = [33.06, 35.28, 23.33, 17.14, 14.33, 10.01, 4.43] + +# Create the plot +plt.figure(figsize=(10, 6)) + +# Plot each line with different styles +plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='symetrycznie 500 Hz') +plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='symetrycznie 1500 Hz') + +# Add labels and title +plt.xlabel('parametr g', fontsize=40) +plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40) +plt.title('500 Hz vs 1500 Hz', fontsize=48) + +# Add a legend +plt.legend(fontsize=32) + +# Optional: Add gridlines +plt.grid(True) +plt.xticks(fontsize=32) +plt.yticks(fontsize=32) + +# Display the plot +plt.show() + +# Values 1 +x1 = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6] +y1 = [33.2, 35.48, 27.67, 19.41, 15.3, 15.44, 13.59] + +# Values 2 +x2 = [0.005, 0.01, 0.02, 0.05, 0.1, 0.3] +y2 = [81.59, 60.08, 68.48, 58.77, 53.6, 55.46] + +# Create the plot +plt.figure(figsize=(10, 6)) + +# Plot each line with different styles +plt.plot(x1, y1, marker='o', linestyle='-', color='blue', label='pasmowy 500 Hz') +plt.plot(x2, y2, marker='s', linestyle='--', color='green', label='pasmowo-zaporowy 500 Hz') + +# Add labels and title +plt.xlabel('parametr g', fontsize=40) +plt.ylabel('Prod detekcji syngalu [dB]', fontsize=40) +plt.title('Porownanie szum pasmowy vs szum pasmowo zaporowy dla 500 Hz', fontsize=48) + +# Add a legend +plt.legend(fontsize=32) + +# Optional: Add gridlines +plt.grid(True) +plt.xticks(fontsize=32) +plt.yticks(fontsize=32) + +# Display the plot +plt.show() + diff --git a/NotProgramming/SPD/spd_5/gco.png b/NotProgramming/SPD/spd_5/gco.png new file mode 100644 index 00000000..ecffc876 Binary files /dev/null and b/NotProgramming/SPD/spd_5/gco.png differ diff --git a/NotProgramming/SPD/spd_5/lab5.png b/NotProgramming/SPD/spd_5/lab5.png new file mode 100644 index 00000000..8ecf74af Binary files /dev/null and b/NotProgramming/SPD/spd_5/lab5.png differ diff --git a/NotProgramming/SPD/spd_5/main.py b/NotProgramming/SPD/spd_5/main.py new file mode 100644 index 00000000..d3d6a5e8 --- /dev/null +++ b/NotProgramming/SPD/spd_5/main.py @@ -0,0 +1,42 @@ +import matplotlib.pyplot as plt +import numpy as np + +# Data +delta_t = np.array([500, 200, 100, 50, 20, 10, 5, 3]) +ton_60_db = [60, 60, 59, 58, 50, 46, 42, 39] +szum_20_db_per_hz = [20, 19, 18, 16, 12, 11, 8, 8] +ton_60_db_minus = [ton - 60 for ton in ton_60_db] +szum_20_db_per_hz_minus = [szum - 20 for szum in szum_20_db_per_hz] + +# Theoretical lines +delta_t_line = np.logspace(np.log10(3), np.log10(500), 100) +log_delta_t_line = np.log10(delta_t_line) + +# Equations in terms of log(delta_t) +# For Broadband Noise: y = 10 * log10(delta_t) - 25 +y_broadband_line = 10 * log_delta_t_line - 25 + +# For Pure Tone: y = 9 * log10(delta_t) - 19 +y_pure_tone_line = 9 * log_delta_t_line - 19 + +# Plotting +plt.figure(figsize=(10, 6)) + +# Plot the experimental data +plt.semilogx(delta_t, ton_60_db_minus, 'o', label='Ton eksperymentalny 60 dB') +plt.semilogx(delta_t, szum_20_db_per_hz_minus, 's', label='Szum eksperymentalny 20 dB/Hz') + +# Plot the theoretical lines +plt.semilogx(delta_t_line, y_pure_tone_line, label='Ton - krzywa teoretyczna') +plt.semilogx(delta_t_line, y_broadband_line, label='Szum - krzywa teoereyczna') + +plt.xlabel('Czas trwania sygnału [ms]', fontsize=40) +plt.ylabel('Poziom względny głośności [dB]', fontsize=40) +plt.title('Głośnośc vs czas', fontsize=48) +plt.legend(fontsize=32) +plt.grid(True, which="both", ls="--") + +plt.xticks(fontsize=32) +plt.yticks(fontsize=32) + +plt.show() \ No newline at end of file diff --git a/NotProgramming/SPD/spd_5/main2.py b/NotProgramming/SPD/spd_5/main2.py new file mode 100644 index 00000000..a6c95e5d --- /dev/null +++ b/NotProgramming/SPD/spd_5/main2.py @@ -0,0 +1,24 @@ +import matplotlib.pyplot as plt +import numpy as np + +# Data (decreasing values) +bandwidth = np.array([40, 100, 160, 300, 600, 1000]) +detection_threshold_600Hz = np.array([50, 30, 20, 12, 10, 8]) +detection_threshold_2200Hz = np.array([40, 25, 18, 10, 8, 7]) +detection_threshold_4400Hz = np.array([35, 22, 15, 9, 7, 6]) + +# Plot +plt.figure(figsize=(10, 6)) +plt.xscale('log') + +plt.scatter(bandwidth, detection_threshold_600Hz, label='600 Hz', marker='o') +plt.scatter(bandwidth, detection_threshold_2200Hz, label='2200 Hz', marker='^') +plt.scatter(bandwidth, detection_threshold_4400Hz, label='4400 Hz', marker='s') + +plt.xlabel('Szerokość pasma [Hz]') +plt.ylabel('Próg detekcji interwału ciszy [ms]') +plt.title('Górna częstotliwość odcięcia (GCO)') +plt.legend(title='GCO') + +plt.grid(True) +plt.show() \ No newline at end of file diff --git a/NotProgramming/SPD/spd_5/zad2.drawio b/NotProgramming/SPD/spd_5/zad2.drawio new file mode 100644 index 00000000..87b0714b --- /dev/null +++ b/NotProgramming/SPD/spd_5/zad2.drawio @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NotProgramming/SPD/spd_5/zad3.drawio b/NotProgramming/SPD/spd_5/zad3.drawio new file mode 100644 index 00000000..b025fbca --- /dev/null +++ b/NotProgramming/SPD/spd_5/zad3.drawio @@ -0,0 +1 @@ + \ No newline at end of file