-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
173 lines (171 loc) · 7.98 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<title>Ivy: Ivy Readme</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
<style type="text/css">
#nav-tree .label a{
font-weight: bold;
}
</style>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('index.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="PageDoc"><div class="header">
<div class="headertitle">
<div class="title">Ivy Readme </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p><a class="anchor" id="mainpage"></a></p>
<h1><a class="anchor" id="autotoc_md0"></a>
Ivy Framework</h1>
<p><a href="https://www.gnu.org/licenses/gpl-3.0"><img src="https://img.shields.io/badge/License-GPLv3-blue.svg" alt="License: GPL v3" style="pointer-events: none;" class="inline"/></a></p>
<p>TODO: Logo hier einfügen</p>
<img src="https://cdn.discordapp.com/attachments/384037705115500559/785870724312465408/unknown.png"/>
<img src="https://cdn.discordapp.com/attachments/384037705115500559/785870798966620170/Z.png"/>
<p>Ivy is a modern, minimalistic and efficient 3D framework. It can be used as a rendering and ecs backend for your game or simulation. Supported platforms are Windows 10 and GNU/Linux with a kernel >= 5.0. Note that this is my honours project for my bachelors degree in Games Programming at SAE Institute Munich.</p>
<h2><a class="anchor" id="autotoc_md1"></a>
Features</h2>
<ul>
<li>Multiplatform (Linux & Windows)</li>
<li>ECS</li>
<li>Multiple mesh and texture formats</li>
<li>Easy material and shader pipeline</li>
<li>Input system, window management, fast logging</li>
<li>Integrated ImGui</li>
<li>PBR lighting for directional lights and spot lights</li>
<li>PBR roughness & metallic workflow with texture support</li>
<li>Image based lighting</li>
<li>Cascaded shadow mapping</li>
<li>Postprocessing pass</li>
<li>Motion blur & depth of field (todo)</li>
<li>Atmospheric scattering (disabled by default)</li>
<li>Skeletal animation (todo)</li>
<li>API Documentation</li>
</ul>
<h1><a class="anchor" id="autotoc_md2"></a>
Getting Started</h1>
<p>Get started by cloning this repository: <code>git clone <a href="https://github.com/TKscoot/Ivy/">https://github.com/TKscoot/Ivy/</a></code></p>
<h3><a class="anchor" id="autotoc_md3"></a>
Required</h3>
<ul>
<li>C++17 Compiler<ul>
<li>GCC >=7 (Linux)</li>
<li>MSVC >=15.9 (Windows)</li>
</ul>
</li>
<li>Premake 5</li>
<li>OpenGL >= 4.5 capable graphics card</li>
</ul>
<h3><a class="anchor" id="autotoc_md4"></a>
Dependencies</h3>
<ul>
<li>OpenGL >= 4.5</li>
<li>GLAD (included)</li>
<li>GLFW (included)</li>
<li>Assimp (included)</li>
<li>glm (included)</li>
<li>ImGui (included)</li>
<li>spdlog (included)</li>
<li>stb_image (included)</li>
<li>std17</li>
</ul>
<p>On Windows Visual Studio 2017 or 2019 are recommended. Compiling on Linux was tested with GCC. LLVM/Clang could work but has not been tested.</p>
<h2><a class="anchor" id="autotoc_md5"></a>
Building Ivy on Windows</h2>
<h3><a class="anchor" id="autotoc_md6"></a>
Generating projects and solution</h3>
<p>Generate project files with Premake5. Make sure your premake executable is in the root folder of the Ivy repository or in your %PATH%. Open a command prompt and navigate to the repo root folder and execute following commands.</p>
<p>For Visual Studio 2017 do: </p><div class="fragment"><div class="line">.\premake5.exe vs2017</div>
</div><!-- fragment --><p>For Visual Studio 2019 do: </p><div class="fragment"><div class="line">.\premake5.exe vs2019</div>
</div><!-- fragment --><p>Then open the Solution and build it inside Visual Studio.</p>
<p>The .lib file of the Ivy Framework can be found in Build/Bin</p>
<p>The .lib files of the external libraries can be found in projects/Ivy/dependencies</p>
<h2><a class="anchor" id="autotoc_md7"></a>
Building Ivy on Linux</h2>
<p>Make sure you have the correct GCC version and premake5 installed.</p>
<h3><a class="anchor" id="autotoc_md8"></a>
Geting Premake</h3>
<p><b>Every distribution</b></p>
<p>Download premake-5.0.0-alpha15-linux.tar.gz from the <a href="https://premake.github.io/download.html">Premake Homepage</a>. Unpack the content to your Ivy repository folder or any folder in your path.</p>
<p><b>Arch Linux</b> </p><div class="fragment"><div class="line">sudo pacman -S premake</div>
</div><!-- fragment --><h3><a class="anchor" id="autotoc_md9"></a>
Generating build files</h3>
<p>Information about Premake5 and all supported project file generators can be found <a href="https://github.com/premake/premake-core/wiki/Using-Premake">here!</a></p>
<p>To generate a GNU makefile with premake you need to execute following command:</p>
<div class="fragment"><div class="line">premake5 gmake</div>
</div><!-- fragment --><p>To build Ivy just type:</p>
<div class="fragment"><div class="line">make</div>
</div><!-- fragment --><p>The demo program can be run from Build/Bin/Sandbox/<configuration>.</p>
<h2><a class="anchor" id="autotoc_md10"></a>
Usage</h2>
<p>To use the framework you have to link against following libraries: <code>Ivy GLAD ImGui glfw assimp</code></p>
<p>Linking only to <code>Ivy</code> is coming soon™.</p>
<p>If you want to use premake for your project you can use the "Sandbox" template project from the premake5.lua file in the root of the repo. </p>
</div></div><!-- PageDoc -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
</body>
</html>