This commit is contained in:
Szymon Bartanowicz 2023-02-14 22:54:46 +01:00
commit 27aa9b51ea
1097 changed files with 4200953 additions and 0 deletions

63
.gitattributes vendored Normal file
View File

@ -0,0 +1,63 @@
###############################################################################
# Set default behavior to automatically normalize line endings.
###############################################################################
* text=auto
###############################################################################
# Set default behavior for command prompt diff.
#
# This is need for earlier builds of msysgit that does not have it on by
# default for csharp files.
# Note: This is only used by command line
###############################################################################
#*.cs diff=csharp
###############################################################################
# Set the merge driver for project and solution files
#
# Merging from the command prompt will add diff markers to the files if there
# are conflicts (Merging from VS is not affected by the settings below, in VS
# the diff markers are never inserted). Diff markers may cause the following
# file extensions to fail to load in VS. An alternative would be to treat
# these files as binary and thus will always conflict and require user
# intervention with every merge. To do so, just uncomment the entries below
###############################################################################
#*.sln merge=binary
#*.csproj merge=binary
#*.vbproj merge=binary
#*.vcxproj merge=binary
#*.vcproj merge=binary
#*.dbproj merge=binary
#*.fsproj merge=binary
#*.lsproj merge=binary
#*.wixproj merge=binary
#*.modelproj merge=binary
#*.sqlproj merge=binary
#*.wwaproj merge=binary
###############################################################################
# behavior for image files
#
# image files are treated as binary by default.
###############################################################################
#*.jpg binary
#*.png binary
#*.gif binary
###############################################################################
# diff behavior for common document formats
#
# Convert binary document formats to text before diffing them. This feature
# is only available from the command line. Turn it on by uncommenting the
# entries below.
###############################################################################
#*.doc diff=astextplain
#*.DOC diff=astextplain
#*.docx diff=astextplain
#*.DOCX diff=astextplain
#*.dot diff=astextplain
#*.DOT diff=astextplain
#*.pdf diff=astextplain
#*.PDF diff=astextplain
#*.rtf diff=astextplain
#*.RTF diff=astextplain

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.vs
Debug

22
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,22 @@
{
"workbench.colorCustomizations": {
"activityBar.activeBackground": "#cdd629",
"activityBar.background": "#cdd629",
"activityBar.foreground": "#15202b",
"activityBar.inactiveForeground": "#15202b99",
"activityBarBadge.background": "#1f9aa0",
"activityBarBadge.foreground": "#e7e7e7",
"commandCenter.border": "#15202b99",
"sash.hoverBorder": "#cdd629",
"statusBar.background": "#a4ab21",
"statusBar.foreground": "#15202b",
"statusBarItem.hoverBackground": "#7b8019",
"statusBarItem.remoteBackground": "#a4ab21",
"statusBarItem.remoteForeground": "#15202b",
"titleBar.activeBackground": "#a4ab21",
"titleBar.activeForeground": "#15202b",
"titleBar.inactiveBackground": "#a4ab2199",
"titleBar.inactiveForeground": "#15202b99"
},
"peacock.color": "#a4ab21"
}

BIN
assimp-vc141-mt.dll Normal file

Binary file not shown.

BIN
assimp-vc141-mtd.dll Normal file

Binary file not shown.

21
cw 9/CppProperties.json Normal file
View File

@ -0,0 +1,21 @@
{
"configurations": [
{
"inheritEnvironments": [
"msvc_x86"
],
"name": "x86-Debug",
"includePath": [
"${env.INCLUDE}",
"${workspaceRoot}\\**"
],
"defines": [
"WIN32",
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"intelliSenseMode": "windows-msvc-x86"
}
]
}

183
cw 9/Zadania 9.html Normal file
View File

@ -0,0 +1,183 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Zadania 9</title>
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
ul.task-list{list-style: none;}
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
<link rel="stylesheet" href="style.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<h1 id="shadow-mapping">Shadow mapping</h1>
<p>Cienie są ważnym elementem oświetlenie. Dodają realizmu do sceny i dzięki nim łatwiej jest graczowi zorientować się w przestrzennym rozłożeniu obiektów. <img src="./img/shadows1.bmp" /> Na powyższym obrazku możesz zobaczyć, że dużo łatwiej jest okreśłić położenie kostek, gdy rzucają one cienie. Podstawową techniką generowania cieni jest <strong>shadow mapping</strong> i wiele bardziej zaawansowanych technik na niej bazuje.</p>
<p>Składa się on z dwóch kroków. W pierwszym obliczamy mapy głębokości z perspektywy źródła światła i zapisaniu do tekstury (tą teksturę nazywamy <em>shadowmap</em>), w drugim przy rysowaniu fragmentu porównujemy jego odległość do źródła światła z odległością zapisaną w teksturze.</p>
<p>Celem tych zajęć będzie dodanie cieni do początkowej sceny. W obecnym projekcie są 3 źródła światła: światło słoneczne, reflektor samolociku i lampa planetarna. W trakcie zajęć skupimy się na świetle słonecznym.</p>
<h2 id="mapa-głębokości---framebuffers">Mapa głębokości - Framebuffers</h2>
<p>Framebuffer to obiekt, do którego rednerowana jest scena w postaci tekstury. Do tej pory korzystaliśmy z domyślnego Famebuffora, który był wyświetlany na ekranie. Teraz potrzebujemy dodatkowy, który będzie przechwytywał mapę głębokości. Tworzymy go w następujący sposób</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a>glGenFramebuffers(<span class="dv">1</span>, &amp;depthMapFBO); </span></code></pre></div>
<p>Zmienna <code>depthMapFBO</code> jest jak to typu <code>unsignet int</code> i powinna być dostępna globalnie. Kolejnym krokiem jest stworzenie tekstury głębokości</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>glGenTextures(<span class="dv">1</span>, &amp;depthMap);</span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a>glBindTexture(GL_TEXTURE_2D, depthMap);</span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a>glTexImage2D(GL_TEXTURE_2D, <span class="dv">0</span>, GL_DEPTH_COMPONENT, </span>
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a> SHADOW_WIDTH, SHADOW_HEIGHT, <span class="dv">0</span>, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);</span>
<span id="cb2-5"><a href="#cb2-5" aria-hidden="true" tabindex="-1"></a>glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);</span>
<span id="cb2-6"><a href="#cb2-6" aria-hidden="true" tabindex="-1"></a>glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);</span>
<span id="cb2-7"><a href="#cb2-7" aria-hidden="true" tabindex="-1"></a>glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); </span>
<span id="cb2-8"><a href="#cb2-8" aria-hidden="true" tabindex="-1"></a>glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); </span></code></pre></div>
<p>Również zmienna <code>depthMap</code> jest jak to typu <code>unsignet int</code> i powinna być dostępna globalnie. Tworzymy teksturę, zaznaczamy, że jest to tekstura głębokości nadając jej format <code>GL_DEPTH_COMPONENT</code>. Parametry <code>SHADOW_WIDTH</code>, <code>SHADOW_HEIGHT</code> są ustalone globalnie i oba wynoszą 1024.</p>
<p>I w końcu podpinamy teksturę pod FBO.</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb3-2"><a href="#cb3-2" aria-hidden="true" tabindex="-1"></a>glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO);</span>
<span id="cb3-3"><a href="#cb3-3" aria-hidden="true" tabindex="-1"></a>glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depthMap, <span class="dv">0</span>);</span>
<span id="cb3-4"><a href="#cb3-4" aria-hidden="true" tabindex="-1"></a>glDrawBuffer(GL_NONE);</span>
<span id="cb3-5"><a href="#cb3-5" aria-hidden="true" tabindex="-1"></a>glReadBuffer(GL_NONE);</span>
<span id="cb3-6"><a href="#cb3-6" aria-hidden="true" tabindex="-1"></a>glBindFramebuffer(GL_FRAMEBUFFER, <span class="dv">0</span>); </span></code></pre></div>
<h3 id="zadanie">Zadanie</h3>
<p>Utwórz funkcję <code>initDepthMap</code>, w której zainicjalizujesz mapę głębokości. Wywołaj ją w funkcji <code>init</code>.</p>
<h3 id="renderowanie-mapy-głębokości">Renderowanie mapy głębokości</h3>
<p>W tej części będziemy uzupełniać funkcję <code>renderShadowapSun</code>. Funkcja ma za zadanie zapisać w FBO mapę głębokości z perspektywy słońca. Pierwsze co musimy mieć, to parę shaderów, która będzie renderować mapę. Ponieważ jedyne co potrzebujemy tylko rozmieścić obiekty w odpowiednich miejscach. Shader wierzchołków ustawia tylko pozycję w oparciu o przesyłanie macierze.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#</span><span class="er">version 430 core</span></span>
<span id="cb4-2"><a href="#cb4-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-3"><a href="#cb4-3" aria-hidden="true" tabindex="-1"></a>layout(location = <span class="dv">0</span>) in vec3 vertexPosition;</span>
<span id="cb4-4"><a href="#cb4-4" aria-hidden="true" tabindex="-1"></a>layout(location = <span class="dv">1</span>) in vec3 vertexNormal;</span>
<span id="cb4-5"><a href="#cb4-5" aria-hidden="true" tabindex="-1"></a>layout(location = <span class="dv">2</span>) in vec2 vertexTexCoord;</span>
<span id="cb4-6"><a href="#cb4-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-7"><a href="#cb4-7" aria-hidden="true" tabindex="-1"></a>uniform mat4 viewProjectionMatrix;</span>
<span id="cb4-8"><a href="#cb4-8" aria-hidden="true" tabindex="-1"></a>uniform mat4 modelMatrix;</span>
<span id="cb4-9"><a href="#cb4-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb4-10"><a href="#cb4-10" aria-hidden="true" tabindex="-1"></a><span class="dt">void</span> main()</span>
<span id="cb4-11"><a href="#cb4-11" aria-hidden="true" tabindex="-1"></a>{</span>
<span id="cb4-12"><a href="#cb4-12" aria-hidden="true" tabindex="-1"></a> gl_Position = viewProjectionMatrix * modelMatrix * vec4(vertexPosition, <span class="fl">1.0</span>);</span>
<span id="cb4-13"><a href="#cb4-13" aria-hidden="true" tabindex="-1"></a>}</span></code></pre></div>
<p>Natomiast shader fragmentów jest pusty, ponieważ nic nie wysyłamy a głębokość zapisywana jest automatycznie.</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#</span><span class="er">version 430 core</span></span>
<span id="cb5-2"><a href="#cb5-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb5-3"><a href="#cb5-3" aria-hidden="true" tabindex="-1"></a><span class="dt">void</span> main()</span>
<span id="cb5-4"><a href="#cb5-4" aria-hidden="true" tabindex="-1"></a>{ </span>
<span id="cb5-5"><a href="#cb5-5" aria-hidden="true" tabindex="-1"></a>} </span></code></pre></div>
<h3 id="zadanie-1">Zadanie</h3>
<p>Dodaj utwórz parę shaderów jak powyżej, załaduj je do zmiennej globalnej o nazwie <code>programDepth</code> i aktywuj go w funkcji <code>renderShadowapSun</code>. Utwórz funkcję <code>drawObjectDepth</code>. która będzie przyjmować referencję do <code>RenderContext</code>, macierz <code>viewProjection</code> i macierz modelu oraz przesyłać macierze do GPU i rysować <code>RenderContext</code></p>
<p>Musimy zdefiniować macierz widoku i rzutowania, które mamy przesłać. Implementujemy cienie dla oświetlenia kierunkowego, gdzie dla każdego punktu kierunek światła jest taki sam. W takim wypadku skorzystamy z rzutowania prostopadłego. <img src="./img/shadow_mapping_projection.png" /></p>
<p>Do stworzenia macierzy rzutowania perspektywicznego wykorzystamy funkcję:</p>
<div class="sourceCode" id="cb6"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a>glm::mat4 lightProjection = glm::ortho(</span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a> <span class="dt">float</span> left,</span>
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a> <span class="dt">float</span> right,</span>
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a> <span class="dt">float</span> bottom,</span>
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">float</span> top,</span>
<span id="cb6-6"><a href="#cb6-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">float</span> zNear,</span>
<span id="cb6-7"><a href="#cb6-7" aria-hidden="true" tabindex="-1"></a> <span class="dt">float</span> zFar</span>
<span id="cb6-8"><a href="#cb6-8" aria-hidden="true" tabindex="-1"></a>)</span></code></pre></div>
<p>Tworzy ona macierz rzutowania prostopadłego dla zadanych wymiarów. Musimy tak je dobrać, żeby rzutowanie zawierało całą interesującą scenę. Za małe wartości spowodują artefakty a za duże pogorszą jakość. Przykładowo możesz wziąć <code>glm::ortho(-10.f, 10.f, -10.f, 10.f, 1.0f, 30.0f)</code>. Do stworzenia macierzy kamery wykorzystamy funkcję <code>glm::lookAt</code> z poniższymi argumentami argumentami</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a>glm::lookAt(sunPos, sunPos - sunDir, glm::vec3(<span class="dv">0</span>, <span class="dv">1</span>, <span class="dv">0</span>))</span></code></pre></div>
<h3 id="zadanie-2">Zadanie</h3>
<p>Uzupełnij funkcję <code>renderShadowapSun</code>. Wywołaj w niej instrukcje</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a> <span class="co">//ustawianie przestrzeni rysowania </span></span>
<span id="cb8-2"><a href="#cb8-2" aria-hidden="true" tabindex="-1"></a> glViewport(<span class="dv">0</span>, <span class="dv">0</span>, SHADOW_WIDTH, SHADOW_HEIGHT);</span>
<span id="cb8-3"><a href="#cb8-3" aria-hidden="true" tabindex="-1"></a> <span class="co">//bindowanie FBO</span></span>
<span id="cb8-4"><a href="#cb8-4" aria-hidden="true" tabindex="-1"></a> glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO);</span>
<span id="cb8-5"><a href="#cb8-5" aria-hidden="true" tabindex="-1"></a> <span class="co">//czyszczenie mapy głębokości </span></span>
<span id="cb8-6"><a href="#cb8-6" aria-hidden="true" tabindex="-1"></a> glClear(GL_DEPTH_BUFFER_BIT);</span>
<span id="cb8-7"><a href="#cb8-7" aria-hidden="true" tabindex="-1"></a> <span class="co">//ustawianie programu</span></span>
<span id="cb8-8"><a href="#cb8-8" aria-hidden="true" tabindex="-1"></a> glUseProgram(programDepth);</span></code></pre></div>
<p>Stwórz macierz <code>viewProjection</code></p>
<div class="sourceCode" id="cb9"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a> glm::mat4 lightVP = glm::ortho(-<span class="fl">10.</span><span class="bu">f</span>, <span class="fl">10.</span><span class="bu">f</span>, -<span class="fl">10.</span><span class="bu">f</span>, <span class="fl">10.</span><span class="bu">f</span>, <span class="fl">1.0</span><span class="bu">f</span>, <span class="fl">30.0</span><span class="bu">f</span>) * glm::lookAt(sunPos, sunPos - sunDir, glm::vec3(<span class="dv">0</span>, <span class="dv">1</span>, <span class="dv">0</span>));</span></code></pre></div>
<p>następnie wywołaj <code>drawObjectDepth</code> dla każdego obiektu, który rysujemy w naszej scenie. wykorzystaj macierz <code>viewProjection</code> zdefiniowaną wyżej, użyj tej samej macierzy modelu co przy właściwym rysowaniu.</p>
<p>Zakończ funkcję linią <code>glBindFramebuffer(GL_FRAMEBUFFER, 0);</code>, która przywraca domyślny FBO.</p>
<h3 id="wizualizacja-mapy-głębokości">Wizualizacja mapy głębokości</h3>
<p>odkomentuj linie:</p>
<div class="sourceCode" id="cb10"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a> <span class="co">//glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);</span></span>
<span id="cb10-2"><a href="#cb10-2" aria-hidden="true" tabindex="-1"></a> <span class="co">//glUseProgram(programTest);</span></span>
<span id="cb10-3"><a href="#cb10-3" aria-hidden="true" tabindex="-1"></a> <span class="co">//glActiveTexture(GL_TEXTURE0);</span></span>
<span id="cb10-4"><a href="#cb10-4" aria-hidden="true" tabindex="-1"></a> <span class="co">//glBindTexture(GL_TEXTURE_2D, depthMap);</span></span>
<span id="cb10-5"><a href="#cb10-5" aria-hidden="true" tabindex="-1"></a> <span class="co">//Core::DrawContext(models::testContext);</span></span></code></pre></div>
<p>znajdujące się w <code>renderScene</code>. Rysują one prostokąt z mapą głębokości jako teksturą. Jeżeli wszystko zostało wykonane poprawnie, to powinien on zawierać rzutowanie naszego pokoju.</p>
<h3 id="zadanie-3">Zadanie</h3>
<p>W tej chwili rzutowanie jest nieoptymalne. popraw je na lepsze. Zmodyfikuj wartości w <code>glm::ortho(-10.f, 10.f, -10.f, 10.f, 1.0f, 30.0f)</code> do takich, żeby pokój wypełniał jak największą część tekstury.</p>
<h3 id="rysowanie-cieni">Rysowanie cieni</h3>
<p>Na tym etapie powinniśmy mieć poprawnie stworzoną mapę głębokości. Pozostaje wykorzystać ją w oświetleniu. ### Zadanie #### Przesłanie danych W funkcji <code>drawObjectPBR</code> prześlij teksturę za pomocą instrukcji:</p>
<div class="sourceCode" id="cb11"><pre class="sourceCode c++"><code class="sourceCode cpp"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a> glActiveTexture(GL_TEXTURE0);</span>
<span id="cb11-2"><a href="#cb11-2" aria-hidden="true" tabindex="-1"></a> glBindTexture(GL_TEXTURE_2D, depthMap);</span></code></pre></div>
<p>oraz macierz <code>LightVP</code>, która musi być taka sama jak w <code>drawObjectDepth</code>.</p>
<p>Następnie w shaderze wierzchołków odbierz <code>LightVP</code>.</p>
<h4 id="shader-wierzchołków">Shader wierzchołków</h4>
<p>Oblicz pozycję wierzchołka z perspektywy słońca <code>sunSpacePos=LightVP*modelMatrix*vec4(vertexPosition,1)</code>, wynik prześlij do shadera fragmentów #### Shader fragmentów odbierz <code>sunSpacePos</code> i napisz funkcję <code>calculateShadow</code>, która sprawdza czy obiekt jest zacieniony. Aby to zrobić kolejno w funkcji: * ujednorodnij zmienną <code>lightSpacePos</code> dzieląc ją przez współrzędną <strong>w</strong>, * przeskaluj ją, ma wartości od -1 do 1 a potrzebujemy wartości od 0 do 1 (pomnóż przez 0.5 i dodaj 0.5) wynik zapisz do zmiennej <code>lightSpacePosNormalized</code>, * pobierz głębokość z <code>depthMap</code> próbkuj za pomocą współrzędnych <strong>x</strong> i <strong>y</strong>. Pobierz tylko kanał <code>r</code>, zapisz go do zmiennej <code>closestDepth</code>, * porównaj <code>closestDepth</code> ze współrzędną <strong>z</strong> <code>lightSpacePosNormalized</code>. jeżeli <code>closestDepth</code> jest większa zwróć 1.0, w przeciwnym wypadku zwróć 0.0. * wynik funkcji przemnóż z <code>sunColor</code> w trakcie oblicznia.</p>
<pre><code> ilumination=ilumination+PBRLight(sunDir,sunColor,normal,viewDir);</code></pre>
<h4 id="shadow-acne">shadow acne</h4>
<p>Powinniśmy dostać cienie , jednak w niezacienionych strefach pojawiły się paski, które znane są jako <em>shadow acne</em> wynikają one z błędu przybliżenia liczb zmiennoprzecinkowych. Można się go pozbyć na dwa sposoby 1. dodać bias. zamiast sprawdzać <code>closestDepth&lt;lightSpacePosNormalized</code> można wziąć <code>closestDepth+bias&gt;lightSpacePosNormalized</code>, gdzie <code>bias</code> to mała wartość (np 0.01). 2. innym rozwiązaniem jest, żeby przy renderowaniu cieni włączyć front face culling. dzięki temu rysowane będą część modelu, które są dalej niż te, które odpytujemy.</p>
<h3 id="zadanie-4">Zadanie*</h3>
<p>Dodaj rysowane cieni również dla latarki doczepionej do statku. pamiętaj, że musisz wykorzystać tutaj macierz rzutowania perspektywicznego</p>
</body>
</html>

158
cw 9/Zadania 9.md Normal file
View File

