Commit 4fd3129d authored by Byurrrer's avatar Byurrrer

Объединил функции загрузки/сохранения уровня в единое пространство имен,...

Объединил функции загрузки/сохранения уровня в единое пространство имен, задокументировал, поправил документацию, дописал лицензию и ридми
parent c2c11fc6
Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017. All rights reserved.
----------------------------------------------------------------------------------
(MIT License https://opensource.org/licenses/mit-license.html)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
ADDITION:
Any contribution (adding something to the Software)
intentionally submitted to the authors of the Software for inclusion in the Software,
must comply with the terms of this License, excluding any additional conditions.
-----------------------------------------------------------------------------------
Данная лицензия разрешает лицам, получившим копию данного программного обеспечения
и сопутствующей документации (в дальнейшем именуемыми «Программное Обеспечение»),
безвозмездно использовать Программное Обеспечение без ограничений,
......@@ -21,6 +50,7 @@ Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017. All rights reserved.
ВОЗНИКШИМ ИЗ-ЗА ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
ИЛИ ИНЫХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
ДОБАВЛЕНИЕ:
Любой вклад (добавление чего-либо к Программному Обеспечению)
намерено представленный авторам Программного обеспечения для включения в Программное Обеспечение,
должен соответствовать условиям данной Лицензии, исключая любые дополнительные условия.
\ No newline at end of file
Copyright © Vitaliy Buturlin, Evgeny Danilovich, 2017. All rights reserved.
SkyXEngine - графический 3D движок с real-time рендером, использует технологии DirectX 9.
Документация по использованию: docs/html/index.html
\ No newline at end of file
Документация по использованию: docs/html/index.html
КРАТКОЕ ОПИСАНИЕ ВОЗМОЖНОСТЕЙ
Формирование уровня осуществляется посредством:
загрузки статических моделей формата dse, с их автоматическим разбиением на "куски рендера" как quad или octo дерево, возможны сохранение/загрузка в бинарный файл всей геометрии уровня
генерации растительности по маске, возможны 2 вида: трава (чем дальше тем меньше размер объекта) и деревья (с возможностью загрузки лодов), возможны возможны сохранение/загрузка в бинарный файл всей растительности уровня.
Освещение представлено 3 видами источников света (опционально поддерживается генерация теней от каждого исчтоника света):
глобальный (солнце), тени - PSSM
локальный - точечный, тени - Cube Shadow Mapping
локальный - направленный? тени - Shadow Mapping.
HDR эффект присутсвует.
Система материалов pbr, то есть построенная на физичеки корретных, но апроксимированных вычислениях.
Для формирования данных для освещения используется техника Deferred shading, что позволяет обрабатывать неограниченное количество источников света.
Поддерживаются отражения 2 видов:
плоские (планарные)
объемные (кубические).
Поддерживается до 3 полупрозрачных поверхностей в кадре (пока только тестовый режим, в планах улучшения качества).
Поддерживаемые эффекты поверхностей:
микрорельеф
микрорельеф по маске (до 4 текстур)
детальность
детальность по маске (до 4 текстур)
комбинированный микрорельеф с детальностью по маске (до 4 текстур)
альфа тест.
Вся система материалов является открытой и практически любой функционал системы доступен для собственной интерпретации, посредством шейдеров. Имеется встроенный набор данных.
Поддерживаются различные пользовательские данные которые интерпретируются только создающим материалы.
Постпроцесс состоит из эффектов:
черно-белое изображение
эффект сепия
коррекция изображения
рендер солнца
bloom
lens flare, эффект восприятия яркого света линзами
depth of field, глубина резкости
linear fog, линейный туман
space screen ambient occulusion, глобальное освещение (точнее затенение) в пространстве экрана
motion blur, размытие в движении
nfaa
dlaa.
СТРУКТУРА ПРОЕКТА
build - директория для сборки движка (сюда приходят после компиляции exe, dll), здесь же игровые ресурсы
docs - документация, настройки для Doxygen
html - документация в виде html файлов, открывать index.html
settings_doxygen - файл настроек для Doxygen
libs - директория с файлами lib (сюда приходят все сгенерированные lib)
proj - директория с проектами для сред разработки
sdks - сторонние библиотеки, которые используются
source - директория с файлами исходного кода
ЦЕЛЬ
Самую главную цель которую мы преследуем это разработка движка, на котором в дальнейшем можно разрабатывать игры, ибо в первую очередь разработка движка ведется в своем инетресе.
Дополонительная и немаловажная цель это оценка нашего труда со стороны таких же как и мы - разработчиков (без разницы, игр или другого ПО), которым нужен подобный движок.
vs:
float4x4 World;
float4x4 View;
float4x4 Projection;
float4x4 WorldView; //
float4x4 WorldViewProjection;
float4 CameraPosition;
float2 TimeDelta;
//x -
//y -
float4 Param;
float2 NearFar; //
ps:
float4x4 World;
float4x4 View;
float4x4 Projection;
float2 TimeDelta;
//x -
//y -
float4 CameraPosition;
float4 Param;
float2 NearFar; //
sampler2D ColorSampler:register(s0); //
sampler2D MaskSampler:register(s1); // /
//4
sampler2D DetailRSampler:register(s2);
sampler2D DetailGSampler:register(s3);
sampler2D DetailBSampler:register(s4);
sampler2D DetailASampler:register(s5);
//4
sampler2D MDRSampler:register(s6);
sampler2D MDGSampler:register(s7);
sampler2D MDBSampler:register(s8);
sampler2D MDASampler:register(s9);
sampler2D RF0SSIsSampler:register(s10); //
//r - roughness -
//g - f0 -
//b - soft specular -
//a - intens specular -
sampler2D/samplerCUBE ReflectionSampler:register(s12); //
sampler2D RefractionSampler:register(s13); //
sampler2D DepthLinearSampler:register(s14); //
\ No newline at end of file
......@@ -198,7 +198,7 @@ $(document).ready(function(){initNavTree('_g_register_index_8h.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_b2f33c71d4aa5e7af42a1ca61ff5af1b.html">source</a></li><li class="navelem"><a class="el" href="_g_register_index_8h.html">GRegisterIndex.h</a></li>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
......@@ -91,7 +91,7 @@ $(document).ready(function(){initNavTree('_g_register_index_8h_source.html','');
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_b2f33c71d4aa5e7af42a1ca61ff5af1b.html">source</a></li><li class="navelem"><a class="el" href="_g_register_index_8h.html">GRegisterIndex.h</a></li>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
......@@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('_sky_x_engine_8h.html','');});
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_b2f33c71d4aa5e7af42a1ca61ff5af1b.html">source</a></li><li class="navelem"><a class="el" href="_sky_x_engine_8h.html">SkyXEngine.h</a></li>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
This diff is collapsed.
<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SkyXEngine: Классы</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>
<script type="text/javascript">
$(document).ready(initResizable);
</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="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">SkyXEngine
&#160;<span id="projectnumber">0.9.0</span>
</div>
<div id="projectbrief">3D real-time render</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Создано системой Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Поиск');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Поиск');
$(document).ready(function() { init_search(); });
});
</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">
$(document).ready(function(){initNavTree('annotated.html','');});
</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="header">
<div class="headertitle">
<div class="title">Классы</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock">Классы с их кратким описанием.</div><div class="directory">
<table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_i_s_x_file.html" target="_self">ISXFile</a></td><td class="desc">интерфейс для записи/чтения файлов </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_i_s_x_l_config.html" target="_self">ISXLConfig</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Документация по SkyXEngine. Последние изменения: Чт 13 Апр 2017 21:38:25. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
</div>
</body>
</html>
var annotated_dup =
[
[ "ISXFile", "struct_i_s_x_file.html", "struct_i_s_x_file" ],
[ "ISXLConfig", "struct_i_s_x_l_config.html", null ]
];
\ No newline at end of file
......@@ -131,7 +131,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="name
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="dir_b2f33c71d4aa5e7af42a1ca61ff5af1b.html">source</a></li><li class="navelem"><a class="el" href="dir_b6d6c42fec953f67f0c91a915a790b9d.html">managed_render</a></li><li class="navelem"><a class="el" href="camera__update_8h.html">camera_update.h</a></li>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
This diff is collapsed.
......@@ -107,7 +107,7 @@ $(document).ready(function(){initNavTree('class_i_s_x_bound.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
......@@ -290,7 +290,7 @@ float4x4&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_i_s_x_bound.html">ISXBound</a></li>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
......@@ -110,7 +110,7 @@ $(document).ready(function(){initNavTree('class_i_s_x_camera.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
......@@ -247,7 +247,7 @@ virtual float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" h
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_i_s_x_camera.html">ISXCamera</a></li>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
......@@ -100,7 +100,7 @@ $(document).ready(function(){initNavTree('class_i_s_x_frustum.html','');});
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
......@@ -145,7 +145,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" hr
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a class="el" href="class_i_s_x_frustum.html">ISXFrustum</a></li>
<li class="footer">Документация по SkyXEngine. Последние изменения: Вт 25 Апр 2017 23:26:18. Создано системой
<li class="footer">Документация по SkyXEngine. Последние изменения: Ср 26 Апр 2017 23:20:29. Создано системой
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
</ul>
......
<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SkyXEngine: Алфавитный указатель классов</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>
<script type="text/javascript">
$(document).ready(initResizable);
</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="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">SkyXEngine
&#160;<span id="projectnumber">0.9.0</span>
</div>
<div id="projectbrief">3D real-time render</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Создано системой Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Поиск');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
initMenu('',true,false,'search.php','Поиск');