Files
ogs-site/ru/news/osg-sample.html

91 lines
6.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<link rel="stylesheet" href="../../style.css">
</head>
<body>
<script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
<div id="header">
<div class="header2">
<div class="menu">
<a href="../../ru/news/index.html">Новости</a>
<a href="../../ru/game/index.html">Игры</a>
<a href="../../ru/tool/index.html">Инструменты</a>
<a href="../../ru/page/about.html">О нас</a>
</div>
<div id="lang">
<a href="../../en/news/osg-sample.html">EN</a>
<a href="../../ru/news/osg-sample.html">RU</a>
</div>
<div class="clear"></div>
</div>
</div>
<h3 class="left_item_title">В новостях...</h3>
<center>
<div class="news_item">
<h2 class="news_item_title">
<a href="osg-sample.html">Приложение OpenSceneGraph</a>
</h2>
<p class="news_item_date">
2017-05-12 00:00
</p>
<div class="news_item_contents">
<p><img src="../../images/2017-05_osg-sample.png" alt="Ракета в дали" /></p>
<p>Эта статья описывает создание самоучителей по сборке приложения OpenSceneGraph на Linux, macOS, Windows и Android в апреле 2017.</p>
<p>Предыдущие самоучители описывали установку OpenSceneGraph на Linux, macOS, Windows и отображение модели с помощью стандартного инструмента <strong>osgviewer</strong>. На этот раз результатом нашей работы стало <a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide-application">приложение OpenSceneGraph</a>, которое работает на Linux, macOS, Windows и Android.</p>
<p>Приложение очень простое. Оно умеет следующее:</p>
<ol>
<li>Создание окна для отрисовки</li>
<li>Загрузка модели</li>
<li>Отрисовка модели с помощью простых шейдеров GLSL</li>
<li>Перемещение модели с помощью мыши на Linux, macOS, Windows и пальца на Android</li>
</ol>
<p>Создать самоучители для Linux, macOS, Windows было настолько простой и понятной задачей, что мы справились с ней за пару недель. Оставшуюся половину месяца мы потратили на создание самоучителя для Android.</p>
<p>Наша <a href="2016-october-recap.html">первая успешная сборка под Android</a> в прошлом году требовала множество неочивидных телодвижений. В этот раз мы хотели получить более чистый, быстрый и дешёвый подход.</p>
<p>Нам это удалось. В результате всё, что нужно для работы приложения OpenSceneGraph на Android, уместилось в набор из нескольких файлов и небольших изменений для стандартного проекта Android Studio (с поддержкой C++).</p>
<p>Краткий перечень файлов:</p>
<ol>
<li>Поверхность GLES2</li>
<li>Activity для отрисовки на этой поверхности</li>
<li>Интерфейс Java для нативной библиотеки</li>
<li>Реализация нативной библиотеки на C++</li>
<li>Файл CMake для сборки нативной библиотеки</li>
<li>Activity layout</li>
<li>Модель для отрисовки</li>
</ol>
<p>Краткий перечень изменений проекта:</p>
<ol>
<li>Обновление Android manifest для использования GLES2 и Activity</li>
<li>Использование файла CMake нативной библиотеки в проектном файле CMake</li>
</ol>
<p>Документация OpenSceneGraph предполагает сборку OpenSceneGraph вне Android Studio с помощью CMake. Такой подход имеет следующие ограничения:</p>
<ol>
<li>Ручная сборка OpenSceneGraph под каждую платформу</li>
<li>Ручное копирование собранных библиотек OpenSceneGraph в проект Android Studio</li>
</ol>
<p>Наш подход включает в себя сборку OpenSceneGraph для тех платформ, для которых собирается проект Android Studio. К тому же, OpenSceneGraph используется как часть проекта, поэтому нет никакой дополнительной рутины: достаточно просто пересобрать проект, и всё готово.</p>
<p>На этом мы заканчиваем описание создания самоучителей по сборке приложения OpenSceneGraph на Linux, macOS, Windows и Android в апреле 2017.</p>
</div>
</div>
<div id="disqus_thread"></div>
<script>
var disqus_config = function () {
this.page.url = "https://opengamestudio.org/ru/news/osg-sample.html";
this.page.identifier = "osg-sample.html";
};
(function() { // DON'T EDIT BELOW THIS LINE
var d = document, s = d.createElement('script');
s.src = 'https://opengamestudio.disqus.com/embed.js';
s.setAttribute('data-timestamp', +new Date());
(d.head || d.body).appendChild(s);
})();
</script>
<noscript>Пожалуйста, включите JavaScript для просмотра <a href="https://disqus.com/?ref_noscript">комментариев на платформе Disqus.</a></noscript>
<div id="footer">
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
</div>
</center>
</body>
</html>