@ -0,0 +1,158 @@
# Shadow mapping
Cienie są ważnym elementem oświetlenie. Dodają realizmu do sceny i dzięki nim łatwiej jest graczowi zorientować się w przestrzennym rozłożeniu obiektów.
![](./img/shadows1.bmp)
Na powyższym obrazku możesz zobaczyć, że dużo łatwiej jest okreśłić położenie kostek, gdy rzucają one cienie. Podstawową techniką generowania cieni jest **shadow mapping** i wiele bardziej zaawansowanych technik na niej bazuje.
Składa się on z dwóch kroków. W pierwszym obliczamy mapy głębokości z perspektywy źródła światła i zapisaniu do tekstury (tą teksturę nazywamy *shadowmap*), w drugim przy rysowaniu fragmentu porównujemy jego odległość do źródła światła z odległością zapisaną w teksturze.
Celem tych zajęć będzie dodanie cieni do początkowej sceny. W obecnym projekcie są 3 źródła światła: światło słoneczne, reflektor samolociku i lampa planetarna. W trakcie zajęć skupimy się na świetle słonecznym.
## Mapa głębokości - Framebuffers
Framebuffer to obiekt, do którego rednerowana jest scena w postaci tekstury. Do tej pory korzystaliśmy z domyślnego Famebuffora, który był wyświetlany na ekranie. Teraz potrzebujemy dodatkowy, który będzie przechwytywał mapę głębokości. Tworzymy go w następujący sposób
```C++
glGenFramebuffers(1, &depthMapFBO);
```
Zmienna `depthMapFBO` jest jak to typu `unsignet int` i powinna być dostępna globalnie. Kolejnym krokiem jest stworzenie tekstury głębokości
```C++
glGenTextures(1, &depthMap);
glBindTexture(GL_TEXTURE_2D, depthMap);
glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT,
SHADOW_WIDTH, SHADOW_HEIGHT, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
```
Również zmienna `depthMap` jest jak to typu `unsignet int` i powinna być dostępna globalnie.
Tworzymy teksturę, zaznaczamy, że jest to tekstura głębokości nadając jej format `GL_DEPTH_COMPONENT`. Parametry `SHADOW_WIDTH`, `SHADOW_HEIGHT` są ustalone globalnie i oba wynoszą 1024.
I w końcu podpinamy teksturę pod FBO.
```C++
glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO);
glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depthMap, 0);
glDrawBuffer(GL_NONE);
glReadBuffer(GL_NONE);
glBindFramebuffer(GL_FRAMEBUFFER, 0);
```
### Zadanie
Utwórz funkcję `initDepthMap`, w której zainicjalizujesz mapę głębokości. Wywołaj ją w funkcji `init`.
### Renderowanie mapy głębokości
W tej części będziemy uzupełniać funkcję `renderShadowapSun`. Funkcja ma za zadanie zapisać w FBO mapę głębokości z perspektywy słońca.
Pierwsze co musimy mieć, to parę shaderów, która będzie renderować mapę. Ponieważ jedyne co potrzebujemy tylko rozmieścić obiekty w odpowiednich miejscach.
Shader wierzchołków ustawia tylko pozycję w oparciu o przesyłanie macierze.
```C++
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
uniform mat4 viewProjectionMatrix;
uniform mat4 modelMatrix;
void main()
{
gl_Position = viewProjectionMatrix * modelMatrix * vec4(vertexPosition, 1.0);
}
```
Natomiast shader fragmentów jest pusty, ponieważ nic nie wysyłamy a głębokość zapisywana jest automatycznie.
```C++
#version 430 core
void main()
{
}
```
### Zadanie
Dodaj utwórz parę shaderów jak powyżej, załaduj je do zmiennej globalnej o nazwie `programDepth` i aktywuj go w funkcji `renderShadowapSun`. Utwórz funkcję `drawObjectDepth`. która będzie przyjmować referencję do `RenderContext`, macierz `viewProjection` i macierz modelu oraz przesyłać macierze do GPU i rysować `RenderContext`
Musimy zdefiniować macierz widoku i rzutowania, które mamy przesłać. Implementujemy cienie dla oświetlenia kierunkowego, gdzie dla każdego punktu kierunek światła jest taki sam. W takim wypadku skorzystamy z rzutowania prostopadłego.
![](./img/shadow_mapping_projection.png)
Do stworzenia macierzy rzutowania perspektywicznego wykorzystamy funkcję:
```C++
glm::mat4 lightProjection = glm::ortho(
float left,
float right,
float bottom,
float top,
float zNear,
float zFar
)
```
Tworzy ona macierz rzutowania prostopadłego dla zadanych wymiarów. Musimy tak je dobrać, żeby rzutowanie zawierało całą interesującą scenę. Za małe wartości spowodują artefakty a za duże pogorszą jakość. Przykładowo możesz wziąć `glm::ortho(-10.f, 10.f, -10.f, 10.f, 1.0f, 30.0f)`.
Do stworzenia macierzy kamery wykorzystamy funkcję `glm::lookAt` z poniższymi argumentami argumentami
```C++
glm::lookAt(sunPos, sunPos - sunDir, glm::vec3(0, 1, 0))
```
### Zadanie
Uzupełnij funkcję `renderShadowapSun`. Wywołaj w niej instrukcje
```C++
//ustawianie przestrzeni rysowania
glViewport(0, 0, SHADOW_WIDTH, SHADOW_HEIGHT);
//bindowanie FBO
glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO);
//czyszczenie mapy głębokości
glClear(GL_DEPTH_BUFFER_BIT);
//ustawianie programu
glUseProgram(programDepth);
```
Stwórz macierz `viewProjection`
```C++
glm::mat4 lightVP = glm::ortho(-10.f, 10.f, -10.f, 10.f, 1.0f, 30.0f) * glm::lookAt(sunPos, sunPos - sunDir, glm::vec3(0, 1, 0));
```
następnie wywołaj `drawObjectDepth` dla każdego obiektu, który rysujemy w naszej scenie. wykorzystaj macierz `viewProjection` zdefiniowaną wyżej, użyj tej samej macierzy modelu co przy właściwym rysowaniu.
Zakończ funkcję linią `glBindFramebuffer(GL_FRAMEBUFFER, 0);`, która przywraca domyślny FBO.
### Wizualizacja mapy głębokości
odkomentuj linie:
```C++
//glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
//glUseProgram(programTest);
//glActiveTexture(GL_TEXTURE0);
//glBindTexture(GL_TEXTURE_2D, depthMap);
//Core::DrawContext(models::testContext);
```
znajdujące się w `renderScene`. Rysują one prostokąt z mapą głębokości jako teksturą. Jeżeli wszystko zostało wykonane poprawnie, to powinien on zawierać rzutowanie naszego pokoju.
### Zadanie
W tej chwili rzutowanie jest nieoptymalne. popraw je na lepsze. Zmodyfikuj wartości w `glm::ortho(-10.f, 10.f, -10.f, 10.f, 1.0f, 30.0f)` do takich, żeby pokój wypełniał jak największą część tekstury.
### Rysowanie cieni
Na tym etapie powinniśmy mieć poprawnie stworzoną mapę głębokości. Pozostaje wykorzystać ją w oświetleniu.
### Zadanie
#### Przesłanie danych
W funkcji `drawObjectPBR` prześlij teksturę za pomocą instrukcji:
```C++
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, depthMap);
```
oraz macierz `LightVP`, która musi być taka sama jak w `drawObjectDepth`.
Następnie w shaderze wierzchołków odbierz `LightVP`.
#### Shader wierzchołków
Oblicz pozycję wierzchołka z perspektywy słońca `sunSpacePos=LightVP*modelMatrix*vec4(vertexPosition,1)`, wynik prześlij do shadera fragmentów
#### Shader fragmentów
odbierz `sunSpacePos` i napisz funkcję `calculateShadow`, która sprawdza czy obiekt jest zacieniony. Aby to zrobić kolejno w funkcji:
* ujednorodnij zmienną `lightSpacePos` dzieląc ją przez współrzędną **w**,
* przeskaluj ją, ma wartości od -1 do 1 a potrzebujemy wartości od 0 do 1 (pomnóż przez 0.5 i dodaj 0.5) wynik zapisz do zmiennej `lightSpacePosNormalized`,
* pobierz głębokość z `depthMap` próbkuj za pomocą współrzędnych **x** i **y**. Pobierz tylko kanał `r`, zapisz go do zmiennej `closestDepth`,
* porównaj `closestDepth` ze współrzędną **z** `lightSpacePosNormalized`. jeżeli `closestDepth` jest większa zwróć 1.0, w przeciwnym wypadku zwróć 0.0.
* wynik funkcji przemnóż z `sunColor` w trakcie oblicznia.
```
ilumination=ilumination+PBRLight(sunDir,sunColor,normal,viewDir);
```
#### shadow acne
Powinniśmy dostać cienie , jednak w niezacienionych strefach pojawiły się paski, które znane są jako *shadow acne* wynikają one z błędu przybliżenia liczb zmiennoprzecinkowych. Można się go pozbyć na dwa sposoby
1. dodać bias. zamiast sprawdzać `closestDepth<lightSpacePosNormalized` można wziąć `closestDepth+bias>lightSpacePosNormalized`, gdzie `bias` to mała wartość (np 0.01).
2. innym rozwiązaniem jest, żeby przy renderowaniu cieni włączyć front face culling. dzięki temu rysowane będą część modelu, które są dalej niż te, które odpytujemy.
### Zadanie*
Dodaj rysowane cieni również dla latarki doczepionej do statku. pamiętaj, że musisz wykorzystać tutaj macierz rzutowania perspektywicznego

BIN
cw 9/assimp-vc141-mt.dll Normal file

Binary file not shown.

BIN
cw 9/assimp-vc141-mtd.dll Normal file

Binary file not shown.

BIN
cw 9/freeglut.dll Normal file

Binary file not shown.

BIN
cw 9/glew32.dll Normal file

Binary file not shown.

134
cw 9/grk-cw9.vcxproj Normal file
View File

@ -0,0 +1,134 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\Box.cpp" />
<ClCompile Include="src\Camera.cpp" />
<ClCompile Include="src\main.cpp" />
<ClCompile Include="src\Render_Utils.cpp" />
<ClCompile Include="src\Shader_Loader.cpp" />
<ClCompile Include="src\SOIL\image_DXT.c" />
<ClCompile Include="src\SOIL\image_helper.c" />
<ClCompile Include="src\SOIL\SOIL.c" />
<ClCompile Include="src\SOIL\stb_image_aug.c" />
<ClCompile Include="src\Texture.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\Camera.h" />
<ClInclude Include="src\ex_9_1.hpp" />
<ClInclude Include="src\objload.h" />
<ClInclude Include="src\Render_Utils.h" />
<ClInclude Include="src\Shader_Loader.h" />
<ClInclude Include="src\SOIL\image_DXT.h" />
<ClInclude Include="src\SOIL\image_helper.h" />
<ClInclude Include="src\SOIL\SOIL.h" />
<ClInclude Include="src\SOIL\stbi_DDS_aug.h" />
<ClInclude Include="src\SOIL\stbi_DDS_aug_c.h" />
<ClInclude Include="src\SOIL\stb_image_aug.h" />
<ClInclude Include="src\Texture.h" />
<ClInclude Include="src\utils\skybox.h" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\..\..\source\repos\czorekk\uam-grafika-komputerowa-projekt\cw 9\shaders\shader_5_1_tex.frag" />
<None Include="..\..\..\..\source\repos\czorekk\uam-grafika-komputerowa-projekt\cw 9\shaders\shader_5_1_tex.vert" />
<None Include="shaders\shader_9_1.frag" />
<None Include="shaders\shader_9_1.vert" />
<None Include="shaders\shader_8_sun.frag" />
<None Include="shaders\shader_8_sun.vert" />
<None Include="shaders\shader_explosion.frag" />
<None Include="shaders\shader_explosion.geo" />
<None Include="shaders\shader_explosion.vert" />
<None Include="shaders\test.frag" />
<None Include="shaders\test.vert" />
<None Include="shaders\shader_skybox.frag" />
<None Include="shaders\shader_skybox.vert" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5BACD057-4B83-4CB6-A367-40A10BCE2149}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>grk-cw9</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<ProjectName>grk-cw9</ProjectName>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<LinkIncremental>false</LinkIncremental>
<LibraryPath>$(SolutionDir)dependencies\freeglut\lib;$(SolutionDir)dependencies\glew-2.0.0\lib\Release\Win32;$(SolutionDir)dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019;$(SolutionDir)dependencies\assimp;$(LibraryPath)</LibraryPath>
<IncludePath>$(SolutionDir)dependencies\freeglut\include\GL;$(SolutionDir)dependencies\glew-2.0.0\include\GL;$(SolutionDir)dependencies\glm;$(SolutionDir)dependencies\glfw-3.3.8.bin.WIN32\include;$(SolutionDir)dependencies\assimp\include;$(IncludePath)</IncludePath>
<ExecutablePath>$(ExecutablePath)</ExecutablePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<LinkIncremental>false</LinkIncremental>
<LibraryPath>$(SolutionDir)dependencies\freeglut\lib;$(SolutionDir)dependencies\glew-2.0.0\lib\Release\Win32;$(SolutionDir)dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019;$(SolutionDir)dependencies\assimp;$(LibraryPath)</LibraryPath>
<IncludePath>$(SolutionDir)dependencies\freeglut\include\GL;$(SolutionDir)dependencies\glew-2.0.0\include\GL;$(SolutionDir)dependencies\glm;$(SolutionDir)dependencies\glfw-3.3.8.bin.WIN32\include;$(SolutionDir)dependencies\assimp\include;$(IncludePath)</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>opengl32.lib;freeglut.lib;glew32.lib;$(SolutionDir)\dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019\glfw3.lib;$(SolutionDir)\dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019\glfw3dll.lib;zlibd.lib;assimp-vc141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>opengl32.lib;freeglut.lib;glew32.lib;$(SolutionDir)\dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019\glfw3.lib;$(SolutionDir)\dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019\glfw3dll.lib;zlibd.lib;assimp-vc141-mtd.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(SolutionDir)dependencies\glfw-3.3.8.bin.WIN32\lib-vc2019;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Shader Files">
<UniqueIdentifier>{0a247bb8-2e8e-4a90-b0ef-17415b0941ba}</UniqueIdentifier>
</Filter>
<Filter Include="Source Files\SOIL">
<UniqueIdentifier>{0af44075-33f4-4953-b1d6-1d28d61d758f}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="src\Render_Utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Shader_Loader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Box.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Camera.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\Texture.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="src\SOIL\SOIL.c">
<Filter>Source Files\SOIL</Filter>
</ClCompile>
<ClCompile Include="src\SOIL\stb_image_aug.c">
<Filter>Source Files\SOIL</Filter>
</ClCompile>
<ClCompile Include="src\SOIL\image_DXT.c">
<Filter>Source Files\SOIL</Filter>
</ClCompile>
<ClCompile Include="src\SOIL\image_helper.c">
<Filter>Source Files\SOIL</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="src\objload.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="src\Render_Utils.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="src\Shader_Loader.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="src\Camera.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="src\Texture.h">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="src\SOIL\image_helper.h">
<Filter>Source Files\SOIL</Filter>
</ClInclude>
<ClInclude Include="src\SOIL\SOIL.h">
<Filter>Source Files\SOIL</Filter>
</ClInclude>
<ClInclude Include="src\SOIL\stb_image_aug.h">
<Filter>Source Files\SOIL</Filter>
</ClInclude>
<ClInclude Include="src\SOIL\stbi_DDS_aug.h">
<Filter>Source Files\SOIL</Filter>
</ClInclude>
<ClInclude Include="src\SOIL\stbi_DDS_aug_c.h">
<Filter>Source Files\SOIL</Filter>
</ClInclude>
<ClInclude Include="src\SOIL\image_DXT.h">
<Filter>Source Files\SOIL</Filter>
</ClInclude>
<ClInclude Include="src\ex_9_1.hpp">
<Filter>Source Files</Filter>
</ClInclude>
<ClInclude Include="src\utils\skybox.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="shaders\shader_8_sun.vert">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_8_sun.frag">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_9_1.frag">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_9_1.vert">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\test.frag">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\test.vert">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_skybox.vert" />
<None Include="shaders\shader_skybox.frag" />
<None Include="..\..\..\..\source\repos\czorekk\uam-grafika-komputerowa-projekt\cw 9\shaders\shader_5_1_tex.frag">
<Filter>Shader Files</Filter>
</None>
<None Include="..\..\..\..\source\repos\czorekk\uam-grafika-komputerowa-projekt\cw 9\shaders\shader_5_1_tex.vert">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_explosion.frag" />
<None Include="shaders\shader_explosion.geo" />
<None Include="shaders\shader_explosion.vert" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ShowAllFiles>true</ShowAllFiles>
</PropertyGroup>
</Project>

BIN
cw 9/img/2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

BIN
cw 9/img/3.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
cw 9/img/4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
cw 9/img/5.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
cw 9/img/6.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

BIN
cw 9/img/7.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
cw 9/img/8.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

1254
cw 9/img/Figure_1.eps Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
cw 9/img/blending1.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
cw 9/img/camera.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
cw 9/img/capture.webm Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

BIN
cw 9/img/noise_examples.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 329 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

BIN
cw 9/img/shadows1.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 KiB

BIN
cw 9/img/spotlight.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
cw 9/img/stride_offest.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
cw 9/img/struktura.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
cw 9/img/sun.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
cw 9/img/textures.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 260 KiB

BIN
cw 9/img/z_depth_graph.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
cw 9/img/z_depth_graph2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

6937
cw 9/models/barrel_1.obj Normal file

File diff suppressed because it is too large Load Diff

6983
cw 9/models/barrel_2.obj Normal file

File diff suppressed because it is too large Load Diff

6983
cw 9/models/barrel_3.obj Normal file

File diff suppressed because it is too large Load Diff

5983
cw 9/models/bed.obj Normal file

File diff suppressed because it is too large Load Diff

335
cw 9/models/chair.obj Normal file
View File

