This commit is contained in:
Kacper Pękalski 2023-02-13 14:02:30 +01:00
parent 4c3c7e521d
commit bfe15f960b
1068 changed files with 505155 additions and 0 deletions

362
.gitignore vendored Normal file
View File

@ -0,0 +1,362 @@
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
##
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
# User-specific files
*.rsuser
*.suo
*.user
*.userosscache
*.sln.docstates
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
# Mono auto generated files
mono_crash.*
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
[Ww][Ii][Nn]32/
[Aa][Rr][Mm]/
[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Oo]ut/
[Ll]og/
[Ll]ogs/
# Visual Studio 2015/2017 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
# Visual Studio 2017 auto generated files
Generated\ Files/
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
# NUnit
*.VisualState.xml
TestResult.xml
nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
# Benchmark Results
BenchmarkDotNet.Artifacts/
# .NET Core
project.lock.json
project.fragment.lock.json
artifacts/
# ASP.NET Scaffolding
ScaffoldingReadMe.txt
# StyleCop
StyleCopReport.xml
# Files built by Visual Studio
*_i.c
*_p.c
*_h.h
*.ilk
*.meta
*.iobj
*.pch
*.pdb
*.ipdb
*.pgc
*.pgd
*.rsp
*.sbr
*.tlb
*.tli
*.tlh
*.tmp
*.tmp_proj
*_wpftmp.csproj
*.log
*.vspscc
*.vssscc
.builds
*.pidb
*.svclog
*.scc
# Chutzpah Test files
_Chutzpah*
# Visual C++ cache files
ipch/
*.aps
*.ncb
*.opendb
*.opensdf
*.sdf
*.cachefile
*.VC.db
*.VC.VC.opendb
# Visual Studio profiler
*.psess
*.vsp
*.vspx
*.sap
# Visual Studio Trace Files
*.e2e
# TFS 2012 Local Workspace
$tf/
# Guidance Automation Toolkit
*.gpState
# ReSharper is a .NET coding add-in
_ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
# AxoCover is a Code Coverage Tool
.axoCover/*
!.axoCover/settings.json
# Coverlet is a free, cross platform Code Coverage Tool
coverage*.json
coverage*.xml
coverage*.info
# Visual Studio code coverage results
*.coverage
*.coveragexml
# NCrunch
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
# MightyMoose
*.mm.*
AutoTest.Net/
# Web workbench (sass)
.sass-cache/
# Installshield output folder
[Ee]xpress/
# DocProject is a documentation generator add-in
DocProject/buildhelp/
DocProject/Help/*.HxT
DocProject/Help/*.HxC
DocProject/Help/*.hhc
DocProject/Help/*.hhk
DocProject/Help/*.hhp
DocProject/Help/Html2
DocProject/Help/html
# Click-Once directory
publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
# Note: Comment the next line if you want to checkin your web deploy settings,
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
# Microsoft Azure Web App publish settings. Comment the next line if you want to
# checkin your Azure Web App publish settings, but sensitive information contained
# in these scripts will be unencrypted
PublishScripts/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
# except build/, which is used as an MSBuild target.
!**/[Pp]ackages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/[Pp]ackages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Microsoft Azure Build Output
csx/
*.build.csdef
# Microsoft Azure Emulator
ecf/
rcf/
# Windows Store app package directories and files
AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
*.appx
*.appxbundle
*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
!?*.[Cc]ache/
# Others
ClientBin/
~$*
*~
*.dbmdl
*.dbproj.schemaview
*.jfm
*.pfx
*.publishsettings
orleans.codegen.cs
# Including strong name files can present a security risk
# (https://github.com/github/gitignore/pull/2483#issue-259490424)
#*.snk
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
# RIA/Silverlight projects
Generated_Code/
# Backup & report files from converting an old project file
# to a newer Visual Studio version. Backup files are not needed,
# because we have git ;-)
_UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
ServiceFabricBackup/
*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
*.rptproj.rsuser
*- [Bb]ackup.rdl
*- [Bb]ackup ([0-9]).rdl
*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
# GhostDoc plugin setting file
*.GhostDoc.xml
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
node_modules/
# Visual Studio 6 build log
*.plg
# Visual Studio 6 workspace options file
*.opt
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
# Visual Studio LightSwitch build output
**/*.HTMLClient/GeneratedArtifacts
**/*.DesktopClient/GeneratedArtifacts
**/*.DesktopClient/ModelManifest.xml
**/*.Server/GeneratedArtifacts
**/*.Server/ModelManifest.xml
_Pvt_Extensions
# Paket dependency manager
.paket/paket.exe
paket-files/
# FAKE - F# Make
.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
__pycache__/
*.pyc
# Cake - Uncomment if you are using it
# tools/**
# !tools/packages.config
# Tabs Studio
*.tss
# Telerik's JustMock configuration file
*.jmconfig
# BizTalk build output
*.btp.cs
*.btm.cs
*.odx.cs
*.xsd.cs
# OpenCover UI analysis results
OpenCover/
# Azure Stream Analytics local run output
ASALocalRun/
# MSBuild Binary and Structured Log
*.binlog
# NVidia Nsight GPU debugger configuration file
*.nvuser
# MFractors (Xamarin productivity tool) working folder
.mfractor/
# Local History for Visual Studio
.localhistory/
# BeatPulse healthcheck temp database
healthchecksdb
# Backup folder for Package Reference Convert tool in Visual Studio 2017
MigrationBackup/
# Ionide (cross platform F# VS Code tools) working folder
.ionide/
# Fody - auto-generated XML schema
FodyWeavers.xsd

BIN
assimp-vc141-mt.dll Normal file

Binary file not shown.

BIN
assimp-vc141-mtd.dll Normal file

Binary file not shown.

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.

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

@ -0,0 +1,132 @@
<?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" />
</ItemGroup>
<ItemGroup>
<None Include="F:\Pobrane\grafika-projekt-main\grafika-projekt-main\cw 9\shaders\shader_skybox-1.frag" />
<None Include="F:\Pobrane\grafika-projekt-main\grafika-projekt-main\cw 9\shaders\shader_skybox-1.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_tex.frag" />
<None Include="shaders\shader_tex.vert" />
<None Include="shaders\shader_tex_normal.frag" />
<None Include="shaders\shader_tex_normal.vert" />
<None Include="shaders\test.frag" />
<None Include="shaders\test.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,131 @@
<?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>
</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="F:\Pobrane\grafika-projekt-main\grafika-projekt-main\cw 9\shaders\shader_skybox-1.frag">
<Filter>Shader Files</Filter>
</None>
<None Include="F:\Pobrane\grafika-projekt-main\grafika-projekt-main\cw 9\shaders\shader_skybox-1.vert">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_tex.frag">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_tex.vert">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_tex_normal.frag">
<Filter>Shader Files</Filter>
</None>
<None Include="shaders\shader_tex_normal.vert">
<Filter>Shader Files</Filter>
</None>
</ItemGroup>
</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

BIN
cw 9/models/BoxHappy.fbx Normal file

Binary file not shown.

Binary file not shown.

BIN
cw 9/models/Gift.fbx Normal file

Binary file not shown.

BIN
cw 9/models/Monitor.fbx Normal file

Binary file not shown.

BIN
cw 9/models/Stocking3.fbx Normal file

Binary file not shown.

802
cw 9/models/TOPOR.obj Normal file
View File

@ -0,0 +1,802 @@
# Blender v2.72 (sub 0) OBJ File: 'untitled.blend'
# www.blender.org
mtllib TOPOR.mtl
o Cube
v -1.418181 -1.815117 0.080000
v -1.418181 -1.815117 -0.080000
v -1.418181 -1.416325 0.080000
v -1.418181 -1.416325 -0.080000
v -0.709090 -1.815117 -0.080000
v -0.709091 -1.815117 0.080000
v -0.709090 -1.522404 -0.080000
v -0.709091 -1.522404 0.080000
v -1.520421 -1.815117 0.080000
v -1.520420 -1.815117 -0.080000
v -1.520421 -1.416325 0.080000
v -1.520421 -1.416325 -0.080000
v 1.418181 -1.815117 0.080000
v 1.418181 -1.815117 -0.080000
v 1.418181 -1.416325 0.080000
v 1.418181 -1.416325 -0.080000
v 0.000000 -1.815117 -0.080000
v 0.000000 -1.815117 0.080000
v 0.000000 -1.569079 -0.080000
v 0.000000 -1.569079 0.080000
v 0.709090 -1.815117 -0.080000
v 0.709091 -1.815117 0.080000
v 0.709090 -1.522404 -0.080000
v 0.709091 -1.522404 0.080000
v 1.520421 -1.815117 0.080000
v 1.520420 -1.815117 -0.080000
v 1.520421 -1.416325 0.080000
v 1.520421 -1.416325 -0.080000
v -1.418181 -1.015117 0.080000
v -1.418181 -1.015117 -0.080000
v -1.418181 -0.616325 0.080000
v -1.418181 -0.616325 -0.080000
v -0.709090 -1.015117 -0.080000
v -0.709091 -1.015117 0.080000
v -0.709090 -0.722404 -0.080000
v -0.709091 -0.722404 0.080000
v -1.520421 -1.015117 0.080000
v -1.520420 -1.015117 -0.080000
v -1.520421 -0.616325 0.080000
v -1.520421 -0.616325 -0.080000
v 1.418181 -1.015117 0.080000
v 1.418181 -1.015117 -0.080000
v 1.418181 -0.616325 0.080000
v 1.418181 -0.616325 -0.080000
v 0.000000 -1.015117 -0.080000
v 0.000000 -1.015117 0.080000
v 0.000000 -0.769079 -0.080000
v 0.000000 -0.769079 0.080000
v 0.709090 -1.015117 -0.080000
v 0.709091 -1.015117 0.080000
v 0.709090 -0.722404 -0.080000
v 0.709091 -0.722404 0.080000
v 1.520421 -1.015117 0.080000
v 1.520420 -1.015117 -0.080000
v 1.520421 -0.616325 0.080000
v 1.520421 -0.616325 -0.080000
v -1.773215 -5.471600 -0.068381
v -1.773215 -5.147672 -0.068381
v -1.773215 -5.471600 -0.145326
v -1.773215 -5.147672 -0.145326
v 1.773215 -5.471600 -0.068381
v 1.773215 -5.147672 -0.068381
v 1.773215 -5.471600 -0.145326
v 1.773215 -5.147672 -0.145326
v -1.451221 -4.431789 -3.491001
v -1.451221 -4.431789 -3.651000
v -1.807665 -4.431789 -3.491002
v -1.807665 -4.431789 -3.651001
v -1.451222 -4.431789 -3.391001
v -1.807665 -4.431789 -3.391001
v -1.451220 -4.431789 -3.751000
v -1.807664 -4.431789 -3.751001
v -1.451217 -8.204610 -3.491001
v -1.451217 -8.204610 -3.651000
v -1.807661 -8.204610 -3.491002
v -1.807661 -8.204610 -3.651001
v -1.451218 -8.204610 -3.391001
v -1.807661 -8.204610 -3.391001
v -1.451216 -8.204610 -3.751000
v -1.807660 -8.204610 -3.751001
v 1.428695 -4.431789 -3.491001
v 1.428694 -4.431789 -3.651000
v 1.785138 -4.431789 -3.491002
v 1.785138 -4.431789 -3.651001
v 1.428695 -4.431789 -3.391001
v 1.785139 -4.431789 -3.391001
v 1.428694 -4.431789 -3.751000
v 1.785138 -4.431789 -3.751001
v 1.428691 -8.204610 -3.491001
v 1.428690 -8.204610 -3.651000
v 1.785134 -8.204610 -3.491002
v 1.785134 -8.204610 -3.651001
v 1.428691 -8.204610 -3.391001
v 1.785135 -8.204610 -3.391001
v 1.428690 -8.204610 -3.751000
v 1.785134 -8.204610 -3.751001
v -1.418181 -0.215117 0.080000
v -1.418181 -0.215117 -0.080000
v -1.418181 0.183675 0.080000
v -1.418181 0.183675 -0.080000
v -0.709090 -0.215117 -0.080000
v -0.709091 -0.215117 0.080000
v -0.709090 0.077596 -0.080000
v -0.709091 0.077596 0.080000
v -1.520421 -0.215117 0.080000
v -1.520420 -0.215117 -0.080000
v -1.520421 0.183675 0.080000
v -1.520421 0.183675 -0.080000
v -1.876865 -0.215117 0.079999
v -1.876864 -0.215117 -0.080001
v -1.876865 0.183675 0.079999
v -1.876864 0.183675 -0.080001
v -1.520421 -0.215117 0.180000
v -1.520421 0.183675 0.180000
v -1.876865 -0.215117 0.179999
v -1.876865 0.183675 0.179999
v -1.520420 -0.215117 -0.180000
v -1.520420 0.183675 -0.180000
v -1.876864 -0.215117 -0.180001
v -1.876864 0.183675 -0.180001
v -1.520420 -4.098058 0.036600
v -1.876864 -4.098059 0.036599
v -1.520419 -4.098058 -0.323400
v -1.876863 -4.098059 -0.323400
v -1.520416 -8.185284 -0.063400
v -1.520415 -8.185284 -0.223400
v -1.876860 -8.185284 -0.063401
v -1.876859 -8.185284 -0.223401
v -1.520416 -8.185284 0.036600
v -1.876860 -8.185284 0.036599
v -1.520415 -8.185284 -0.323400
v -1.876859 -8.185284 -0.323400
v -1.571339 0.307715 0.057143
v -1.571339 0.307715 -0.057144
v -1.825946 0.307714 0.057143
v -1.825946 0.307714 -0.057145
v -1.825947 0.307714 0.128572
v -1.571340 0.307715 0.128573
v -1.825946 0.307714 -0.128575
v -1.571339 0.307715 -0.128574
v 1.418181 -0.215117 0.080000
v 1.418181 -0.215117 -0.080000
v 1.418181 0.183675 0.080000
v 1.418181 0.183675 -0.080000
v 0.000000 -0.215117 -0.080000
v 0.000000 -0.215117 0.080000
v 0.000000 0.030921 -0.080000
v 0.000000 0.030921 0.080000
v 0.709090 -0.215117 -0.080000
v 0.709091 -0.215117 0.080000
v 0.709090 0.077596 -0.080000
v 0.709091 0.077596 0.080000
v 1.520421 -0.215117 0.080000
v 1.520420 -0.215117 -0.080000
v 1.520421 0.183675 0.080000
v 1.520421 0.183675 -0.080000
v 1.876865 -0.215117 0.079999
v 1.876864 -0.215117 -0.080001
v 1.876865 0.183675 0.079999
v 1.876864 0.183675 -0.080001
v 1.520421 -0.215117 0.180000
v 1.520421 0.183675 0.180000
v 1.876865 -0.215117 0.179999
v 1.876865 0.183675 0.179999
v 1.520420 -0.215117 -0.180000
v 1.520420 0.183675 -0.180000
v 1.876864 -0.215117 -0.180001
v 1.876864 0.183675 -0.180001
v 1.520420 -4.098058 0.036600
v 1.876864 -4.098059 0.036599
v 1.520419 -4.098058 -0.323400
v 1.876863 -4.098059 -0.323400
v 1.520416 -8.185284 -0.063400
v 1.520415 -8.185284 -0.223400
v 1.876860 -8.185284 -0.063401
v 1.876859 -8.185284 -0.223401
v 1.520416 -8.185284 0.036600
v 1.876860 -8.185284 0.036599
v 1.520415 -8.185284 -0.323400
v 1.876859 -8.185284 -0.323400
v 1.860012 -4.642357 -0.008338
v 1.860012 -4.642357 -3.919156
v -1.860012 -4.642357 -0.008338
v -1.860012 -4.642357 -3.919156
v 1.789103 -4.380038 -0.058338
v 1.860012 -4.426893 -0.008338
v 1.789103 -4.380038 -3.869156
v 1.860012 -4.426893 -3.919156
v -1.789103 -4.380038 -0.058338
v -1.860012 -4.426893 -0.008338
v -1.789103 -4.380038 -3.869156
v -1.860012 -4.426893 -3.919156
v 1.571339 0.307715 0.057143
v 1.571339 0.307715 -0.057144
v 1.825946 0.307714 0.057143
v 1.825946 0.307714 -0.057145
v 1.825947 0.307714 0.128572
v 1.571340 0.307715 0.128573
v 1.825946 0.307714 -0.128575
v 1.571339 0.307715 -0.128574
vt 0.523757 0.267271
vt 0.536491 0.267271
vt 0.536491 0.284678
vt 0.523757 0.284678
vt 0.554001 0.190534
vt 0.554001 0.207941
vt 0.541267 0.207941
vt 0.541267 0.190534
vt 0.336521 0.328774
vt 0.415142 0.328774
vt 0.443634 0.346181
vt 0.336521 0.346181
vt 0.443632 0.353290
vt 0.336521 0.353290
vt 0.336521 0.350780
vt 0.443632 0.350780
vt 0.415140 0.370697
vt 0.336521 0.370697
vt 0.402604 0.388104
vt 0.336521 0.388104
vt 0.336521 0.311367
vt 0.402605 0.311367
vt 0.554001 0.173127
vt 0.541267 0.173127
vt 0.523757 0.249864
vt 0.536491 0.249864
vt 0.501471 0.274044
vt 0.501471 0.320864
vt 0.488736 0.320864
vt 0.488736 0.274044
vt 0.536491 0.287187
vt 0.523757 0.287187
vt 0.554002 0.210451
vt 0.541267 0.210451
vt 0.443634 0.348691
vt 0.336521 0.348691
vt 0.523757 0.232457
vt 0.523757 0.215050
vt 0.536491 0.215050
vt 0.536491 0.232457
vt 0.554001 0.155720
vt 0.541267 0.155720
vt 0.541267 0.138313
vt 0.554001 0.138313
vt 0.336521 0.293960
vt 0.336521 0.276553
vt 0.443634 0.276553
vt 0.415142 0.293960
vt 0.443632 0.422918
vt 0.443632 0.425428
vt 0.336521 0.425428
vt 0.336521 0.422918
vt 0.415140 0.405511
vt 0.336521 0.405511
vt 0.310710 0.228433
vt 0.323445 0.228433
vt 0.323445 0.275253
vt 0.310710 0.275253
vt 0.523757 0.212540
vt 0.536491 0.212540
vt 0.541267 0.135803
vt 0.554001 0.135803
vt 0.336521 0.274043
vt 0.443634 0.274043
vt 0.541267 0.267271
vt 0.554001 0.267271
vt 0.554001 0.284678
vt 0.541267 0.284678
vt 0.536491 0.190534
vt 0.536491 0.207941
vt 0.523757 0.207941
vt 0.523757 0.190534
vt 0.159511 0.270752
vt 0.238133 0.270752
vt 0.266625 0.288159
vt 0.159511 0.288159
vt 0.266622 0.295268
vt 0.159511 0.295268
vt 0.159511 0.292758
vt 0.266622 0.292758
vt 0.238131 0.312675
vt 0.159511 0.312675
vt 0.225595 0.330082
vt 0.159511 0.330082
vt 0.159511 0.253345
vt 0.225596 0.253345
vt 0.536491 0.173127
vt 0.523757 0.173127
vt 0.541267 0.249864
vt 0.554001 0.249864
vt 0.518981 0.274044
vt 0.518981 0.320864
vt 0.506247 0.320864
vt 0.506247 0.274044
vt 0.554001 0.287187
vt 0.541267 0.287187
vt 0.536491 0.210451
vt 0.523757 0.210451
vt 0.266625 0.290669
vt 0.159511 0.290669
vt 0.541267 0.232457
vt 0.541267 0.215050
vt 0.554001 0.215050
vt 0.554001 0.232457
vt 0.536491 0.155720
vt 0.523757 0.155720
vt 0.523757 0.138313
vt 0.536491 0.138313
vt 0.159511 0.235938
vt 0.159511 0.218531
vt 0.266625 0.218531
vt 0.238133 0.235938
vt 0.266622 0.364896
vt 0.266622 0.367405
vt 0.159511 0.367405
vt 0.159511 0.364896
vt 0.238131 0.347489
vt 0.159511 0.347489
vt 0.293200 0.228433
vt 0.305935 0.228433
vt 0.305935 0.275253
vt 0.293200 0.275253
vt 0.541267 0.212540
vt 0.554001 0.212540
vt 0.523757 0.135803
vt 0.536491 0.135803
vt 0.159511 0.216021
vt 0.266625 0.216021
vt 0.334344 0.266463
vt 0.328220 0.266463
vt 0.328220 0.228433
vt 0.334344 0.228433
vt 0.997612 0.001044
vt 0.997612 0.088103
vt 0.910609 0.088103
vt 0.910609 0.001044
vt 0.345244 0.266463
vt 0.339120 0.266463
vt 0.339120 0.228433
vt 0.345244 0.228433
vt 0.271401 0.226344
vt 0.271401 0.139285
vt 0.358406 0.139285
vt 0.358406 0.226344
vt 0.288424 0.315492
vt 0.282300 0.315492
vt 0.282300 0.228433
vt 0.288424 0.228433
vt 0.271401 0.228433
vt 0.277525 0.228433
vt 0.277525 0.315492
vt 0.271401 0.315492
vt 0.856273 0.444300
vt 0.836269 0.444300
vt 0.836269 0.001044
vt 0.856273 0.001044
vt 0.765326 0.001044
vt 0.773285 0.001044
vt 0.773285 0.443994
vt 0.765326 0.443994
vt 0.752591 0.443994
vt 0.744632 0.443994
vt 0.744632 0.001044
vt 0.752591 0.001044
vt 0.313204 0.280823
vt 0.313204 0.286393
vt 0.313204 0.289875
vt 0.293200 0.289875
vt 0.293200 0.286393
vt 0.293200 0.280823
vt 0.293200 0.277342
vt 0.313204 0.277342
vt 0.885829 0.001044
vt 0.905833 0.001044
vt 0.905833 0.444289
vt 0.885829 0.444289
vt 0.731897 0.443994
vt 0.719163 0.443994
vt 0.711203 0.443994
vt 0.711203 0.001044
vt 0.719162 0.001044
vt 0.731897 0.001044
vt 0.739856 0.001044
vt 0.739856 0.443994
vt 0.831493 0.001044
vt 0.831493 0.444300
vt 0.811489 0.444300
vt 0.811489 0.001045
vt 0.798754 0.443994
vt 0.786020 0.443994
vt 0.778060 0.443994
vt 0.778060 0.001044
vt 0.786020 0.001044
vt 0.798754 0.001044
vt 0.806713 0.001044
vt 0.806713 0.443994
vt 0.463957 0.277525
vt 0.463957 0.274044
vt 0.483961 0.274044
vt 0.483961 0.277525
vt 0.483961 0.283095
vt 0.483961 0.286577
vt 0.463957 0.286577
vt 0.463957 0.283095
vt 0.881053 0.001044
vt 0.881053 0.444289
vt 0.861049 0.444289
vt 0.861049 0.001044
vt 0.698469 0.001044
vt 0.706428 0.001044
vt 0.706428 0.443994
vt 0.698469 0.443994
vt 0.685734 0.443994
vt 0.677775 0.443994
vt 0.677775 0.001044
vt 0.685734 0.001044
vt 0.558777 0.267271
vt 0.571512 0.267271
vt 0.571512 0.284678
vt 0.558777 0.284678
vt 0.571512 0.190534
vt 0.571512 0.207941
vt 0.558777 0.207941
vt 0.558777 0.190534
vt 0.159511 0.194016
vt 0.238133 0.194016
vt 0.266625 0.211423
vt 0.159511 0.211423
vt 0.448410 0.422918
vt 0.555521 0.422918
vt 0.555521 0.425428
vt 0.448410 0.425428
vt 0.476901 0.405511
vt 0.555521 0.405511
vt 0.489438 0.388104
vt 0.555521 0.388104
vt 0.159511 0.176609
vt 0.225596 0.176609
vt 0.571512 0.173127
vt 0.558777 0.173127
vt 0.558777 0.249864
vt 0.571512 0.249864
vt 0.094190 0.015697
vt 0.094762 0.062516
vt 0.086803 0.062535
vt 0.086231 0.015715
vt 0.571512 0.287187
vt 0.558777 0.287187
vt 0.571512 0.210451
vt 0.558777 0.210451
vt 0.266625 0.213932
vt 0.159511 0.213932
vt 0.028363 0.983665
vt 0.015628 0.983636
vt 0.007669 0.983617
vt 0.008240 0.936798
vt 0.016199 0.936816
vt 0.028934 0.936846
vt 0.036893 0.936864
vt 0.036322 0.983684
vt 0.648219 0.937346
vt 0.648219 0.984199
vt 0.628215 0.984199
vt 0.628215 0.937346
vt 0.107496 0.062487
vt 0.106925 0.015667
vt 0.114884 0.015649
vt 0.115455 0.062468
vt 0.598659 0.015650
vt 0.598659 0.062501
vt 0.578655 0.062501
vt 0.578655 0.015650
vt 0.581512 0.001044
vt 0.595801 0.001044
vt 0.648219 0.481238
vt 0.628215 0.481238
vt 0.628215 0.001044
vt 0.648219 0.001044
vt 0.002388 0.480899
vt 0.031040 0.480966
vt 0.598659 0.518774
vt 0.578655 0.518774
vt 0.008241 0.001044
vt 0.016200 0.001063
vt 0.028934 0.001093
vt 0.036893 0.001111
vt 0.483961 0.292147
vt 0.483961 0.297717
vt 0.483961 0.301198
vt 0.463957 0.301198
vt 0.463957 0.297717
vt 0.463957 0.292147
vt 0.463957 0.288665
vt 0.483961 0.288665
vt 0.598659 0.998956
vt 0.578655 0.998955
vt 0.109602 0.518366
vt 0.080950 0.518433
vt 0.115455 0.998221
vt 0.107496 0.998240
vt 0.094762 0.998270
vt 0.086803 0.998288
vt 0.350020 0.245939
vt 0.350020 0.241961
vt 0.350020 0.239474
vt 0.364309 0.239474
vt 0.364309 0.241961
vt 0.364309 0.245939
vt 0.364309 0.248426
vt 0.350020 0.248426
vt 0.104928 0.001058
vt 0.110613 0.001044
vt 0.017269 0.998254
vt 0.011584 0.998240
vt 0.645362 0.998802
vt 0.631073 0.998802
vt 0.026365 0.998275
vt 0.095831 0.001079
vt 0.032051 0.998288
vt 0.090146 0.001092
vt 0.558777 0.232457
vt 0.558777 0.215050
vt 0.571512 0.215050
vt 0.571512 0.232457
vt 0.571512 0.155720
vt 0.558777 0.155720
vt 0.558777 0.138313
vt 0.571512 0.138313
vt 0.159511 0.159202
vt 0.159511 0.141794
vt 0.266625 0.141794
vt 0.238133 0.159201
vt 0.448410 0.353290
vt 0.448410 0.350780
vt 0.555521 0.350780
vt 0.555521 0.353290
vt 0.476901 0.370697
vt 0.555521 0.370697
vt 0.054909 0.983636
vt 0.046950 0.983617
vt 0.047521 0.936797
vt 0.055480 0.936816
vt 0.558777 0.212540
vt 0.571512 0.212540
vt 0.558777 0.135803
vt 0.571512 0.135803
vt 0.159511 0.139285
vt 0.266625 0.139285
vt 0.146206 0.015667
vt 0.154165 0.015649
vt 0.154736 0.062468
vt 0.146777 0.062487
vt 0.134042 0.062516
vt 0.126083 0.062535
vt 0.125512 0.015715
vt 0.133471 0.015697
vt 0.672999 0.062500
vt 0.652995 0.062500
vt 0.652995 0.015648
vt 0.672999 0.015648
vt 0.068215 0.936846
vt 0.076174 0.936864
vt 0.075603 0.983684
vt 0.067644 0.983665
vt 0.623439 0.984350
vt 0.603435 0.984350
vt 0.603435 0.937499
vt 0.623439 0.937499
vt 0.620581 0.998956
vt 0.606292 0.998956
vt 0.672999 0.518609
vt 0.672999 0.998802
vt 0.652995 0.998802
vt 0.652995 0.518609
vt 0.148883 0.518366
vt 0.120231 0.518433
vt 0.603435 0.481226
vt 0.623439 0.481226
vt 0.154736 0.998221
vt 0.146777 0.998240
vt 0.134042 0.998270
vt 0.126083 0.998288
vt 0.543761 0.298328
vt 0.543761 0.301809
vt 0.523757 0.301809
vt 0.523757 0.298328
vt 0.523757 0.292758
vt 0.523757 0.289276
vt 0.543761 0.289276
vt 0.543761 0.292758
vt 0.603435 0.001044
vt 0.623439 0.001044
vt 0.041669 0.480899
vt 0.070321 0.480966
vt 0.047522 0.001044
vt 0.055481 0.001063
vt 0.068215 0.001093
vt 0.076174 0.001111
vt 0.573879 0.133714
vt 0.373063 0.133714
vt 0.373063 0.001044
vt 0.573879 0.001044
vt 0.385801 0.135803
vt 0.443634 0.135803
vt 0.443634 0.271955
vt 0.385801 0.271955
vt 0.506243 0.271955
vt 0.448410 0.271955
vt 0.448410 0.135803
vt 0.506243 0.135803
vt 0.368287 0.137196
vt 0.159511 0.137196
vt 0.159511 0.001044
vt 0.368287 0.001044
vt 0.968480 0.181513
vt 0.910609 0.181513
vt 0.910609 0.090192
vt 0.968480 0.090192
vt 0.518981 0.270214
vt 0.518981 0.137544
vt 0.981138 0.179772
vt 0.981138 0.091933
vt 0.373063 0.137544
vt 0.373063 0.270214
vt 0.981134 0.273182
vt 0.968482 0.274922
vt 0.968482 0.183602
vt 0.981134 0.185342
vt 0.910609 0.274922
vt 0.910609 0.183602
vt 0.350020 0.230919
vt 0.350020 0.228433
vt 0.364309 0.228433
vt 0.364309 0.230919
vt 0.364309 0.234898
vt 0.364309 0.237385
vt 0.350020 0.237385
vt 0.350020 0.234898
vt 0.071331 0.998288
vt 0.065646 0.998275
vt 0.129427 0.001092
vt 0.135112 0.001079
vt 0.655853 0.001044
vt 0.670142 0.001044
vt 0.144208 0.001058
vt 0.056550 0.998254
vt 0.149893 0.001044
vt 0.050865 0.998240
usemtl Material
s 1
f 5/1 6/2 1/3 2/4
f 7/5 4/6 3/7 8/8
f 6/9 8/10 3/11 1/12
f 4/13 2/14 10/15 12/16
f 7/17 5/18 2/14 4/13
f 19/19 17/20 5/18 7/17
f 18/21 20/22 8/10 6/9
f 19/23 7/5 8/8 20/24
f 17/25 18/26 6/2 5/1
f 9/27 11/28 12/29 10/30
f 2/4 1/3 9/31 10/32
f 3/7 4/6 12/33 11/34
f 1/12 3/11 11/35 9/36
f 21/37 14/38 13/39 22/40
f 23/41 24/42 15/43 16/44
f 22/45 13/46 15/47 24/48
f 16/49 28/50 26/51 14/52
f 23/53 16/49 14/52 21/54
f 19/19 23/53 21/54 17/20
f 18/21 22/45 24/48 20/22
f 19/23 20/24 24/42 23/41
f 17/25 21/37 22/40 18/26
f 25/55 26/56 28/57 27/58
f 14/38 26/59 25/60 13/39
f 15/43 27/61 28/62 16/44
f 13/46 25/63 27/64 15/47
f 33/65 34/66 29/67 30/68
f 35/69 32/70 31/71 36/72
f 34/73 36/74 31/75 29/76
f 32/77 30/78 38/79 40/80
f 35/81 33/82 30/78 32/77
f 47/83 45/84 33/82 35/81
f 46/85 48/86 36/74 34/73
f 47/87 35/69 36/72 48/88
f 45/89 46/90 34/66 33/65
f 37/91 39/92 40/93 38/94
f 30/68 29/67 37/95 38/96
f 31/71 32/70 40/97 39/98
f 29/76 31/75 39/99 37/100
f 49/101 42/102 41/103 50/104
f 51/105 52/106 43/107 44/108
f 50/109 41/110 43/111 52/112
f 44/113 56/114 54/115 42/116
f 51/117 44/113 42/116 49/118
f 47/83 51/117 49/118 45/84
f 46/85 50/109 52/112 48/86
f 47/87 48/88 52/106 51/105
f 45/89 49/101 50/104 46/90
f 53/119 54/120 56/121 55/122
f 42/102 54/123 53/124 41/103
f 43/107 55/125 56/126 44/108
f 41/110 53/127 55/128 43/111
f 58/129 60/130 59/131 57/132
f 60/133 64/134 63/135 59/136
f 64/137 62/138 61/139 63/140
f 62/141 58/142 57/143 61/144
f 57/145 59/146 63/147 61/148
f 62/149 64/150 60/151 58/152
f 69/153 70/154 78/155 77/156
f 68/157 72/158 80/159 76/160 75/161 78/162 70/163 67/164
f 74/165 73/166 77/167 78/168 75/169 76/170 80/171 79/172
f 72/173 71/174 79/175 80/176
f 66/177 65/178 69/179 77/180 73/181 74/182 79/183 71/184
f 85/185 93/186 94/187 86/188
f 84/189 83/190 86/191 94/192 91/193 92/194 96/195 88/196
f 90/197 95/198 96/199 92/200 91/201 94/202 93/203 89/204
f 88/205 96/206 95/207 87/208
f 82/209 87/210 95/211 90/212 89/213 93/214 85/215 81/216
f 101/217 102/218 97/219 98/220
f 103/221 100/222 99/223 104/224
f 102/225 104/226 99/227 97/228
f 100/229 98/230 106/231 108/232
f 103/233 101/234 98/230 100/229
f 147/235 145/236 101/234 103/233
f 146/237 148/238 104/226 102/225
f 147/239 103/221 104/224 148/240
f 145/241 146/242 102/218 101/217
f 108/243 106/244 117/245 118/246
f 98/220 97/219 105/247 106/248
f 99/223 100/222 108/249 107/250
f 97/228 99/227 107/251 105/252
f 111/253 112/254 120/255 119/256 110/257 109/258 115/259 116/260
f 113/261 114/262 116/263 115/264
f 105/265 107/266 114/267 113/268
f 118/269 117/270 119/271 120/272
f 118/269 120/272 139/273 140/274
f 121/275 122/276 130/277 129/278
f 115/259 109/258 110/257 119/256 124/279 122/280
f 119/271 117/270 123/281 124/282
f 124/279 132/283 128/284 127/285 130/286 122/280
f 113/261 115/264 122/276 121/275
f 126/287 125/288 129/289 130/290 127/291 128/292 132/293 131/294
f 124/282 123/281 131/295 132/296
f 105/265 113/268 121/297 123/298 117/245 106/244
f 123/298 121/297 129/299 125/300 126/301 131/302
f 133/303 134/304 140/305 139/306 136/307 135/308 137/309 138/310
f 114/267 107/266 133/311 138/312
f 120/255 112/254 136/313 139/314
f 116/263 114/262 138/315 137/316
f 112/254 111/253 135/317 136/313
f 107/266 108/243 134/318 133/311
f 111/253 116/260 137/319 135/317
f 108/243 118/246 140/320 134/318
f 149/321 142/322 141/323 150/324
f 151/325 152/326 143/327 144/328
f 150/329 141/330 143/331 152/332
f 144/333 156/334 154/335 142/336
f 151/337 144/333 142/336 149/338
f 147/235 151/337 149/338 145/236
f 146/237 150/329 152/332 148/238
f 147/239 148/240 152/326 151/325
f 145/241 149/321 150/324 146/242
f 156/339 166/340 165/341 154/342
f 142/322 154/343 153/344 141/323
f 143/327 155/345 156/346 144/328
f 141/330 153/347 155/348 143/331
f 159/349 164/350 163/351 157/352 158/353 167/354 168/355 160/356
f 161/357 163/358 164/359 162/360
f 153/361 161/362 162/363 155/364
f 166/365 168/366 167/367 165/368
f 166/365 200/369 199/370 168/366
f 169/371 177/372 178/373 170/374
f 163/351 170/375 172/376 167/354 158/353 157/352
f 167/367 172/377 171/378 165/368
f 172/376 170/375 178/379 175/380 176/381 180/382
f 161/357 169/371 170/374 163/358
f 174/383 179/384 180/385 176/386 175/387 178/388 177/389 173/390
f 172/377 180/391 179/392 171/378
f 153/361 154/342 165/341 171/393 169/394 161/362
f 171/393 179/395 174/396 173/397 177/398 169/394
f 189/399 185/400 187/401 191/402
f 192/403 184/404 183/405 190/406
f 186/407 181/408 182/409 188/410
f 181/411 183/412 184/413 182/414
f 188/415 182/416 184/417 192/418
f 185/419 186/407 188/410 187/420
f 187/421 188/415 192/418 191/422
f 191/423 192/403 190/406 189/424
f 189/425 190/426 186/427 185/428
f 190/426 183/429 181/430 186/427
f 193/431 198/432 197/433 195/434 196/435 199/436 200/437 194/438
f 162/363 198/439 193/440 155/364
f 168/355 199/441 196/442 160/356
f 164/359 197/443 198/444 162/360
f 160/356 196/442 195/445 159/349
f 155/364 193/440 194/446 156/339
f 159/349 195/445 197/447 164/350
f 156/339 194/446 200/448 166/340

5983
cw 9/models/bed.obj Normal file

File diff suppressed because it is too large Load Diff

BIN
cw 9/models/bed_all.fbx Normal file

Binary file not shown.

5669
cw 9/models/carpet.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

BIN
cw 9/models/christmas.fbx Normal file

Binary file not shown.

12
cw 9/models/cube.mtl Normal file
View File

@ -0,0 +1,12 @@
# Blender MTL File: 'None'
# Material Count: 1
newmtl _PBR
Ns 225.000000
Ka 1.000000 1.000000 1.000000
Kd 0.053704 0.053704 0.053704
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 3

40
cw 9/models/cube.obj Normal file
View File

@ -0,0 +1,40 @@
# Blender v2.90.0 OBJ File: ''
# www.blender.org
mtllib cube.mtl
o Cube
v -10.000000 -10.000000 10.000000
v -10.000000 10.000000 10.000000
v -10.000000 -10.000000 -10.000000
v -10.000000 10.000000 -10.000000
v 10.000000 -10.000000 10.000000
v 10.000000 10.000000 10.000000
v 10.000000 -10.000000 -10.000000
v 10.000000 10.000000 -10.000000
vt 0.375000 0.000000
vt 0.625000 0.000000
vt 0.625000 0.250000
vt 0.375000 0.250000
vt 0.625000 0.500000
vt 0.375000 0.500000
vt 0.625000 0.750000
vt 0.375000 0.750000
vt 0.625000 1.000000
vt 0.375000 1.000000
vt 0.125000 0.500000
vt 0.125000 0.750000
vt 0.875000 0.500000
vt 0.875000 0.750000
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
usemtl _PBR
s 1
f 1/1/1 2/2/1 4/3/1 3/4/1
f 3/4/2 4/3/2 8/5/2 7/6/2
f 7/6/3 8/5/3 6/7/3 5/8/3
f 5/8/4 6/7/4 2/9/4 1/10/4
f 3/11/5 7/6/5 5/8/5 1/12/5
f 8/5/6 4/13/6 2/14/6 6/7/6

BIN
cw 9/models/deer.fbx Normal file

Binary file not shown.

4349
cw 9/models/desk.obj Normal file

File diff suppressed because it is too large Load Diff

3188
cw 9/models/door.obj Normal file

File diff suppressed because it is too large Load Diff

6823
cw 9/models/drawer.obj Normal file

File diff suppressed because it is too large Load Diff

BIN
cw 9/models/giftTest.fbx Normal file

Binary file not shown.

57393
cw 9/models/keyboard.obj Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

410
cw 9/models/lowpolytree.obj Normal file
View File

@ -0,0 +1,410 @@
# Blender v2.75 (sub 0) OBJ File: 'lowpolytree.blend'
# www.blender.org
mtllib lowpolytree.mtl
o Cylinder
v -0.005440 -0.809443 -0.939428
v 0.019167 3.227034 0.022684
v 0.637348 -0.809443 -0.705472
v 0.028745 3.227034 0.026170
v 0.979368 -1.003520 -0.113076
v 0.033842 3.227034 0.034997
v 0.860586 -1.003520 0.560572
v 0.032072 3.227034 0.045035
v 0.336580 -0.809443 1.000265
v 0.024263 3.227034 0.051587
v -0.353069 -0.872769 0.994068
v 0.014070 3.227034 0.051587
v -0.871465 -1.003520 0.560572
v 0.006262 3.227034 0.045035
v -0.990247 -1.003520 -0.113076
v 0.004492 3.227034 0.034997
v -0.653837 -1.066847 -0.711668
v 0.009589 3.227034 0.026170
v -0.002290 -0.453387 -0.816288
v 0.559453 -0.453387 -0.611830
v 0.858351 -0.453387 -0.094124
v 0.754545 -0.453387 0.494589
v 0.296607 -0.453387 0.878845
v -0.306797 -0.516713 0.872648
v -0.759126 -0.453387 0.494589
v -0.862932 -0.453387 -0.094124
v -0.569643 -0.516713 -0.618026
v 0.015024 2.516458 -0.139296
v 0.131209 2.516458 -0.097008
v 0.193029 2.516458 0.010068
v 0.171559 2.516458 0.131830
v 0.076845 2.516458 0.211305
v -0.052405 2.453131 0.205109
v -0.141511 2.516458 0.131830
v -0.162981 2.516458 0.010068
v -0.106769 2.453131 -0.103204
v 0.242392 1.745409 -0.230669
v 0.365764 1.745409 -0.016983
v 0.322917 1.745409 0.226012
v 0.133901 1.745409 0.384616
v -0.118452 1.682083 0.378420
v -0.301860 1.745409 0.226012
v -0.344706 1.745409 -0.016983
v -0.226943 1.682082 -0.236866
v 0.010529 1.745409 -0.315061
v 0.365054 0.894761 -0.378129
v 0.556331 0.894761 -0.046827
v 0.489901 0.894761 0.329917
v 0.196847 0.894761 0.575818
v -0.191317 0.831434 0.569622
v -0.478762 0.894761 0.329916
v -0.545192 0.894761 -0.046827
v -0.359524 0.831434 -0.384325
v 0.005569 0.894761 -0.508971
v 0.474390 0.136519 -0.509570
v 0.726197 0.136518 -0.073428
v 0.638746 0.136519 0.422534
v 0.252955 0.136519 0.746250
v -0.256267 0.073192 0.740054
v -0.636448 0.136519 0.422534
v -0.723899 0.136518 -0.073428
v -0.477702 0.073192 -0.515766
v 0.001149 0.136518 -0.681816
v 0.015674 2.466367 -0.253986
v 0.199847 2.466368 -0.186952
v 0.292234 2.403041 -0.023413
v 0.263809 2.466367 0.175798
v 0.113670 2.466367 0.301780
v -0.087932 2.403041 0.295584
v -0.232462 2.466367 0.175798
v -0.266496 2.466367 -0.017217
v -0.174109 2.403041 -0.193148
v 0.010725 1.692862 -0.451635
v 0.324917 1.692862 -0.337279
v 0.486486 1.629535 -0.053915
v 0.434034 1.692862 0.281558
v 0.177903 1.692862 0.496478
v -0.162062 1.629536 0.490282
v -0.412585 1.692862 0.281558
v -0.470645 1.692862 -0.047718
v -0.309076 1.629535 -0.343475
v 0.005286 0.842699 -0.671042
v 0.463775 0.842699 -0.504165
v 0.702124 0.779372 -0.087815
v 0.623007 0.842699 0.398883
v 0.249243 0.842699 0.712509
v -0.244281 0.779373 0.706312
v -0.612436 0.842699 0.398883
v -0.697161 0.842699 -0.081619
v -0.458813 0.779373 -0.510362
v 0.000399 0.078844 -0.831178
v 0.564756 0.078845 -0.625769
v 0.859436 0.015518 -0.111850
v 0.760756 0.078844 0.485799
v 0.300687 0.078845 0.871843
v -0.305499 0.015518 0.865646
v -0.759959 0.078845 0.485799
v -0.864248 0.078844 -0.105654
v -0.569569 0.015518 -0.631965
v 0.669916 -0.512940 -0.752068
v 1.022565 -0.576267 -0.137744
v 0.903752 -0.512940 0.574081
v 0.354870 -0.512940 1.034648
v -0.367254 -0.576267 1.028452
v -0.910528 -0.512940 0.574081
v -1.034949 -0.512941 -0.131548
v -0.682301 -0.576267 -0.758265
v -0.003388 -0.512941 -0.997131
v 0.747414 -1.054853 -0.845319
v 1.143143 -1.118179 -0.156378
v 1.009368 -1.054853 0.640300
v 0.394483 -1.054853 1.156250
v -0.413802 -1.118179 1.150053
v -1.023078 -1.054853 0.640299
v -1.162461 -1.054853 -0.150182
v -0.766733 -1.118179 -0.851516
v -0.006855 -1.054853 -1.119851
v -0.018886 -1.895607 -0.373037
v -0.018886 -0.720161 -0.373037
v 0.231064 -1.895607 -0.282063
v 0.231064 -0.720161 -0.282063
v 0.364060 -1.895607 -0.051708
v 0.364060 -0.720161 -0.051708
v 0.317871 -1.895607 0.210242
v 0.317871 -0.720161 0.210242
v 0.114110 -1.895607 0.381218
v 0.114110 -0.720161 0.381218
v -0.151881 -1.895607 0.381218
v -0.151881 -0.720161 0.381218
v -0.355642 -1.895607 0.210242
v -0.355642 -0.720161 0.210242
v -0.401831 -1.895607 -0.051708
v -0.401831 -0.720161 -0.051708
v -0.268836 -1.895607 -0.282063
v -0.268836 -0.720161 -0.282063
v -0.018886 -1.314390 -0.264436
v 0.161257 -1.314390 -0.198870
v 0.257109 -1.314390 -0.032850
v 0.223820 -1.314390 0.155942
v 0.076966 -1.314390 0.279167
v -0.114738 -1.314390 0.279166
v -0.261591 -1.314390 0.155942
v -0.294880 -1.314390 -0.032850
v -0.199028 -1.314390 -0.198870
vn 0.323800 0.322100 -0.889600
vn 0.873000 0.302200 -0.382700
vn 0.953600 0.297100 0.047700
vn 0.610900 0.311200 0.728000
vn -0.116400 0.296500 0.947900
vn -0.531300 0.301500 0.791700
vn -0.932700 0.321000 0.164500
vn 0.000000 1.000000 -0.000000
vn -0.380900 0.316900 -0.868600
vn -0.789800 0.316600 -0.525300
vn 0.041500 -0.999100 0.002400
vn -0.766700 0.431000 -0.475700
vn -0.335600 0.430400 -0.837900
vn -0.889800 0.428500 0.156900
vn -0.551100 0.423000 0.719300
vn -0.045500 0.418700 0.907000
vn 0.584400 0.416300 0.696500
vn 0.907900 0.396000 0.137600
vn 0.802300 0.402500 -0.440800
vn 0.309300 0.426600 -0.849900
vn -0.783800 0.337000 -0.521700
vn -0.378300 0.336700 -0.862300
vn -0.927900 0.335100 0.163600
vn -0.527700 0.328800 0.783200
vn -0.112700 0.325600 0.938800
vn 0.607800 0.325400 0.724400
vn 0.943700 0.312200 0.109300
vn 0.844400 0.317300 -0.431700
vn 0.322400 0.334200 -0.885700
vn 0.320900 0.345800 -0.881700
vn 0.832500 0.330400 -0.444700
vn 0.936600 0.326000 0.128300
vn 0.604700 0.339000 0.720700
vn -0.073500 0.340900 0.937200
vn -0.553400 0.344100 0.758500
vn -0.923000 0.348700 0.162700
vn -0.357900 0.349000 -0.866100
vn -0.790600 0.350000 -0.502400
vn -0.795700 0.350700 -0.493900
vn -0.348600 0.349600 -0.869600
vn -0.922800 0.349100 0.162700
vn -0.566400 0.344600 0.748700
vn -0.055100 0.340800 0.938500
vn 0.604800 0.338500 0.720800
vn 0.935900 0.324300 0.137500
vn 0.829000 0.329300 -0.452000
vn 0.320900 0.346100 -0.881600
vn 0.311400 0.413300 -0.855700
vn 0.807700 0.391000 -0.441200
vn 0.912900 0.384900 0.135700
vn 0.588100 0.403500 0.700900
vn -0.050900 0.405600 0.912600
vn -0.551300 0.409600 0.726800
vn -0.896000 0.415000 0.158000
vn -0.340400 0.416800 -0.842900
vn -0.770800 0.417400 -0.481200
vn 0.182400 -0.862800 0.471500
vn 0.434600 -0.856700 0.277800
vn 0.451100 -0.888900 -0.079500
vn 0.033800 -0.816400 -0.576500
vn 0.332600 -0.824000 -0.458600
vn -0.304900 -0.880400 -0.363300
vn -0.650200 -0.758200 0.048500
vn -0.618900 -0.766100 0.173400
vn -0.143900 -0.907200 0.395400
vn -0.129500 -0.925500 0.355900
vn -0.535900 -0.819600 0.202800
vn -0.587300 -0.809300 -0.008200
vn -0.269100 -0.908100 -0.320700
vn 0.198400 -0.887000 -0.417000
vn 0.115600 -0.885800 -0.449500
vn 0.398700 -0.914400 -0.070300
vn 0.303300 -0.907700 0.290100
vn 0.229600 -0.909100 0.347700
vn 0.213700 -0.937900 0.273300
vn 0.232200 -0.937700 0.258600
vn 0.335600 -0.940100 -0.059200
vn 0.120800 -0.925500 -0.359000
vn 0.137900 -0.925700 -0.352300
vn -0.226300 -0.936000 -0.269700
vn -0.512900 -0.858100 -0.023500
vn -0.461800 -0.865900 0.192000
vn -0.110700 -0.946200 0.304100
vn -0.130200 -0.924700 0.357700
vn -0.503100 -0.832000 0.233900
vn -0.569500 -0.820500 -0.049400
vn -0.266000 -0.910400 -0.317000
vn 0.107200 -0.903800 -0.414400
vn 0.183900 -0.904700 -0.384400
vn 0.392700 -0.917000 -0.069300
vn 0.223200 -0.920100 0.321800
vn 0.279900 -0.919300 0.276500
vn 0.243400 -0.939800 0.240100
vn 0.193800 -0.940200 0.280100
vn 0.338100 -0.939200 -0.059600
vn 0.157200 -0.930900 -0.329700
vn 0.092200 -0.930300 -0.355000
vn -0.228200 -0.934800 -0.272000
vn -0.498900 -0.865600 -0.043200
vn -0.442200 -0.873000 0.205700
vn -0.113300 -0.943500 0.311400
vn -0.281700 -0.567300 0.773800
vn -0.696600 -0.665800 0.267300
vn -0.464800 -0.884400 -0.041800
vn -0.511600 -0.723900 -0.462700
vn 0.052300 -0.535900 -0.842700
vn 0.463500 -0.730300 -0.501900
vn 0.295600 -0.953900 -0.052100
vn 0.366300 -0.744100 0.558700
vn 0.211800 -0.954000 0.212200
vn 0.337100 -0.169300 -0.926100
vn 0.853500 -0.169300 -0.492800
vn 0.970600 -0.169300 0.171100
vn 0.633500 -0.169300 0.755000
vn -0.000000 -0.169300 0.985600
vn -0.633500 -0.169300 0.755000
vn -0.970600 -0.169300 0.171100
vn -0.337100 -0.169300 -0.926100
vn -0.853500 -0.169300 -0.492800
vn 0.000000 -1.000000 0.000000
vn -0.853000 0.172900 -0.492500
vn -0.336900 0.172900 -0.925500
vn -0.970000 0.172900 0.171000
vn -0.633100 0.172900 0.754500
vn -0.000000 0.172900 0.984900
vn 0.633100 0.172900 0.754500
vn 0.970000 0.172900 0.171000
vn 0.853000 0.172900 -0.492500
vn 0.336900 0.172900 -0.925500
usemtl Leaves
s off
f 64//1 2//1 4//1 65//1
f 65//2 4//2 6//2 66//2
f 66//3 6//3 8//3 67//3
f 67//4 8//4 10//4 68//4
f 68//5 10//5 12//5 69//5
f 69//6 12//6 14//6 70//6
f 70//7 14//7 16//7 71//7
f 4//8 2//8 18//8 16//8 14//8 12//8 10//8 8//8 6//8
f 72//9 18//9 2//9 64//9
f 71//10 16//10 18//10 72//10
f 1//11 3//11 5//11 7//11 9//11 11//11 13//11 15//11 17//11
f 115//12 26//12 27//12 116//12
f 116//13 27//13 19//13 117//13
f 114//14 25//14 26//14 115//14
f 113//15 24//15 25//15 114//15
f 112//16 23//16 24//16 113//16
f 111//17 22//17 23//17 112//17
f 110//18 21//18 22//18 111//18
f 109//19 20//19 21//19 110//19
f 117//20 19//20 20//20 109//20
f 80//21 35//21 36//21 81//21
f 81//22 36//22 28//22 73//22
f 79//23 34//23 35//23 80//23
f 78//24 33//24 34//24 79//24
f 77//25 32//25 33//25 78//25
f 76//26 31//26 32//26 77//26
f 75//27 30//27 31//27 76//27
f 74//28 29//28 30//28 75//28
f 73//29 28//29 29//29 74//29
f 82//30 45//30 37//30 83//30
f 83//31 37//31 38//31 84//31
f 84//32 38//32 39//32 85//32
f 85//33 39//33 40//33 86//33
f 86//34 40//34 41//34 87//34
f 87//35 41//35 42//35 88//35
f 88//36 42//36 43//36 89//36
f 90//37 44//37 45//37 82//37
f 89//38 43//38 44//38 90//38
f 98//39 52//39 53//39 99//39
f 99//40 53//40 54//40 91//40
f 97//41 51//41 52//41 98//41
f 96//42 50//42 51//42 97//42
f 95//43 49//43 50//43 96//43
f 94//44 48//44 49//44 95//44
f 93//45 47//45 48//45 94//45
f 92//46 46//46 47//46 93//46
f 91//47 54//47 46//47 92//47
f 108//48 63//48 55//48 100//48
f 100//49 55//49 56//49 101//49
f 101//50 56//50 57//50 102//50
f 102//51 57//51 58//51 103//51
f 103//52 58//52 59//52 104//52
f 104//53 59//53 60//53 105//53
f 105//54 60//54 61//54 106//54
f 107//55 62//55 63//55 108//55
f 106//56 61//56 62//56 107//56
f 35//57 71//57 72//57 36//57
f 36//58 72//58 64//58 28//58
f 34//59 70//59 71//59 35//59
f 33//60 69//60 70//60 34//60
f 32//61 68//61 69//61 33//61
f 31//62 67//62 68//62 32//62
f 30//63 66//63 67//63 31//63
f 29//64 65//64 66//64 30//64
f 28//65 64//65 65//65 29//65
f 45//66 73//66 74//66 37//66
f 37//67 74//67 75//67 38//67
f 38//68 75//68 76//68 39//68
f 39//69 76//69 77//69 40//69
f 40//70 77//70 78//70 41//70
f 41//71 78//71 79//71 42//71
f 42//72 79//72 80//72 43//72
f 44//73 81//73 73//73 45//73
f 43//74 80//74 81//74 44//74
f 52//75 89//75 90//75 53//75
f 53//76 90//76 82//76 54//76
f 51//77 88//77 89//77 52//77
f 50//78 87//78 88//78 51//78
f 49//79 86//79 87//79 50//79
f 48//80 85//80 86//80 49//80
f 47//81 84//81 85//81 48//81
f 46//82 83//82 84//82 47//82
f 54//83 82//83 83//83 46//83
f 63//84 91//84 92//84 55//84
f 55//85 92//85 93//85 56//85
f 56//86 93//86 94//86 57//86
f 57//87 94//87 95//87 58//87
f 58//88 95//88 96//88 59//88
f 59//89 96//89 97//89 60//89
f 60//90 97//90 98//90 61//90
f 62//91 99//91 91//91 63//91
f 61//92 98//92 99//92 62//92
f 26//93 106//93 107//93 27//93
f 27//94 107//94 108//94 19//94
f 25//95 105//95 106//95 26//95
f 24//96 104//96 105//96 25//96
f 23//97 103//97 104//97 24//97
f 22//98 102//98 103//98 23//98
f 21//99 101//99 102//99 22//99
f 20//100 100//100 101//100 21//100
f 19//101 108//101 100//101 20//101
f 1//102 117//102 109//102 3//102
f 3//103 109//103 110//103 5//103
f 5//104 110//104 111//104 7//104
f 7//105 111//105 112//105 9//105
f 9//106 112//106 113//106 11//106
f 11//107 113//107 114//107 13//107
f 13//108 114//108 115//108 15//108
f 17//109 116//109 117//109 1//109
f 15//110 115//110 116//110 17//110
usemtl Bark
f 136//111 119//111 121//111 137//111
f 137//112 121//112 123//112 138//112
f 138//113 123//113 125//113 139//113
f 139//114 125//114 127//114 140//114
f 140//115 127//115 129//115 141//115
f 141//116 129//116 131//116 142//116
f 142//117 131//117 133//117 143//117
f 121//8 119//8 135//8 133//8 131//8 129//8 127//8 125//8 123//8
f 144//118 135//118 119//118 136//118
f 143//119 133//119 135//119 144//119
f 118//120 120//120 122//120 124//120 126//120 128//120 130//120 132//120 134//120
f 132//121 143//121 144//121 134//121
f 134//122 144//122 136//122 118//122
f 130//123 142//123 143//123 132//123
f 128//124 141//124 142//124 130//124
f 126//125 140//125 141//125 128//125
f 124//126 139//126 140//126 126//126
f 122//127 138//127 139//127 124//127
f 120//128 137//128 138//128 122//128
f 118//129 136//129 137//129 120//129

View File

@ -0,0 +1,204 @@
# Blender v2.79 (sub 0) OBJ File: 'Low poly Trunk.blend'
# www.blender.org
mtllib Low poly Trunk.mtl
o Circle
v -0.000000 0.000000 -0.386716
v -0.334906 0.000000 0.193358
v 0.000000 0.000000 0.386716
v 0.334906 0.000000 0.193358
v 0.334906 0.000000 -0.193358
v -0.323009 0.234122 -0.186489
v 0.000000 0.234122 -0.372978
v -0.323009 0.234122 0.186489
v 0.000000 0.234122 0.372978
v 0.323009 0.234122 0.186489
v 0.323009 0.234122 -0.186489
v -0.296824 0.486911 -0.171467
v -0.010202 0.512697 -0.339107
v -0.296824 0.522576 0.171467
v -0.011796 0.544933 0.335919
v 0.296824 0.536968 0.171466
v 0.296824 0.489271 -0.171466
v 0.391303 0.000000 -0.133407
v 0.391303 0.000000 0.133407
v 0.391303 0.130371 -0.116708
v 0.391303 0.130371 0.116708
v 0.566339 0.000801 -0.066632
v 0.566339 0.000801 0.066632
v 0.522176 0.044149 -0.059085
v 0.522176 0.044149 0.057498
v -0.171881 0.001869 0.436884
v -0.358148 -0.000765 0.289867
v -0.172694 0.088968 0.436355
v -0.358962 0.086334 0.289338
v -0.331759 0.001152 -0.320024
v -0.125147 0.001288 -0.418225
v -0.328322 0.109260 -0.300921
v -0.125147 0.109260 -0.418225
v -0.347315 -0.002184 -0.486024
v -0.275954 -0.002184 -0.527224
v -0.333988 0.035738 -0.458418
v -0.262627 0.035738 -0.499618
v -0.376814 -0.001762 0.459389
v -0.434053 0.001233 0.387079
v -0.344448 0.033326 0.439399
v -0.010202 0.512697 -0.291902
v -0.255966 0.521216 0.147864
v -0.011796 0.544933 0.288714
v 0.255966 0.538328 0.147864
v 0.255966 0.490631 -0.147864
v -0.256485 0.480865 -0.148101
v -0.001524 0.466900 -0.295727
v -0.257490 0.475420 0.147864
v -0.001524 0.466900 0.295727
v 0.254441 0.458381 0.147864
v 0.254441 0.458381 -0.147864
v 0.000000 0.450324 0.349660
v 0.035540 0.511514 0.322403
v 0.026479 0.511815 0.280431
v 0.018819 0.501860 -0.332062
v -0.000000 0.483857 -0.346043
v 0.012606 0.502067 -0.288445
v 0.187895 0.458931 -0.238337
v 0.110058 0.472608 -0.282166
v 0.090237 0.412287 -0.300464
v 0.184532 0.375600 -0.249726
v 0.210409 0.489254 -0.299029
v 0.144759 0.498165 -0.329416
v 0.139847 0.457333 -0.363315
v 0.223096 0.432982 -0.334830
v 0.217807 0.551933 -0.354387
v 0.181478 0.554393 -0.368875
v 0.182864 0.541264 -0.394308
v 0.230220 0.533978 -0.383644
vn 0.4997 0.0990 -0.8605
vn -0.0065 -0.9999 -0.0151
vn -0.7883 -0.0111 -0.6152
vn 0.5019 0.0229 0.8646
vn 0.9327 -0.0580 0.3559
vn -0.0008 -1.0000 -0.0005
vn 0.9956 0.0934 -0.0062
vn 0.4994 0.0508 0.8649
vn -0.9990 0.0451 -0.0035
vn 0.7457 0.0672 0.6629
vn -0.9636 0.0271 -0.2659
vn -0.3876 0.6317 -0.6713
vn 0.4994 0.0508 -0.8649
vn 0.0329 0.9885 -0.1476
vn -0.4979 0.0871 0.8629
vn -0.5009 0.0943 -0.8603
vn 0.4954 0.0898 0.8640
vn -0.9953 0.0963 -0.0048
vn 0.4260 0.2381 0.8729
vn 0.8353 0.5498 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.7457 0.0672 -0.6629
vn 0.7005 0.7137 0.0000
vn 0.0046 -1.0000 0.0000
vn 0.4210 0.2295 -0.8776
vn 0.5502 0.8351 0.0000
vn -0.3563 0.8696 0.3417
vn -0.4165 0.6546 0.6309
vn 0.0001 -1.0000 0.0076
vn 0.2965 0.0431 0.9541
vn -0.9940 0.1009 0.0412
vn 0.2755 0.0386 -0.9605
vn -0.3893 0.6276 -0.6742
vn -0.9995 0.0292 0.0146
vn 0.0099 -0.9998 0.0188
vn 0.5268 0.1113 -0.8427
vn -0.2335 0.8843 -0.4044
vn 0.0426 0.1548 0.9870
vn -0.5198 0.7312 0.4418
vn 0.0035 -1.0000 -0.0055
vn -0.0568 0.9970 -0.0519
vn 0.9994 -0.0333 0.0028
vn -0.0432 0.9930 0.1098
vn 0.0424 0.9991 0.0064
vn 0.0899 0.9890 -0.1177
vn -0.9996 0.0272 -0.0022
vn 0.5002 -0.0137 -0.8658
vn -0.4994 0.0224 0.8661
vn -0.0631 0.9953 0.0732
vn -0.5005 0.0123 -0.8656
vn 0.1629 -0.4278 -0.8891
vn 0.5039 0.0991 -0.8581
vn -0.8332 0.4005 -0.3813
vn -0.0225 -0.8157 -0.5781
vn -0.0781 0.9016 0.4254
vn -0.2406 0.6581 0.7134
vn 0.9588 0.0871 0.2705
vn -0.8882 0.3650 -0.2792
vn 0.0386 0.9992 0.0031
vn 0.9918 0.1275 0.0059
vn -0.8077 0.5589 0.1875
vn -0.8538 0.5201 0.0224
vn 0.9698 0.2372 0.0564
vn 0.2322 0.8696 -0.4357
usemtl Wood
s off
f 60//1 61//1 58//1 17//1 11//1 7//1 56//1
f 30//2 31//2 1//2
f 27//3 39//3 29//3
f 41//4 46//4 47//4
f 65//5 62//5 58//5 61//5
f 2//6 30//6 1//6 5//6 4//6 3//6
f 17//7 16//7 10//7 11//7
f 10//8 9//8 3//8 4//8
f 6//9 30//9 2//9 8//9
f 21//10 10//10 4//10 19//10
f 29//11 8//11 2//11 27//11
f 33//12 32//12 6//12 7//12
f 11//13 5//13 1//13 7//13
f 45//14 44//14 16//14 17//14
f 52//15 15//15 14//15 8//15 9//15
f 6//16 12//16 13//16 56//16 7//16
f 53//17 52//17 9//17 10//17 16//17
f 12//18 6//18 8//18 14//18
f 25//19 21//19 19//19 23//19
f 20//20 11//20 10//20 21//20
f 19//21 4//21 5//21 18//21
f 20//22 18//22 5//22 11//22
f 25//23 23//23 22//23 24//23
f 23//24 19//24 18//24 22//24
f 24//25 22//25 18//25 20//25
f 25//26 24//26 20//26 21//26
f 40//27 28//27 29//27 39//27
f 28//28 9//28 8//28 29//28
f 26//29 27//29 2//29 3//29
f 28//30 26//30 3//30 9//30
f 36//31 34//31 30//31 32//31
f 33//32 7//32 1//32 31//32
f 37//33 35//33 34//33 36//33
f 30//34 6//34 32//34
f 34//35 35//35 31//35 30//35
f 37//36 33//36 31//36 35//36
f 37//37 36//37 32//37 33//37
f 40//38 38//38 26//38 28//38
f 38//39 40//39 39//39
f 38//40 39//40 27//40 26//40
f 43//41 42//41 14//41 15//41
f 46//42 42//42 48//42
f 41//43 13//43 12//43 46//43
f 45//44 17//44 55//44 57//44
f 42//45 46//45 12//45 14//45
f 50//46 44//46 45//46 51//46
f 48//47 42//47 43//47 49//47
f 51//48 45//48 57//48 47//48
f 44//49 54//49 53//49 16//49
f 50//50 49//50 54//50 44//50
f 69//51 65//51 64//51 68//51
f 59//52 60//52 56//52 55//52 17//52 58//52
f 64//53 60//53 59//53 63//53
f 65//54 61//54 60//54 64//54
f 62//55 63//55 59//55 58//55
f 66//56 67//56 63//56 62//56
f 69//57 66//57 62//57 65//57
f 68//58 64//58 63//58 67//58
usemtl Wood_light
f 50//59 51//59 47//59 46//59 48//59 49//59
f 15//60 52//60 49//60 43//60
f 53//61 54//61 49//61 52//61
f 55//62 56//62 47//62 57//62
f 56//63 13//63 41//63 47//63
f 69//64 68//64 67//64 66//64

35997
cw 9/models/marbleBust.obj Normal file

File diff suppressed because it is too large Load Diff

528
cw 9/models/materace.obj Normal file
View File

@ -0,0 +1,528 @@
# Blender v3.2.1 OBJ File: 'untitled.blend'
# www.blender.org
mtllib materace.mtl
o materace_Cube.005
v 1.427630 0.290372 -0.807401
v 1.453484 0.297289 -0.807401
v 1.427630 0.297289 -0.833255
v 1.452230 0.303802 -0.832001
v 1.427630 0.316294 -0.852260
v 1.427630 0.342148 -0.859177
v 1.427630 0.469987 -0.859177
v 1.453484 0.469987 -0.852260
v 1.427630 0.495841 -0.852260
v 1.452230 0.494587 -0.845747
v 1.427630 0.514846 -0.833255
v 1.452230 0.508333 -0.832001
v 1.427630 0.521763 -0.807401
v 1.453484 0.514846 -0.807401
v 1.472489 0.495841 -0.807401
v 1.479406 0.469987 -0.807401
v 1.479406 0.342148 -0.807401
v 1.472489 0.316294 -0.807401
v 1.465976 0.317548 -0.832001
v 1.472489 0.342148 -0.833255
v 1.452230 0.317548 -0.845747
v 1.453484 0.342148 -0.852260
v 1.472489 0.469987 -0.833255
v 1.465976 0.494587 -0.832001
v 0.886278 0.290372 -0.807401
v 0.886278 0.521763 -0.807401
v 0.886278 0.297306 -0.833285
v 0.886278 0.316264 -0.852242
v 0.886278 0.342148 -0.859177
v 0.886278 0.469987 -0.859177
v 0.886278 0.495871 -0.852242
v 0.886278 0.514828 -0.833285
v 0.344926 0.290372 -0.807401
v 0.319072 0.297289 -0.807401
v 0.344926 0.297289 -0.833255
v 0.320326 0.303802 -0.832001
v 0.344926 0.316294 -0.852260
v 0.344926 0.342148 -0.859177
v 0.344926 0.469987 -0.859177
v 0.319072 0.469987 -0.852260
v 0.344926 0.495841 -0.852260
v 0.320326 0.494587 -0.845747
v 0.344926 0.514846 -0.833255
v 0.320326 0.508333 -0.832001
v 0.344926 0.521763 -0.807401
v 0.319072 0.514846 -0.807401
v 0.300067 0.495841 -0.807401
v 0.293150 0.469987 -0.807401
v 0.293150 0.342148 -0.807401
v 0.300067 0.316294 -0.807401
v 0.306580 0.317548 -0.832001
v 0.300067 0.342148 -0.833255
v 0.320326 0.317548 -0.845747
v 0.319072 0.342148 -0.852260
v 0.300067 0.469987 -0.833255
v 0.306580 0.494587 -0.832001
v 1.427630 0.290372 0.053381
v 1.427630 0.521763 0.053381
v 1.453510 0.297304 0.053381
v 1.472474 0.316268 0.053381
v 1.453510 0.514831 0.053381
v 1.472474 0.495867 0.053381
v 1.479406 0.469987 0.053381
v 1.479406 0.342148 0.053381
v 0.886278 0.521763 0.053381
v 0.886278 0.290372 0.053381
v 0.344926 0.290372 0.053381
v 0.344926 0.521763 0.053381
v 0.319046 0.297304 0.053381
v 0.300082 0.316268 0.053381
v 0.319046 0.514831 0.053381
v 0.300082 0.495867 0.053381
v 0.293150 0.469987 0.053381
v 0.293150 0.342148 0.053381
v 1.427630 0.290372 0.914162
v 1.453484 0.297289 0.914163
v 1.427630 0.297289 0.940016
v 1.452230 0.303802 0.938762
v 1.427630 0.316294 0.959021
v 1.427630 0.342148 0.965938
v 1.427630 0.469987 0.965938
v 1.453484 0.469987 0.959021
v 1.427630 0.495841 0.959021
v 1.452230 0.494587 0.952508
v 1.427630 0.514846 0.940016
v 1.452230 0.508333 0.938762
v 1.427630 0.521763 0.914162
v 1.453484 0.514846 0.914163
v 1.472489 0.495841 0.914163
v 1.479406 0.469987 0.914162
v 1.479406 0.342148 0.914162
v 1.472489 0.316294 0.914163
v 1.465976 0.317548 0.938762
v 1.472489 0.342148 0.940016
v 1.452230 0.317548 0.952508
v 1.453484 0.342148 0.959021
v 1.472489 0.469987 0.940016
v 1.465976 0.494587 0.938762
v 0.886278 0.290372 0.914162
v 0.886278 0.521763 0.914162
v 0.886278 0.297306 0.940046
v 0.886278 0.316264 0.959004
v 0.886278 0.342148 0.965938
v 0.886278 0.469987 0.965938
v 0.886278 0.495871 0.959004
v 0.886278 0.514828 0.940046
v 0.344926 0.290372 0.914162
v 0.319072 0.297289 0.914163
v 0.344926 0.297289 0.940016
v 0.320326 0.303802 0.938762
v 0.344926 0.316294 0.959021
v 0.344926 0.342148 0.965938
v 0.344926 0.469987 0.965938
v 0.319072 0.469987 0.959021
v 0.344926 0.495841 0.959021
v 0.320326 0.494587 0.952508
v 0.344926 0.514846 0.940016
v 0.320326 0.508333 0.938762
v 0.344926 0.521763 0.914162
v 0.319072 0.514846 0.914163
v 0.300067 0.495841 0.914163
v 0.293150 0.469987 0.914162
v 0.293150 0.342148 0.914162
v 0.300067 0.316294 0.914163
v 0.306580 0.317548 0.938762
v 0.300067 0.342148 0.940016
v 0.320326 0.317548 0.952508
v 0.319072 0.342148 0.959021
v 0.300067 0.469987 0.940016
v 0.306580 0.494587 0.938762
vt 0.676957 0.525890
vt 0.676957 0.521082
vt 0.668986 0.521315
vt 0.668580 0.525890
vt 0.676957 0.516261
vt 0.668986 0.516261
vt 0.852367 0.516261
vt 0.676957 0.516261
vt 0.852367 0.516642
vt 0.852367 0.516642
vt 0.676957 0.516261
vt 0.676957 0.516261
vt 0.852367 0.516261
vt 0.852367 0.521076
vt 0.676957 0.521082
vt 0.668580 0.516261
vt 0.668580 0.516261
vt 0.668986 0.516261
vt 0.668986 0.521315
vt 0.852367 0.525890
vt 0.676957 0.525890
vt 0.668580 0.525890
vt 0.852367 0.521076
vt 0.852367 0.525890
vt 0.660181 0.685966
vt 0.660181 0.525890
vt 0.660181 0.525890
vt 0.660181 0.685966
vt 0.660181 0.525890
vt 0.660181 0.521315
vt 0.660181 0.521082
vt 0.660181 0.521082
vt 0.660181 0.521315
vt 0.660181 0.525890
vt 0.676957 0.525890
vt 0.668580 0.525890
vt 0.668986 0.521315
vt 0.676957 0.521082
vt 0.668986 0.516261
vt 0.676957 0.516261
vt 0.676957 0.516261
vt 0.676957 0.516261
vt 0.676957 0.516261
vt 0.676957 0.521082
vt 0.668580 0.516261
vt 0.668580 0.516261
vt 0.668986 0.516261
vt 0.668986 0.521315
vt 0.676957 0.525890
vt 0.668580 0.525890
vt 0.660181 0.685966
vt 0.660181 0.685966
vt 0.660181 0.525890
vt 0.660181 0.525890
vt 0.660181 0.521082
vt 0.660181 0.521315
vt 0.660181 0.525890
vt 0.660181 0.521082
vt 0.660181 0.525890
vt 0.660181 0.521315
vt 0.660752 0.685966
vt 0.668572 0.685966
vt 0.660752 0.685966
vt 0.668572 0.685966
vt 0.676957 0.685966
vt 0.676957 0.685966
vt 0.852367 0.685966
vt 0.852367 0.685966
vt 0.660752 0.685966
vt 0.668572 0.685966
vt 0.660752 0.685966
vt 0.668572 0.685966
vt 0.676957 0.685966
vt 0.676957 0.685966
vt 0.676957 0.525890
vt 0.668580 0.525890
vt 0.668986 0.521315
vt 0.676957 0.521082
vt 0.668986 0.516261
vt 0.676957 0.516261
vt 0.852367 0.516261
vt 0.852367 0.516642
vt 0.676957 0.516261
vt 0.852367 0.516642
vt 0.852367 0.516261
vt 0.676957 0.516261
vt 0.676957 0.516261
vt 0.852367 0.521076
vt 0.676957 0.521082
vt 0.668580 0.516261
vt 0.668580 0.516261
vt 0.668986 0.516261
vt 0.668986 0.521315
vt 0.852367 0.525890
vt 0.676957 0.525890
vt 0.668580 0.525890
vt 0.852367 0.521076
vt 0.852367 0.525890
vt 0.660181 0.525890
vt 0.660181 0.525890
vt 0.660181 0.521082
vt 0.660181 0.521315
vt 0.660181 0.525890
vt 0.660181 0.521082
vt 0.660181 0.525890
vt 0.660181 0.521315
vt 0.676957 0.525890
vt 0.676957 0.521082
vt 0.668986 0.521315
vt 0.668580 0.525890
vt 0.676957 0.516261
vt 0.668986 0.516261
vt 0.676957 0.516261
vt 0.676957 0.516261
vt 0.676957 0.516261
vt 0.676957 0.521082
vt 0.668580 0.516261
vt 0.668580 0.516261
vt 0.668986 0.516261
vt 0.668986 0.521315
vt 0.676957 0.525890
vt 0.668580 0.525890
vt 0.660181 0.525890
vt 0.660181 0.525890
vt 0.660181 0.525890
vt 0.660181 0.521315
vt 0.660181 0.521082
vt 0.660181 0.521082
vt 0.660181 0.521315
vt 0.660181 0.525890
vn 0.1291 -0.9832 -0.1291
vn 0.1211 -0.8623 -0.4917
vn 0.4464 -0.7756 -0.4464
vn 0.4917 -0.8623 -0.1211
vn 0.1211 -0.4917 -0.8623
vn 0.4464 -0.4464 -0.7756
vn 0.0000 -0.1304 -0.9915
vn 0.1291 -0.1291 -0.9832
vn 0.0000 -0.4999 -0.8661
vn 0.0000 0.4999 -0.8661
vn 0.1211 0.4917 -0.8623
vn 0.1291 0.1291 -0.9832
vn -0.0000 0.1304 -0.9915
vn 0.0000 0.8661 -0.4999
vn 0.1211 0.8623 -0.4917
vn 0.4917 0.1211 -0.8623
vn 0.4917 -0.1211 -0.8623
vn 0.4464 0.4464 -0.7756
vn 0.4464 0.7756 -0.4464
vn 0.0000 0.9915 -0.1304
vn 0.1291 0.9832 -0.1291
vn 0.4917 0.8623 -0.1211
vn 0.0000 -0.8661 -0.4999
vn 0.0000 -0.9915 -0.1304
vn 0.9915 -0.1304 0.0000
vn 0.9832 -0.1291 -0.1291
vn 0.9832 0.1291 -0.1291
vn 0.9915 0.1304 0.0000
vn 0.8623 -0.4917 -0.1211
vn 0.7756 -0.4464 -0.4464
vn 0.8623 -0.1211 -0.4917
vn 0.8623 0.1211 -0.4917
vn 0.7756 0.4464 -0.4464
vn 0.8623 0.4917 -0.1211
vn -0.1291 -0.9832 -0.1291
vn -0.4917 -0.8623 -0.1211
vn -0.4464 -0.7756 -0.4464
vn -0.1211 -0.8623 -0.4917
vn -0.4464 -0.4464 -0.7756
vn -0.1211 -0.4917 -0.8623
vn -0.1291 -0.1291 -0.9832
vn -0.1291 0.1291 -0.9832
vn -0.1211 0.4917 -0.8623
vn -0.1211 0.8623 -0.4917
vn -0.4917 0.1211 -0.8623
vn -0.4917 -0.1211 -0.8623
vn -0.4464 0.4464 -0.7756
vn -0.4464 0.7756 -0.4464
vn -0.1291 0.9832 -0.1291
vn -0.4917 0.8623 -0.1211
vn -0.9915 -0.1304 -0.0000
vn -0.9915 0.1304 0.0000
vn -0.9832 0.1291 -0.1291
vn -0.9832 -0.1291 -0.1291
vn -0.8623 -0.1211 -0.4917
vn -0.7756 -0.4464 -0.4464
vn -0.8623 -0.4917 -0.1211
vn -0.8623 0.1211 -0.4917
vn -0.8623 0.4917 -0.1211
vn -0.7756 0.4464 -0.4464
vn -0.8661 0.4999 0.0000
vn -0.4999 0.8661 0.0000
vn -0.8661 -0.4999 -0.0000
vn -0.4999 -0.8661 -0.0000
vn -0.1304 0.9915 -0.0000
vn -0.1304 -0.9915 0.0000
vn 0.0000 -1.0000 0.0000
vn 0.0000 1.0000 0.0000
vn 0.8661 0.4999 -0.0000
vn 0.4999 0.8661 0.0000
vn 0.8661 -0.4999 0.0000
vn 0.4999 -0.8661 0.0000
vn 0.1304 0.9915 0.0000
vn 0.1304 -0.9915 0.0000
vn 0.1291 -0.9832 0.1291
vn 0.4917 -0.8623 0.1211
vn 0.4464 -0.7756 0.4464
vn 0.1211 -0.8623 0.4917
vn 0.4464 -0.4464 0.7756
vn 0.1211 -0.4917 0.8623
vn 0.0000 -0.1304 0.9915
vn 0.0000 -0.4999 0.8661
vn 0.1291 -0.1291 0.9832
vn 0.0000 0.4999 0.8661
vn -0.0000 0.1304 0.9915
vn 0.1291 0.1291 0.9832
vn 0.1211 0.4917 0.8623
vn 0.0000 0.8661 0.4999
vn 0.1211 0.8623 0.4917
vn 0.4917 0.1211 0.8623
vn 0.4917 -0.1211 0.8623
vn 0.4464 0.4464 0.7756
vn 0.4464 0.7756 0.4464
vn 0.0000 0.9915 0.1304
vn 0.1291 0.9832 0.1291
vn 0.4917 0.8623 0.1211
vn 0.0000 -0.8661 0.4999
vn 0.0000 -0.9915 0.1304
vn 0.9832 0.1291 0.1291
vn 0.9832 -0.1291 0.1291
vn 0.8623 -0.1211 0.4917
vn 0.7756 -0.4464 0.4464
vn 0.8623 -0.4917 0.1211
vn 0.8623 0.1211 0.4917
vn 0.8623 0.4917 0.1211
vn 0.7756 0.4464 0.4464
vn -0.1291 -0.9832 0.1291
vn -0.1211 -0.8623 0.4917
vn -0.4464 -0.7756 0.4464
vn -0.4917 -0.8623 0.1211
vn -0.1211 -0.4917 0.8623
vn -0.4464 -0.4464 0.7756
vn -0.1291 -0.1291 0.9832
vn -0.1211 0.4917 0.8623
vn -0.1291 0.1291 0.9832
vn -0.1211 0.8623 0.4917
vn -0.4917 0.1211 0.8623
vn -0.4917 -0.1211 0.8623
vn -0.4464 0.4464 0.7756
vn -0.4464 0.7756 0.4464
vn -0.1291 0.9832 0.1291
vn -0.4917 0.8623 0.1211
vn -0.9832 -0.1291 0.1291
vn -0.9832 0.1291 0.1291
vn -0.8623 -0.4917 0.1211
vn -0.7756 -0.4464 0.4464
vn -0.8623 -0.1211 0.4917
vn -0.8623 0.1211 0.4917
vn -0.7756 0.4464 0.4464
vn -0.8623 0.4917 0.1211
usemtl None
s 1
f 1/1/1 3/2/2 4/3/3 2/4/4
f 3/2/2 5/5/5 21/6/6 4/3/3
f 29/7/7 6/8/8 5/5/5 28/9/9
f 31/10/10 9/11/11 7/12/12 30/13/13
f 32/14/14 11/15/15 9/11/11 31/10/10
f 8/16/16 22/17/17 6/8/8 7/12/12
f 7/12/12 9/11/11 10/18/18 8/16/16
f 9/11/11 11/15/15 12/19/19 10/18/18
f 26/20/20 13/21/21 11/15/15 32/14/14
f 13/21/21 14/22/22 12/19/19 11/15/15
f 27/23/23 3/2/2 1/1/1 25/24/24
f 64/25/25 17/26/26 16/27/27 63/28/28
f 28/9/9 5/5/5 3/2/2 27/23/23
f 17/26/26 18/29/29 19/30/30 20/31/31
f 18/29/29 2/4/4 4/3/3 19/30/30
f 22/17/17 20/31/31 19/30/30 21/6/6
f 21/6/6 19/30/30 4/3/3
f 6/8/8 22/17/17 21/6/6 5/5/5
f 23/32/32 20/31/31 22/17/17 8/16/16
f 16/27/27 17/26/26 20/31/31 23/32/32
f 16/27/27 23/32/32 24/33/33 15/34/34
f 23/32/32 8/16/16 10/18/18 24/33/33
f 14/22/22 15/34/34 24/33/33 12/19/19
f 10/18/18 12/19/19 24/33/33
f 6/8/8 29/7/7 30/13/13 7/12/12
f 33/35/35 34/36/36 36/37/37 35/38/38
f 35/38/38 36/37/37 53/39/39 37/40/40
f 29/7/7 28/9/9 37/40/40 38/41/41
f 31/10/10 30/13/13 39/42/42 41/43/43
f 32/14/14 31/10/10 41/43/43 43/44/44
f 40/45/45 39/42/42 38/41/41 54/46/46
f 39/42/42 40/45/45 42/47/47 41/43/43
f 41/43/43 42/47/47 44/48/48 43/44/44
f 26/20/20 32/14/14 43/44/44 45/49/49
f 45/49/49 43/44/44 44/48/48 46/50/50
f 27/23/23 25/24/24 33/35/35 35/38/38
f 74/51/51 73/52/52 48/53/53 49/54/54
f 28/9/9 27/23/23 35/38/38 37/40/40
f 49/54/54 52/55/55 51/56/56 50/57/57
f 50/57/57 51/56/56 36/37/37 34/36/36
f 54/46/46 53/39/39 51/56/56 52/55/55
f 53/39/39 36/37/37 51/56/56
f 38/41/41 37/40/40 53/39/39 54/46/46
f 55/58/58 40/45/45 54/46/46 52/55/55
f 48/53/53 55/58/58 52/55/55 49/54/54
f 48/53/53 47/59/59 56/60/60 55/58/58
f 55/58/58 56/60/60 42/47/47 40/45/45
f 46/50/50 44/48/48 56/60/60 47/59/59
f 42/47/47 56/60/60 44/48/48
f 38/41/41 39/42/42 30/13/13 29/7/7
f 47/59/59 48/53/53 73/52/52 72/61/61
f 46/50/50 47/59/59 72/61/61 71/62/62
f 49/54/54 50/57/57 70/63/63 74/51/51
f 50/57/57 34/36/36 69/64/64 70/63/63
f 45/49/49 46/50/50 71/62/62 68/65/65
f 34/36/36 33/35/35 67/66/66 69/64/64
f 33/35/35 25/24/24 66/67/67 67/66/66
f 45/49/49 68/65/65 65/68/68 26/20/20
f 15/34/34 62/69/69 63/28/28 16/27/27
f 14/22/22 61/70/70 62/69/69 15/34/34
f 17/26/26 64/25/25 60/71/71 18/29/29
f 18/29/29 60/71/71 59/72/72 2/4/4
f 13/21/21 58/73/73 61/70/70 14/22/22
f 13/21/21 26/20/20 65/68/68 58/73/73
f 2/4/4 59/72/72 57/74/74 1/1/1
f 1/1/1 57/74/74 66/67/67 25/24/24
f 75/75/75 76/76/76 78/77/77 77/78/78
f 77/78/78 78/77/77 95/79/79 79/80/80
f 103/81/81 102/82/82 79/80/80 80/83/83
f 105/84/84 104/85/85 81/86/86 83/87/87
f 106/88/88 105/84/84 83/87/87 85/89/89
f 82/90/90 81/86/86 80/83/83 96/91/91
f 81/86/86 82/90/90 84/92/92 83/87/87
f 83/87/87 84/92/92 86/93/93 85/89/89
f 100/94/94 106/88/88 85/89/89 87/95/95
f 87/95/95 85/89/89 86/93/93 88/96/96
f 101/97/97 99/98/98 75/75/75 77/78/78
f 64/25/25 63/28/28 90/99/99 91/100/100
f 102/82/82 101/97/97 77/78/78 79/80/80
f 91/100/100 94/101/101 93/102/102 92/103/103
f 92/103/103 93/102/102 78/77/77 76/76/76
f 96/91/91 95/79/79 93/102/102 94/101/101
f 95/79/79 78/77/77 93/102/102
f 80/83/83 79/80/80 95/79/79 96/91/91
f 97/104/104 82/90/90 96/91/91 94/101/101
f 90/99/99 97/104/104 94/101/101 91/100/100
f 90/99/99 89/105/105 98/106/106 97/104/104
f 97/104/104 98/106/106 84/92/92 82/90/90
f 88/96/96 86/93/93 98/106/106 89/105/105
f 84/92/92 98/106/106 86/93/93
f 80/83/83 81/86/86 104/85/85 103/81/81
f 107/107/107 109/108/108 110/109/109 108/110/110
f 109/108/108 111/111/111 127/112/112 110/109/109
f 103/81/81 112/113/113 111/111/111 102/82/82
f 105/84/84 115/114/114 113/115/115 104/85/85
f 106/88/88 117/116/116 115/114/114 105/84/84
f 114/117/117 128/118/118 112/113/113 113/115/115
f 113/115/115 115/114/114 116/119/119 114/117/117
f 115/114/114 117/116/116 118/120/120 116/119/119
f 100/94/94 119/121/121 117/116/116 106/88/88
f 119/121/121 120/122/122 118/120/120 117/116/116
f 101/97/97 109/108/108 107/107/107 99/98/98
f 74/51/51 123/123/123 122/124/124 73/52/52
f 102/82/82 111/111/111 109/108/108 101/97/97
f 123/123/123 124/125/125 125/126/126 126/127/127
f 124/125/125 108/110/110 110/109/109 125/126/126
f 128/118/118 126/127/127 125/126/126 127/112/112
f 127/112/112 125/126/126 110/109/109
f 112/113/113 128/118/118 127/112/112 111/111/111
f 129/128/128 126/127/127 128/118/118 114/117/117
f 122/124/124 123/123/123 126/127/127 129/128/128
f 122/124/124 129/128/128 130/129/129 121/130/130
f 129/128/128 114/117/117 116/119/119 130/129/129
f 120/122/122 121/130/130 130/129/129 118/120/120
f 116/119/119 118/120/120 130/129/129
f 112/113/113 103/81/81 104/85/85 113/115/115
f 121/130/130 72/61/61 73/52/52 122/124/124
f 120/122/122 71/62/62 72/61/61 121/130/130
f 123/123/123 74/51/51 70/63/63 124/125/125
f 124/125/125 70/63/63 69/64/64 108/110/110
f 119/121/121 68/65/65 71/62/62 120/122/122
f 108/110/110 69/64/64 67/66/66 107/107/107
f 107/107/107 67/66/66 66/67/67 99/98/98
f 119/121/121 100/94/94 65/68/68 68/65/65
f 89/105/105 90/99/99 63/28/28 62/69/69
f 88/96/96 89/105/105 62/69/69 61/70/70
f 91/100/100 92/103/103 60/71/71 64/25/25
f 92/103/103 76/76/76 59/72/72 60/71/71
f 87/95/95 88/96/96 61/70/70 58/73/73
f 87/95/95 58/73/73 65/68/68 100/94/94
f 76/76/76 75/75/75 57/74/74 59/72/72
f 75/75/75 99/98/98 66/67/67 57/74/74

2108
cw 9/models/pencils.obj Normal file

File diff suppressed because it is too large Load Diff

162707
cw 9/models/pillow.obj Normal file

File diff suppressed because it is too large Load Diff

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

@ -0,0 +1,16 @@
# Blender v3.2.1 OBJ File: 'untitled.blend'
# www.blender.org
mtllib Plane.mtl
o Plane
v -2.000000 0.000000 2.500000
v 2.000000 0.000000 2.500000
v -2.000000 0.000000 -2.500000
v 2.000000 0.000000 -2.500000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vn 0.0000 1.0000 0.0000
usemtl Material.001
s off
f 1/1/1 2/2/1 4/3/1 3/4/1

Binary file not shown.

BIN
cw 9/models/present.fbx Normal file

Binary file not shown.

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

@ -0,0 +1,61 @@
# Exported from 3D Builder
mtllib roof.mtl
o Object.1
v -2.000000 2.500003 -1.502442 128 128 128
v -2.000000 2.500005 2.500000 128 128 128
v 0.001123 4.500926 2.499996 128 128 128
v 0.001122 4.500924 -1.502446 128 128 128
v 2.002442 2.500000 -1.502447 128 128 128
v 2.002443 2.500002 2.499995 128 128 128
v -2.000000 2.500003 -1.502442 128 128 128
v -2.000000 2.500005 2.500000 128 128 128
v 2.002443 2.500002 2.499995 128 128 128
v 2.002443 2.500002 2.499995 128 128 128
v -2.000000 2.500003 -1.502442 128 128 128
v 2.002442 2.500000 -1.502447 128 128 128
v -2.002444 2.500003 -2.499994 128 128 128
v -2.002443 2.500005 1.502448 128 128 128
v -0.001320 4.500926 1.502444 255 255 255
v -0.001321 4.500924 -2.499998 128 128 128
v 1.999999 2.500000 -2.499999 128 128 128
v 2.000000 2.500002 1.502443 128 128 128
v -2.002444 2.500003 -2.499994 128 128 128
v 2.000000 2.500002 1.502443 128 128 128
v -2.002444 2.500003 -2.499994 128 128 128
v 1.999999 2.500000 -2.499999 128 128 128
vt 1.000000 0.000001
vt 0.333300 0.000000
vt 0.000000 1.000000
vt 0.666700 1.000000
vt 0.666700 0.999999
vt 0.000000 1.000000
vt 0.333300 0.000001
vt 1.000000 0.000000
vt 1.000000 0.000001
vt 0.333300 0.000000
vt 0.000000 1.000000
vt 0.666700 1.000000
vt 0.666700 0.999999
vt 0.000000 1.000000
vt 0.333300 0.000001
vt 1.000000 0.000000
usemtl Mat_0
f 4 5 1
f 6 2 7
f 3 8 9
f 10 11 12
f 1/1 2/2 3/3
f 3/3 4/4 1/1
f 4/5 3/6 6/7
f 5/8 4/5 6/7
f 16 17 13
f 18 14 19
f 20 21 22
f 15 14 18
f 13/9 14/10 15/11
f 15/11 16/12 13/9
f 16/13 15/14 18/15
f 17/16 16/13 18/15

4
cw 9/models/room.mtl Normal file
View File

@ -0,0 +1,4 @@
# Exported from 3D Builder
newmtl Default_0
Kd 0.737255 0.737255 0.737255

490
cw 9/models/room.obj Normal file
View File

@ -0,0 +1,490 @@
# Blender v3.2.1 OBJ File: 'untitled.blend'
# www.blender.org
mtllib room.mtl
o room_Cube.001
v -2.000000 0.000000 2.500000
v -2.000000 2.500000 2.500000
v -2.000000 0.000000 -2.500000
v -2.000000 2.500000 -2.500000
v 2.000000 0.000000 2.500000
v 2.000000 2.500000 2.500000
v 2.000000 0.000000 -2.500000
v 2.000000 2.500000 -2.500000
v 1.800000 0.000000 -2.500000
v 1.800000 2.500000 -2.500000
v 1.800000 0.000000 2.500000
v 1.800000 2.500000 2.500000
v -1.800000 0.000000 -2.500000
v -1.800000 2.500000 2.500000
v -1.800000 2.500000 -2.500000
v -1.800000 0.000000 2.500000
v -2.000000 0.000000 -2.300000
v -2.000000 0.000000 2.300000
v -2.000000 2.500000 2.300000
v -2.000000 2.500000 -2.300000
v 2.000000 0.000000 2.300000
v 2.000000 0.000000 -2.300000
v 2.000000 2.500000 -2.300000
v 2.000000 2.500000 2.300000
v 1.800000 2.500000 -2.300000
v 1.800000 2.500000 2.300000
v 1.800000 0.000000 -2.300000
v 1.800000 0.000000 2.300000
v -1.800000 0.000000 -2.300000
v -1.800000 0.000000 2.300000
v -1.800000 2.500000 -2.300000
v -1.800000 2.500000 2.300000
v 1.800000 2.300000 -2.300000
v 1.800000 2.300000 2.300000
v -1.800000 2.300000 -2.300000
v -1.800000 2.300000 2.300000
v -0.480000 2.500000 -2.500000
v -0.480000 0.000000 2.500000
v -0.480000 0.000000 -2.500000
v -0.480000 2.500000 2.500000
v -0.480000 2.500000 -2.300000
v -0.480000 2.500000 2.300000
v -0.480000 0.000000 -2.300000
v -0.480000 0.000000 2.300000
v -0.480000 2.300000 -2.300000
v -0.480000 2.300000 2.300000
v 0.480000 2.500000 -2.500000
v 0.480000 0.000000 2.500000
v 0.480000 2.500000 -2.300000
v 0.480000 2.500000 2.300000
v 0.480000 0.000000 -2.500000
v 0.480000 2.500000 2.500000
v 0.480000 0.000000 -2.300000
v 0.480000 0.000000 2.300000
v 0.480000 2.300000 -2.300000
v 0.480000 2.300000 2.300000
v -2.000000 1.970000 2.500000
v -2.000000 1.970000 -2.500000
v 2.000000 1.970000 -2.500000
v 2.000000 1.970000 2.500000
v 1.800000 1.970000 2.500000
v 1.800000 1.970000 -2.500000
v -1.800000 1.970000 -2.500000
v -1.800000 1.970000 2.500000
v 2.000000 1.970000 -2.300000
v 2.000000 1.970000 2.300000
v -2.000000 1.970000 2.300000
v -2.000000 1.970000 -2.300000
v -0.480000 1.970000 2.500000
v -0.480000 1.970000 -2.500000
v 0.480000 1.970000 2.500000
v 0.480000 1.970000 -2.500000
v -1.800000 1.970000 2.300000
v 1.800000 1.970000 2.300000
v -1.800000 1.970000 -2.300000
v 1.800000 1.970000 -2.300000
v -0.480000 1.970000 -2.300000
v -0.480000 1.970000 2.300000
v 0.480000 1.970000 2.300000
v 0.480000 1.970000 -2.300000
v -2.000000 0.000000 0.750000
v -2.000000 2.500000 0.750000
v 2.000000 0.000000 0.750000
v 2.000000 2.500000 0.750000
v 1.800000 2.500000 0.750000
v 1.800000 0.000000 0.750000
v -1.800000 0.000000 0.750000
v -1.800000 2.500000 0.750000
v 1.800000 2.300000 0.750000
v -1.800000 2.300000 0.750000
v -0.480000 2.300000 0.750000
v -0.480000 2.500000 0.750000
v 0.480000 2.500000 0.750000
v 0.480000 2.300000 0.750000
v -2.000000 1.970000 0.750000
v 2.000000 1.970000 0.750000
v 1.800000 1.970000 0.750000
v -1.800000 1.970000 0.750000
v -2.000000 2.500000 -0.250000
v 2.000000 0.000000 -0.250000
v -2.000000 1.970000 -0.250000
v 1.800000 1.970000 -0.250000
v -2.000000 0.000000 -0.250000
v 2.000000 2.500000 -0.250000
v 1.800000 2.500000 -0.250000
v 1.800000 0.000000 -0.250000
v -1.800000 0.000000 -0.250000
v -1.800000 2.500000 -0.250000
v 1.800000 2.300000 -0.250000
v -1.800000 2.300000 -0.250000
v -0.480000 2.300000 -0.250000
v -0.480000 2.500000 -0.250000
v 0.480000 2.500000 -0.250000
v 0.480000 2.300000 -0.250000
v 2.000000 1.970000 -0.250000
v -1.800000 1.970000 -0.250000
v -2.000000 1.015374 -2.500000
v 2.000000 1.015374 -2.500000
v 2.000000 1.015374 2.500000
v 1.800000 1.015374 2.500000
v 1.800000 1.015374 -2.500000
v -1.800000 1.015374 -2.500000
v -1.800000 1.015374 2.500000
v 2.000000 1.015374 -2.300000
v 2.000000 1.015374 2.300000
v -2.000000 1.015374 2.300000
v -2.000000 1.015374 -2.300000
v 1.800000 1.015374 2.300000
v 1.800000 1.015374 -2.300000
v -0.480000 1.015374 2.500000
v -0.480000 1.015374 -2.500000
v 0.480000 1.015374 2.500000
v 0.480000 1.015374 -2.500000
v -2.000000 1.015374 2.500000
v -1.800000 1.015374 2.300000
v -1.800000 1.015374 -2.300000
v -0.480000 1.015374 -2.300000
v -0.480000 1.015374 2.300000
v 0.480000 1.015374 2.300000
v 0.480000 1.015374 -2.300000
v -1.800000 1.015374 0.750000
v 1.800000 1.015374 0.750000
v 2.000000 1.015374 0.750000
v -2.000000 1.015374 0.750000
v 2.000000 1.015374 -0.250000
v 1.800000 1.015374 -0.250000
v -1.800000 1.015374 -0.250000
v -2.000000 1.015374 -0.250000
vt 0.571865 0.237945
vt 0.625000 0.237945
vt 0.625000 0.250000
vt 0.571865 0.250000
vt 0.571865 0.481764
vt 0.625000 0.481764
vt 0.625000 0.500000
vt 0.571865 0.500000
vt 0.571865 0.733848
vt 0.625000 0.733848
vt 0.625000 0.750000
vt 0.571865 0.750000
vt 0.571865 0.942864
vt 0.625000 0.942864
vt 0.625000 1.000000
vt 0.571865 1.000000
vt 0.356764 0.733848
vt 0.375000 0.733848
vt 0.375000 0.750000
vt 0.356764 0.750000
vt 0.817864 0.733848
vt 0.875000 0.733848
vt 0.875000 0.750000
vt 0.817864 0.750000
vt 0.643236 0.733848
vt 0.643236 0.750000
vt 0.303586 0.733848
vt 0.303586 0.750000
vt 0.625000 0.768236
vt 0.571865 0.768236
vt 0.571865 0.428586
vt 0.625000 0.428586
vt 0.625000 0.307136
vt 0.571865 0.307136
vt 0.125000 0.733848
vt 0.182136 0.733848
vt 0.182136 0.750000
vt 0.125000 0.750000
vt 0.752288 0.733848
vt 0.752288 0.750000
vt 0.571865 0.877288
vt 0.625000 0.877288
vt 0.752288 0.500000
vt 0.817864 0.500000
vt 0.817864 0.512055
vt 0.752288 0.512055
vt 0.752288 0.622952
vt 0.817864 0.622952
vt 0.125000 0.500000
vt 0.182136 0.500000
vt 0.182136 0.512055
vt 0.125000 0.512055
vt 0.125000 0.622952
vt 0.182136 0.622952
vt 0.303586 0.500000
vt 0.356764 0.500000
vt 0.356764 0.512055
vt 0.303586 0.512055
vt 0.247712 0.733848
vt 0.182136 0.733848
vt 0.182136 0.733848
vt 0.247712 0.733848
vt 0.643236 0.500000
vt 0.643236 0.512055
vt 0.625000 0.512055
vt 0.625000 0.622952
vt 0.643236 0.622952
vt 0.875000 0.500000
vt 0.875000 0.512055
vt 0.875000 0.622952
vt 0.375000 0.500000
vt 0.375000 0.512055
vt 0.356764 0.622952
vt 0.375000 0.622952
vt 0.571865 0.512055
vt 0.571865 0.622952
vt 0.571865 0.000000
vt 0.625000 0.000000
vt 0.625000 0.016152
vt 0.571865 0.016152
vt 0.571865 0.182497
vt 0.625000 0.182497
vt 0.303586 0.622952
vt 0.356764 0.622952
vt 0.356764 0.733848
vt 0.303586 0.733848
vt 0.182136 0.567503
vt 0.182136 0.512055
vt 0.182136 0.512055
vt 0.182136 0.567503
vt 0.356764 0.622952
vt 0.356764 0.733848
vt 0.303586 0.512055
vt 0.356764 0.512055
vt 0.356764 0.512055
vt 0.303586 0.512055
vt 0.247712 0.512055
vt 0.247712 0.512055
vt 0.182136 0.622952
vt 0.247712 0.622952
vt 0.303586 0.733848
vt 0.247712 0.500000
vt 0.247712 0.512055
vt 0.696414 0.622952
vt 0.696414 0.733848
vt 0.696414 0.500000
vt 0.696414 0.512055
vt 0.571865 0.821414
vt 0.625000 0.821414
vt 0.696414 0.750000
vt 0.625000 0.372712
vt 0.571865 0.372712
vt 0.247712 0.733848
vt 0.247712 0.750000
vt 0.476468 0.768236
vt 0.476468 0.821414
vt 0.476468 0.307136
vt 0.476468 0.372712
vt 0.476468 0.877288
vt 0.476468 0.182497
vt 0.476468 0.237945
vt 0.476468 0.000000
vt 0.476468 0.016152
vt 0.476468 0.622952
vt 0.476468 0.733848
vt 0.476468 0.500000
vt 0.476468 0.512055
vt 0.476468 0.942864
vt 0.476468 0.250000
vt 0.476468 0.428586
vt 0.476468 0.481764
vt 0.476468 0.750000
vt 0.476468 1.000000
vt 0.303586 0.512055
vt 0.441862 0.463192
vt 0.356764 0.733848
vt 0.303586 0.733848
vt 0.247712 0.733848
vt 0.182136 0.512055
vt 0.247712 0.512055
vt 0.356764 0.512055
vt 0.356764 0.622952
vt 0.182136 0.567503
vt 0.182136 0.733848
vt 0.414786 0.434393
vt 0.182136 0.622952
vt 0.182136 0.622952
vt 0.356764 0.567503
vt 0.356764 0.567503
vt 0.476468 0.567503
vt 0.571865 0.567503
vt 0.571865 0.127048
vt 0.476468 0.127048
vt 0.247712 0.567503
vt 0.303586 0.567503
vt 0.643236 0.567503
vt 0.696414 0.567503
vt 0.752288 0.567503
vt 0.356764 0.567503
vt 0.625000 0.127048
vt 0.625000 0.567503
vt 0.356764 0.567503
vt 0.375000 0.567503
vt 0.817864 0.567503
vt 0.875000 0.567503
vt 0.125000 0.567503
vt 0.182136 0.567503
vt 0.375000 0.127048
vt 0.375000 0.182497
vt 0.375000 0.016152
vt 0.375000 0.237945
vt 0.375000 0.250000
vt 0.375000 0.481764
vt 0.375000 0.942864
vt 0.375000 1.000000
vt 0.375000 0.768236
vt 0.375000 0.428586
vt 0.375000 0.307136
vt 0.375000 0.877288
vt 0.375000 0.000000
vt 0.375000 0.821414
vt 0.375000 0.372712
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
usemtl None
s off
f 68/1/1 20/2/1 4/3/1 58/4/1
f 62/5/2 10/6/2 8/7/2 59/8/2
f 66/9/3 24/10/3 6/11/3 60/12/3
f 64/13/4 14/14/4 2/15/4 57/16/4
f 28/17/5 21/18/5 5/19/5 11/20/5
f 32/21/6 19/22/6 2/23/6 14/24/6
f 24/10/6 26/25/6 12/26/6 6/11/6
f 54/27/5 28/17/5 11/20/5 48/28/5
f 60/12/4 6/11/4 12/29/4 61/30/4
f 72/31/2 47/32/2 10/6/2 62/5/2
f 58/4/2 4/3/2 15/33/2 63/34/2
f 18/35/5 30/36/5 16/37/5 1/38/5
f 42/39/6 32/21/6 14/24/6 40/40/6
f 69/41/4 40/42/4 14/14/4 64/13/4
f 37/43/6 15/44/6 31/45/6 41/46/6
f 92/47/6 88/48/6 32/21/6 42/39/6
f 3/49/5 13/50/5 29/51/5 17/52/5
f 81/53/5 87/54/5 30/36/5 18/35/5
f 51/55/5 9/56/5 27/57/5 53/58/5
f 78/59/2 73/60/2 36/61/2 46/62/2
f 8/7/6 10/63/6 25/64/6 23/65/6
f 84/66/6 85/67/6 26/25/6 24/10/6
f 15/44/6 4/68/6 20/69/6 31/45/6
f 88/48/6 82/70/6 19/22/6 32/21/6
f 9/56/5 7/71/5 22/72/5 27/57/5
f 86/73/5 83/74/5 21/18/5 28/17/5
f 59/8/3 8/7/3 23/65/3 65/75/3
f 96/76/3 84/66/3 24/10/3 66/9/3
f 57/77/1 2/78/1 19/79/1 67/80/1
f 101/81/1 99/82/1 20/2/1 68/1/1
f 94/83/5 89/84/5 34/85/5 56/86/5
f 116/87/3 75/88/3 35/89/3 110/90/3
f 97/91/1 74/92/1 34/85/1 89/84/1
f 80/93/4 76/94/4 33/95/4 55/96/4
f 75/88/4 77/97/4 45/98/4 35/89/4
f 90/99/5 91/100/5 46/62/5 36/61/5
f 79/101/2 78/59/2 46/62/2 56/86/2
f 13/50/5 39/102/5 43/103/5 29/51/5
f 93/104/6 92/47/6 42/39/6 50/105/6
f 47/106/6 37/43/6 41/46/6 49/107/6
f 71/108/4 52/109/4 40/42/4 69/41/4
f 50/105/6 42/39/6 40/40/6 52/110/6
f 63/34/2 15/33/2 37/111/2 70/112/2
f 30/36/5 44/113/5 38/114/5 16/37/5
f 26/25/6 50/105/6 52/110/6 12/26/6
f 61/30/4 12/29/4 52/109/4 71/108/4
f 10/63/6 47/106/6 49/107/6 25/64/6
f 85/67/6 93/104/6 50/105/6 26/25/6
f 74/92/2 79/101/2 56/86/2 34/85/2
f 77/97/4 80/93/4 55/96/4 45/98/4
f 91/100/5 94/83/5 56/86/5 46/62/5
f 70/112/2 37/111/2 47/32/2 72/31/2
f 44/113/5 54/27/5 48/28/5 38/114/5
f 77/97/5 70/112/5 72/31/5 80/93/5
f 120/115/4 61/30/4 71/108/4 132/116/4
f 122/117/2 63/34/2 70/112/2 131/118/2
f 132/116/4 71/108/4 69/41/4 130/119/4
f 148/120/1 101/81/1 68/1/1 127/121/1
f 134/122/1 57/77/1 67/80/1 126/123/1
f 143/124/3 96/76/3 66/9/3 125/125/3
f 118/126/3 59/8/3 65/75/3 124/127/3
f 130/119/4 69/41/4 64/13/4 123/128/4
f 117/129/2 58/4/2 63/34/2 122/117/2
f 133/130/2 72/31/2 62/5/2 121/131/2
f 119/132/4 60/12/4 61/30/4 120/115/4
f 123/128/4 64/13/4 57/16/4 134/133/4
f 125/125/3 66/9/3 60/12/3 119/132/3
f 121/131/2 62/5/2 59/8/2 118/126/2
f 127/121/1 68/1/1 58/4/1 117/129/1
f 140/134/1 133/135/1 51/55/1 53/58/1
f 128/136/2 139/137/2 79/101/2 74/92/2
f 139/137/2 138/138/2 78/59/2 79/101/2
f 136/139/4 137/140/4 77/97/4 75/88/4
f 140/134/4 129/141/4 76/94/4 80/93/4
f 142/142/1 128/136/1 74/92/1 97/91/1
f 147/143/3 136/139/3 75/88/3 116/87/3
f 138/138/2 135/144/2 73/60/2 78/59/2
f 137/140/3 43/103/3 39/102/3 131/145/3
f 135/144/3 141/146/3 98/147/3 73/60/3
f 146/148/1 142/142/1 97/91/1 102/149/1
f 145/150/3 115/151/3 96/76/3 143/124/3
f 126/123/1 67/80/1 95/152/1 144/153/1
f 111/154/5 114/155/5 94/83/5 91/100/5
f 105/156/6 113/157/6 93/104/6 85/67/6
f 113/157/6 112/158/6 92/47/6 93/104/6
f 110/90/5 111/154/5 91/100/5 90/99/5
f 102/149/1 97/91/1 89/84/1 109/159/1
f 73/60/3 98/147/3 90/99/3 36/61/3
f 114/155/5 109/159/5 89/84/5 94/83/5
f 67/80/1 19/79/1 82/160/1 95/152/1
f 115/151/3 104/161/3 84/66/3 96/76/3
f 106/162/5 100/163/5 83/74/5 86/73/5
f 108/164/6 99/165/6 82/70/6 88/48/6
f 104/161/6 105/156/6 85/67/6 84/66/6
f 103/166/5 107/167/5 87/54/5 81/53/5
f 112/158/6 108/164/6 88/48/6 92/47/6
f 41/46/6 31/45/6 108/164/6 112/158/6
f 17/52/5 29/51/5 107/167/5 103/166/5
f 23/65/6 25/64/6 105/156/6 104/161/6
f 31/45/6 20/69/6 99/165/6 108/164/6
f 27/57/5 22/72/5 100/163/5 106/162/5
f 65/75/3 23/65/3 104/161/3 115/151/3
f 55/96/5 33/95/5 109/159/5 114/155/5
f 76/94/1 102/149/1 109/159/1 33/95/1
f 35/89/5 45/98/5 111/154/5 110/90/5
f 49/107/6 41/46/6 112/158/6 113/157/6
f 25/64/6 49/107/6 113/157/6 105/156/6
f 45/98/5 55/96/5 114/155/5 111/154/5
f 124/127/3 65/75/3 115/151/3 145/150/3
f 129/141/1 146/148/1 102/149/1 76/94/1
f 98/147/3 116/87/3 110/90/3 90/99/3
f 95/152/1 82/160/1 99/82/1 101/81/1
f 81/168/1 144/153/1 148/120/1 103/169/1
f 87/54/3 107/167/3 147/143/3 141/146/3
f 27/57/1 106/162/1 146/148/1 129/141/1
f 22/72/3 124/127/3 145/150/3 100/163/3
f 18/170/1 126/123/1 144/153/1 81/168/1
f 100/163/3 145/150/3 143/124/3 83/74/3
f 106/162/1 86/73/1 142/142/1 146/148/1
f 30/36/3 87/54/3 141/146/3 135/144/3
f 77/97/3 137/140/3 131/145/3 70/112/3
f 44/113/2 30/36/2 135/144/2 138/138/2
f 107/167/3 29/51/3 136/139/3 147/143/3
f 86/73/1 28/17/1 128/136/1 142/142/1
f 53/58/4 27/57/4 129/141/4 140/134/4
f 29/51/4 43/103/4 137/140/4 136/139/4
f 54/27/2 44/113/2 138/138/2 139/137/2
f 28/17/2 54/27/2 139/137/2 128/136/2
f 80/93/1 72/31/1 133/135/1 140/134/1
f 17/171/1 127/121/1 117/129/1 3/172/1
f 9/173/2 121/131/2 118/126/2 7/71/2
f 21/18/3 125/125/3 119/132/3 5/19/3
f 16/174/4 123/128/4 134/133/4 1/175/4
f 5/19/4 119/132/4 120/115/4 11/176/4
f 51/177/2 133/130/2 121/131/2 9/173/2
f 3/172/2 117/129/2 122/117/2 13/178/2
f 38/179/4 130/119/4 123/128/4 16/174/4
f 7/71/3 118/126/3 124/127/3 22/72/3
f 83/74/3 143/124/3 125/125/3 21/18/3
f 1/180/1 134/122/1 126/123/1 18/170/1
f 103/169/1 148/120/1 127/121/1 17/171/1
f 48/181/4 132/116/4 130/119/4 38/179/4
f 13/178/2 122/117/2 131/118/2 39/182/2
f 11/176/4 120/115/4 132/116/4 48/181/4
f 144/153/6 141/146/6 147/143/6 148/120/6
f 147/143/4 116/87/4 101/81/4 148/120/4
f 116/87/5 98/147/5 95/152/5 101/81/5
f 141/146/2 144/153/2 95/152/2 98/147/2

490
cw 9/models/room2.obj Normal file
View File

@ -0,0 +1,490 @@
# Blender v3.2.1 OBJ File: 'untitled.blend'
# www.blender.org
mtllib room.mtl
o room_Cube.001
v -2.000000 0.000000 2.500000
v -2.000000 2.500000 2.500000
v -2.000000 0.000000 -2.500000
v -2.000000 2.500000 -2.500000
v 2.000000 0.000000 2.500000
v 2.000000 2.500000 2.500000
v 2.000000 0.000000 -2.500000
v 2.000000 2.500000 -2.500000
v 1.800000 0.000000 -2.500000
v 1.800000 2.500000 -2.500000
v 1.800000 0.000000 2.500000
v 1.800000 2.500000 2.500000
v -1.800000 0.000000 -2.500000
v -1.800000 2.500000 2.500000
v -1.800000 2.500000 -2.500000
v -1.800000 0.000000 2.500000
v -2.000000 0.000000 -2.300000
v -2.000000 0.000000 2.300000
v -2.000000 2.500000 2.300000
v -2.000000 2.500000 -2.300000
v 2.000000 0.000000 2.300000
v 2.000000 0.000000 -2.300000
v 2.000000 2.500000 -2.300000
v 2.000000 2.500000 2.300000
v 1.800000 2.500000 -2.300000
v 1.800000 2.500000 2.300000
v 1.800000 0.000000 -2.300000
v 1.800000 0.000000 2.300000
v -1.800000 0.000000 -2.300000
v -1.800000 0.000000 2.300000
v -1.800000 2.500000 -2.300000
v -1.800000 2.500000 2.300000
v 1.800000 2.300000 -2.300000
v 1.800000 2.300000 2.300000
v -1.800000 2.300000 -2.300000
v -1.800000 2.300000 2.300000
v -0.480000 2.500000 -2.500000
v -0.480000 0.000000 2.500000
v -0.480000 0.000000 -2.500000
v -0.480000 2.500000 2.500000
v -0.480000 2.500000 -2.300000
v -0.480000 2.500000 2.300000
v -0.480000 0.000000 -2.300000
v -0.480000 0.000000 2.300000
v -0.480000 2.300000 -2.300000
v -0.480000 2.300000 2.300000
v 0.480000 2.500000 -2.500000
v 0.480000 0.000000 2.500000
v 0.480000 2.500000 -2.300000
v 0.480000 2.500000 2.300000
v 0.480000 0.000000 -2.500000
v 0.480000 2.500000 2.500000
v 0.480000 0.000000 -2.300000
v 0.480000 0.000000 2.300000
v 0.480000 2.300000 -2.300000
v 0.480000 2.300000 2.300000
v -2.000000 1.970000 2.500000
v -2.000000 1.970000 -2.500000
v 2.000000 1.970000 -2.500000
v 2.000000 1.970000 2.500000
v 1.800000 1.970000 2.500000
v 1.800000 1.970000 -2.500000
v -1.800000 1.970000 -2.500000
v -1.800000 1.970000 2.500000
v 2.000000 1.970000 -2.300000
v 2.000000 1.970000 2.300000
v -2.000000 1.970000 2.300000
v -2.000000 1.970000 -2.300000
v -0.480000 1.970000 2.500000
v -0.480000 1.970000 -2.500000
v 0.480000 1.970000 2.500000
v 0.480000 1.970000 -2.500000
v -1.800000 1.970000 2.300000
v 1.800000 1.970000 2.300000
v -1.800000 1.970000 -2.300000
v 1.800000 1.970000 -2.300000
v -0.480000 1.970000 -2.300000
v -0.480000 1.970000 2.300000
v 0.480000 1.970000 2.300000
v 0.480000 1.970000 -2.300000
v -2.000000 0.000000 0.750000
v -2.000000 2.500000 0.750000
v 2.000000 0.000000 0.750000
v 2.000000 2.500000 0.750000
v 1.800000 2.500000 0.750000
v 1.800000 0.000000 0.750000
v -1.800000 0.000000 0.750000
v -1.800000 2.500000 0.750000
v 1.800000 2.300000 0.750000
v -1.800000 2.300000 0.750000
v -0.480000 2.300000 0.750000
v -0.480000 2.500000 0.750000
v 0.480000 2.500000 0.750000
v 0.480000 2.300000 0.750000
v -2.000000 1.970000 0.750000
v 2.000000 1.970000 0.750000
v 1.800000 1.970000 0.750000
v -1.800000 1.970000 0.750000
v -2.000000 2.500000 -0.250000
v 2.000000 0.000000 -0.250000
v -2.000000 1.970000 -0.250000
v 1.800000 1.970000 -0.250000
v -2.000000 0.000000 -0.250000
v 2.000000 2.500000 -0.250000
v 1.800000 2.500000 -0.250000
v 1.800000 0.000000 -0.250000
v -1.800000 0.000000 -0.250000
v -1.800000 2.500000 -0.250000
v 1.800000 2.300000 -0.250000
v -1.800000 2.300000 -0.250000
v -0.480000 2.300000 -0.250000
v -0.480000 2.500000 -0.250000
v 0.480000 2.500000 -0.250000
v 0.480000 2.300000 -0.250000
v 2.000000 1.970000 -0.250000
v -1.800000 1.970000 -0.250000
v -2.000000 1.015374 -2.500000
v 2.000000 1.015374 -2.500000
v 2.000000 1.015374 2.500000
v 1.800000 1.015374 2.500000
v 1.800000 1.015374 -2.500000
v -1.800000 1.015374 -2.500000
v -1.800000 1.015374 2.500000
v 2.000000 1.015374 -2.300000
v 2.000000 1.015374 2.300000
v -2.000000 1.015374 2.300000
v -2.000000 1.015374 -2.300000
v 1.800000 1.015374 2.300000
v 1.800000 1.015374 -2.300000
v -0.480000 1.015374 2.500000
v -0.480000 1.015374 -2.500000
v 0.480000 1.015374 2.500000
v 0.480000 1.015374 -2.500000
v -2.000000 1.015374 2.500000
v -1.800000 1.015374 2.300000
v -1.800000 1.015374 -2.300000
v -0.480000 1.015374 -2.300000
v -0.480000 1.015374 2.300000
v 0.480000 1.015374 2.300000
v 0.480000 1.015374 -2.300000
v -1.800000 1.015374 0.750000
v 1.800000 1.015374 0.750000
v 2.000000 1.015374 0.750000
v -2.000000 1.015374 0.750000
v 2.000000 1.015374 -0.250000
v 1.800000 1.015374 -0.250000
v -1.800000 1.015374 -0.250000
v -2.000000 1.015374 -0.250000
vt 0.571865 0.237945
vt 0.625000 0.237945
vt 0.625000 0.250000
vt 0.571865 0.250000
vt 0.571865 0.481764
vt 0.625000 0.481764
vt 0.625000 0.500000
vt 0.571865 0.500000
vt 0.571865 0.733848
vt 0.625000 0.733848
vt 0.625000 0.750000
vt 0.571865 0.750000
vt 0.571865 0.942864
vt 0.625000 0.942864
vt 0.625000 1.000000
vt 0.571865 1.000000
vt 0.356764 0.733848
vt 0.375000 0.733848
vt 0.375000 0.750000
vt 0.356764 0.750000
vt 0.817864 0.733848
vt 0.875000 0.733848
vt 0.875000 0.750000
vt 0.817864 0.750000
vt 0.643236 0.733848
vt 0.643236 0.750000
vt 0.303586 0.733848
vt 0.303586 0.750000
vt 0.625000 0.768236
vt 0.571865 0.768236
vt 0.571865 0.428586
vt 0.625000 0.428586
vt 0.625000 0.307136
vt 0.571865 0.307136
vt 0.125000 0.733848
vt 0.182136 0.733848
vt 0.182136 0.750000
vt 0.125000 0.750000
vt 0.752288 0.733848
vt 0.752288 0.750000
vt 0.571865 0.877288
vt 0.625000 0.877288
vt 0.752288 0.500000
vt 0.817864 0.500000
vt 0.817864 0.512055
vt 0.752288 0.512055
vt 0.752288 0.622952
vt 0.817864 0.622952
vt 0.125000 0.500000
vt 0.182136 0.500000
vt 0.182136 0.512055
vt 0.125000 0.512055
vt 0.125000 0.622952
vt 0.182136 0.622952
vt 0.303586 0.500000
vt 0.356764 0.500000
vt 0.356764 0.512055
vt 0.303586 0.512055
vt 0.247712 0.733848
vt 0.182136 0.733848
vt 0.182136 0.733848
vt 0.247712 0.733848
vt 0.643236 0.500000
vt 0.643236 0.512055
vt 0.625000 0.512055
vt 0.625000 0.622952
vt 0.643236 0.622952
vt 0.875000 0.500000
vt 0.875000 0.512055
vt 0.875000 0.622952
vt 0.375000 0.500000
vt 0.375000 0.512055
vt 0.356764 0.622952
vt 0.375000 0.622952
vt 0.571865 0.512055
vt 0.571865 0.622952
vt 0.571865 0.000000
vt 0.625000 0.000000
vt 0.625000 0.016152
vt 0.571865 0.016152
vt 0.571865 0.182497
vt 0.625000 0.182497
vt 0.303586 0.622952
vt 0.356764 0.622952
vt 0.356764 0.733848
vt 0.303586 0.733848
vt 0.182136 0.567503
vt 0.182136 0.512055
vt 0.182136 0.512055
vt 0.182136 0.567503
vt 0.356764 0.622952
vt 0.356764 0.733848
vt 0.303586 0.512055
vt 0.356764 0.512055
vt 0.356764 0.512055
vt 0.303586 0.512055
vt 0.247712 0.512055
vt 0.247712 0.512055
vt 0.182136 0.622952
vt 0.247712 0.622952
vt 0.303586 0.733848
vt 0.247712 0.500000
vt 0.247712 0.512055
vt 0.696414 0.622952
vt 0.696414 0.733848
vt 0.696414 0.500000
vt 0.696414 0.512055
vt 0.571865 0.821414
vt 0.625000 0.821414
vt 0.696414 0.750000
vt 0.625000 0.372712
vt 0.571865 0.372712
vt 0.247712 0.733848
vt 0.247712 0.750000
vt 0.476468 0.768236
vt 0.476468 0.821414
vt 0.476468 0.307136
vt 0.476468 0.372712
vt 0.476468 0.877288
vt 0.476468 0.182497
vt 0.476468 0.237945
vt 0.476468 0.000000
vt 0.476468 0.016152
vt 0.476468 0.622952
vt 0.476468 0.733848
vt 0.476468 0.500000
vt 0.476468 0.512055
vt 0.476468 0.942864
vt 0.476468 0.250000
vt 0.476468 0.428586
vt 0.476468 0.481764
vt 0.476468 0.750000
vt 0.476468 1.000000
vt 0.303586 0.512055
vt 0.441862 0.463192
vt 0.356764 0.733848
vt 0.303586 0.733848
vt 0.247712 0.733848
vt 0.182136 0.512055
vt 0.247712 0.512055
vt 0.356764 0.512055
vt 0.356764 0.622952
vt 0.182136 0.567503
vt 0.182136 0.733848
vt 0.414786 0.434393
vt 0.182136 0.622952
vt 0.182136 0.622952
vt 0.356764 0.567503
vt 0.356764 0.567503
vt 0.476468 0.567503
vt 0.571865 0.567503
vt 0.571865 0.127048
vt 0.476468 0.127048
vt 0.247712 0.567503
vt 0.303586 0.567503
vt 0.643236 0.567503
vt 0.696414 0.567503
vt 0.752288 0.567503
vt 0.356764 0.567503
vt 0.625000 0.127048
vt 0.625000 0.567503
vt 0.356764 0.567503
vt 0.375000 0.567503
vt 0.817864 0.567503
vt 0.875000 0.567503
vt 0.125000 0.567503
vt 0.182136 0.567503
vt 0.375000 0.127048
vt 0.375000 0.182497
vt 0.375000 0.016152
vt 0.375000 0.237945
vt 0.375000 0.250000
vt 0.375000 0.481764
vt 0.375000 0.942864
vt 0.375000 1.000000
vt 0.375000 0.768236
vt 0.375000 0.428586
vt 0.375000 0.307136
vt 0.375000 0.877288
vt 0.375000 0.000000
vt 0.375000 0.821414
vt 0.375000 0.372712
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
usemtl None
s off
f 68/1/1 20/2/1 4/3/1 58/4/1
f 62/5/2 10/6/2 8/7/2 59/8/2
f 66/9/3 24/10/3 6/11/3 60/12/3
f 64/13/4 14/14/4 2/15/4 57/16/4
f 28/17/5 21/18/5 5/19/5 11/20/5
f 32/21/6 19/22/6 2/23/6 14/24/6
f 24/10/6 26/25/6 12/26/6 6/11/6
f 54/27/5 28/17/5 11/20/5 48/28/5
f 60/12/4 6/11/4 12/29/4 61/30/4
f 72/31/2 47/32/2 10/6/2 62/5/2
f 58/4/2 4/3/2 15/33/2 63/34/2
f 18/35/5 30/36/5 16/37/5 1/38/5
f 42/39/6 32/21/6 14/24/6 40/40/6
f 69/41/4 40/42/4 14/14/4 64/13/4
f 37/43/6 15/44/6 31/45/6 41/46/6
f 92/47/6 88/48/6 32/21/6 42/39/6
f 3/49/5 13/50/5 29/51/5 17/52/5
f 81/53/5 87/54/5 30/36/5 18/35/5
f 51/55/5 9/56/5 27/57/5 53/58/5
f 78/59/2 73/60/2 36/61/2 46/62/2
f 8/7/6 10/63/6 25/64/6 23/65/6
f 84/66/6 85/67/6 26/25/6 24/10/6
f 15/44/6 4/68/6 20/69/6 31/45/6
f 88/48/6 82/70/6 19/22/6 32/21/6
f 9/56/5 7/71/5 22/72/5 27/57/5
f 86/73/5 83/74/5 21/18/5 28/17/5
f 59/8/3 8/7/3 23/65/3 65/75/3
f 96/76/3 84/66/3 24/10/3 66/9/3
f 57/77/1 2/78/1 19/79/1 67/80/1
f 101/81/1 99/82/1 20/2/1 68/1/1
f 94/83/5 89/84/5 34/85/5 56/86/5
f 116/87/3 75/88/3 35/89/3 110/90/3
f 97/91/1 74/92/1 34/85/1 89/84/1
f 80/93/4 76/94/4 33/95/4 55/96/4
f 75/88/4 77/97/4 45/98/4 35/89/4
f 90/99/5 91/100/5 46/62/5 36/61/5
f 79/101/2 78/59/2 46/62/2 56/86/2
f 13/50/5 39/102/5 43/103/5 29/51/5
f 93/104/6 92/47/6 42/39/6 50/105/6
f 47/106/6 37/43/6 41/46/6 49/107/6
f 71/108/4 52/109/4 40/42/4 69/41/4
f 50/105/6 42/39/6 40/40/6 52/110/6
f 63/34/2 15/33/2 37/111/2 70/112/2
f 30/36/5 44/113/5 38/114/5 16/37/5
f 26/25/6 50/105/6 52/110/6 12/26/6
f 61/30/4 12/29/4 52/109/4 71/108/4
f 10/63/6 47/106/6 49/107/6 25/64/6
f 85/67/6 93/104/6 50/105/6 26/25/6
f 74/92/2 79/101/2 56/86/2 34/85/2
f 77/97/4 80/93/4 55/96/4 45/98/4
f 91/100/5 94/83/5 56/86/5 46/62/5
f 70/112/2 37/111/2 47/32/2 72/31/2
f 44/113/5 54/27/5 48/28/5 38/114/5
f 77/97/5 70/112/5 72/31/5 80/93/5
f 120/115/4 61/30/4 71/108/4 132/116/4
f 122/117/2 63/34/2 70/112/2 131/118/2
f 132/116/4 71/108/4 69/41/4 130/119/4
f 148/120/1 101/81/1 68/1/1 127/121/1
f 134/122/1 57/77/1 67/80/1 126/123/1
f 143/124/3 96/76/3 66/9/3 125/125/3
f 118/126/3 59/8/3 65/75/3 124/127/3
f 130/119/4 69/41/4 64/13/4 123/128/4
f 117/129/2 58/4/2 63/34/2 122/117/2
f 133/130/2 72/31/2 62/5/2 121/131/2
f 119/132/4 60/12/4 61/30/4 120/115/4
f 123/128/4 64/13/4 57/16/4 134/133/4
f 125/125/3 66/9/3 60/12/3 119/132/3
f 121/131/2 62/5/2 59/8/2 118/126/2
f 127/121/1 68/1/1 58/4/1 117/129/1
f 140/134/1 133/135/1 51/55/1 53/58/1
f 128/136/2 139/137/2 79/101/2 74/92/2
f 139/137/2 138/138/2 78/59/2 79/101/2
f 136/139/4 137/140/4 77/97/4 75/88/4
f 140/134/4 129/141/4 76/94/4 80/93/4
f 142/142/1 128/136/1 74/92/1 97/91/1
f 147/143/3 136/139/3 75/88/3 116/87/3
f 138/138/2 135/144/2 73/60/2 78/59/2
f 137/140/3 43/103/3 39/102/3 131/145/3
f 135/144/3 141/146/3 98/147/3 73/60/3
f 146/148/1 142/142/1 97/91/1 102/149/1
f 145/150/3 115/151/3 96/76/3 143/124/3
f 126/123/1 67/80/1 95/152/1 144/153/1
f 111/154/5 114/155/5 94/83/5 91/100/5
f 105/156/6 113/157/6 93/104/6 85/67/6
f 113/157/6 112/158/6 92/47/6 93/104/6
f 110/90/5 111/154/5 91/100/5 90/99/5
f 102/149/1 97/91/1 89/84/1 109/159/1
f 73/60/3 98/147/3 90/99/3 36/61/3
f 114/155/5 109/159/5 89/84/5 94/83/5
f 67/80/1 19/79/1 82/160/1 95/152/1
f 115/151/3 104/161/3 84/66/3 96/76/3
f 106/162/5 100/163/5 83/74/5 86/73/5
f 108/164/6 99/165/6 82/70/6 88/48/6
f 104/161/6 105/156/6 85/67/6 84/66/6
f 103/166/5 107/167/5 87/54/5 81/53/5
f 112/158/6 108/164/6 88/48/6 92/47/6
f 41/46/6 31/45/6 108/164/6 112/158/6
f 17/52/5 29/51/5 107/167/5 103/166/5
f 23/65/6 25/64/6 105/156/6 104/161/6
f 31/45/6 20/69/6 99/165/6 108/164/6
f 27/57/5 22/72/5 100/163/5 106/162/5
f 65/75/3 23/65/3 104/161/3 115/151/3
f 55/96/5 33/95/5 109/159/5 114/155/5
f 76/94/1 102/149/1 109/159/1 33/95/1
f 35/89/5 45/98/5 111/154/5 110/90/5
f 49/107/6 41/46/6 112/158/6 113/157/6
f 25/64/6 49/107/6 113/157/6 105/156/6
f 45/98/5 55/96/5 114/155/5 111/154/5
f 124/127/3 65/75/3 115/151/3 145/150/3
f 129/141/1 146/148/1 102/149/1 76/94/1
f 98/147/3 116/87/3 110/90/3 90/99/3
f 95/152/1 82/160/1 99/82/1 101/81/1
f 81/168/1 144/153/1 148/120/1 103/169/1
f 87/54/3 107/167/3 147/143/3 141/146/3
f 27/57/1 106/162/1 146/148/1 129/141/1
f 22/72/3 124/127/3 145/150/3 100/163/3
f 18/170/1 126/123/1 144/153/1 81/168/1
f 100/163/3 145/150/3 143/124/3 83/74/3
f 106/162/1 86/73/1 142/142/1 146/148/1
f 30/36/3 87/54/3 141/146/3 135/144/3
f 77/97/3 137/140/3 131/145/3 70/112/3
f 44/113/2 30/36/2 135/144/2 138/138/2
f 107/167/3 29/51/3 136/139/3 147/143/3
f 86/73/1 28/17/1 128/136/1 142/142/1
f 53/58/4 27/57/4 129/141/4 140/134/4
f 29/51/4 43/103/4 137/140/4 136/139/4
f 54/27/2 44/113/2 138/138/2 139/137/2
f 28/17/2 54/27/2 139/137/2 128/136/2
f 80/93/1 72/31/1 133/135/1 140/134/1
f 17/171/1 127/121/1 117/129/1 3/172/1
f 9/173/2 121/131/2 118/126/2 7/71/2
f 21/18/3 125/125/3 119/132/3 5/19/3
f 16/174/4 123/128/4 134/133/4 1/175/4
f 5/19/4 119/132/4 120/115/4 11/176/4
f 51/177/2 133/130/2 121/131/2 9/173/2
f 3/172/2 117/129/2 122/117/2 13/178/2
f 38/179/4 130/119/4 123/128/4 16/174/4
f 7/71/3 118/126/3 124/127/3 22/72/3
f 83/74/3 143/124/3 125/125/3 21/18/3
f 1/180/1 134/122/1 126/123/1 18/170/1
f 103/169/1 148/120/1 127/121/1 17/171/1
f 48/181/4 132/116/4 130/119/4 38/179/4
f 13/178/2 122/117/2 131/118/2 39/182/2
f 11/176/4 120/115/4 132/116/4 48/181/4
f 144/153/6 141/146/6 147/143/6 148/120/6
f 147/143/4 116/87/4 101/81/4 148/120/4
f 116/87/5 98/147/5 95/152/5 101/81/5
f 141/146/2 144/153/2 95/152/2 98/147/2

Binary file not shown.

BIN
cw 9/models/snowman.fbx Normal file

Binary file not shown.

4877
cw 9/models/spaceship.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

Binary file not shown.

16
cw 9/models/test.obj Normal file
View File

@ -0,0 +1,16 @@
# Blender v3.2.1 OBJ File: 'untitled.blend'
# www.blender.org
mtllib plane.mtl
o Plane.001
v -1.000000 -1.000000 -0.000000
v 1.000000 -1.000000 -0.000000
v -1.000000 1.000000 0.000000
v 1.000000 1.000000 0.000000
vt 0.000000 0.000000
vt 1.000000 0.000000
vt 1.000000 1.000000
vt 0.000000 1.000000
vn 0.0000 -0.0000 1.0000
usemtl None
s off
f 1/1/1 2/2/1 4/3/1 3/4/1

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

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,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,157 @@
#version 430 core
float AMBIENT = 0.03;
float PI = 3.14;
uniform sampler2D depthMap;
uniform sampler2D sleighDepthMap;
uniform vec3 cameraPos;
uniform vec3 color;
uniform vec3 sunDir;
uniform vec3 sunColor;
uniform vec3 lightPos[8];
uniform vec3 lightColor[8];
uniform vec3 spotlightPos;
uniform vec3 spotlightColor;
uniform vec3 spotlightConeDir;
uniform vec3 spotlightPhi;
uniform float alpha;
uniform float metallic;
uniform float roughness;
uniform float exposition;
in vec3 vecNormal;
in vec3 worldPos;
in vec4 sunSpacePos;
in vec4 sleighLightSpacePos;
out vec4 outColor;
in vec3 viewDirTS;
in vec3 lightDirTS[8];
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;
}
float generateShadow(vec3 normal, vec3 lightDir) {
vec4 sunSpacePosNormalized = (0.5 * sunSpacePos / (sunSpacePos.w)) + 0.5;
float closestDepth = texture2D(depthMap, sunSpacePosNormalized.xy).r;
float bias = max(0.01*(1.0-dot(normal,lightDir)),0.001);
return (closestDepth + bias - sunSpacePosNormalized.z > 0.0 ) ? 1.0 : 0.0;
}
float generateShadowSleigh(vec3 normal, vec3 spotLightDir) {
vec4 sleighLightSpacePosNormalized = (0.5 * sleighLightSpacePos / (sleighLightSpacePos.w)) + 0.5;
float closestDepth = texture2D(sleighDepthMap, sleighLightSpacePosNormalized.xy).r;
float bias = max(0.02*(1.0-dot(normal,spotLightDir)),0.002);
return (closestDepth + bias - sleighLightSpacePosNormalized.z > 0.0 ) ? 1.0 : 0.0;
}
void main()
{
// based on https://youtu.be/95WAAYsOifQ
vec3 totalIllumination = vec3(0.0);
for (int i=0; i<8; i++) {
vec3 normal = normalize(vecNormal);
vec3 viewDir = normalize(cameraPos-worldPos);
vec3 lightDir = normalize(lightPos[i]-worldPos);
vec3 ambient = AMBIENT*color;
vec3 attenuatedlightColor = lightColor[i]/pow(length(lightPos[i]-worldPos),2);
vec3 ilumination;
ilumination = ambient+PBRLight(lightDir,attenuatedlightColor,normal,viewDir);
//flashlight
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*generateShadowSleigh(normal, spotlightDir), normal,viewDir);
//sun
ilumination=ilumination+PBRLight(sunDir,sunColor*generateShadow(normal, lightDir),normal,viewDir);
totalIllumination = totalIllumination + ilumination;
}
outColor = vec4(vec3(1.0) - exp(-totalIllumination*exposition), alpha);
}

View File

@ -0,0 +1,54 @@
#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;
uniform mat4 LightVP;
uniform mat4 sleighLightVP;
out vec3 vecNormal;
out vec3 worldPos;
out vec4 sunSpacePos;
out vec4 sleighLightSpacePos;
uniform vec3 lightPos[8];
uniform vec3 spotlightPos;
uniform vec3 cameraPos;
uniform vec3 sunDir;
out vec3 viewDirTS;
out vec3 lightDirTS[8];
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;
for (int i = 0; i < 8; i++) {
vec3 L = normalize(lightPos[i]-worldPos);
lightDirTS[i] = TBN*L;
}
vec3 SL = normalize(spotlightPos-worldPos);
spotlightDirTS = TBN*SL;
sunDirTS = TBN*sunDir;
sunSpacePos=LightVP*modelMatrix*vec4(vertexPosition,1);
sleighLightSpacePos=sleighLightVP*modelMatrix*vec4(vertexPosition,1);
}

View File

@ -0,0 +1,5 @@
#version 430 core
void main()
{
}

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 viewProjectionMatrix;
uniform mat4 modelMatrix;
void main()
{
gl_Position = viewProjectionMatrix * modelMatrix * vec4(vertexPosition, 1.0);
}

View File

@ -0,0 +1,12 @@
#version 430 core
uniform samplerCube skybox;
in vec3 texCoord;
out vec4 outColor;
void main()
{
outColor = texture(skybox,texCoord);
}

View File

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

View File

@ -0,0 +1,165 @@
#version 430 core
float AMBIENT = 0.03;
float PI = 3.14;
uniform sampler2D depthMap;
uniform sampler2D sleighDepthMap;
uniform vec3 cameraPos;
uniform vec3 sunDir;
uniform vec3 sunColor;
uniform vec3 lightPos[8];
uniform vec3 lightColor[8];
uniform vec3 spotlightPos;
uniform vec3 spotlightColor;
uniform vec3 spotlightConeDir;
uniform vec3 spotlightPhi;
uniform float alpha;
uniform float metallic;
uniform float roughness;
uniform float exposition;
in vec3 vecNormal;
in vec3 worldPos;
in vec4 sunSpacePos;
in vec4 sleighLightSpacePos;
out vec4 outColor;
in vec3 viewDirTS;
in vec3 lightDirTS[8];
in vec3 spotlightDirTS;
in vec3 sunDirTS;
in vec3 test;
in vec2 texCoord;
uniform sampler2D colorTexture;
vec3 color;
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;
}
float generateShadow(vec3 normal, vec3 lightDir) {
vec4 sunSpacePosNormalized = (0.5 * sunSpacePos / (sunSpacePos.w)) + 0.5;
float closestDepth = texture2D(depthMap, sunSpacePosNormalized.xy).r;
float bias = max(0.01*(1.0-dot(normal,lightDir)),0.001);
return (closestDepth + bias - sunSpacePosNormalized.z > 0.0 ) ? 1.0 : 0.0;
}
float generateShadowSleigh(vec3 normal, vec3 spotLightDir) {
vec4 sleighLightSpacePosNormalized = (0.5 * sleighLightSpacePos / (sleighLightSpacePos.w)) + 0.5;
float closestDepth = texture2D(sleighDepthMap, sleighLightSpacePosNormalized.xy).r;
float bias = max(0.02*(1.0-dot(normal,spotLightDir)),0.002);
return (closestDepth + bias - sleighLightSpacePosNormalized.z > 0.0) ? 1.0 : 0.0;
}
void main()
{
// based on https://youtu.be/95WAAYsOifQ
vec3 totalIllumination = vec3(0.0);
for (int i=0; i<8; i++) {
vec4 textureColor = texture2D(colorTexture, texCoord);
color = textureColor.xyz;
vec3 normal = normalize(vecNormal);
vec3 viewDir = normalize(cameraPos-worldPos);
vec3 lightDir = normalize(lightPos[i]-worldPos);
vec3 ambient = AMBIENT*color;
vec3 attenuatedlightColor = lightColor[i]/pow(length(lightPos[i]-worldPos),2);
vec3 ilumination;
ilumination = ambient+PBRLight(lightDir,attenuatedlightColor,normal,viewDir);
//flashlight
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*generateShadowSleigh(normal,spotlightDir),normal,viewDir);
//sun
ilumination=ilumination+PBRLight(sunDir,sunColor*generateShadow(normal, lightDir),normal,viewDir);
totalIllumination = totalIllumination + ilumination;
}
outColor = vec4(vec3(1.0) - exp(-totalIllumination*exposition), alpha);
}

View File

@ -0,0 +1,58 @@
#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;
uniform mat4 LightVP;
uniform mat4 sleighLightVP;
out vec3 vecNormal;
out vec3 worldPos;
out vec4 sunSpacePos;
out vec4 sleighLightSpacePos;
uniform vec3 lightPos[8];
uniform vec3 spotlightPos;
uniform vec3 cameraPos;
uniform vec3 sunDir;
out vec3 viewDirTS;
out vec3 lightDirTS[8];
out vec3 spotlightDirTS;
out vec3 sunDirTS;
out vec2 texCoord;
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;
for (int i = 0; i < 8; i++) {
vec3 L = normalize(lightPos[i]-worldPos);
lightDirTS[i] = TBN*L;
}
vec3 SL = normalize(spotlightPos-worldPos);
spotlightDirTS = TBN*SL;
sunDirTS = TBN*sunDir;
sunSpacePos=LightVP*modelMatrix*vec4(vertexPosition,1);
sleighLightSpacePos=sleighLightVP*modelMatrix*vec4(vertexPosition,1);
texCoord = vertexTexCoord;
}

View File

@ -0,0 +1,144 @@
#version 430 core
float AMBIENT = 0.03;
float PI = 3.14;
uniform sampler2D depthMap;
uniform vec3 cameraPos;
uniform vec3 sunDir;
uniform vec3 sunColor;
uniform vec3 lightPos[8];
uniform vec3 lightColor[8];
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[8];
in vec3 spotlightDirTS;
in vec3 sunDirTS;
in vec3 test;
in vec2 texCoord;
uniform sampler2D colorTexture;
uniform sampler2D normalSampler;
vec3 color;
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()
{
// based on https://youtu.be/95WAAYsOifQ
vec3 totalIllumination = vec3(0.0);
for (int i=0; i<8; i++) {
vec4 textureColor = texture2D(colorTexture, texCoord);
vec4 normalTexture = texture2D(normalSampler, texCoord);
normalTexture = normalize(2*normalTexture - 1);
color = textureColor.xyz;
vec3 normal = normalize(vecNormal);
vec3 viewDir = normalize(cameraPos-worldPos);
vec3 lightDir = normalize(lightPos[i]-worldPos);
vec3 ambient = AMBIENT*color;
vec3 attenuatedlightColor = lightColor[i]/pow(length(lightPos[i]-worldPos),2);
vec3 ilumination;
ilumination = ambient+PBRLight(lightDir,attenuatedlightColor,normal,viewDir);
//flashlight
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);
totalIllumination = totalIllumination + ilumination;
}
outColor = vec4(vec3(1.0) - exp(-totalIllumination*exposition), 1);
}

View File

@ -0,0 +1,50 @@
#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[8];
uniform vec3 spotlightPos;
uniform vec3 cameraPos;
uniform vec3 sunDir;
out vec3 viewDirTS;
out vec3 lightDirTS[8];
out vec3 spotlightDirTS;
out vec3 sunDirTS;
out vec2 texCoord;
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;
for (int i = 0; i < 8; i++) {
vec3 L = normalize(lightPos[i]-worldPos);
lightDirTS[i] = TBN*L;
}
vec3 SL = normalize(spotlightPos-worldPos);
spotlightDirTS = TBN*SL;
sunDirTS = TBN*sunDir;
texCoord = vertexTexCoord;
}

12
cw 9/shaders/test.frag Normal file
View File

@ -0,0 +1,12 @@
#version 330 core
out vec4 FragColor;
in vec2 tc;
uniform sampler2D depthMap;
void main()
{
float depthValue = texture(depthMap, tc).r;
FragColor = vec4(vec3(depthValue+0.5), 1.0);
}

14
cw 9/shaders/test.vert Normal file
View File

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

55
cw 9/src/Box.cpp Normal file
View File

@ -0,0 +1,55 @@
// dane 36 wierzcholkow i kolorow opisujace model pudelka
const float box[] = {
// points colors
0.25f, 0.25f, 0.75f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
0.25f, -0.25f, 0.75f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
-0.25f, 0.25f, 0.75f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
0.25f, -0.25f, 0.75f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
-0.25f, -0.25f, 0.75f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
-0.25f, 0.25f, 0.75f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f,
0.25f, 0.25f, -0.75f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f,
-0.25f, 0.25f, -0.75f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f,
0.25f, -0.25f, -0.75f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f,
0.25f, -0.25f, -0.75f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f,
-0.25f, 0.25f, -0.75f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f,
-0.25f, -0.25f, -0.75f, 1.0f, 0.8f, 0.8f, 0.8f, 1.0f,
-0.25f, 0.25f, 0.75f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f,
-0.25f, -0.25f, 0.75f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f,
-0.25f, -0.25f, -0.75f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f,
-0.25f, 0.25f, 0.75f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f,
-0.25f, -0.25f, -0.75f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f,
-0.25f, 0.25f, -0.75f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f,
0.25f, 0.25f, 0.75f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f,
0.25f, -0.25f, -0.75f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f,
0.25f, -0.25f, 0.75f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f,
0.25f, 0.25f, 0.75f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f,
0.25f, 0.25f, -0.75f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f,
0.25f, -0.25f, -0.75f, 1.0f, 0.5f, 0.5f, 0.0f, 1.0f,
0.25f, 0.25f, -0.75f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f,
0.25f, 0.25f, 0.75f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f,
-0.25f, 0.25f, 0.75f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f,
0.25f, 0.25f, -0.75f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f,
-0.25f, 0.25f, 0.75f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f,
-0.25f, 0.25f, -0.75f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f,
0.25f, -0.25f, -0.75f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
-0.25f, -0.25f, 0.75f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
0.25f, -0.25f, 0.75f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
0.25f, -0.25f, -0.75f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
-0.25f, -0.25f, -0.75f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
-0.25f, -0.25f, 0.75f, 1.0f, 0.0f, 1.0f, 1.0f, 1.0f,
};

31
cw 9/src/Camera.cpp Normal file
View File

@ -0,0 +1,31 @@
#include "Camera.h"
glm::mat4 Core::createPerspectiveMatrix(float zNear, float zFar, float frustumScale)
{
glm::mat4 perspective;
perspective[0][0] = 1.f;
perspective[1][1] = frustumScale;
perspective[2][2] = (zFar + zNear) / (zNear - zFar);
perspective[3][2] = (2 * zFar * zNear) / (zNear - zFar);
perspective[2][3] = -1;
perspective[3][3] = 0;
return perspective;
}
glm::mat4 Core::createViewMatrix( glm::vec3 position, glm::vec3 forward, glm::vec3 up )
{
glm::vec3 side = glm::cross(forward, up);
// Trzeba pamietac o minusie przy ustawianiu osi Z kamery.
// Wynika to z tego, ze standardowa macierz perspektywiczna zaklada, ze "z przodu" jest ujemna (a nie dodatnia) czesc osi Z.
glm::mat4 cameraRotation;
cameraRotation[0][0] = side.x; cameraRotation[1][0] = side.y; cameraRotation[2][0] = side.z;
cameraRotation[0][1] = up.x; cameraRotation[1][1] = up.y; cameraRotation[2][1] = up.z;
cameraRotation[0][2] = -forward.x; cameraRotation[1][2] = -forward.y; cameraRotation[2][2] = -forward.z;
glm::mat4 cameraTranslation;
cameraTranslation[3] = glm::vec4(-position, 1.0f);
return cameraRotation * cameraTranslation;
}

14
cw 9/src/Camera.h Normal file
View File

@ -0,0 +1,14 @@
#pragma once
#include "glm.hpp"
namespace Core
{
glm::mat4 createPerspectiveMatrix(float zNear = 0.1f, float zFar = 100.0f, float frustumScale = 1.f);
// position - pozycja kamery
// forward - wektor "do przodu" kamery (jednostkowy)
// up - wektor "w gore" kamery (jednostkowy)
// up i forward musza byc ortogonalne!
glm::mat4 createViewMatrix(glm::vec3 position, glm::vec3 forward, glm::vec3 up);
}

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