@ -0,0 +1,335 @@
# Blender v3.2.1 OBJ File: 'untitled.blend'
# www.blender.org
mtllib chair.mtl
o chair_Cube.003
v -0.314480 0.613288 -0.129427
v -0.314480 0.663788 -0.129427
v -0.314480 0.613288 -0.031859
v -0.314480 1.534193 -0.031859
v -0.427059 0.613288 -0.129427
v -0.427059 0.663788 -0.129427
v -0.427059 0.000000 -0.001859
v -0.392763 0.663788 -0.031859
v -0.457059 0.613288 -0.031859
v -0.427059 0.613288 -0.061859
v -0.397059 0.613288 -0.031859
v -0.427059 0.613288 -0.001859
v -0.457059 0.000000 -0.031859
v -0.427059 0.000000 -0.061859
v -0.397059 0.000000 -0.031859
v -0.370770 0.663788 -0.129427
v -0.370770 1.534193 -0.031859
v -0.370770 0.613288 -0.129427
v -0.714480 0.613288 -0.129427
v -0.714480 0.663788 -0.129427
v -0.714480 0.663788 -0.031859
v -0.714480 0.613288 -0.031859
v -1.114480 0.613288 -0.129427
v -1.114480 0.663788 -0.129427
v -1.114480 0.613288 -0.031859
v -1.114480 0.663788 -0.031859
v -1.001901 0.613288 -0.129427
v -1.001901 0.663788 -0.129427
v -1.001901 0.000000 -0.001859
v -1.001901 0.663788 -0.031859
v -0.971901 0.613288 -0.031859
v -1.001901 0.613288 -0.061859
v -1.031901 0.613288 -0.031859
v -1.001901 0.613288 -0.001859
v -0.971901 0.000000 -0.031859
v -1.001901 0.000000 -0.061859
v -1.031901 0.000000 -0.031859
v -1.058190 0.663788 -0.129427
v -1.058190 0.663788 -0.031859
v -1.058190 0.613288 -0.129427
v -0.314480 1.534193 0.211537
v -0.314480 0.613288 0.211537
v -0.392763 0.663788 0.211537
v -0.427059 0.613288 0.211537
v -0.370770 1.534193 0.211537
v -0.714480 0.663788 0.211537
v -0.714480 0.613288 0.211537
v -1.114480 0.663788 0.211537
v -1.114480 0.613288 0.211537
v -1.001901 0.663788 0.211537
v -1.001901 0.613288 0.211537
v -1.058190 0.663788 0.211537
v -0.314480 0.613288 0.552501
v -0.314480 0.663788 0.552501
v -0.314480 0.613288 0.454933
v -0.314480 1.534193 0.454933
v -0.427059 0.613288 0.552501
v -0.427059 0.663788 0.552501
v -0.427059 0.000000 0.424933
v -0.392763 0.663788 0.454933
v -0.457059 0.613288 0.454933
v -0.427059 0.613288 0.484933
v -0.397059 0.613288 0.454933
v -0.427059 0.613288 0.424933
v -0.457059 0.000000 0.454933
v -0.427059 0.000000 0.484933
v -0.397059 0.000000 0.454933
v -0.370770 0.663788 0.552501
v -0.370770 1.534193 0.454933
v -0.370770 0.613288 0.552501
v -0.714480 0.613288 0.552501
v -0.714480 0.663788 0.552501
v -0.714480 0.663788 0.454933
v -0.714480 0.613288 0.454933
v -1.114480 0.613288 0.552501
v -1.114480 0.663788 0.552501
v -1.114480 0.613288 0.454933
v -1.114480 0.663788 0.454933
v -1.001901 0.613288 0.552501
v -1.001901 0.663788 0.552501
v -1.001901 0.000000 0.424933
v -1.001901 0.663788 0.454933
v -0.971901 0.613288 0.454933
v -1.001901 0.613288 0.484933
v -1.031901 0.613288 0.454933
v -1.001901 0.613288 0.424933
v -0.971901 0.000000 0.454933
v -1.001901 0.000000 0.484933
v -1.031901 0.000000 0.454933
v -1.058190 0.663788 0.552501
v -1.058190 0.663788 0.454933
v -1.058190 0.613288 0.552501
v -0.427059 0.663788 -0.031859
v -0.427059 0.663788 0.454933
v -0.427059 0.663788 0.211537
vt 0.375000 0.482410
vt 0.625000 0.482410
vt 0.625000 0.500000
vt 0.375000 0.500000
vt 0.339819 0.500000
vt 0.357410 0.500000
vt 0.375000 0.516261
vt 0.349194 0.516261
vt 0.339819 0.511261
vt 0.625000 0.516261
vt 0.330444 0.516261
vt 0.339819 0.511261
vt 0.349194 0.516261
vt 0.339819 0.521261
vt 0.250000 0.500000
vt 0.330444 0.516261
vt 0.250000 0.516261
vt 0.375000 0.375000
vt 0.625000 0.375000
vt 0.625000 0.464819
vt 0.375000 0.464819
vt 0.339819 0.521261
vt 0.642591 0.500000
vt 0.642591 0.516261
vt 0.660181 0.516261
vt 0.669756 0.516261
vt 0.625000 0.464819
vt 0.625000 0.482410
vt 0.375000 0.482410
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.625000 0.482410
vt 0.339819 0.500000
vt 0.339819 0.511261
vt 0.349194 0.516261
vt 0.375000 0.516261
vt 0.357410 0.500000
vt 0.625000 0.516261
vt 0.330444 0.516261
vt 0.339819 0.521261
vt 0.349194 0.516261
vt 0.339819 0.511261
vt 0.642591 0.500000
vt 0.642591 0.516261
vt 0.660181 0.516261
vt 0.660181 0.500000
vt 0.330444 0.516261
vt 0.375000 0.464819
vt 0.625000 0.464819
vt 0.339819 0.521261
vt 0.750000 0.516261
vt 0.750000 0.500000
vt 0.642591 0.556827
vt 0.660181 0.556827
vt 0.339819 0.556827
vt 0.375000 0.556827
vt 0.625000 0.556827
vt 0.250000 0.556827
vt 0.750000 0.556827
vt 0.339819 0.556827
vt 0.660181 0.516261
vt 0.660181 0.556827
vt 0.642591 0.556827
vt 0.669756 0.516261
vt 0.669756 0.556827
vt 0.375000 0.556827
vt 0.625000 0.556827
vt 0.375000 0.482410
vt 0.375000 0.500000
vt 0.625000 0.500000
vt 0.339819 0.500000
vt 0.339819 0.511261
vt 0.349194 0.516261
vt 0.375000 0.516261
vt 0.357410 0.500000
vt 0.625000 0.516261
vt 0.330444 0.516261
vt 0.339819 0.521261
vt 0.349194 0.516261
vt 0.339819 0.511261
vt 0.642591 0.516261
vt 0.642591 0.500000
vt 0.250000 0.500000
vt 0.250000 0.516261
vt 0.330444 0.516261
vt 0.375000 0.375000
vt 0.375000 0.464819
vt 0.625000 0.375000
vt 0.339819 0.521261
vt 0.375000 0.482410
vt 0.625000 0.482410
vt 0.625000 0.500000
vt 0.375000 0.500000
vt 0.339819 0.500000
vt 0.357410 0.500000
vt 0.375000 0.516261
vt 0.349194 0.516261
vt 0.339819 0.511261
vt 0.625000 0.516261
vt 0.330444 0.516261
vt 0.339819 0.511261
vt 0.349194 0.516261
vt 0.339819 0.521261
vt 0.642591 0.500000
vt 0.660181 0.500000
vt 0.660181 0.516261
vt 0.642591 0.516261
vt 0.330444 0.516261
vt 0.625000 0.464819
vt 0.375000 0.464819
vt 0.339819 0.521261
vt 0.750000 0.500000
vt 0.750000 0.516261
vt 0.660181 0.500000
vt 0.660181 0.500000
vn 0.0000 -0.7071 -0.7071
vn -0.2616 0.2862 -0.9218
vn 0.6948 0.0401 -0.7181
vn 0.5774 -0.5774 -0.5774
vn 0.7071 -0.7071 0.0000
vn 0.4264 -0.9045 0.0000
vn 0.0000 -0.9045 -0.4264
vn 0.5834 0.6054 -0.5413
vn -0.8165 -0.5774 0.0000
vn 0.0000 -0.5774 -0.8165
vn 0.8165 -0.5774 0.0000
vn 0.0000 -0.5774 0.8165
vn -0.4264 -0.9045 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.7071 -0.7071
vn 0.0000 -0.9045 0.4264
vn -0.5754 0.6118 -0.5427
vn -0.6670 0.7413 0.0741
vn 0.0000 1.0000 0.0000
vn 0.0000 0.7071 0.7071
vn -0.2616 0.2862 0.9218
vn -0.5774 -0.5774 -0.5774
vn -0.5774 0.5774 -0.5774
vn -0.7071 -0.7071 -0.0000
vn -0.7071 0.7071 0.0000
vn -0.6670 0.7413 -0.0741
vn -0.6981 0.7160 0.0000
vn 0.7071 0.7071 0.0000
vn 0.0000 -0.7071 0.7071
vn 0.5774 -0.5774 0.5774
vn 0.6948 0.0401 0.7181
vn 0.5834 0.6054 0.5413
vn -0.5754 0.6118 0.5427
vn -0.5774 0.5774 0.5774
vn -0.5774 -0.5774 0.5774
usemtl Material.004
s 1
f 18/1/1 16/2/2 2/3/3 1/4/4
f 5/5/1 18/6/1 1/4/4 3/7/5 11/8/6 10/9/7
f 1/4/4 2/3/3 4/10/8 3/7/5
f 13/11/9 14/12/10 15/13/11 7/14/12
f 19/15/1 5/5/1 10/9/7 9/16/13 22/17/14
f 19/18/1 20/19/15 6/20/15 5/21/1
f 10/9/7 11/8/6 15/13/11 14/12/10
f 12/22/16 9/16/13 13/11/9 7/14/12
f 11/8/6 12/22/16 7/14/12 15/13/11
f 9/16/13 10/9/7 14/12/10 13/11/9
f 2/3/3 16/23/2 17/24/17 4/10/8
f 5/21/1 6/20/15 16/2/2 18/1/1
f 60/25/18 94/26/19 58/27/20 68/28/21
f 40/29/1 23/30/22 24/31/23 38/32/15
f 27/33/1 32/34/7 33/35/13 25/36/24 23/30/22 40/37/1
f 23/30/22 25/36/24 26/38/25 24/31/23
f 35/39/11 29/40/12 37/41/9 36/42/10
f 38/43/15 39/44/19 30/45/19 28/46/15
f 19/15/1 22/17/14 31/47/6 32/34/7 27/33/1
f 19/18/1 27/48/1 28/49/15 20/19/15
f 32/34/7 36/42/10 37/41/9 33/35/13
f 34/50/16 29/40/12 35/39/11 31/47/6
f 33/35/13 37/41/9 29/40/12 34/50/16
f 31/47/6 35/39/11 36/42/10 32/34/7
f 24/31/23 26/38/25 39/44/19 38/43/15
f 27/48/1 40/29/1 38/32/15 28/49/15
f 28/46/15 30/45/19 21/51/19 20/52/15
f 39/44/19 52/53/19 50/54/19 30/45/19
f 34/50/16 51/55/14 49/56/24 25/36/24 33/35/13
f 25/36/24 49/56/24 48/57/25 26/38/25
f 26/38/25 48/57/25 52/53/19 39/44/19
f 22/17/14 47/58/14 51/55/14 34/50/16 31/47/6
f 30/45/19 50/54/19 46/59/19 21/51/19
f 22/17/14 9/16/13 12/22/16 44/60/14 47/58/14
f 17/24/17 8/61/26 43/62/27 45/63/27
f 8/61/26 93/64/19 95/65/19 43/62/27
f 12/22/16 11/8/6 3/7/5 42/66/5 44/60/14
f 3/7/5 4/10/8 41/67/28 42/66/5
f 4/10/8 17/24/17 45/63/27 41/67/28
f 70/68/29 53/69/30 54/70/31 68/28/21
f 57/71/29 62/72/16 63/73/6 55/74/5 53/69/30 70/75/29
f 53/69/30 55/74/5 56/76/32 54/70/31
f 65/77/9 59/78/10 67/79/11 66/80/12
f 69/81/33 60/25/18 68/82/21
f 71/83/29 74/84/14 61/85/13 62/72/16 57/71/29
f 71/86/29 57/87/29 58/27/20 72/88/20
f 62/72/16 66/80/12 67/79/11 63/73/6
f 64/89/7 59/78/10 65/77/9 61/85/13
f 63/73/6 67/79/11 59/78/10 64/89/7
f 61/85/13 65/77/9 66/80/12 62/72/16
f 54/70/31 56/76/32 69/81/33 68/82/21
f 57/87/29 70/68/29 68/28/21 58/27/20
f 92/90/29 90/91/20 76/92/34 75/93/35
f 79/94/29 92/95/29 75/93/35 77/96/24 85/97/13 84/98/16
f 75/93/35 76/92/34 78/99/25 77/96/24
f 87/100/11 88/101/12 89/102/9 81/103/10
f 90/104/20 80/105/20 82/106/19 91/107/19
f 71/83/29 79/94/29 84/98/16 83/108/6 74/84/14
f 71/86/29 72/88/20 80/109/20 79/110/29
f 84/98/16 85/97/13 89/102/9 88/101/12
f 86/111/7 83/108/6 87/100/11 81/103/10
f 85/97/13 86/111/7 81/103/10 89/102/9
f 83/108/6 84/98/16 88/101/12 87/100/11
f 76/92/34 90/104/20 91/107/19 78/99/25
f 79/110/29 80/109/20 90/91/20 92/90/29
f 80/105/20 72/112/20 73/113/19 82/106/19
f 91/107/19 82/106/19 50/54/19 52/53/19
f 86/111/7 85/97/13 77/96/24 49/56/24 51/55/14
f 77/96/24 78/99/25 48/57/25 49/56/24
f 78/99/25 91/107/19 52/53/19 48/57/25
f 74/84/14 83/108/6 86/111/7 51/55/14 47/58/14
f 82/106/19 73/113/19 46/59/19 50/54/19
f 74/84/14 47/58/14 44/60/14 64/89/7 61/85/13
f 69/81/33 45/63/27 43/62/27 60/25/18
f 60/25/18 43/62/27 95/65/19 94/26/19
f 64/89/7 44/60/14 42/66/5 55/74/5 63/73/6
f 55/74/5 42/66/5 41/67/28 56/76/32
f 56/76/32 41/67/28 45/63/27 69/81/33
f 17/24/17 16/23/2 8/61/26
f 94/26/19 73/113/19 72/112/20 58/114/20
f 93/64/19 6/115/15 20/52/15 21/51/19
f 94/26/19 95/65/19 46/59/19 73/113/19
f 95/65/19 93/64/19 21/51/19 46/59/19
f 8/61/26 16/2/2 6/115/15 93/64/19

160
cw 9/models/chimney.obj Normal file
View File

@ -0,0 +1,160 @@
# Blender 3.4.1
# www.blender.org
mtllib chimney.mtl
o Chimney
v 0.627396 0.310043 -0.613601
v 0.666315 0.724793 -0.652520
v 0.627396 0.310043 -0.872615
v 0.666315 0.724793 -0.833696
v 0.886410 0.310043 -0.613601
v 0.847491 0.724793 -0.652520
v 0.886410 0.310043 -0.872615
v 0.847491 0.724793 -0.833696
v 0.632881 0.305714 -0.621376
v 0.632881 0.305714 -0.880391
v 0.886410 0.281680 -0.872615
v 0.886410 0.281680 -0.613601
v 0.627396 0.724793 -0.613601
v 0.627396 0.724793 -0.872615
v 0.886410 0.724793 -0.872615
v 0.886410 0.724793 -0.613601
v 0.627396 0.724793 -0.613601
v 0.627396 0.724793 -0.872615
v 0.886410 0.724793 -0.872615
v 0.886410 0.724793 -0.613601
v 0.666315 0.588204 -0.652520
v 0.666315 0.588204 -0.833696
v 0.847491 0.588204 -0.833696
v 0.847491 0.588204 -0.652520
vn -0.9999 -0.0131 -0.0000
vn 0.0307 -0.0000 -0.9995
vn 1.0000 -0.0000 -0.0000
vn -0.0307 -0.0000 0.9995
vn -0.0000 -1.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn -0.0000 0.8737 -0.4864
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -0.8737 0.4864
vn 0.6195 0.7850 -0.0000
vn -0.0000 1.0000 -0.0000
vn -0.0000 -0.0000 1.0000
vn -0.0000 0.0186 -0.9998
vn -0.0000 -0.0186 0.9998
vt 0.988524 0.225697
vt 0.564035 0.640910
vt 0.506800 0.950427
vt 0.621837 0.954560
vt 0.444534 0.945369
vt 0.655295 0.978022
vt 0.473138 0.950427
vt 0.705172 0.988284
vt 0.564035 0.607247
vt 0.655295 0.954758
vt 0.468080 0.945369
vt 0.604091 0.978083
vt 0.506800 0.916764
vt 0.988524 0.259173
vt 0.519929 0.828768
vt 0.586340 0.954574
vt 0.621837 0.977976
vt 0.444534 0.921822
vt 0.519929 0.862414
vt 0.473138 0.916764
vt 0.705172 0.954670
vt 0.604091 0.954570
vt 0.468080 0.921822
vt 0.586340 0.978109
vt 0.134740 0.959780
vt 0.178026 0.890775
vt 0.987988 0.226514
vt 0.563323 0.639902
vt 0.168381 0.960364
vt 0.913856 0.927454
vt 0.704621 0.987518
vt 0.563323 0.606239
vt 0.946517 0.930689
vt 0.101482 0.963069
vt 0.516244 0.862411
vt 0.701486 0.954668
vt 0.210873 0.887621
vt 0.134740 0.962900
vt 0.984839 0.259183
vt 0.516244 0.828765
vt 0.134740 0.905341
vt 0.177259 0.945227
vt 0.305491 0.309462
vt 0.168381 0.905924
vt 0.913041 0.873028
vt 0.305491 0.309462
vt 0.946517 0.873118
vt 0.101482 0.905510
vt 0.305491 0.309462
vt 0.134740 0.905341
vt 0.210873 0.945208
vt 0.305491 0.309462
vt 0.305491 0.309462
vt 0.439476 0.950427
vt 0.305491 0.309462
vt 0.473138 0.950427
vt 0.305491 0.309462
vt 0.473138 0.916764
vt 0.305491 0.309462
vt 0.439476 0.916764
vt 0.604091 0.954607
vt 0.439476 0.973974
vt 0.637553 0.977932
vt 0.463022 0.973974
vt 0.586340 0.978072
vt 0.637553 0.954668
vt 0.463022 0.950427
vt 0.586340 0.954560
vt 0.568594 0.978095
vt 0.604091 0.978023
vt 0.439476 0.950427
vt 0.568594 0.954560
s 0
usemtl Material.011
f 9/25/1 14/44/1 10/29/1
f 10/30/2 15/47/2 11/33/2
f 15/48/3 12/38/3 11/34/3
f 16/51/4 9/26/4 12/37/4
f 7/20/5 1/3/5 3/7/5
f 6/17/6 21/61/6 2/4/6
f 5/14/7 9/27/7 1/1/7
f 11/35/8 5/15/8 7/19/8
f 10/31/9 7/21/9 3/8/9
f 9/28/10 3/9/10 1/2/10
f 17/53/11 14/46/11 13/43/11
f 18/55/11 15/49/11 14/46/11
f 19/57/11 16/52/11 15/49/11
f 20/59/11 13/43/11 16/52/11
f 2/5/11 18/56/11 17/54/11
f 8/23/11 18/56/11 4/11/11
f 6/18/11 19/58/11 8/23/11
f 2/5/11 20/60/11 6/18/11
f 22/64/11 24/71/11 23/67/11
f 4/12/12 23/68/12 8/22/12
f 8/24/8 24/72/8 6/16/8
f 2/6/3 22/66/3 4/10/3
f 9/25/1 13/41/1 14/44/1
f 10/30/13 14/45/13 15/47/13
f 15/48/3 16/50/3 12/38/3
f 16/51/14 13/42/14 9/26/14
f 7/20/5 5/13/5 1/3/5
f 6/17/6 24/70/6 21/61/6
f 5/14/2 12/39/2 9/27/2
f 11/35/8 12/40/8 5/15/8
f 10/31/4 11/36/4 7/21/4
f 9/28/10 10/32/10 3/9/10
f 17/53/11 18/55/11 14/46/11
f 18/55/11 19/57/11 15/49/11
f 19/57/11 20/59/11 16/52/11
f 20/59/11 17/53/11 13/43/11
f 2/5/11 4/11/11 18/56/11
f 8/23/11 19/58/11 18/56/11
f 6/18/11 20/60/11 19/58/11
f 2/5/11 17/54/11 20/60/11
f 22/64/11 21/62/11 24/71/11
f 4/12/12 22/65/12 23/68/12
f 8/24/8 23/69/8 24/72/8
f 2/6/3 21/63/3 22/66/3

4349
cw 9/models/desk.obj Normal file

File diff suppressed because it is too large Load Diff

769
cw 9/models/door.obj Normal file
View File

@ -0,0 +1,769 @@
# Blender 3.4.1
# www.blender.org
mtllib door.mtl
o Door
v -0.072461 -0.920199 1.352134
v 0.244340 -0.920199 0.991527
v -0.072461 -0.051980 1.352134
v 0.244340 -0.051980 0.991527
v -0.008916 -0.148259 1.279803
v -0.018301 -0.785920 1.290486
v 0.190181 -0.785920 1.053176
v 0.180795 -0.148259 1.063859
v -0.008916 -0.404410 1.279803
v 0.180795 -0.404410 1.063859
v -0.072461 -0.459980 1.352134
v 0.244340 -0.459980 0.991527
v 0.190181 -0.501330 1.053176
v -0.018301 -0.501330 1.290486
v -0.045593 -0.459980 1.321551
v -0.065956 -0.051980 1.357848
v 0.250845 -0.051980 0.997241
v 0.217472 -0.459980 1.022111
v 0.250845 -0.459980 0.997241
v -0.039088 -0.092689 1.327265
v 0.223976 -0.092689 1.027825
v 0.223976 -0.459980 1.027825
v -0.008603 -0.516024 1.279447
v -0.008603 -0.771227 1.279447
v 0.180483 -0.771227 1.064215
v 0.180483 -0.516024 1.064215
v -0.038922 -0.459980 1.327411
v -0.038922 -0.827271 1.327411
v 0.224143 -0.827271 1.027971
v -0.065790 -0.459980 1.357995
v -0.065790 -0.920199 1.357995
v 0.251011 -0.920199 0.997388
v 0.224143 -0.459980 1.027971
v 0.251011 -0.459980 0.997388
v -0.024397 -0.481987 1.310878
v -0.024397 -0.805263 1.310878
v 0.209618 -0.805263 1.044505
v 0.209618 -0.481987 1.044505
v -0.011630 -0.501330 1.296346
v -0.011630 -0.785920 1.296346
v 0.196851 -0.785920 1.059036
v 0.196852 -0.501330 1.059036
v -0.039088 -0.459980 1.327265
v -0.065956 -0.459980 1.357848
v 0.209764 -0.438446 1.044002
v 0.209764 -0.114223 1.044002
v -0.024876 -0.114223 1.311087
v -0.024876 -0.438446 1.311087
v 0.196998 -0.419103 1.058534
v 0.196998 -0.133566 1.058534
v -0.012109 -0.133566 1.296556
v -0.012109 -0.419103 1.296556
v 0.190493 -0.419103 1.052820
v 0.190493 -0.133566 1.052820
v -0.018614 -0.133566 1.290841
v -0.018614 -0.419103 1.290841
v -0.018301 -0.501330 1.290486
v -0.018301 -0.785920 1.290486
v 0.190181 -0.785920 1.053176
v 0.190181 -0.501330 1.053176
v 0.180072 -0.404410 1.062446
v 0.180072 -0.148259 1.062446
v -0.009640 -0.148259 1.278391
v -0.009640 -0.404410 1.278391
v -0.017436 -0.516024 1.271687
v -0.017436 -0.771227 1.271687
v 0.171650 -0.771227 1.056455
v 0.171650 -0.516024 1.056455
v -0.062324 -0.092689 1.307511
v -0.062324 -0.459980 1.307511
v 0.227608 -0.051980 0.977487
v 0.200740 -0.092689 1.008071
v -0.089992 -0.459980 1.336733
v -0.089992 -0.920199 1.336733
v 0.226809 -0.920199 0.976126
v 0.226809 -0.459980 0.976126
v 0.226809 -0.051980 0.976126
v -0.089992 -0.051980 1.336733
v -0.089192 -0.051980 1.338094
v 0.227608 -0.459980 0.977487
v 0.199941 -0.459980 1.006709
v -0.063124 -0.459980 1.306149
v -0.089192 -0.459980 1.338094
v -0.035346 -0.419103 1.276802
v -0.029427 -0.419103 1.280566
v -0.035346 -0.133566 1.276802
v -0.029427 -0.133566 1.280566
v 0.200740 -0.459980 1.008071
v -0.089026 -0.459980 1.338241
v 0.173615 -0.785920 1.039282
v 0.172649 -0.785920 1.037774
v -0.089026 -0.867980 1.338241
v -0.034866 -0.785920 1.276592
v -0.035832 -0.785920 1.275084
v 0.227775 -0.867980 0.977634
v 0.227775 -0.459980 0.977634
v 0.179680 -0.419103 1.042544
v 0.179680 -0.133566 1.042544
v -0.035832 -0.501330 1.275084
v 0.172649 -0.501330 1.037774
v 0.173762 -0.133566 1.038780
v 0.173762 -0.419103 1.038780
v -0.034866 -0.501330 1.276592
v 0.173615 -0.501330 1.039282
v 0.200907 -0.459980 1.008217
v -0.062158 -0.459980 1.307657
v -0.029114 -0.501330 1.280210
v -0.029114 -0.785920 1.280210
v 0.179368 -0.785920 1.042900
v 0.179368 -0.501330 1.042900
v -0.062158 -0.827271 1.307657
v 0.200907 -0.827271 1.008217
v -0.047633 -0.481987 1.291124
v -0.047633 -0.805263 1.291124
v 0.186382 -0.805263 1.024751
v 0.186382 -0.481987 1.024751
v 0.186528 -0.438446 1.024248
v 0.186528 -0.114223 1.024248
v -0.048112 -0.114223 1.291333
v -0.048112 -0.438446 1.291333
v 0.169983 -0.404410 1.053583
v 0.169983 -0.148259 1.053583
v -0.019729 -0.148259 1.269527
v -0.019729 -0.404410 1.269527
v -0.019416 -0.516024 1.269171
v -0.019416 -0.771227 1.269171
v 0.169670 -0.771227 1.053939
v 0.169670 -0.516024 1.053939
v 0.175382 -0.404410 1.059103
v 0.175382 -0.148259 1.059103
v -0.014329 -0.148259 1.275047
v -0.014329 -0.404410 1.275047
v -0.014016 -0.516024 1.274691
v -0.014016 -0.771227 1.274691
v 0.175070 -0.771227 1.059459
v 0.175070 -0.516024 1.059459
vn 0.8900 -0.0000 -0.4560
vn -0.7513 -0.0000 -0.6600
vn 0.6600 -0.0000 -0.7513
vn -0.0000 -1.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vn -0.6600 -0.0000 0.7513
vn -0.8900 -0.0000 0.4560
vn 0.7149 -0.0000 -0.6993
vn 0.7513 -0.0000 0.6600
vn -0.8420 -0.0000 0.5394
vn -0.8623 -0.0000 0.5063
vn 0.6066 -0.0000 -0.7950
vn -0.5366 -0.0000 0.8438
vn 0.8623 -0.0000 -0.5063
vn 0.7509 -0.0329 0.6596
vn 0.5366 -0.0000 -0.8438
vn 0.8420 -0.0000 -0.5394
vn -0.7149 -0.0000 0.6993
vn -0.6066 -0.0000 0.7950
vt 0.567440 0.935539
vt 0.567707 0.935514
vt 0.306316 0.422318
vt 0.567440 0.997922
vt 0.567707 0.822735
vt 0.995621 0.205848
vt 0.306316 0.309485
vt 0.995621 0.268229
vt 0.520115 0.862047
vt 0.911077 0.518932
vt 0.857805 0.297348
vt 0.565377 0.822672
vt 0.255316 0.974892
vt 0.305491 0.309462
vt 0.979304 0.354291
vt 0.305491 0.309462
vt 0.565377 0.863724
vt 0.211368 0.861542
vt 0.938551 0.518293
vt 0.857805 0.259991
vt 0.564223 0.860104
vt 0.520115 0.828767
vt 0.911077 0.552212
vt 0.211368 0.828268
vt 0.938551 0.551573
vt 0.564223 0.822748
vt 0.306301 0.471344
vt 0.307426 0.533726
vt 0.567707 0.875733
vt 0.307426 0.471345
vt 0.306301 0.533728
vt 0.306316 0.362508
vt 0.979304 0.391259
vt 0.303280 0.793453
vt 0.305491 0.309462
vt 0.303280 0.834506
vt 0.255316 0.937907
vt 0.305491 0.309462
vt 0.306301 0.476635
vt 0.307426 0.528435
vt 0.568572 0.822759
vt 0.994496 0.205848
vt 0.255320 0.878681
vt 0.994496 0.268229
vt 0.305512 0.309494
vt 0.301199 0.877614
vt 0.307426 0.476635
vt 0.306301 0.528437
vt 0.305512 0.362517
vt 0.307426 0.533728
vt 0.301199 0.930623
vt 0.259211 0.883880
vt 0.297308 0.882994
vt 0.307426 0.528437
vt 0.297308 0.930714
vt 0.304125 0.569126
vt 0.981899 0.742387
vt 0.521686 0.916313
vt 0.302597 0.606360
vt 0.521686 0.949470
vt 0.981899 0.775552
vt 0.977243 0.354267
vt 0.549070 0.948833
vt 0.302597 0.643593
vt 0.549070 0.915676
vt 0.304125 0.606360
vt 0.977243 0.387417
vt 0.308580 0.528435
vt 0.263813 0.479917
vt 0.263813 0.527637
vt 0.301910 0.526751
vt 0.568594 0.875757
vt 0.308580 0.533726
vt 0.259922 0.480007
vt 0.568594 0.935539
vt 0.259922 0.539801
vt 0.568594 0.997922
vt 0.305491 0.422326
vt 0.305801 0.538734
vt 0.308580 0.476635
vt 0.301910 0.479030
vt 0.308580 0.471344
vt 0.305491 0.362517
vt 0.305801 0.478940
vt 0.265916 0.482727
vt 0.265916 0.524728
vt 0.299806 0.523940
vt 0.299806 0.481939
vt 0.267765 0.485197
vt 0.254491 0.937916
vt 0.302125 0.834506
vt 0.564223 0.822672
vt 0.254491 0.974901
vt 0.267765 0.522172
vt 0.978417 0.354267
vt 0.564223 0.863724
vt 0.297958 0.521470
vt 0.978417 0.391235
vt 0.302125 0.793453
vt 0.297958 0.484495
vt 0.307426 0.476635
vt 0.259211 0.931600
vt 0.255320 0.931690
vt 0.568572 0.875757
vt 0.307426 0.471344
vt 0.295250 0.927964
vt 0.295250 0.885839
vt 0.261269 0.886630
vt 0.261269 0.928754
vt 0.806579 0.943653
vt 0.982900 0.705065
vt 0.293401 0.925494
vt 0.293401 0.888395
vt 0.302154 0.834506
vt 0.982900 0.742156
vt 0.983843 0.000009
vt 0.302154 0.875682
vt 0.263118 0.889100
vt 0.806579 0.902478
vt 0.983843 0.037117
vt 0.263118 0.926198
vt 0.807705 0.943653
vt 0.983765 0.705088
vt 0.939956 0.553449
vt 0.303280 0.834506
vt 0.983765 0.742179
vt 0.939956 0.516351
vt 0.984647 0.000000
vt 0.303280 0.875682
vt 0.909673 0.517055
vt 0.807705 0.902478
vt 0.984647 0.037108
vt 0.909673 0.554154
vt 0.305491 0.309462
vt 0.520282 0.914436
vt 0.305491 0.309462
vt 0.520282 0.951412
vt 0.305491 0.309462
vt 0.550474 0.950709
vt 0.305491 0.309462
vt 0.550474 0.913734
vt 0.211563 0.828271
vt 0.967430 0.549631
vt 0.564031 0.822672
vt 0.211563 0.861544
vt 0.967430 0.516351
vt 0.857997 0.259915
vt 0.519929 0.862045
vt 0.939956 0.516990
vt 0.857997 0.297272
vt 0.939956 0.550270
vt 0.519929 0.828765
vt 0.564031 0.860028
vt 0.211564 0.938544
vt 0.302597 0.569126
vt 0.982991 0.742375
vt 0.211564 0.971701
vt 0.304125 0.606360
vt 0.982991 0.775541
vt 0.238947 0.971064
vt 0.304125 0.643593
vt 0.978417 0.354299
vt 0.238947 0.937907
vt 0.302597 0.606360
vt 0.978417 0.387449
vt 0.913374 0.510616
vt 0.564035 0.698065
vt 0.913374 0.462883
vt 0.302243 0.569412
vt 0.563323 0.693908
vt 0.953314 0.516351
vt 0.949613 0.511019
vt 0.563840 0.640913
vt 0.563840 0.703292
vt 0.306301 0.533728
vt 0.565377 0.875670
vt 0.563840 0.700707
vt 0.211564 0.877614
vt 0.564407 0.935539
vt 0.565377 0.935451
vt 0.305864 0.531126
vt 0.255205 0.878100
vt 0.564407 0.997922
vt 0.308483 0.422294
vt 0.563514 0.640913
vt 0.306301 0.471344
vt 0.563840 0.640910
vt 0.305864 0.471344
vt 0.308483 0.362485
vt 0.302438 0.569348
vt 0.998654 0.268229
vt 0.563514 0.693911
vt 0.308483 0.309462
vt 0.563840 0.756366
vt 0.302438 0.631731
vt 0.565377 0.822672
vt 0.998654 0.205847
vt 0.564020 0.756368
vt 0.302243 0.631795
vt 0.909673 0.515865
vt 0.563323 0.640910
vt 0.564035 0.640975
vt 0.953314 0.463328
vt 0.306301 0.476635
vt 0.563840 0.646201
vt 0.563840 0.698001
vt 0.306301 0.528437
vt 0.909673 0.462842
vt 0.564020 0.703358
vt 0.303046 0.684910
vt 0.917091 0.468237
vt 0.302146 0.685050
vt 0.917832 0.468231
vt 0.303046 0.684910
vt 0.917091 0.505345
vt 0.302146 0.684770
vt 0.917832 0.505339
vt 0.564035 0.646265
vt 0.949613 0.463287
vt 0.563640 0.640910
vt 0.306077 0.533792
vt 0.211678 0.937421
vt 0.563840 0.700710
vt 0.564020 0.797422
vt 0.247859 0.895465
vt 0.984099 0.814995
vt 0.563797 0.797486
vt 0.563640 0.700707
vt 0.308663 0.969995
vt 0.563640 0.693920
vt 0.211678 0.884398
vt 0.564020 0.756368
vt 0.822297 0.820061
vt 0.219139 0.895146
vt 0.822510 0.820064
vt 0.308663 0.928943
vt 0.563797 0.756433
vt 0.384420 0.917230
vt 0.306077 0.524346
vt 0.255320 0.884884
vt 0.306077 0.471348
vt 0.255320 0.937907
vt 0.302146 0.726226
vt 0.563323 0.569126
vt 0.946638 0.468552
vt 0.563323 0.606224
vt 0.302146 0.643593
vt 0.946638 0.505660
vt 0.384420 0.954215
vt 0.822510 0.857031
vt 0.564020 0.797550
vt 0.177125 0.946470
vt 0.563640 0.737683
vt 0.984099 0.778020
vt 0.564020 0.838603
vt 0.177125 0.905417
vt 0.303046 0.643734
vt 0.564037 0.606239
vt 0.945897 0.505665
vt 0.303046 0.726085
vt 0.564037 0.569140
vt 0.945897 0.468557
vt 0.563797 0.797486
vt 0.822297 0.857028
vt 0.219139 0.932130
vt 0.563840 0.737686
vt 0.563797 0.838538
vt 0.247859 0.932450
vt 0.306077 0.476700
vt 0.251619 0.937866
vt 0.306077 0.528501
vt 0.215380 0.937462
vt 0.176029 0.946394
vt 0.385256 0.954207
vt 0.307567 0.929019
vt 0.385256 0.917222
vt 0.984897 0.815014
vt 0.307567 0.970071
vt 0.413976 0.917542
vt 0.176029 0.905341
vt 0.984897 0.778039
vt 0.413976 0.954527
vt 0.215380 0.889730
vt 0.251619 0.890134
vt 0.217381 0.934625
vt 0.217381 0.892612
vt 0.249618 0.892971
vt 0.249618 0.934984
vt 0.947655 0.466063
vt 0.947655 0.508199
vt 0.915332 0.507839
vt 0.915332 0.465703
vt 0.983809 0.742394
vt 0.945302 0.470446
vt 0.982843 0.037432
vt 0.913041 0.930689
vt 0.983809 0.775667
vt 0.945302 0.503735
vt 0.985715 0.811300
vt 0.919168 0.503444
vt 0.913041 0.968046
vt 0.985715 0.778020
vt 0.919168 0.470155
vt 0.982843 0.000076
vt 0.705172 0.987825
vt 0.386592 0.952312
vt 0.982900 0.742299
vt 0.386592 0.919147
vt 0.983843 0.000076
vt 0.705172 0.954668
vt 0.985715 0.778038
vt 0.412640 0.919437
vt 0.983843 0.037309
vt 0.982900 0.705065
vt 0.412640 0.952602
vt 0.985714 0.811189
vt 0.982991 0.742375
vt 0.519745 0.876582
vt 0.981842 0.037356
vt 0.982991 0.775648
vt 0.519745 0.909870
vt 0.912040 0.930765
vt 0.986454 0.811317
vt 0.493611 0.909579
vt 0.912040 0.968122
vt 0.493611 0.876291
vt 0.981842 0.000000
vt 0.986454 0.778036
vt 0.951450 0.689295
vt 0.981899 0.742375
vt 0.705912 0.987842
vt 0.951450 0.656129
vt 0.982843 0.000000
vt 0.705912 0.954685
vt 0.977498 0.656419
vt 0.982843 0.037233
vt 0.984897 0.778019
vt 0.977498 0.689585
vt 0.981899 0.705141
vt 0.984897 0.811170
s 0
usemtl wooden_table_02
f 61/142/1 8/18/1 10/24/1
f 44/103/2 20/52/2 43/102/2
f 30/72/3 1/2/3 11/29/3
f 53/122/4 52/119/4 56/131/4
f 16/41/3 11/29/3 3/5/3
f 42/98/3 7/15/3 13/33/3
f 7/16/5 60/140/5 13/35/5
f 17/44/4 3/6/4 4/8/4
f 44/105/5 15/39/5 11/27/5
f 52/120/6 55/128/6 56/132/6
f 19/49/6 4/7/6 12/32/6
f 27/68/4 11/28/4 15/40/4
f 7/17/4 40/92/4 6/12/4
f 34/82/4 18/47/4 12/30/4
f 31/75/5 2/4/5 1/1/5
f 22/54/5 12/31/5 18/48/5
f 55/129/5 50/114/5 54/125/5
f 50/115/3 53/123/3 54/126/3
f 43/101/5 18/48/5 15/39/5
f 40/93/6 14/37/6 6/13/6
f 32/78/6 12/32/6 2/3/6
f 39/91/5 13/34/5 14/36/5
f 33/80/4 15/40/4 18/47/4
f 63/148/7 9/22/7 5/9/7
f 14/38/5 58/136/5 6/14/5
f 13/35/5 57/134/5 14/38/5
f 6/14/5 59/138/5 7/16/5
f 32/79/2 28/70/2 29/71/2
f 34/84/2 29/71/2 33/81/2
f 28/70/2 30/74/2 27/69/2
f 28/70/2 35/85/2 36/86/2
f 29/71/2 36/86/2 37/87/2
f 33/81/2 37/87/2 38/88/2
f 27/69/2 38/88/2 35/85/2
f 40/94/2 35/85/2 39/89/2
f 41/97/2 36/86/2 40/94/2
f 38/88/2 41/97/2 42/100/2
f 35/85/2 42/100/2 39/89/2
f 16/43/2 21/53/2 20/52/2
f 21/53/2 19/51/2 22/55/2
f 21/53/2 45/106/2 46/107/2
f 47/108/2 21/53/2 46/107/2
f 48/109/2 20/52/2 47/108/2
f 22/55/2 48/109/2 45/106/2
f 46/107/2 49/112/2 50/113/2
f 51/118/2 46/107/2 50/113/2
f 48/109/2 51/118/2 52/121/2
f 45/106/2 52/121/2 49/112/2
f 54/127/2 10/25/2 8/19/2
f 55/130/2 8/19/2 5/10/2
f 9/23/2 55/130/2 5/10/2
f 10/25/2 56/133/2 9/23/2
f 58/137/2 23/58/2 24/60/2
f 59/139/2 24/60/2 25/63/2
f 60/141/2 25/63/2 26/65/2
f 23/58/2 60/141/2 26/65/2
f 63/149/2 61/143/2 64/151/2
f 65/154/2 67/160/2 66/157/2
f 26/66/5 65/155/5 23/56/5
f 66/158/4 25/64/4 24/59/4
f 64/153/4 10/26/4 9/21/4
f 8/20/5 63/150/5 5/11/5
f 67/162/3 26/67/3 25/62/3
f 65/156/6 24/61/6 23/57/6
f 122/297/8 129/317/8 121/293/8
f 69/166/9 83/208/9 70/168/9
f 73/173/10 92/230/10 89/220/10
f 85/212/4 102/260/4 97/243/4
f 78/194/11 83/209/11 79/198/11
f 91/228/10 104/266/10 100/253/10
f 100/254/12 109/277/12 91/226/12
f 78/195/5 71/169/5 77/190/5
f 73/174/4 70/167/4 83/209/4
f 85/213/13 86/215/13 84/211/13
f 77/192/14 80/201/14 76/185/14
f 73/175/5 106/271/5 82/207/5
f 94/237/5 90/224/5 91/227/5
f 81/204/5 96/241/5 76/186/5
f 74/178/15 95/240/15 92/231/15
f 81/205/4 80/202/4 88/218/4
f 87/216/5 101/257/5 86/214/5
f 97/244/16 101/258/16 98/246/16
f 82/206/4 88/218/4 70/167/4
f 99/250/17 93/233/17 94/235/17
f 76/188/17 95/239/17 75/181/17
f 99/251/4 104/267/4 103/263/4
f 82/207/5 105/269/5 81/204/5
f 124/302/18 131/323/18 123/299/18
f 94/238/19 107/274/19 99/249/19
f 100/256/5 107/273/5 110/280/5
f 91/229/4 108/275/4 94/236/4
f 111/283/9 95/240/9 112/284/9
f 112/284/9 96/242/9 105/270/9
f 111/283/9 89/222/9 92/231/9
f 113/285/9 111/283/9 114/286/9
f 114/286/9 112/284/9 115/287/9
f 116/288/9 112/284/9 105/270/9
f 113/285/9 105/270/9 106/272/9
f 103/265/9 114/286/9 93/234/9
f 93/234/9 115/287/9 90/225/9
f 104/268/9 115/287/9 116/288/9
f 104/268/9 113/285/9 103/265/9
f 72/172/9 79/200/9 69/166/9
f 72/172/9 80/203/9 71/171/9
f 117/289/9 72/172/9 118/290/9
f 118/290/9 69/166/9 119/291/9
f 120/292/9 69/166/9 70/168/9
f 120/292/9 88/219/9 117/289/9
f 102/262/9 118/290/9 101/259/9
f 101/259/9 119/291/9 86/215/9
f 86/215/9 120/292/9 84/211/9
f 84/211/9 117/289/9 102/262/9
f 122/298/9 97/245/9 98/248/9
f 123/300/9 98/248/9 87/217/9
f 123/300/9 85/213/9 124/303/9
f 124/303/9 97/245/9 121/294/9
f 125/306/9 108/276/9 126/308/9
f 126/308/9 109/279/9 127/312/9
f 127/312/9 110/282/9 128/315/9
f 125/306/9 110/282/9 107/274/9
f 129/318/9 131/324/9 132/326/9
f 135/335/9 133/329/9 134/332/9
f 125/307/5 136/339/5 128/314/5
f 126/309/4 135/336/4 134/333/4
f 124/304/4 129/319/4 132/327/4
f 123/301/5 130/322/5 122/296/5
f 128/316/8 135/337/8 127/311/8
f 126/310/18 133/331/18 125/305/18
f 2/4/5 74/179/5 1/1/5
f 12/32/6 75/184/6 2/3/6
f 4/7/6 76/189/6 12/32/6
f 1/2/3 73/176/3 11/29/3
f 11/29/3 78/196/3 3/5/3
f 4/8/4 78/197/4 77/191/4
f 61/142/1 62/145/1 8/18/1
f 44/103/2 16/43/2 20/52/2
f 30/72/3 31/75/3 1/2/3
f 53/122/4 49/110/4 52/119/4
f 16/41/3 44/104/3 11/29/3
f 42/98/3 41/95/3 7/15/3
f 7/16/5 59/138/5 60/140/5
f 17/44/4 16/42/4 3/6/4
f 44/105/5 43/101/5 15/39/5
f 52/120/6 51/116/6 55/128/6
f 19/49/6 17/45/6 4/7/6
f 27/68/4 30/73/4 11/28/4
f 7/17/4 41/96/4 40/92/4
f 34/82/4 33/80/4 18/47/4
f 31/75/5 32/77/5 2/4/5
f 22/54/5 19/50/5 12/31/5
f 55/129/5 51/117/5 50/114/5
f 50/115/3 49/111/3 53/123/3
f 43/101/5 22/54/5 18/48/5
f 40/93/6 39/90/6 14/37/6
f 32/78/6 34/83/6 12/32/6
f 39/91/5 42/99/5 13/34/5
f 33/80/4 27/68/4 15/40/4
f 63/148/7 64/152/7 9/22/7
f 14/38/5 57/134/5 58/136/5
f 13/35/5 60/140/5 57/134/5
f 6/14/5 58/136/5 59/138/5
f 32/79/2 31/76/2 28/70/2
f 34/84/2 32/79/2 29/71/2
f 28/70/2 31/76/2 30/74/2
f 28/70/2 27/69/2 35/85/2
f 29/71/2 28/70/2 36/86/2
f 33/81/2 29/71/2 37/87/2
f 27/69/2 33/81/2 38/88/2
f 40/94/2 36/86/2 35/85/2
f 41/97/2 37/87/2 36/86/2
f 38/88/2 37/87/2 41/97/2
f 35/85/2 38/88/2 42/100/2
f 16/43/2 17/46/2 21/53/2
f 21/53/2 17/46/2 19/51/2
f 21/53/2 22/55/2 45/106/2
f 47/108/2 20/52/2 21/53/2
f 48/109/2 43/102/2 20/52/2
f 22/55/2 43/102/2 48/109/2
f 46/107/2 45/106/2 49/112/2
f 51/118/2 47/108/2 46/107/2
f 48/109/2 47/108/2 51/118/2
f 45/106/2 48/109/2 52/121/2
f 54/127/2 53/124/2 10/25/2
f 55/130/2 54/127/2 8/19/2
f 9/23/2 56/133/2 55/130/2
f 10/25/2 53/124/2 56/133/2
f 58/137/2 57/135/2 23/58/2
f 59/139/2 58/137/2 24/60/2
f 60/141/2 59/139/2 25/63/2
f 23/58/2 57/135/2 60/141/2
f 63/149/2 62/146/2 61/143/2
f 65/154/2 68/163/2 67/160/2
f 26/66/5 68/164/5 65/155/5
f 66/158/4 67/161/4 25/64/4
f 64/153/4 61/144/4 10/26/4
f 8/20/5 62/147/5 63/150/5
f 67/162/3 68/165/3 26/67/3
f 65/156/6 66/159/6 24/61/6
f 122/297/8 130/320/8 129/317/8
f 69/166/9 79/200/9 83/208/9
f 73/173/10 74/177/10 92/230/10
f 85/212/4 84/210/4 102/260/4
f 78/194/11 73/174/11 83/209/11
f 91/228/10 90/223/10 104/266/10
f 100/254/12 110/281/12 109/277/12
f 78/195/5 79/199/5 71/169/5
f 73/174/4 82/206/4 70/167/4
f 85/213/13 87/217/13 86/215/13
f 77/192/14 71/170/14 80/201/14
f 73/175/5 89/221/5 106/271/5
f 94/237/5 93/232/5 90/224/5
f 81/204/5 105/269/5 96/241/5
f 74/178/15 75/182/15 95/240/15
f 81/205/4 76/187/4 80/202/4
f 87/216/5 98/247/5 101/257/5
f 97/244/16 102/261/16 101/258/16
f 82/206/4 81/205/4 88/218/4
f 99/250/17 103/264/17 93/233/17
f 76/188/17 96/241/17 95/239/17
f 99/251/4 100/255/4 104/267/4
f 82/207/5 106/271/5 105/269/5
f 124/302/18 132/328/18 131/323/18
f 94/238/19 108/276/19 107/274/19
f 100/256/5 99/252/5 107/273/5
f 91/229/4 109/278/4 108/275/4
f 111/283/9 92/231/9 95/240/9
f 112/284/9 95/240/9 96/242/9
f 111/283/9 106/272/9 89/222/9
f 113/285/9 106/272/9 111/283/9
f 114/286/9 111/283/9 112/284/9
f 116/288/9 115/287/9 112/284/9
f 113/285/9 116/288/9 105/270/9
f 103/265/9 113/285/9 114/286/9
f 93/234/9 114/286/9 115/287/9
f 104/268/9 90/225/9 115/287/9
f 104/268/9 116/288/9 113/285/9
f 72/172/9 71/171/9 79/200/9
f 72/172/9 88/219/9 80/203/9
f 117/289/9 88/219/9 72/172/9
f 118/290/9 72/172/9 69/166/9
f 120/292/9 119/291/9 69/166/9
f 120/292/9 70/168/9 88/219/9
f 102/262/9 117/289/9 118/290/9
f 101/259/9 118/290/9 119/291/9
f 86/215/9 119/291/9 120/292/9
f 84/211/9 120/292/9 117/289/9
f 122/298/9 121/294/9 97/245/9
f 123/300/9 122/298/9 98/248/9
f 123/300/9 87/217/9 85/213/9
f 124/303/9 85/213/9 97/245/9
f 125/306/9 107/274/9 108/276/9
f 126/308/9 108/276/9 109/279/9
f 127/312/9 109/279/9 110/282/9
f 125/306/9 128/315/9 110/282/9
f 129/318/9 130/321/9 131/324/9
f 135/335/9 136/338/9 133/329/9
f 125/307/5 133/330/5 136/339/5
f 126/309/4 127/313/4 135/336/4
f 124/304/4 121/295/4 129/319/4
f 123/301/5 131/325/5 130/322/5
f 128/316/8 136/340/8 135/337/8
f 126/310/18 134/334/18 133/331/18
f 2/4/5 75/183/5 74/179/5
f 12/32/6 76/189/6 75/184/6
f 4/7/6 77/193/6 76/189/6
f 1/2/3 74/180/3 73/176/3
f 11/29/3 73/176/3 78/196/3
f 4/8/4 3/6/4 78/197/4

235
cw 9/models/doorframe.obj Normal file
View File

@ -0,0 +1,235 @@
# Blender 3.4.1
# www.blender.org
mtllib doorframe.mtl
o doorframe
v 0.000000 -1.000906 0.985637
v -0.265682 -1.000906 0.985637
v 0.000000 0.033724 0.985637
v -0.265682 0.033724 0.985637
v 0.265682 -1.000906 0.985637
v 0.265682 0.033724 0.985637
v -0.265682 -0.208731 0.985637
v 0.265682 -0.208731 0.985637
v -0.265682 -0.760472 0.985637
v 0.265682 -0.760472 0.985637
v 0.000000 -1.000906 1.015564
v -0.265682 -1.000906 1.015564
v 0.000000 0.033724 1.015564
v -0.265682 0.033724 1.015564
v 0.265682 -1.000906 1.015564
v 0.265682 0.033724 1.015564
v -0.265682 -0.208731 1.015564
v 0.265682 -0.208731 1.015564
v -0.265682 -0.760472 1.015564
v 0.265682 -0.760472 1.015564
v 0.000000 -0.909256 0.988081
v -0.222299 -0.909256 0.988081
v 0.000000 -0.053918 0.988081
v -0.222299 -0.053918 0.988081
v 0.222299 -0.909256 0.988081
v 0.222299 -0.053918 0.988081
v -0.222299 -0.256783 0.988081
v 0.222299 -0.256783 0.988081
v -0.222299 -0.718432 0.988081
v 0.222299 -0.718432 0.988081
v 0.000000 -0.909256 1.013121
v -0.222299 -0.909256 1.013121
v 0.000000 -0.053918 1.013121
v -0.222299 -0.053918 1.013121
v 0.222299 -0.909256 1.013121
v 0.222299 -0.053918 1.013121
v -0.222299 -0.256783 1.013121
v 0.222299 -0.256783 1.013121
v -0.222299 -0.718432 1.013121
v 0.222299 -0.718432 1.013121
vn -0.0000 -1.0000 -0.0000
vn -1.0000 -0.0000 -0.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vn -0.0562 -0.0000 0.9984
vn 0.0562 -0.0000 -0.9984
vn 0.0562 -0.0000 0.9984
vn -0.0000 -0.0266 0.9996
vn -0.0000 0.0279 -0.9996
vn -0.0562 -0.0000 -0.9984
vn -0.0000 0.0279 0.9996
vn -0.0000 -0.0266 -0.9996
vn -0.0000 -0.0267 -0.9996
vt 0.998385 0.171318
vt 0.603073 0.820081
vt 0.998385 0.205847
vt 0.559884 0.877739
vt 0.568594 0.820101
vt 0.999359 0.525138
vt 0.603073 0.954540
vt 0.559884 0.743344
vt 0.999359 0.490609
vt 0.568594 0.954560
vt 0.563323 0.703551
vt 0.998385 0.136788
vt 0.637553 0.820061
vt 0.999359 0.559668
vt 0.563323 0.569126
vt 0.637553 0.954519
vt 0.559884 0.774838
vt 0.568594 0.923051
vt 0.563323 0.600627
vt 0.637553 0.923010
vt 0.559884 0.846508
vt 0.568594 0.851348
vt 0.563323 0.672313
vt 0.637553 0.851307
vt 0.994496 0.171318
vt 0.671890 0.954576
vt 0.994496 0.205847
vt 0.563727 0.877720
vt 0.637552 0.954484
vt 0.995470 0.525138
vt 0.671890 0.820152
vt 0.995470 0.490609
vt 0.563727 0.743324
vt 0.637552 0.820061
vt 0.994496 0.136788
vt 0.559436 0.703554
vt 0.706228 0.954668
vt 0.559436 0.569129
vt 0.995470 0.559668
vt 0.706228 0.820244
vt 0.563727 0.774818
vt 0.637552 0.851561
vt 0.559436 0.600630
vt 0.706228 0.851745
vt 0.563727 0.846488
vt 0.637552 0.923246
vt 0.559436 0.672316
vt 0.706228 0.923430
vt 0.999539 0.461664
vt 0.603056 0.831988
vt 0.999539 0.432773
vt 0.980641 0.256540
vt 0.574207 0.832005
vt 0.945867 0.959580
vt 0.603056 0.943146
vt 0.980641 0.145410
vt 0.945867 0.988472
vt 0.574207 0.943163
vt 0.979390 0.381955
vt 0.999539 0.490556
vt 0.631905 0.831971
vt 0.945867 0.930689
vt 0.979390 0.270849
vt 0.631905 0.943129
vt 0.980641 0.171767
vt 0.574207 0.916799
vt 0.979390 0.297200
vt 0.631905 0.916765
vt 0.980641 0.231747
vt 0.574207 0.856804
vt 0.979390 0.357167
vt 0.631905 0.856770
vt 0.996285 0.461664
vt 0.671924 0.942661
vt 0.996285 0.432773
vt 0.977388 0.256543
vt 0.643193 0.942584
vt 0.942612 0.959580
vt 0.671924 0.831531
vt 0.942612 0.988472
vt 0.977388 0.145412
vt 0.643193 0.831454
vt 0.996285 0.490556
vt 0.982605 0.381938
vt 0.700654 0.942737
vt 0.982605 0.270832
vt 0.942612 0.930689
vt 0.700654 0.831608
vt 0.977388 0.171769
vt 0.643193 0.857812
vt 0.982605 0.297184
vt 0.700654 0.857965
vt 0.977388 0.231750
vt 0.643193 0.917791
vt 0.982605 0.357151
vt 0.700654 0.917945
s 0
usemtl Material.010
f 13/30/1 4/9/1 3/6/1
f 20/47/2 8/19/2 10/23/2
f 14/33/3 7/17/3 4/8/3
f 11/25/4 5/12/4 1/1/4
f 12/27/4 1/1/4 2/3/4
f 18/43/2 6/15/2 8/19/2
f 15/36/2 10/23/2 5/11/2
f 19/45/3 2/4/3 9/21/3
f 17/41/3 9/21/3 7/17/3
f 16/39/1 3/6/1 6/14/1
f 24/57/4 33/78/4 23/54/4
f 28/67/3 40/95/3 30/71/3
f 27/65/2 34/81/2 24/56/2
f 25/60/1 31/73/1 21/49/1
f 21/49/1 32/75/1 22/51/1
f 26/63/3 38/91/3 28/67/3
f 30/71/3 35/84/3 25/59/3
f 22/52/2 39/93/2 29/69/2
f 29/69/2 37/89/2 27/65/2
f 23/54/4 36/87/4 26/62/4
f 7/18/5 24/58/5 4/10/5
f 20/48/6 35/85/6 40/96/6
f 8/20/7 26/64/7 28/68/7
f 1/2/8 22/53/8 2/5/8
f 13/31/9 36/88/9 33/79/9
f 9/22/5 27/66/5 7/18/5
f 9/22/5 22/53/5 29/70/5
f 17/42/10 34/82/10 37/90/10
f 10/24/7 28/68/7 30/72/7
f 3/7/11 24/58/11 23/55/11
f 18/44/6 36/88/6 16/40/6
f 11/26/12 32/77/12 31/74/12
f 1/2/8 25/61/8 21/50/8
f 19/46/10 37/90/10 39/94/10
f 19/46/10 32/77/10 12/29/10
f 10/24/7 25/61/7 5/13/7
f 20/48/6 38/92/6 18/44/6
f 13/31/9 34/82/9 14/34/9
f 3/7/11 26/64/11 6/16/11
f 11/26/13 35/85/13 15/37/13
f 13/30/1 14/32/1 4/9/1
f 20/47/2 18/43/2 8/19/2
f 14/33/3 17/41/3 7/17/3
f 11/25/4 15/35/4 5/12/4
f 12/27/4 11/25/4 1/1/4
f 18/43/2 16/38/2 6/15/2
f 15/36/2 20/47/2 10/23/2
f 19/45/3 12/28/3 2/4/3
f 17/41/3 19/45/3 9/21/3
f 16/39/1 13/30/1 3/6/1
f 24/57/4 34/80/4 33/78/4
f 28/67/3 38/91/3 40/95/3
f 27/65/2 37/89/2 34/81/2
f 25/60/1 35/83/1 31/73/1
f 21/49/1 31/73/1 32/75/1
f 26/63/3 36/86/3 38/91/3
f 30/71/3 40/95/3 35/84/3
f 22/52/2 32/76/2 39/93/2
f 29/69/2 39/93/2 37/89/2
f 23/54/4 33/78/4 36/87/4
f 7/18/5 27/66/5 24/58/5
f 20/48/6 15/37/6 35/85/6
f 8/20/7 6/16/7 26/64/7
f 1/2/8 21/50/8 22/53/8
f 13/31/9 16/40/9 36/88/9
f 9/22/5 29/70/5 27/66/5
f 9/22/5 2/5/5 22/53/5
f 17/42/10 14/34/10 34/82/10
f 10/24/7 8/20/7 28/68/7
f 3/7/11 4/10/11 24/58/11
f 18/44/6 38/92/6 36/88/6
f 11/26/13 12/29/13 32/77/13
f 1/2/8 5/13/8 25/61/8
f 19/46/10 17/42/10 37/90/10
f 19/46/10 39/94/10 32/77/10
f 10/24/7 30/72/7 25/61/7
f 20/48/6 40/96/6 38/92/6
f 13/31/9 33/79/9 34/82/9
f 3/7/11 23/55/11 26/64/11
f 11/26/12 31/74/12 35/85/12

63044
cw 9/models/fan.obj Normal file

File diff suppressed because it is too large Load Diff

50246
cw 9/models/fan3.obj Normal file

File diff suppressed because it is too large Load Diff

56
cw 9/models/floor.obj Normal file
View File

@ -0,0 +1,56 @@
# Blender 3.4.1
# www.blender.org
mtllib floor.mtl
o floor
v -0.979014 -0.954197 0.970870
v -0.979014 -0.919274 0.970870
v -0.979014 -0.954197 -0.995497
v -0.979014 -0.919274 -0.995497
v 0.974673 -0.954197 0.970870
v 0.974673 -0.919274 0.970870
v 0.974673 -0.954197 -0.995497
v 0.974673 -0.919274 -0.995497
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 1.0000
vn -0.0000 -1.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vt 0.304125 0.569126
vt 0.564055 0.822669
vt 0.822507 0.564513
vt 0.308663 0.569130
vt 0.568594 0.822672
vt 0.568594 0.308954
vt 0.934841 0.564525
vt 0.822510 0.820061
vt 0.304125 0.824558
vt 0.308663 0.824561
vt 0.939378 0.564513
vt 0.568594 0.564513
vt 0.564055 0.569126
vt 0.939378 0.817001
vt 0.568594 0.564513
vt 0.943914 0.817024
vt 0.568594 0.569129
vt 0.822506 0.308951
vt 0.939378 0.564513
vt 0.934841 0.817028
vt 0.568597 0.820061
vt 0.822506 0.564511
vt 0.939378 0.817015
vt 0.943914 0.564536
s 0
usemtl Material.002
f 2/4/1 3/9/1 1/1/1
f 4/11/2 7/20/2 3/7/2
f 8/24/3 5/14/3 7/19/3
f 6/17/4 1/2/4 5/13/4
f 7/21/5 1/3/5 3/8/5
f 4/12/6 6/18/6 8/22/6
f 2/4/1 4/10/1 3/9/1
f 4/11/2 8/23/2 7/20/2
f 8/24/3 6/16/3 5/14/3
f 6/17/4 2/5/4 1/2/4
f 7/21/5 5/15/5 1/3/5
f 4/12/6 2/6/6 6/18/6

5589
cw 9/models/handle.obj Normal file

File diff suppressed because it is too large Load Diff

5587
cw 9/models/house.obj Normal file

File diff suppressed because it is too large Load Diff

14673
cw 9/models/lamp.obj Normal file

File diff suppressed because it is too large Load Diff

1007065
cw 9/models/leaves1.obj Normal file

File diff suppressed because it is too large Load Diff

630215
cw 9/models/leaves2.obj Normal file

File diff suppressed because it is too large Load Diff

827614
cw 9/models/leaves3.obj Normal file

File diff suppressed because it is too large Load Diff

17
cw 9/models/plane.obj Normal file
View File

@ -0,0 +1,17 @@
# Blender 3.4.1
# www.blender.org
mtllib plane.mtl
o Plane
v -7.821141 -0.975457 7.821141
v 7.821141 -0.975457 7.821141
v -7.821141 -0.975457 -7.821141
v 7.821141 -0.975457 -7.821141
vn -0.0000 1.0000 -0.0000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 0.000000 1.000000
vt 1.000000 1.000000
s 0
usemtl Material.004
f 2/2/1 3/3/1 1/1/1
f 2/2/1 4/4/1 3/3/1

176526
cw 9/models/plant.obj Normal file

File diff suppressed because it is too large Load Diff

31643
cw 9/models/plantleaves.obj Normal file

File diff suppressed because it is too large Load Diff

64
cw 9/models/roof.obj Normal file
View File

@ -0,0 +1,64 @@
# Blender 3.4.1
# www.blender.org
mtllib roof.mtl
o Roof
v 1.187476 0.013965 -1.187476
v 1.187476 0.013965 1.187476
v -1.187476 0.013965 -1.187476
v 0.000000 0.626859 -1.187476
v 0.000000 0.626859 1.187476
v -1.187476 0.013965 1.187476
v -1.187476 0.097868 1.187476
v -1.187476 0.097868 -1.187476
v 0.000000 0.710762 -1.187476
v 0.000000 0.710762 1.187476
v 1.187476 0.097868 1.187476
v 1.187476 0.097868 -1.187476
vn -0.4586 -0.8886 -0.0000
vn 0.4586 -0.8886 -0.0000
vn 0.4586 0.8886 -0.0000
vn -0.4586 0.8886 -0.0000
vn -0.0000 -0.0000 -1.0000
vn -0.0000 -0.0000 1.0000
vt 0.913041 0.564513
vt 0.308663 0.000815
vt 0.308663 0.309462
vt 0.302118 0.877614
vt 0.000000 0.000811
vt 0.913041 0.871461
vt 0.154434 0.000000
vt 0.833411 0.718200
vt 0.154434 0.308647
vt 0.222467 0.723460
vt 0.302118 0.569401
vt 0.000000 0.309458
vt 0.308663 0.000003
vt 0.291214 0.569394
vt 0.308663 0.308664
vt 0.902140 0.871491
vt 0.463194 0.308951
vt 0.822510 0.718229
vt 0.463194 0.000290
vt 0.211564 0.723454
vt 0.617325 0.000000
vt 0.291214 0.877608
vt 0.617325 0.308661
vt 0.902140 0.564542
s 0
usemtl Material.016
f 1/2/1 5/9/1 4/7/1
f 4/7/2 6/12/2 3/5/2
f 9/17/3 11/21/3 12/23/3
f 8/15/4 10/19/4 9/17/4
f 4/8/5 12/24/5 1/1/5
f 5/10/6 7/14/6 6/11/6
f 4/8/5 8/16/5 9/18/5
f 5/10/6 11/22/6 10/20/6
f 1/2/1 2/3/1 5/9/1
f 4/7/2 5/9/2 6/12/2
f 9/17/3 10/19/3 11/21/3
f 8/15/4 7/13/4 10/19/4
f 4/8/5 9/18/5 12/24/5
f 5/10/6 10/20/6 7/14/6
f 4/8/5 3/6/5 8/16/5
f 5/10/6 2/4/6 11/22/6

22810
cw 9/models/sofa.obj Normal file

File diff suppressed because it is too large Load Diff

2500
cw 9/models/sphere.obj Normal file

File diff suppressed because it is too large Load Diff

672
cw 9/models/table.obj Normal file
View File

@ -0,0 +1,672 @@
# Blender 3.4.1
# www.blender.org
mtllib table.mtl
o Table
v -0.998310 -0.632798 0.994568
v -1.001847 -0.632798 0.991018
v -0.998310 -0.598815 0.994568
v -0.979321 -0.595271 0.972115
v -1.001847 -0.598815 0.991018
v -1.000555 -0.632798 0.317457
v -0.997005 -0.632798 0.313920
v -0.978102 -0.595271 0.336446
v -0.997005 -0.598815 0.313920
v -1.000555 -0.598815 0.317457
v -0.578233 -0.632798 0.991830
v -0.581783 -0.632798 0.995367
v -0.600686 -0.595271 0.972841
v -0.581783 -0.598815 0.995367
v -0.578233 -0.598815 0.991830
v -0.580478 -0.632798 0.314718
v -0.576941 -0.632798 0.318269
v -0.599467 -0.595271 0.337172
v -0.576941 -0.598815 0.318269
v -0.580478 -0.598815 0.314718
v -0.997011 -0.635961 0.317464
v -0.998303 -0.635961 0.991024
v -0.580485 -0.635961 0.318262
v -0.581777 -0.635961 0.991823
v -0.977653 -0.610913 0.336816
v -0.978870 -0.610913 0.971747
v -0.599918 -0.610913 0.337540
v -0.601135 -0.610913 0.972471
v -0.978870 -0.634678 0.971747
v -0.980158 -0.635961 0.973024
v -0.978936 -0.635961 0.335534
v -0.977653 -0.634678 0.336816
v -0.599852 -0.635961 0.973753
v -0.601135 -0.634678 0.972471
v -0.598630 -0.635961 0.336263
v -0.599918 -0.634678 0.337540
v -0.998303 -0.595271 0.991024
v -0.997011 -0.595271 0.317464
v -0.580485 -0.595271 0.318262
v -0.581777 -0.595271 0.991823
v -0.639942 -1.074997 0.377072
v -0.640075 -1.072477 0.379726
v -0.642597 -1.072477 0.377195
v -0.667496 -0.610675 0.402106
v -0.664974 -0.610675 0.404638
v -0.639894 -1.074846 0.349644
v -0.642544 -1.072477 0.349723
v -0.640020 -1.072328 0.347203
v -0.664894 -0.610675 0.362724
v -0.667425 -0.610675 0.365244
v -0.612515 -1.074846 0.377129
v -0.610073 -1.072328 0.377265
v -0.612603 -1.072477 0.379779
v -0.628111 -0.610675 0.404709
v -0.625582 -0.610675 0.402187
v -0.612458 -1.073361 0.349692
v -0.612536 -1.070689 0.347256
v -0.610021 -1.070689 0.349780
v -0.625511 -0.610675 0.365324
v -0.628031 -0.610675 0.362795
v -0.937780 -1.074996 0.376501
v -0.937658 -1.072477 0.379156
v -0.935126 -1.072477 0.376634
v -0.910323 -0.610675 0.401641
v -0.912854 -0.610675 0.404163
v -0.937723 -1.074846 0.349073
v -0.935074 -1.072477 0.349162
v -0.937588 -1.072328 0.346632
v -0.912774 -0.610675 0.362249
v -0.910252 -0.610675 0.364778
v -0.965208 -1.074846 0.376453
v -0.967650 -1.072328 0.376579
v -0.965130 -1.072477 0.379103
v -0.949717 -0.610675 0.404092
v -0.952237 -0.610675 0.401560
v -0.965160 -1.073361 0.349016
v -0.965072 -1.070689 0.346580
v -0.967597 -1.070689 0.349095
v -0.952166 -0.610675 0.364698
v -0.949637 -0.610675 0.362178
v -0.641008 -1.074997 0.932786
v -0.641130 -1.072477 0.930131
v -0.643662 -1.072477 0.932653
v -0.668465 -0.610675 0.907646
v -0.665934 -0.610675 0.905124
v -0.641065 -1.074846 0.960214
v -0.643715 -1.072477 0.960125
v -0.641201 -1.072328 0.962655
v -0.666014 -0.610675 0.947038
v -0.668536 -0.610675 0.944509
v -0.613580 -1.074846 0.932834
v -0.611138 -1.072328 0.932707
v -0.613658 -1.072477 0.930184
v -0.629071 -0.610675 0.905195
v -0.626551 -0.610675 0.907727
v -0.613628 -1.073361 0.960271
v -0.613716 -1.070689 0.962707
v -0.611191 -1.070689 0.960192
v -0.626622 -0.610675 0.944589
v -0.629151 -0.610675 0.947109
v -0.938846 -1.074997 0.932215
v -0.938713 -1.072477 0.929560
v -0.936191 -1.072477 0.932092
v -0.911292 -0.610675 0.907181
v -0.913814 -0.610675 0.904649
v -0.938894 -1.074846 0.959643
v -0.936244 -1.072477 0.959564
v -0.938768 -1.072328 0.962084
v -0.913894 -0.610675 0.946563
v -0.911363 -0.610675 0.944043
v -0.966274 -1.074846 0.932158
v -0.968715 -1.072328 0.932022
v -0.966186 -1.072477 0.929508
v -0.950677 -0.610675 0.904578
v -0.953206 -0.610675 0.907100
v -0.966331 -1.073361 0.959595
v -0.966252 -1.070689 0.962031
v -0.968767 -1.070689 0.959506
v -0.953277 -0.610675 0.943963
v -0.950757 -0.610675 0.946492
vn 0.3399 0.3416 0.8762
vn -0.3400 -0.3645 0.8669
vn 0.3367 -0.3645 0.8682
vn 0.8762 0.3416 -0.3399
vn 0.8669 -0.3645 0.3400
vn 0.8682 -0.3645 -0.3367
vn -0.0000 1.0000 -0.0000
vn -0.8762 0.3416 0.3399
vn -0.8669 -0.3645 -0.3400
vn -0.8682 -0.3645 0.3367
vn -0.3399 0.3416 -0.8762
vn 0.3401 -0.3645 -0.8669
vn -0.3367 -0.3645 -0.8682
vn -0.3220 -0.8907 0.3208
vn -0.3433 0.3416 0.8749
vn -0.3422 0.8756 0.3409
vn -0.3208 -0.8907 -0.3220
vn -0.3409 0.8756 -0.3422
vn -0.8749 0.3416 -0.3433
vn 0.3208 -0.8907 0.3220
vn 0.3409 0.8756 0.3422
vn 0.8749 0.3416 0.3433
vn 0.3220 -0.8907 -0.3208
vn 0.3422 0.8756 -0.3409
vn 0.3433 0.3416 -0.8749
vn 0.5795 -0.5742 -0.5783
vn -0.5762 -0.5774 -0.5785
vn -0.5773 -0.5743 -0.5805
vn -0.1099 -0.9878 -0.1102
vn -0.5785 -0.5774 0.5762
vn -0.5795 -0.5742 0.5783
vn 0.1099 -0.9878 0.1102
vn 0.5785 -0.5774 -0.5762
vn 0.5762 -0.5774 0.5785
vn 0.1103 -0.9878 -0.1098
vn 0.5773 -0.5743 0.5805
vn -0.1103 -0.9878 0.1098
vn 0.3694 -0.0377 0.9285
vn -0.3351 -0.3875 0.8588
vn 0.3444 -0.3806 0.8582
vn 0.9255 0.0438 -0.3763
vn 0.8827 -0.3382 0.3262
vn 0.8883 -0.2914 -0.3550
vn -0.3228 -0.3380 -0.8840
vn 0.3799 0.0439 -0.9240
vn 0.3584 -0.2913 -0.8869
vn -0.8601 -0.3874 0.3318
vn -0.9271 -0.0374 -0.3729
vn -0.8570 -0.3804 -0.3477
vn -0.3260 -0.8879 0.3247
vn -0.2999 -0.8841 -0.3584
vn 0.3572 -0.8841 0.3012
vn 0.3838 -0.8405 -0.3824
vn -0.9197 -0.0704 0.3864
vn -0.3948 0.0096 -0.9187
vn 0.9172 0.0093 0.3983
vn 0.3318 -0.3875 0.8601
vn -0.3729 -0.0377 0.9271
vn -0.3477 -0.3806 0.8569
vn -0.8840 -0.3382 0.3228
vn -0.9240 0.0438 -0.3798
vn -0.8869 -0.2914 -0.3584
vn 0.3262 -0.3380 -0.8828
vn -0.3764 0.0439 -0.9254
vn 0.3983 0.0096 -0.9172
vn 0.8588 -0.3874 0.3351
vn 0.9285 -0.0374 -0.3693
vn 0.9182 -0.0704 0.3899
vn 0.3247 -0.8879 0.3259
vn 0.3013 -0.8841 -0.3573
vn 0.8583 -0.3804 -0.3444
vn -0.3583 -0.8841 0.2998
vn -0.3824 -0.8405 -0.3839
vn -0.3550 -0.2913 -0.8883
vn 0.3863 -0.0705 0.9197
vn -0.9187 0.0093 0.3948
vn -0.3318 -0.3875 -0.8601
vn 0.3729 -0.0377 -0.9271
vn 0.3477 -0.3806 -0.8569
vn 0.8840 -0.3382 -0.3228
vn 0.9240 0.0438 0.3798
vn 0.8869 -0.2914 0.3584
vn -0.3262 -0.3380 0.8828
vn 0.3764 0.0439 0.9254
vn -0.3983 0.0096 0.9172
vn -0.8588 -0.3874 -0.3351
vn -0.9286 -0.0374 0.3693
vn -0.9182 -0.0704 -0.3899
vn -0.3247 -0.8879 -0.3259
vn -0.3013 -0.8841 0.3573
vn -0.8583 -0.3804 0.3444
vn 0.3583 -0.8841 -0.2998
vn 0.3824 -0.8405 0.3839
vn 0.3550 -0.2913 0.8883
vn -0.3863 -0.0706 -0.9197
vn 0.9187 0.0093 -0.3948
vn -0.3693 -0.0377 -0.9285
vn 0.3351 -0.3875 -0.8588
vn -0.3444 -0.3806 -0.8582
vn -0.9255 0.0438 0.3763
vn -0.8827 -0.3382 -0.3262
vn -0.8883 -0.2914 0.3550
vn 0.3228 -0.3380 0.8840
vn -0.3799 0.0439 0.9240
vn -0.3584 -0.2913 0.8869
vn 0.8601 -0.3874 -0.3318
vn 0.9271 -0.0374 0.3729
vn 0.8570 -0.3804 0.3477
vn 0.3260 -0.8879 -0.3247
vn 0.2999 -0.8841 0.3584
vn -0.3572 -0.8841 -0.3012
vn -0.3838 -0.8405 0.3824
vn 0.9197 -0.0704 -0.3864
vn 0.3948 0.0096 0.9187
vn -0.9172 0.0093 -0.3983
vn -0.3898 -0.0705 0.9182
vn 0.3898 -0.0705 -0.9182
vt 0.303787 0.824561
vt 0.249609 0.992443
vt 0.439015 0.828766
vt 0.439476 0.829226
vt 0.303775 0.825037
vt 0.308202 0.824565
vt 0.254026 0.992445
vt 0.441939 0.831228
vt 0.308191 0.825041
vt 0.303775 0.912528
vt 0.439476 0.916762
vt 0.998206 0.917019
vt 0.998194 0.916512
vt 0.439015 0.917222
vt 0.441939 0.913843
vt 0.993779 0.916523
vt 0.439476 0.916764
vt 0.308191 0.912531
vt 0.993791 0.917030
vt 0.972353 0.395940
vt 0.384420 0.829225
vt 0.249614 0.937907
vt 0.249609 0.938393
vt 0.384881 0.828765
vt 0.491149 0.831227
vt 0.254026 0.938396
vt 0.976767 0.395963
vt 0.254031 0.937910
vt 0.998206 0.862689
vt 0.384881 0.917222
vt 0.972368 0.308951
vt 0.972353 0.309478
vt 0.384420 0.916761
vt 0.491149 0.913842
vt 0.976767 0.309501
vt 0.993791 0.862701
vt 0.493610 0.916763
vt 0.976783 0.308974
vt 0.439015 0.916757
vt 0.439015 0.829222
vt 0.384881 0.916757
vt 0.384881 0.829221
vt 0.871603 0.954006
vt 0.305491 0.422326
vt 0.435777 0.998725
vt 0.997754 0.087821
vt 0.871603 0.871491
vt 0.435777 0.917222
vt 0.510156 0.992346
vt 0.822510 0.954006
vt 0.305491 0.471343
vt 0.997754 0.136631
vt 0.510156 0.909873
vt 0.822510 0.871490
vt 0.438864 0.917238
vt 0.994667 0.087830
vt 0.436494 0.831734
vt 0.436662 0.831566
vt 0.994496 0.087646
vt 0.436662 0.914414
vt 0.308580 0.422328
vt 0.436494 0.914249
vt 0.438864 0.998741
vt 0.387235 0.831565
vt 0.994496 0.136788
vt 0.387402 0.831733
vt 0.507068 0.909870
vt 0.994667 0.136640
vt 0.387235 0.914413
vt 0.507068 0.992343
vt 0.308580 0.471344
vt 0.387402 0.914248
vt 0.308663 0.825026
vt 0.254491 0.992420
vt 0.439477 0.828765
vt 0.993330 0.916574
vt 0.308663 0.912516
vt 0.439477 0.916305
vt 0.977243 0.309431
vt 0.493611 0.916304
vt 0.254491 0.938370
vt 0.977243 0.395893
vt 0.493611 0.828765
vt 0.944259 0.813133
vt 0.943917 0.813117
vt 0.988647 0.631492
vt 0.989833 0.141414
vt 0.990172 0.141433
vt 0.944246 0.812789
vt 0.988953 0.081446
vt 0.987430 0.691558
vt 0.988614 0.081428
vt 0.987543 0.852529
vt 0.947823 0.813135
vt 0.993739 0.141544
vt 0.947816 0.812791
vt 0.987215 0.852203
vt 0.987577 0.852195
vt 0.987251 0.792160
vt 0.986889 0.792148
vt 0.993739 0.081595
vt 0.993577 0.205847
vt 0.944256 0.816698
vt 0.944242 0.817016
vt 0.993629 0.205527
vt 0.992556 0.631370
vt 0.992210 0.631360
vt 0.943914 0.816687
vt 0.992210 0.691381
vt 0.993629 0.145410
vt 0.992556 0.691372
vt 0.991093 0.852529
vt 0.990051 0.205842
vt 0.947823 0.816701
vt 0.991134 0.852175
vt 0.989721 0.205512
vt 0.990095 0.205503
vt 0.988904 0.145661
vt 0.992007 0.792419
vt 0.988528 0.145670
vt 0.948168 0.816670
vt 0.989610 0.757782
vt 0.947826 0.816687
vt 0.989109 0.923766
vt 0.948155 0.817016
vt 0.989264 0.757768
vt 0.987906 0.983769
vt 0.988046 0.697725
vt 0.988392 0.697739
vt 0.992684 0.923302
vt 0.992079 0.413636
vt 0.951732 0.816668
vt 0.951725 0.817013
vt 0.992632 0.923601
vt 0.993008 0.923613
vt 0.992113 0.413299
vt 0.992113 0.353303
vt 0.993008 0.983540
vt 0.992632 0.983546
vt 0.985578 0.560130
vt 0.948165 0.813106
vt 0.948151 0.812789
vt 0.985590 0.559810
vt 0.993173 0.757888
vt 0.985251 0.559803
vt 0.947823 0.813117
vt 0.985244 0.499665
vt 0.993173 0.697882
vt 0.985582 0.499691
vt 0.951732 0.813103
vt 0.988528 0.413610
vt 0.989148 0.560130
vt 0.988555 0.413254
vt 0.988195 0.413279
vt 0.989166 0.559791
vt 0.986994 0.353553
vt 0.990363 0.499950
vt 0.987355 0.353528
vt 0.987906 0.862689
vt 0.816384 0.863454
vt 0.987869 0.863024
vt 0.816368 0.863106
vt 0.989833 0.021424
vt 0.816040 0.863434
vt 0.988231 0.863034
vt 0.988614 0.081428
vt 0.988231 0.923192
vt 0.987869 0.923182
vt 0.991676 0.331258
vt 0.816383 0.867019
vt 0.816039 0.867005
vt 0.993399 0.021294
vt 0.816366 0.867333
vt 0.993738 0.021309
vt 0.991694 0.330933
vt 0.991694 0.270832
vt 0.993738 0.081249
vt 0.993399 0.081254
vt 0.993007 0.862689
vt 0.819949 0.863455
vt 0.992956 0.863004
vt 0.984324 0.862846
vt 0.993330 0.863015
vt 0.819938 0.863107
vt 0.993330 0.923153
vt 0.983112 0.922942
vt 0.992956 0.923122
vt 0.819949 0.867018
vt 0.988111 0.331251
vt 0.989479 0.862694
vt 0.988122 0.330907
vt 0.987777 0.330921
vt 0.989420 0.863028
vt 0.986572 0.271097
vt 0.988231 0.922870
vt 0.986917 0.271083
vt 0.556631 0.972926
vt 0.556614 0.973275
vt 0.979203 0.863137
vt 0.991568 0.559580
vt 0.991944 0.559598
vt 0.556285 0.972946
vt 0.990739 0.499683
vt 0.977991 0.923302
vt 0.990363 0.499665
vt 0.985616 0.499665
vt 0.556630 0.969362
vt 0.995470 0.559668
vt 0.556285 0.969376
vt 0.985289 0.499339
vt 0.985634 0.499342
vt 0.985589 0.439233
vt 0.985244 0.439211
vt 0.995470 0.499777
vt 0.982786 0.862689
vt 0.991695 0.624950
vt 0.560195 0.972927
vt 0.991706 0.624630
vt 0.983112 0.863006
vt 0.982750 0.863008
vt 0.560184 0.973275
vt 0.982751 0.923129
vt 0.991706 0.564513
vt 0.983112 0.923107
vt 0.989182 0.499665
vt 0.988126 0.624949
vt 0.560196 0.969363
vt 0.989207 0.499322
vt 0.987792 0.624619
vt 0.988130 0.624609
vt 0.986925 0.564770
vt 0.990366 0.439492
vt 0.986586 0.564780
s 1
usemtl wooden_table_02
f 14/26/1 1/2/2 12/23/3
f 19/35/4 11/20/5 17/32/6
f 8/15/7 13/25/7 18/34/7
f 5/9/8 6/10/9 2/5/10
f 9/16/11 16/29/12 7/13/13
f 22/40/14 1/3/2 2/4/10
f 3/6/15 37/73/16 5/9/8
f 21/39/17 6/11/9 7/14/13
f 38/76/18 9/16/11 10/19/19
f 24/42/20 11/21/5 12/24/3
f 40/81/21 14/26/1 15/28/22
f 23/41/23 16/30/12 17/33/6
f 39/79/24 19/35/4 20/38/25
f 22/40/14 6/11/9 21/39/17
f 3/6/15 2/5/10 1/1/2
f 38/77/18 5/9/8 37/73/16
f 7/13/13 10/19/19 9/16/11
f 21/39/17 16/30/12 23/41/23
f 39/80/24 9/17/11 38/78/18
f 17/32/6 20/38/25 19/35/4
f 23/41/23 11/21/5 24/42/20
f 40/82/21 19/35/4 39/79/24
f 12/23/3 15/28/22 14/26/1
f 24/42/20 1/3/2 22/40/14
f 37/74/16 14/26/1 40/81/21
f 29/56/26 28/52/27 34/68/28
f 33/64/29 23/41/23 24/42/20
f 34/67/28 27/49/30 36/70/31
f 31/60/32 22/40/14 21/39/17
f 27/50/30 26/47/33 25/43/34
f 33/64/29 22/40/14 30/58/35
f 36/71/31 25/44/34 32/61/36
f 31/60/32 23/41/23 35/69/37
f 29/57/26 31/60/32 32/62/36
f 32/62/36 35/69/37 36/72/31
f 36/72/31 33/64/29 34/66/28
f 34/68/28 30/59/35 29/56/26
f 32/63/36 26/48/33 29/55/26
f 8/15/7 37/75/16 4/8/7
f 18/34/7 38/78/18 8/15/7
f 13/25/7 39/80/24 18/34/7
f 4/8/7 40/83/21 13/25/7
f 54/109/38 42/86/39 53/107/40
f 59/118/41 52/105/42 58/117/43
f 48/98/44 60/119/45 57/115/46
f 43/88/47 50/101/48 47/95/49
f 41/84/50 42/85/39 43/89/47
f 46/93/51 47/97/49 48/98/44
f 51/103/52 52/104/42 53/108/40
f 56/113/53 57/116/46 58/117/43
f 41/84/50 47/96/49 46/94/51
f 42/87/39 44/90/54 43/88/47
f 49/99/55 47/97/49 50/100/48
f 56/112/53 48/98/44 57/115/46
f 58/117/43 60/120/45 59/118/41
f 56/113/53 52/105/42 51/102/52
f 53/107/40 55/111/56 54/109/38
f 41/84/50 53/108/40 42/85/39
f 46/94/51 51/103/52 41/84/50
f 62/122/57 74/148/58 73/144/59
f 72/143/60 79/157/61 78/155/62
f 68/136/63 80/158/64 69/137/65
f 63/124/66 70/139/67 64/127/68
f 61/121/69 63/125/66 62/123/57
f 66/130/70 68/135/63 67/134/71
f 71/141/72 73/146/59 72/142/60
f 76/151/73 78/154/62 77/153/74
f 67/133/71 61/121/69 66/132/70
f 62/122/57 64/128/68 65/129/75
f 69/138/65 67/134/71 68/135/63
f 76/151/73 68/136/63 66/131/70
f 80/158/64 78/154/62 79/156/61
f 72/143/60 76/152/73 71/140/72
f 75/149/76 73/145/59 74/147/58
f 61/121/69 73/146/59 71/141/72
f 66/132/70 71/141/72 76/150/73
f 82/161/77 94/186/78 93/182/79
f 92/181/80 99/195/81 98/193/82
f 88/175/83 100/196/84 89/176/85
f 83/163/86 90/178/87 84/166/88
f 81/159/89 83/165/86 82/161/77
f 86/170/90 88/173/83 87/171/91
f 91/179/92 93/183/79 92/181/80
f 96/189/93 98/192/82 97/191/94
f 87/171/91 81/160/89 86/170/90
f 82/161/77 84/167/88 85/168/95
f 89/177/85 87/172/91 88/174/83
f 96/189/93 88/175/83 86/169/90
f 100/196/84 98/192/82 99/194/81
f 92/181/80 96/190/93 91/179/92
f 95/187/96 93/183/79 94/185/78
f 81/160/89 93/184/79 91/180/92
f 86/170/90 91/180/92 96/188/93
f 114/222/97 102/199/98 113/220/99
f 119/231/100 112/218/101 118/230/102
f 108/211/103 120/232/104 117/228/105
f 103/201/106 110/214/107 107/208/108
f 101/197/109 102/198/98 103/202/106
f 106/206/110 107/210/108 108/211/103
f 111/215/111 112/219/101 113/220/99
f 116/226/112 117/229/105 118/230/102
f 101/197/109 107/209/108 106/207/110
f 102/200/98 104/203/113 103/201/106
f 109/212/114 107/210/108 110/213/107
f 116/225/112 108/211/103 117/228/105
f 118/230/102 120/233/104 119/231/100
f 116/226/112 112/218/101 111/216/111
f 113/220/99 115/224/115 114/222/97
f 101/197/109 113/221/99 102/198/98
f 106/207/110 111/217/111 101/197/109
f 14/26/1 3/7/15 1/2/2
f 19/35/4 15/27/22 11/20/5
f 8/15/7 4/8/7 13/25/7
f 5/9/8 10/18/19 6/10/9
f 9/16/11 20/36/25 16/29/12
f 22/40/14 2/4/10 6/11/9
f 3/6/15 5/9/8 2/5/10
f 38/77/18 10/18/19 5/9/8
f 7/13/13 6/12/9 10/19/19
f 21/39/17 7/14/13 16/30/12
f 39/80/24 20/37/25 9/17/11
f 17/32/6 16/31/12 20/38/25
f 23/41/23 17/33/6 11/21/5
f 40/82/21 15/27/22 19/35/4
f 12/23/3 11/22/5 15/28/22
f 24/42/20 12/24/3 1/3/2
f 37/74/16 3/7/15 14/26/1
f 29/56/26 26/46/33 28/52/27
f 33/64/29 35/69/37 23/41/23
f 34/67/28 28/53/27 27/49/30
f 31/60/32 30/58/35 22/40/14
f 27/50/30 28/54/27 26/47/33
f 33/64/29 24/42/20 22/40/14
f 36/71/31 27/51/30 25/44/34
f 31/60/32 21/39/17 23/41/23
f 29/57/26 30/58/35 31/60/32
f 32/62/36 31/60/32 35/69/37
f 36/72/31 35/69/37 33/64/29
f 34/68/28 33/65/29 30/59/35
f 32/63/36 25/45/34 26/48/33
f 8/15/7 38/78/18 37/75/16
f 18/34/7 39/80/24 38/78/18
f 13/25/7 40/83/21 39/80/24
f 4/8/7 37/75/16 40/83/21
f 54/109/38 45/91/116 42/86/39
f 59/118/41 55/110/56 52/105/42
f 48/98/44 49/99/55 60/119/45
f 43/88/47 44/90/54 50/101/48
f 41/84/50 43/89/47 47/96/49
f 42/87/39 45/92/116 44/90/54
f 49/99/55 48/98/44 47/97/49
f 56/112/53 46/93/51 48/98/44
f 58/117/43 57/116/46 60/120/45
f 56/113/53 58/117/43 52/105/42
f 53/107/40 52/106/42 55/111/56
f 41/84/50 51/103/52 53/108/40
f 46/94/51 56/114/53 51/103/52
f 62/122/57 65/129/75 74/148/58
f 72/143/60 75/149/76 79/157/61
f 68/136/63 77/153/74 80/158/64
f 63/124/66 67/134/71 70/139/67
f 67/133/71 63/125/66 61/121/69
f 62/122/57 63/126/66 64/128/68
f 69/138/65 70/139/67 67/134/71
f 76/151/73 77/153/74 68/136/63
f 80/158/64 77/153/74 78/154/62
f 72/143/60 78/155/62 76/152/73
f 75/149/76 72/143/60 73/145/59
f 61/121/69 62/123/57 73/146/59
f 66/132/70 61/121/69 71/141/72
f 82/161/77 85/168/95 94/186/78
f 92/181/80 95/187/96 99/195/81
f 88/175/83 97/191/94 100/196/84
f 83/163/86 87/172/91 90/178/87
f 87/171/91 83/164/86 81/160/89
f 82/161/77 83/165/86 84/167/88
f 89/177/85 90/178/87 87/172/91
f 96/189/93 97/191/94 88/175/83
f 100/196/84 97/191/94 98/192/82
f 92/181/80 98/193/82 96/190/93
f 95/187/96 92/181/80 93/183/79
f 81/160/89 82/162/77 93/184/79
f 86/170/90 81/160/89 91/180/92
f 114/222/97 105/204/117 102/199/98
f 119/231/100 115/223/115 112/218/101
f 108/211/103 109/212/114 120/232/104
f 103/201/106 104/203/113 110/214/107
f 101/197/109 103/202/106 107/209/108
f 102/200/98 105/205/117 104/203/113
f 109/212/114 108/211/103 107/210/108
f 116/225/112 106/206/110 108/211/103
f 118/230/102 117/229/105 120/233/104
f 116/226/112 118/230/102 112/218/101
f 113/220/99 112/219/101 115/224/115
f 101/197/109 111/217/111 113/221/99
f 106/207/110 116/227/112 111/217/111

17
cw 9/models/terrain.obj Normal file
View File

@ -0,0 +1,17 @@
# Blender 3.4.1
# www.blender.org
mtllib terrain.mtl
o Plane
v -7.821141 -0.975457 7.821141
v 7.821141 -0.975457 7.821141
v -7.821141 -0.975457 -7.821141
v 7.821141 -0.975457 -7.821141
vn -0.0000 1.0000 -0.0000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 0.000000 1.000000
vt 1.000000 1.000000
s 0
usemtl Material.004
f 2/2/1 3/3/1 1/1/1
f 2/2/1 4/4/1 3/3/1

401584
cw 9/models/tree1.obj Normal file

File diff suppressed because it is too large Load Diff

438550
cw 9/models/tree2.obj Normal file

File diff suppressed because it is too large Load Diff

294980
cw 9/models/tree3.obj Normal file

File diff suppressed because it is too large Load Diff

178
cw 9/models/window.obj Normal file
View File

@ -0,0 +1,178 @@
# Blender v3.2.1 OBJ File: 'untitled.blend'
# www.blender.org
mtllib window.mtl
o window_Cube.007
v -1.800000 1.970000 0.750000
v -1.800000 1.970000 -0.250000
v -1.800000 1.015374 0.750000
v -1.800000 1.015374 -0.250000
v -1.831872 1.970000 0.750000
v -1.831872 1.970000 -0.250000
v -1.831872 1.015374 0.750000
v -1.831872 1.015374 -0.250000
v -1.801075 1.937813 -0.216283
v -1.801075 1.937813 0.716284
v -1.801075 1.047560 0.716284
v -1.801075 1.047560 -0.216283
v -1.830798 1.937813 -0.216283
v -1.830798 1.937813 0.716284
v -1.830798 1.047560 0.716284
v -1.830798 1.047560 -0.216283
v -1.800000 1.492687 0.750000
v -1.831872 1.492687 0.750000
v -1.801075 1.492687 0.716284
v -1.830798 1.492687 0.716284
v -1.800000 1.492687 -0.250000
v -1.831872 1.492687 -0.250000
v -1.801075 1.492687 -0.216283
v -1.830798 1.492687 -0.216283
v -1.800000 1.970000 0.250000
v -1.831872 1.970000 0.250000
v -1.801075 1.937813 0.250000
v -1.830798 1.937813 0.250000
v -1.800000 1.015374 0.250000
v -1.831872 1.015374 0.250000
v -1.801075 1.047560 0.250000
v -1.830798 1.047560 0.250000
v -1.815936 1.047560 0.716284
v -1.815936 1.047560 -0.216283
v -1.815936 1.937813 0.716284
v -1.815936 1.937813 -0.216283
v -1.830748 1.492687 0.716284
v -1.815936 1.512226 0.716284
v -1.801125 1.492687 0.716284
v -1.815936 1.473148 0.716284
v -1.830748 1.492687 -0.216283
v -1.815936 1.512226 -0.216283
v -1.801125 1.492687 -0.216283
v -1.815936 1.473148 -0.216283
v -1.830748 1.937813 0.250000
v -1.815936 1.937813 0.269539
v -1.801125 1.937813 0.250000
v -1.815936 1.937813 0.230461
v -1.830748 1.047560 0.250000
v -1.815936 1.047560 0.269539
v -1.801125 1.047560 0.250000
v -1.815936 1.047560 0.230461
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vt 0.000000 0.000000
vn 0.0000 -1.0000 0.0000
vn 0.0000 0.0000 1.0000
vn 0.0000 0.0000 -1.0000
vn 0.0000 1.0000 0.0000
vn -0.9994 -0.0334 0.0000
vn 0.9995 0.0000 0.0319
vn 0.9994 -0.0334 0.0000
vn -0.9994 0.0334 0.0000
vn -0.9995 0.0000 -0.0319
vn 0.9994 0.0334 0.0000
vn 0.9995 0.0000 -0.0319
vn -0.9995 0.0000 0.0319
vn 0.7969 0.0000 -0.6041
vn 0.7969 0.0000 0.6041
vn 0.7969 0.6041 0.0000
vn 0.7969 -0.6041 0.0000
vn -0.7969 -0.6041 0.0000
vn -0.7969 0.6041 0.0000
vn -0.7969 0.0000 -0.6041
vn -0.7969 0.0000 0.6041
usemtl Material.005
s off
f 29/1/1 30/2/1 8/3/1 4/4/1
f 17/5/2 18/6/2 7/7/2 3/8/2
f 21/9/3 4/4/3 8/3/3 22/10/3
f 25/11/4 2/12/4 6/13/4 26/14/4
f 36/15/2 13/16/2 24/17/2 41/18/2 42/19/2
f 35/20/1 14/21/1 28/22/1 45/23/1 46/24/1
f 33/25/4 50/26/4 49/27/4 32/28/4 15/29/4
f 26/14/5 28/22/5 14/21/5 5/30/5
f 21/9/6 23/31/6 12/32/6 4/4/6
f 25/11/7 27/33/7 9/34/7 2/12/7
f 30/2/8 7/7/8 15/29/8 32/28/8
f 18/6/9 5/30/9 14/21/9 20/35/9
f 29/1/10 4/4/10 12/32/10 31/36/10
f 17/5/11 3/8/11 11/37/11 19/38/11
f 22/10/12 24/17/12 13/16/12 6/13/12
f 1/39/11 17/5/11 19/38/11 10/40/11
f 7/7/9 18/6/9 20/35/9 15/29/9
f 19/38/3 11/37/3 33/25/3 40/41/3 39/42/3
f 1/39/2 5/30/2 18/6/2 17/5/2
f 8/3/12 16/43/12 24/17/12 22/10/12
f 2/12/6 9/34/6 23/31/6 21/9/6
f 23/31/2 43/44/2 44/45/2 34/46/2 12/32/2
f 2/12/3 21/9/3 22/10/3 6/13/3
f 1/39/7 10/40/7 27/33/7 25/11/7
f 6/13/5 13/16/5 28/22/5 26/14/5
f 27/33/1 47/47/1 48/48/1 36/15/1 9/34/1
f 1/39/4 25/11/4 26/14/4 5/30/4
f 3/8/10 29/1/10 31/36/10 11/37/10
f 8/3/8 30/2/8 32/28/8 16/43/8
f 31/36/4 12/32/4 34/46/4 52/49/4 51/50/4
f 3/8/1 7/7/1 30/2/1 29/1/1
f 49/27/4 52/49/4 34/46/4 16/43/4 32/28/4
f 45/23/1 28/22/1 13/16/1 36/15/1 48/48/1
f 41/18/2 24/17/2 16/43/2 34/46/2 44/45/2
f 37/51/3 40/41/3 33/25/3 15/29/3 20/35/3
f 10/40/1 35/20/1 46/24/1 47/47/1 27/33/1
f 9/34/2 36/15/2 42/19/2 43/44/2 23/31/2
f 10/40/3 19/38/3 39/42/3 38/52/3 35/20/3
f 11/37/4 31/36/4 51/50/4 50/26/4 33/25/4
f 47/47/13 51/50/13 52/49/13 48/48/13
f 46/24/14 50/26/14 51/50/14 47/47/14
f 35/20/3 38/52/3 37/51/3 20/35/3 14/21/3
f 38/52/15 39/42/15 43/44/15 42/19/15
f 39/42/16 40/41/16 44/45/16 43/44/16
f 40/41/17 37/51/17 41/18/17 44/45/17
f 37/51/18 38/52/18 42/19/18 41/18/18
f 48/48/19 52/49/19 49/27/19 45/23/19
f 45/23/20 49/27/20 50/26/20 46/24/20

197
cw 9/models/window1.obj Normal file
View File

@ -0,0 +1,197 @@
# Blender 3.4.1
# www.blender.org
mtllib window1.mtl
o Window1
v 0.312093 -0.145891 1.031836
v 0.905633 -0.145891 1.031836
v 0.312093 -0.728980 1.031836
v 0.905633 -0.728980 1.031836
v 0.312093 -0.145891 0.958051
v 0.905633 -0.145891 0.958051
v 0.312093 -0.728980 0.958051
v 0.905633 -0.728980 0.958051
v 0.360588 -0.193532 1.031836
v 0.857138 -0.193532 1.031836
v 0.360588 -0.681339 1.031836
v 0.857138 -0.681339 1.031836
v 0.360588 -0.193532 0.958051
v 0.857138 -0.193532 0.958051
v 0.360588 -0.681339 0.958051
v 0.857138 -0.681339 0.958051
v 0.631333 -0.173526 0.979934
v 0.631333 -0.696253 0.979934
v 0.631333 -0.173526 1.010470
v 0.631333 -0.696253 1.010470
v 0.600796 -0.173526 0.979934
v 0.600796 -0.696253 0.979934
v 0.600796 -0.173526 1.010470
v 0.600796 -0.696253 1.010470
v 0.882266 -0.452668 0.979943
v 0.357878 -0.452668 0.979943
v 0.882266 -0.452668 1.010461
v 0.357878 -0.452668 1.010461
v 0.882266 -0.422150 0.979943
v 0.357878 -0.422150 0.979943
v 0.882266 -0.422150 1.010461
v 0.357878 -0.422150 1.010461
vn -0.0000 1.0000 -0.0000
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -1.0000 -0.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn -0.0000 -0.0000 1.0000
vt 0.953315 0.516351
vt 0.957672 0.873036
vt 0.177259 0.905341
vt 0.953315 0.439211
vt 0.967811 0.145410
vt 0.177259 0.828313
vt 0.955085 0.705065
vt 0.957672 0.948794
vt 0.101482 0.905296
vt 0.967811 0.221151
vt 0.955085 0.782205
vt 0.101482 0.828268
vt 0.962904 0.516351
vt 0.967256 0.873028
vt 0.384420 0.828765
vt 0.962904 0.439211
vt 0.958337 0.145458
vt 0.384420 0.905476
vt 0.967256 0.948786
vt 0.964674 0.705065
vt 0.308663 0.828967
vt 0.964674 0.782205
vt 0.958337 0.221199
vt 0.308663 0.905679
vt 0.974594 0.063386
vt 0.519745 0.974405
vt 0.171068 0.899044
vt 0.519745 0.909870
vt 0.965120 0.000008
vt 0.171068 0.834603
vt 0.974264 0.705065
vt 0.974594 0.126751
vt 0.107674 0.899006
vt 0.965120 0.063386
vt 0.974264 0.769600
vt 0.107674 0.834566
vt 0.510156 0.974405
vt 0.965120 0.063435
vt 0.378230 0.835049
vt 0.510156 0.909870
vt 0.974705 0.000000
vt 0.378230 0.899225
vt 0.965120 0.126799
vt 0.964674 0.705065
vt 0.314853 0.835218
vt 0.964674 0.769600
vt 0.974705 0.063379
vt 0.314853 0.899395
vt 0.996975 0.923302
vt 0.993173 0.697728
vt 0.970132 0.438109
vt 0.996975 0.991217
vt 0.993173 0.765660
vt 0.966873 0.512060
vt 0.995973 0.860064
vt 0.966164 0.438109
vt 0.993008 0.923305
vt 0.993008 0.991221
vt 0.995973 0.792148
vt 0.962904 0.512060
vt 0.997136 0.697725
vt 0.996079 0.353323
vt 0.970132 0.434140
vt 0.996079 0.421224
vt 0.997136 0.765658
vt 0.966873 0.516029
vt 1.000000 0.353303
vt 0.999920 0.860074
vt 0.966164 0.434140
vt 0.962904 0.516029
vt 0.999920 0.792159
vt 1.000000 0.421204
vt 0.992007 0.860301
vt 0.996522 0.691558
vt 0.970837 0.516025
vt 0.992007 0.792148
vt 0.996522 0.623505
vt 0.110899 0.973187
vt 0.993738 0.081428
vt 0.966873 0.516028
vt 0.995973 0.860301
vt 0.995973 0.792148
vt 0.993738 0.013654
vt 0.114818 0.973167
vt 0.992556 0.691556
vt 0.996079 0.421456
vt 0.970837 0.512060
vt 0.996079 0.353303
vt 0.992556 0.623502
vt 0.110899 0.969223
vt 0.992113 0.421456
vt 0.997703 0.081417
vt 0.966873 0.512063
vt 0.114818 0.969203
vt 0.997703 0.013643
vt 0.992113 0.353303
s 0
usemtl Material.016
f 2/4/1 5/13/1 1/1/1
f 5/14/2 3/8/2 1/2/2
f 7/20/3 4/11/3 3/7/3
f 8/23/4 2/5/4 4/10/4
f 9/26/3 14/40/3 10/28/3
f 11/32/4 13/38/4 9/25/4
f 12/35/1 15/44/1 11/31/1
f 10/29/2 16/47/2 12/34/2
f 7/21/5 13/39/5 15/45/5
f 1/3/6 10/30/6 2/6/6
f 3/9/6 9/27/6 1/3/6
f 7/21/5 16/48/5 8/24/5
f 8/24/5 14/42/5 6/18/5
f 4/12/6 11/33/6 3/9/6
f 2/6/6 12/36/6 4/12/6
f 6/18/5 13/39/5 5/15/5
f 2/4/1 6/16/1 5/13/1
f 5/14/2 7/19/2 3/8/2
f 7/20/3 8/22/3 4/11/3
f 8/23/4 6/17/4 2/5/4
f 9/26/3 13/37/3 14/40/3
f 11/32/4 15/43/4 13/38/4
f 12/35/1 16/46/1 15/44/1
f 10/29/2 14/41/2 16/47/2
f 7/21/5 5/15/5 13/39/5
f 1/3/6 9/27/6 10/30/6
f 3/9/6 11/33/6 9/27/6
f 7/21/5 15/45/5 16/48/5
f 8/24/5 16/48/5 14/42/5
f 4/12/6 12/36/6 11/33/6
f 2/6/6 10/30/6 12/36/6
f 6/18/5 14/42/5 13/39/5
usemtl Material.017
f 18/52/2 19/57/2 17/49/2
f 20/59/5 23/68/5 19/55/5
f 24/72/4 21/62/4 23/67/4
f 22/65/6 17/50/6 21/61/6
f 23/69/3 17/51/3 19/56/3
f 20/60/1 22/66/1 24/70/1
f 26/76/1 27/81/1 25/73/1
f 28/83/5 31/92/5 27/79/5
f 32/96/3 29/86/3 31/91/3
f 30/89/6 25/74/6 29/85/6
f 31/93/2 25/75/2 27/80/2
f 28/84/4 30/90/4 32/94/4
f 18/52/2 20/58/2 19/57/2
f 20/59/5 24/71/5 23/68/5
f 24/72/4 22/64/4 21/62/4
f 22/65/6 18/53/6 17/50/6
f 23/69/3 21/63/3 17/51/3
f 20/60/1 18/54/1 22/66/1
f 26/76/1 28/82/1 27/81/1
f 28/83/5 32/95/5 31/92/5
f 32/96/3 30/88/3 29/86/3
f 30/89/6 26/77/6 25/74/6
f 31/93/2 29/87/2 25/75/2
f 28/84/4 26/78/4 30/90/4

100
cw 9/models/window1_1.obj Normal file
View File

@ -0,0 +1,100 @@
# Blender 3.4.1
# www.blender.org
mtllib window1_1.mtl
o Window1_1
v 0.631333 -0.173526 0.979934
v 0.631333 -0.696253 0.979934
v 0.631333 -0.173526 1.010470
v 0.631333 -0.696253 1.010470
v 0.600796 -0.173526 0.979934
v 0.600796 -0.696253 0.979934
v 0.600796 -0.173526 1.010470
v 0.600796 -0.696253 1.010470
v 0.882266 -0.452668 0.979943
v 0.357878 -0.452668 0.979943
v 0.882266 -0.452668 1.010461
v 0.357878 -0.452668 1.010461
v 0.882266 -0.422150 0.979943
v 0.357878 -0.422150 0.979943
v 0.882266 -0.422150 1.010461
v 0.357878 -0.422150 1.010461
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 1.0000
vn -0.0000 -1.0000 -0.0000
vn -0.0000 1.0000 -0.0000
vt 0.996975 0.923302
vt 0.993173 0.697728
vt 0.970132 0.438109
vt 0.996975 0.991217
vt 0.993173 0.765660
vt 0.966873 0.512060
vt 0.995973 0.860064
vt 0.966164 0.438109
vt 0.993008 0.923305
vt 0.993008 0.991221
vt 0.995973 0.792148
vt 0.962904 0.512060
vt 0.997136 0.697725
vt 0.996079 0.353323
vt 0.970132 0.434140
vt 0.996079 0.421224
vt 0.997136 0.765658
vt 0.966873 0.516029
vt 1.000000 0.353303
vt 0.999920 0.860074
vt 0.966164 0.434140
vt 0.962904 0.516029
vt 0.999920 0.792159
vt 1.000000 0.421204
vt 0.992007 0.860301
vt 0.996522 0.691558
vt 0.970837 0.516025
vt 0.992007 0.792148
vt 0.996522 0.623505
vt 0.110899 0.973187
vt 0.993738 0.081428
vt 0.966873 0.516028
vt 0.995973 0.860301
vt 0.995973 0.792148
vt 0.993738 0.013654
vt 0.114818 0.973167
vt 0.992556 0.691556
vt 0.996079 0.421456
vt 0.970837 0.512060
vt 0.996079 0.353303
vt 0.992556 0.623502
vt 0.110899 0.969223
vt 0.992113 0.421456
vt 0.997703 0.081417
vt 0.966873 0.512063
vt 0.114818 0.969203
vt 0.997703 0.013643
vt 0.992113 0.353303
s 0
usemtl Material.017
f 2/4/1 3/9/1 1/1/1
f 4/11/2 7/20/2 3/7/2
f 8/24/3 5/14/3 7/19/3
f 6/17/4 1/2/4 5/13/4
f 7/21/5 1/3/5 3/8/5
f 4/12/6 6/18/6 8/22/6
f 10/28/6 11/33/6 9/25/6
f 12/35/2 15/44/2 11/31/2
f 16/48/5 13/38/5 15/43/5
f 14/41/4 9/26/4 13/37/4
f 15/45/1 9/27/1 11/32/1
f 12/36/3 14/42/3 16/46/3
f 2/4/1 4/10/1 3/9/1
f 4/11/2 8/23/2 7/20/2
f 8/24/3 6/16/3 5/14/3
f 6/17/4 2/5/4 1/2/4
f 7/21/5 5/15/5 1/3/5
f 4/12/6 2/6/6 6/18/6
f 10/28/6 12/34/6 11/33/6
f 12/35/2 16/47/2 15/44/2
f 16/48/5 14/40/5 13/38/5
f 14/41/4 10/29/4 9/26/4
f 15/45/1 13/39/1 9/27/1
f 12/36/3 10/30/3 14/42/3

224
cw 9/models/window2.obj Normal file
View File

@ -0,0 +1,224 @@
# Blender 3.4.1
# www.blender.org
mtllib window2.mtl
o Window2
v -1.027201 -0.119886 -0.798555
v -1.027201 -0.680399 -0.798555
v -1.027201 -0.119886 -0.209580
v -1.027201 -0.680399 -0.209580
v -0.955390 -0.119886 -0.798555
v -0.955390 -0.680399 -0.798555
v -0.955390 -0.119886 -0.209580
v -0.955390 -0.680399 -0.209580
v -1.034272 -0.064695 -0.856549
v -1.034272 -0.735590 -0.856549
v -1.034272 -0.064695 -0.151587
v -1.034272 -0.735590 -0.151587
v -0.948319 -0.064695 -0.856549
v -0.948319 -0.735590 -0.856549
v -0.948319 -0.064695 -0.151587
v -0.948319 -0.735590 -0.151587
v -1.009789 -0.096547 -0.532084
v -1.009789 -0.714473 -0.532084
v -0.979253 -0.096547 -0.532084
v -0.979253 -0.714473 -0.532084
v -1.009789 -0.096547 -0.501548
v -1.009789 -0.714473 -0.501548
v -0.979253 -0.096547 -0.501548
v -0.979253 -0.714473 -0.501548
v -1.007688 -0.426421 -0.725674
v -1.007688 -0.426421 -0.201286
v -0.977170 -0.426421 -0.725674
v -0.977170 -0.426421 -0.201286
v -1.007688 -0.395903 -0.725674
v -1.007688 -0.395903 -0.201286
v -0.977170 -0.395903 -0.725674
v -0.977170 -0.395903 -0.201286
v -0.977170 -0.426421 -0.817682
v -1.007688 -0.426421 -0.817682
v -0.977170 -0.395903 -0.817682
v -1.007688 -0.395903 -0.817682
vn -0.0000 -1.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn -0.0000 1.0000 -0.0000
vn -0.0000 -0.0000 1.0000
vn 0.9926 -0.0000 -0.1210
vn 0.9919 0.1271 -0.0000
vn -0.9926 -0.0000 0.1210
vn -0.9919 -0.1271 -0.0000
vn 0.9926 -0.0000 0.1210
vn 0.9919 -0.1271 -0.0000
vn -0.9926 -0.0000 -0.1210
vn -0.9919 0.1271 -0.0000
vn -1.0000 -0.0000 -0.0000
vn 1.0000 -0.0000 -0.0000
vt 0.972353 0.381801
vt 0.967670 0.221199
vt 0.786175 0.828057
vt 0.962621 0.564513
vt 0.972353 0.308976
vt 0.713367 0.827686
vt 0.967670 0.297746
vt 0.972223 0.439211
vt 0.786175 0.903683
vt 0.972223 0.512054
vt 0.962621 0.641056
vt 0.713367 0.903312
vt 0.963072 0.381776
vt 0.958337 0.221199
vt 0.902479 0.546976
vt 0.971954 0.564513
vt 0.963072 0.308951
vt 0.829654 0.546918
vt 0.958337 0.297746
vt 0.962904 0.439216
vt 0.902479 0.470468
vt 0.971954 0.641056
vt 0.962904 0.512060
vt 0.829654 0.470410
vt 0.957672 0.873028
vt 0.962621 0.656129
vt 0.793374 0.820505
vt 0.943914 0.796686
vt 0.957672 0.960217
vt 0.706228 0.820061
vt 0.962621 0.564513
vt 0.963072 0.396147
vt 0.793374 0.911024
vt 0.963072 0.308981
vt 0.943914 0.705065
vt 0.706228 0.910580
vt 0.946517 0.873035
vt 0.951450 0.656129
vt 0.909673 0.554486
vt 0.955085 0.796686
vt 0.946517 0.960223
vt 0.822506 0.554417
vt 0.951450 0.564513
vt 0.951963 0.396117
vt 0.909673 0.462911
vt 0.955085 0.705065
vt 0.951963 0.308951
vt 0.822506 0.462842
vt 0.985244 0.439211
vt 0.984607 0.145430
vt 0.970149 0.304550
vt 0.985244 0.519516
vt 0.984607 0.225696
vt 0.563853 0.913567
vt 0.984607 0.145410
vt 0.970149 0.308519
vt 0.981281 0.439213
vt 0.981281 0.519518
vt 0.984607 0.225694
vt 0.563853 0.909598
vt 0.988528 0.145410
vt 0.988046 0.778020
vt 0.966181 0.304550
vt 0.988046 0.697736
vt 0.988528 0.225676
vt 0.559884 0.913567
vt 0.984099 0.778009
vt 0.980640 0.145413
vt 0.966181 0.308519
vt 0.559884 0.909598
vt 0.980640 0.225697
vt 0.984099 0.697725
vt 0.982605 0.338985
vt 0.984650 0.033108
vt 0.982605 0.270832
vt 0.984650 0.100442
vt 0.129103 0.969205
vt 0.983029 0.421421
vt 0.986572 0.338985
vt 0.986572 0.270832
vt 0.983029 0.353303
vt 0.125159 0.969194
vt 0.988614 0.033129
vt 0.982620 0.576470
vt 0.982620 0.644619
vt 0.988614 0.100462
vt 0.129103 0.973170
vt 0.986586 0.576470
vt 0.986994 0.421425
vt 0.125159 0.973159
vt 0.986994 0.353307
vt 0.986586 0.644619
vt 0.971393 0.560492
vt 0.983029 0.433373
vt 0.986572 0.350942
vt 0.984650 0.021294
vt 0.967432 0.560492
vt 0.982605 0.350942
vt 0.971390 0.564458
vt 0.986994 0.433376
vt 0.986586 0.564513
vt 0.988614 0.021315
vt 0.967430 0.564458
vt 0.982620 0.564513
s 0
usemtl Material.017
f 6/16/1 4/11/1 2/4/1
f 5/13/2 2/5/2 1/1/2
f 7/19/3 1/2/3 3/7/3
f 8/23/4 3/8/4 4/10/4
f 12/35/3 14/40/3 10/28/3
f 10/29/4 13/37/4 9/25/4
f 9/26/1 15/43/1 11/31/1
f 11/32/2 16/47/2 12/34/2
f 1/3/5 10/30/5 9/27/5
f 1/3/6 11/33/6 3/9/6
f 8/24/7 15/45/7 7/21/7
f 6/18/8 16/48/8 8/24/8
f 4/12/9 11/33/9 12/36/9
f 4/12/10 10/30/10 2/6/10
f 6/18/11 13/39/11 14/42/11
f 7/21/12 13/39/12 5/15/12
f 18/52/4 19/57/4 17/49/4
f 20/59/13 23/68/13 19/55/13
f 24/72/2 21/62/2 23/67/2
f 22/65/14 17/50/14 21/61/14
f 23/69/1 17/51/1 19/56/1
f 20/60/3 22/66/3 24/70/3
f 26/75/3 27/79/3 25/73/3
f 28/81/13 31/89/13 27/78/13
f 32/92/1 29/84/1 31/88/1
f 30/86/14 25/74/14 29/83/14
f 25/74/14 36/102/14 29/83/14
f 28/82/2 30/87/2 32/90/2
f 35/99/4 34/97/4 33/93/4
f 31/89/13 33/94/13 27/78/13
f 27/79/3 34/98/3 25/73/3
f 29/84/1 35/101/1 31/88/1
f 6/16/1 8/22/1 4/11/1
f 5/13/2 6/17/2 2/5/2
f 7/19/3 5/14/3 1/2/3
f 8/23/4 7/20/4 3/8/4
f 12/35/3 16/46/3 14/40/3
f 10/29/4 14/41/4 13/37/4
f 9/26/1 13/38/1 15/43/1
f 11/32/2 15/44/2 16/47/2
f 1/3/5 2/6/5 10/30/5
f 1/3/6 9/27/6 11/33/6
f 8/24/7 16/48/7 15/45/7
f 6/18/8 14/42/8 16/48/8
f 4/12/9 3/9/9 11/33/9
f 4/12/10 12/36/10 10/30/10
f 6/18/11 5/15/11 13/39/11
f 7/21/12 15/45/12 13/39/12
f 18/52/4 20/58/4 19/57/4
f 20/59/13 24/71/13 23/68/13
f 24/72/2 22/64/2 21/62/2
f 22/65/14 18/53/14 17/50/14
f 23/69/1 21/63/1 17/51/1
f 20/60/3 18/54/3 22/66/3
f 26/75/3 28/80/3 27/79/3
f 28/81/13 32/91/13 31/89/13
f 32/92/1 30/85/1 29/84/1
f 30/86/14 26/76/14 25/74/14
f 25/74/14 34/96/14 36/102/14
f 28/82/2 26/77/2 30/87/2
f 35/99/4 36/103/4 34/97/4
f 31/89/13 35/100/13 33/94/13
f 27/79/3 33/95/3 34/98/3
f 29/84/1 36/104/1 35/101/1

108
cw 9/models/windowframe.obj Normal file
View File

@ -0,0 +1,108 @@
# Blender 3.4.1
# www.blender.org
mtllib windowframe.mtl
o Window1
v 0.312093 -0.145891 1.031836
v 0.905633 -0.145891 1.031836
v 0.312093 -0.728980 1.031836
v 0.905633 -0.728980 1.031836
v 0.312093 -0.145891 0.958051
v 0.905633 -0.145891 0.958051
v 0.312093 -0.728980 0.958051
v 0.905633 -0.728980 0.958051
v 0.360588 -0.193532 1.031836
v 0.857138 -0.193532 1.031836
v 0.360588 -0.681339 1.031836
v 0.857138 -0.681339 1.031836
v 0.360588 -0.193532 0.958051
v 0.857138 -0.193532 0.958051
v 0.360588 -0.681339 0.958051
v 0.857138 -0.681339 0.958051
vn -0.0000 1.0000 -0.0000
vn -1.0000 -0.0000 -0.0000
vn -0.0000 -1.0000 -0.0000
vn 1.0000 -0.0000 -0.0000
vn -0.0000 -0.0000 -1.0000
vn -0.0000 -0.0000 1.0000
vt 0.953315 0.516351
vt 0.957672 0.873036
vt 0.177259 0.905341
vt 0.953315 0.439211
vt 0.967811 0.145410
vt 0.177259 0.828313
vt 0.955085 0.705065
vt 0.957672 0.948794
vt 0.101482 0.905296
vt 0.967811 0.221151
vt 0.955085 0.782205
vt 0.101482 0.828268
vt 0.962904 0.516351
vt 0.967256 0.873028
vt 0.384420 0.828765
vt 0.962904 0.439211
vt 0.958337 0.145458
vt 0.384420 0.905476
vt 0.967256 0.948786
vt 0.964674 0.705065
vt 0.308663 0.828967
vt 0.964674 0.782205
vt 0.958337 0.221199
vt 0.308663 0.905679
vt 0.974594 0.063386
vt 0.519745 0.974405
vt 0.171068 0.899044
vt 0.519745 0.909870
vt 0.965120 0.000008
vt 0.171068 0.834603
vt 0.974264 0.705065
vt 0.974594 0.126751
vt 0.107674 0.899006
vt 0.965120 0.063386
vt 0.974264 0.769600
vt 0.107674 0.834566
vt 0.510156 0.974405
vt 0.965120 0.063435
vt 0.378230 0.835049
vt 0.510156 0.909870
vt 0.974705 0.000000
vt 0.378230 0.899225
vt 0.965120 0.126799
vt 0.964674 0.705065
vt 0.314853 0.835218
vt 0.964674 0.769600
vt 0.974705 0.063379
vt 0.314853 0.899395
s 0
usemtl Material.016
f 2/4/1 5/13/1 1/1/1
f 5/14/2 3/8/2 1/2/2
f 7/20/3 4/11/3 3/7/3
f 8/23/4 2/5/4 4/10/4
f 9/26/3 14/40/3 10/28/3
f 11/32/4 13/38/4 9/25/4
f 12/35/1 15/44/1 11/31/1
f 10/29/2 16/47/2 12/34/2
f 7/21/5 13/39/5 15/45/5
f 1/3/6 10/30/6 2/6/6
f 3/9/6 9/27/6 1/3/6
f 7/21/5 16/48/5 8/24/5
f 8/24/5 14/42/5 6/18/5
f 4/12/6 11/33/6 3/9/6
f 2/6/6 12/36/6 4/12/6
f 6/18/5 13/39/5 5/15/5
f 2/4/1 6/16/1 5/13/1
f 5/14/2 7/19/2 3/8/2
f 7/20/3 8/22/3 4/11/3
f 8/23/4 6/17/4 2/5/4
f 9/26/3 13/37/3 14/40/3
f 11/32/4 15/43/4 13/38/4
f 12/35/1 16/46/1 15/44/1
f 10/29/2 14/41/2 16/47/2
f 7/21/5 5/15/5 13/39/5
f 1/3/6 9/27/6 10/30/6
f 3/9/6 11/33/6 9/27/6
f 7/21/5 15/45/5 16/48/5
f 8/24/5 16/48/5 14/42/5
f 4/12/6 12/36/6 11/33/6
f 2/6/6 10/30/6 12/36/6
f 6/18/5 14/42/5 13/39/5

7
cw 9/render.py Normal file
View File

@ -0,0 +1,7 @@
import os
rootdir = './'
for filename in os.listdir(rootdir):
if filename.endswith(".md"):
name = filename[:-3]
os.system(f'pandoc -s -o "{name}.html" "{name}.md" --mathjax --css style.css')

View File

@ -0,0 +1,18 @@
#version 430 core
float AMBIENT = 0.1;
uniform vec3 color;
uniform vec3 lightPos;
in vec3 vecNormal;
in vec3 worldPos;
out vec4 outColor;
void main()
{
vec3 lightDir = normalize(lightPos-worldPos);
vec3 normal = normalize(vecNormal);
float diffuse=max(0,dot(normal,lightDir));
outColor = vec4(color*min(1,AMBIENT+diffuse), 1.0);
}

View File

@ -0,0 +1,18 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
uniform mat4 transformation;
uniform mat4 modelMatrix;
out vec3 vecNormal;
out vec3 worldPos;
void main()
{
worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz;
vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz;
gl_Position = transformation * vec4(vertexPosition, 1.0);
}

View File

@ -0,0 +1,24 @@
#version 430 core
float AMBIENT = 0.1;
uniform vec3 color;
uniform vec3 lightPos;
uniform sampler2D colorTexture;
uniform sampler2D clouds;
in vec3 vecNormal;
in vec3 worldPos;
in vec2 vertTexCoord;
out vec4 outColor;
void main()
{
vec4 cloudsColor = texture2D(clouds, vec2(vertTexCoord.x, -vertTexCoord.y));
vec4 textureColor = texture2D(colorTexture, vec2(vertTexCoord.x, -vertTexCoord.y));
vec3 lightDir = normalize(lightPos-worldPos);
vec3 normal = normalize(vecNormal);
float diffuse=max(0,dot(normal,lightDir));
outColor = vec4(mix(textureColor.xyz, vec3(1.0, 1.0, 1.0), cloudsColor.r)*min(1,AMBIENT+diffuse), 1.0);
}

View File

@ -0,0 +1,20 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
uniform mat4 transformation;
uniform mat4 modelMatrix;
out vec3 vecNormal;
out vec3 worldPos;
out vec2 vertTexCoord;
void main()
{
vertTexCoord = vertexTexCoord;
worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz;
vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz;
gl_Position = transformation * vec4(vertexPosition, 1.0);
}

View File

@ -0,0 +1,30 @@
#version 430 core
float AMBIENT = 0.1;
uniform vec3 color;
uniform vec3 lightPos;
uniform sampler2D colorTexture;
uniform sampler2D rust;
uniform sampler2D scratches;
in vec3 vecNormal;
in vec3 worldPos;
in vec2 vertTexCoord;
out vec4 outColor;
void main()
{
vec4 scratchesColor = texture2D(scratches, vec2(vertTexCoord.x, -vertTexCoord.y));
vec4 rustColor = texture2D(rust, vec2(vertTexCoord.x, -vertTexCoord.y));
vec4 textureColor = texture2D(colorTexture, vec2(vertTexCoord.x, -vertTexCoord.y));
vec3 lightDir = normalize(lightPos-worldPos);
vec3 normal = normalize(vecNormal);
float diffuse=max(0,dot(normal,lightDir));
textureColor = mix(textureColor, rustColor, 0.7);
textureColor = mix(textureColor, scratchesColor, 0.5);
outColor = vec4(textureColor.xyz*min(1,AMBIENT+diffuse), 1.0);
}

View File

@ -0,0 +1,20 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
uniform mat4 transformation;
uniform mat4 modelMatrix;
out vec3 vecNormal;
out vec3 worldPos;
out vec2 vertTexCoord;
void main()
{
vertTexCoord = vertexTexCoord;
worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz;
vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz;
gl_Position = transformation * vec4(vertexPosition, 1.0);
}

View File

@ -0,0 +1,31 @@
#version 430 core
float AMBIENT = 0.1;
uniform vec3 color;
uniform vec3 lightPos;
uniform sampler2D colorTexture;
in vec3 vecNormal;
in vec3 worldPos;
in vec2 vertTexCoord;
out vec4 outColor;
void main()
{
vec4 textureColor = texture2D(colorTexture, vec2(vertTexCoord.x, -vertTexCoord.y));
vec3 lightDir = normalize(lightPos-worldPos);
vec3 normal = normalize(vecNormal);
float diffuse=max(0,dot(normal,lightDir));
//fog
float n = 0.05;
float f = 20.0;
vec4 bgColor = {0.0, 0.3, 0.3, 1.0};
float z = (-2 * n * f) / (gl_FragCoord.z * (n - f) + n + f);
outColor = vec4(textureColor.xyz*min(1,AMBIENT+diffuse), 1.0);
outColor = mix(outColor, bgColor, z/f * -1);
}

View File

@ -0,0 +1,20 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
uniform mat4 transformation;
uniform mat4 modelMatrix;
out vec3 vecNormal;
out vec3 worldPos;
out vec2 vertTexCoord;
void main()
{
vertTexCoord = vertexTexCoord;
worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz;
vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz;
gl_Position = transformation * vec4(vertexPosition, 1.0);
}

View File

@ -0,0 +1,10 @@
#version 430 core
uniform vec3 objectColor;
in vec3 interpNormal;
void main()
{
gl_FragColor = vec4(objectColor, 1.0);
}

View File

@ -0,0 +1,15 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec2 vertexTexCoord;
layout(location = 2) in vec3 vertexNormal;
uniform mat4 transformation;
out vec3 interpNormal;
void main()
{
gl_Position = transformation * vec4(vertexPosition, 1.0);
interpNormal = vertexNormal;
}

View File

@ -0,0 +1,11 @@
#version 430 core
uniform vec3 color;
uniform float exposition;
out vec4 outColor;
void main()
{
outColor = vec4(vec3(1.0) - exp(-color*exposition),1);
}

View File

@ -0,0 +1,13 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
uniform mat4 transformation;
void main()
{
gl_Position = transformation * vec4(vertexPosition, 1.0);
//gl_Position = vec4(vertexPosition, 1.0);
}

View File

@ -0,0 +1,135 @@
#version 430 core
float AMBIENT = 0.03;
float PI = 3.14;
uniform sampler2D depthMap;
uniform vec3 cameraPos;
uniform vec3 color;
uniform vec3 sunDir;
uniform vec3 sunColor;
uniform vec3 lightPos;
uniform vec3 lightColor;
uniform vec3 spotlightPos;
uniform vec3 spotlightColor;
uniform vec3 spotlightConeDir;
uniform vec3 spotlightPhi;
uniform float metallic;
uniform float roughness;
uniform float exposition;
in vec3 vecNormal;
in vec3 worldPos;
out vec4 outColor;
in vec3 viewDirTS;
in vec3 lightDirTS;
in vec3 spotlightDirTS;
in vec3 sunDirTS;
in vec3 test;
float DistributionGGX(vec3 normal, vec3 H, float roughness){
float a = roughness*roughness;
float a2 = a*a;
float NdotH = max(dot(normal, H), 0.0);
float NdotH2 = NdotH*NdotH;
float num = a2;
float denom = (NdotH2 * (a2 - 1.0) + 1.0);
denom = PI * denom * denom;
return num / denom;
}
float GeometrySchlickGGX(float NdotV, float roughness){
float r = (roughness + 1.0);
float k = (r*r) / 8.0;
float num = NdotV;
float denom = NdotV * (1.0 - k) + k;
return num / denom;
}
float GeometrySmith(vec3 normal, vec3 V, vec3 lightDir, float roughness){
float NdotV = max(dot(normal, V), 0.0);
float NdotL = max(dot(normal, lightDir), 0.0);
float ggx2 = GeometrySchlickGGX(NdotV, roughness);
float ggx1 = GeometrySchlickGGX(NdotL, roughness);
return ggx1 * ggx2;
}
vec3 fresnelSchlick(float cosTheta, vec3 F0){
return F0 + (1.0 - F0) * pow(clamp(1.0 - cosTheta, 0.0, 1.0), 5.0);
}
vec3 PBRLight(vec3 lightDir, vec3 radiance, vec3 normal, vec3 V){
float diffuse=max(0,dot(normal,lightDir));
//vec3 V = normalize(cameraPos-worldPos);
vec3 F0 = vec3(0.04);
F0 = mix(F0, color, metallic);
vec3 H = normalize(V + lightDir);
// cook-torrance brdf
float NDF = DistributionGGX(normal, H, roughness);
float G = GeometrySmith(normal, V, lightDir, roughness);
vec3 F = fresnelSchlick(max(dot(H, V), 0.0), F0);
vec3 kS = F;
vec3 kD = vec3(1.0) - kS;
kD *= 1.0 - metallic;
vec3 numerator = NDF * G * F;
float denominator = 4.0 * max(dot(normal, V), 0.0) * max(dot(normal, lightDir), 0.0) + 0.0001;
vec3 specular = numerator / denominator;
// add to outgoing radiance Lo
float NdotL = max(dot(normal, lightDir), 0.0);
return (kD * color / PI + specular) * radiance * NdotL;
}
void main()
{
//vec3 normal = vec3(0,0,1);
vec3 normal = normalize(vecNormal);
//vec3 viewDir = normalize(viewDirTS);
vec3 viewDir = normalize(cameraPos-worldPos);
//vec3 lightDir = normalize(lightDirTS);
vec3 lightDir = normalize(lightPos-worldPos);
vec3 ambient = AMBIENT*color;
vec3 attenuatedlightColor = lightColor/pow(length(lightPos-worldPos),2);
vec3 ilumination;
ilumination = ambient+PBRLight(lightDir,attenuatedlightColor,normal,viewDir);
//flashlight
//vec3 spotlightDir= normalize(spotlightDirTS);
vec3 spotlightDir= normalize(spotlightPos-worldPos);
float angle_atenuation = clamp((dot(-normalize(spotlightPos-worldPos),spotlightConeDir)-0.5)*3,0,1);
attenuatedlightColor = angle_atenuation*spotlightColor/pow(length(spotlightPos-worldPos),2);
ilumination=ilumination+PBRLight(spotlightDir,attenuatedlightColor,normal,viewDir);
//sun
ilumination=ilumination+PBRLight(sunDir,sunColor,normal,viewDir);
outColor = vec4(vec3(1.0) - exp(-ilumination*exposition),1);
//outColor = vec4(roughness,metallic,0,1);
//outColor = vec4(test;
}

View File

@ -0,0 +1,43 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
layout(location = 3) in vec3 vertexTangent;
layout(location = 4) in vec3 vertexBitangent;
uniform mat4 transformation;
uniform mat4 modelMatrix;
out vec3 vecNormal;
out vec3 worldPos;
uniform vec3 lightPos;
uniform vec3 spotlightPos;
uniform vec3 cameraPos;
uniform vec3 sunDir;
out vec3 viewDirTS;
out vec3 lightDirTS;
out vec3 spotlightDirTS;
out vec3 sunDirTS;
void main()
{
worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz;
vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz;
gl_Position = transformation * vec4(vertexPosition, 1.0);
vec3 w_tangent = normalize(mat3(modelMatrix)*vertexTangent);
vec3 w_bitangent = normalize(mat3(modelMatrix)*vertexBitangent);
mat3 TBN = transpose(mat3(w_tangent, w_bitangent, vecNormal));
vec3 V = normalize(cameraPos-worldPos);
viewDirTS = TBN*V;
vec3 L = normalize(lightPos-worldPos);
lightDirTS = TBN*L;
vec3 SL = normalize(spotlightPos-worldPos);
spotlightDirTS = TBN*SL;
sunDirTS = TBN*sunDir;
}

View File

@ -0,0 +1,31 @@
#version 430 core
float AMBIENT = 0.1;
uniform vec3 color;
uniform vec3 lightPos;
uniform sampler2D colorTexture;
in vec3 f_vecNormal;
in vec3 f_worldPos;
in vec2 f_vertTexCoord;
out vec4 outColor;
void main()
{
vec4 textureColor = texture2D(colorTexture, vec2(f_vertTexCoord.x, -f_vertTexCoord.y));
vec3 lightDir = normalize(lightPos-f_worldPos);
vec3 normal = normalize(f_vecNormal);
float diffuse=max(0,dot(normal,lightDir));
//fog
float n = 0.05;
float f = 20.0;
vec4 bgColor = {0.0, 0.3, 0.3, 1.0};
float z = (-2 * n * f) / (gl_FragCoord.z * (n - f) + n + f);
outColor = vec4(textureColor.xyz*min(1,AMBIENT+diffuse), 1.0);
outColor = mix(outColor, bgColor, z/f * -1);
}

View File

@ -0,0 +1,48 @@
#version 330 core
layout(triangles) in;
layout(triangle_strip, max_vertices = 3) out;
out vec3 f_vecNormal;
out vec3 f_worldPos;
out vec2 f_vertTexCoord;
uniform float time;
uniform float boomTime;
in VS_OUT {
vec3 vecNormal;
vec3 worldPos;
vec2 vertTexCoord;
} gs_in[];
vec3 getNormal() {
vec3 a = vec3(gl_in[0].gl_Position) - vec3(gl_in[1].gl_Position);
vec3 b = vec3(gl_in[2].gl_Position) - vec3(gl_in[1].gl_Position);
return normalize(cross(a, b));
}
vec4 explode(vec4 position, vec3 normal) {
float magnitude = 2.0;
vec3 direction = normal * (((time - boomTime) / 2.0) / 2.0) * magnitude;
return position + vec4(direction, 0.0);
}
void main() {
vec3 normal = getNormal();
for (int i = 0; i < 3; i++) {
f_vecNormal = gs_in[i].vecNormal;
f_worldPos = gs_in[i].worldPos;
f_vertTexCoord = gs_in[i].vertTexCoord;
if (boomTime != -1) {
gl_Position = explode(gl_in[i].gl_Position, normal);
}
else {
gl_Position = gl_in[i].gl_Position;
}
EmitVertex();
}
EndPrimitive();
}

View File

@ -0,0 +1,22 @@
#version 430 core
layout(location = 0) in vec3 vertexPosition;
layout(location = 1) in vec3 vertexNormal;
layout(location = 2) in vec2 vertexTexCoord;
uniform mat4 transformation;
uniform mat4 modelMatrix;
out VS_OUT {
vec3 vecNormal;
vec3 worldPos;
vec2 vertTexCoord;
} vs_out;
void main()
{
vs_out.vertTexCoord = vertexTexCoord;
vs_out.worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz;
vs_out.vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz;
gl_Position = transformation * vec4(vertexPosition, 1.0);
}

View File

@ -0,0 +1,11 @@
#version 330 core
out vec4 FragColor;
in vec3 TexCoords;
uniform samplerCube skybox;
void main()
{
FragColor = texture(skybox, TexCoords);
}

View File

@ -0,0 +1,15 @@
#version 330 core
layout (location = 0) in vec3 aPos;
out vec3 TexCoords;
uniform mat4 projection;
uniform mat4 view;
void main()
{
TexCoords = aPos;
vec3 cameraPos = mat3(view) *aPos;
vec4 pos = projection * vec4(cameraPos, 1.0);
gl_Position = pos.xyww;
}

Some files were not shown because too many files have changed in this diff Show More