<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki2.linuxformat.ru/skins/common/feed.css?97"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF82%3AOgre</id>
		<title>LXF82:Ogre - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki2.linuxformat.ru/index.php?action=history&amp;feed=atom&amp;title=LXF82%3AOgre"/>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;action=history"/>
		<updated>2026-05-13T21:01:40Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.11.1</generator>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5525&amp;oldid=prev</id>
		<title>Yaleks: /* Время поколдовать */</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5525&amp;oldid=prev"/>
				<updated>2008-11-22T17:06:00Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Время поколдовать&lt;/span&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 17:06, 22 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 333:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 333:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Итак, вы получили краткое и несложное руководство для ознакомления&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Итак, вы получили краткое и несложное руководство для ознакомления&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;с Ogre — и вас ожидает еще много интересного.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;с Ogre — и вас ожидает еще много интересного.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|center|&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Заголовок=БЛАГОДАРНОСТЬ&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Содержание=Видеокарта Nvidia GeForce&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;7800, используемая для&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;разработки этого руководства,&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;была любезно предоставлена&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;MSI . Спасибо, ребята!&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;-&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=}}&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5524&amp;oldid=prev</id>
		<title>Yaleks в 16:54, 22 ноября 2008</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5524&amp;oldid=prev"/>
				<updated>2008-11-22T16:54:37Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;

			&lt;table style=&quot;background-color: white; color:black;&quot;&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;col class='diff-marker' /&gt;
			&lt;col class='diff-content' /&gt;
			&lt;tr&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Версия 16:54, 22 ноября 2008&lt;/td&gt;
			&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Барьер номер один ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Барьер номер один ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Заголовок=ЗНАКОМЬТЕСЬ С ВАШИМ ГЕРОЕМ: ЧЕД-В-БЕГАХ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Содержание=Хотя большинство стрелялок от первого лица&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;проходят по формуле «целься, стреляй, беги, опять&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;стреляй», они все-таки пытаются обставиться хоть&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;каким-то сюжетом. И вот наш сюжет, в виде&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;краткого представления персонажа:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;blockquote&amp;gt;Десять лет назад лихой спецназовец был приговорен судом к тюремному заключению за&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;преступление, которое не совершал, но быстренько сбежал из-за колючей проволоки к&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;нелегалам Сан-Франциско. Сейчас, будучи все&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;еще в розыске, он работает солдатом удачи.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Если у вас проблемы, и помочь вам некому,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;сумейте отыскать и нанять... Чеда!&amp;lt;/blockquote&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Наш герой Чед приговорен к повешению и&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;находится в бегах. Игра будет патетически&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;называться «Висельник Чед», хотя в идеале наш&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;герой избежит казни, изувечив всех на своем пути.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Он будет бороться против плохих парней&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(в основном против тех, что для нас заготовили&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;разработчики Ogre), преодолевая всяческие&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;трудности, для чего потребуется настоящий героизм&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;(но главным образом пальба). Кроме того, он&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;задействует арсенал тяжелого боевого оружия,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;позволив нам поупражняться в спецэффектах.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Заинтересовались? Еще бы!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=300px}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Прежде чем браться за написание кода — или даже за установку нужного для кодирования программного обеспечения, надо сообразить, что&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Прежде чем браться за написание кода — или даже за установку нужного для кодирования программного обеспечения, надо сообразить, что&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;именно вы хотите написать (дико извиняюсь перед программистами&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;именно вы хотите написать (дико извиняюсь перед программистами&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 207:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 234:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Делай, что я сказал… ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Делай, что я сказал… ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Заголовок=ЗА КУЛИСАМИ...&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Содержание=Две строчки кода для генерации ландшафта&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;набрать легко, но в ответ на них Ogre сгенерировал&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;для нас аж 28000 треугольников. За крутыми строками упрятана напряженная работа – наша тестовая&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;машина показала в среднем 600 кадров в секунду,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;а на менее мощном компьютере результат мог быть&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;и хуже.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Здесь та же проблема, что и у интегрированных&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;сред разработки, поддерживающих сворачивание&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;кода. Вы видите строчку вызова и думаете: «Ага,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;тебя-то мне и надо», копируете ее и вставляете&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;сразу в нескольких местах. А потом замечаете, что&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;в свернутом коде на самом деле 1000 строк, и вы&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;чуть ли не удвоили объем своей программы!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;В Ogre, добавление одной строки может вылиться в тысячи, а то и миллионы новых треугольников,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;и всех их надо отобразить на экране. Поэтому будьте осторожны с поправками!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=300px}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Осталось написать обработчик кадра, в который будут посылаться и&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Осталось написать обработчик кадра, в который будут посылаться и&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;обрабатываться события от Ogre. Здесь интерес представляют три функции, одна из которых говорит почти сама за себя. Это конструктор, и он&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;обрабатываться события от Ogre. Здесь интерес представляют три функции, одна из которых говорит почти сама за себя. Это конструктор, и он&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 239:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 286:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Время поколдовать ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Время поколдовать ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Изображение:Img_82_87_1.jpg|thumb|1) Ogre позаботился об окне системных настроек, оно создается вызовом showConfigDialog().]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Все самое нудное позади, ваша «игра» (скопированная с диска к журналу) должна скомпилироваться и запуститься — просто наберите make.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Все самое нудное позади, ваша «игра» (скопированная с диска к журналу) должна скомпилироваться и запуститься — просто наберите make.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Когда она запустится, возникнет окно настроек Ogre (см. рис. 1). Рядом&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Когда она запустится, возникнет окно настроек Ogre (см. рис. 1). Рядом&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 256:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 304:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;много короче тысячи символов.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;много короче тысячи символов.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Изображение:Img_82_87_2.jpg|thumb|2) Покатые холмы, прямо как в Уэльсе. Хотя не такие зеленые. И овец нет. Наверно, это террикон.]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вот она, просто вставьте ее в вызов createScene():&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Вот она, просто вставьте ее в вызов createScene():&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;m_SceneMgr-&amp;gt;setWorldGeometry(&amp;quot;terrain.cfg&amp;quot;);&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;m_SceneMgr-&amp;gt;setWorldGeometry(&amp;quot;terrain.cfg&amp;quot;);&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 274:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 323:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;вниз, но там уже есть ландшафт, так что все в порядке.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;вниз, но там уже есть ландшафт, так что все в порядке.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;[[Изображение:Img_82_87_3.jpg|thumb|3) Таков конечный продукт данного этапа. Небо выглядит довольно убедительно.]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Код для невероятно сложной иллюзии выглядит так:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Код для невероятно сложной иллюзии выглядит так:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;m_SceneMgr-&amp;gt;setSkyDome(true,&amp;quot;Examples/CloudSky&amp;quot;);&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;m_SceneMgr-&amp;gt;setSkyDome(true,&amp;quot;Examples/CloudSky&amp;quot;);&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 283:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Строка 333:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Итак, вы получили краткое и несложное руководство для ознакомления&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;Итак, вы получили краткое и несложное руководство для ознакомления&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;с Ogre — и вас ожидает еще много интересного.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;с Ogre — и вас ожидает еще много интересного.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;{{Врезка|center|&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Заголовок=БЛАГОДАРНОСТЬ&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Содержание=Видеокарта Nvidia GeForce&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;7800, используемая для&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;разработки этого руководства,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;была любезно предоставлена&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;MSI . Спасибо, ребята!&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;|Ширина=}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5145&amp;oldid=prev</id>
		<title>Yaleks в 10:19, 15 октября 2008</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5145&amp;oldid=prev"/>
				<updated>2008-10-15T10:19:08Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;amp;diff=5145&amp;amp;oldid=5144&quot;&gt;(Различия между версиями)&lt;/a&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	<entry>
		<id>http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5144&amp;oldid=prev</id>
		<title>Yaleks: uncompete</title>
		<link rel="alternate" type="text/html" href="http://wiki2.linuxformat.ru/index.php?title=LXF82:Ogre&amp;diff=5144&amp;oldid=prev"/>
				<updated>2008-10-15T10:17:41Z</updated>
		
		<summary type="html">&lt;p&gt;uncompete&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая статья&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Цикл/Ogre}}&lt;br /&gt;
== Ogre Создаем ландшафт для 3D-игры ==&lt;br /&gt;
''ЧАСТЬ 1 '''Пол Хадсон''' начинает это долгожданное руководство с описания ландшафта.''&lt;br /&gt;
&lt;br /&gt;
Что приятно в написании статей для Linux Format так это&lt;br /&gt;
необходимость расширять собственный кругозор для самой&lt;br /&gt;
возможности создания и описания новых проектов для&lt;br /&gt;
ваших тренировок. Можете себе представить, к примеру, как я был&lt;br /&gt;
озадачен, когда меня попросили заняться серией статей о программировании 3D-игр. Не то что я не люблю писать о Linux: на самом деле,&lt;br /&gt;
очень люблю. Но больше я, конечно, люблю играть в игры, потому как&lt;br /&gt;
игры – это весело по определению. И вдруг оказалось, что веселее, чем&lt;br /&gt;
играть в игры, только одно (по крайней мере, на компьютерах): их создавать! Обладание неограниченной исполнительной властью над жизнью&lt;br /&gt;
проекта, несущего счастье миллионам&amp;lt;ref&amp;gt;Миллионам? Да, люблю метить высоко. Поэтому ничего не замечаю, пока не грохнусь.&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Поэтому мы, в Лаборатории LXF, составили базовое руководство по&lt;br /&gt;
проектированию, разработке и выпуску вашей собственной 3D-игры. У&lt;br /&gt;
вас, вероятно, уже руки чешутся поработать, но не спешите – в данной&lt;br /&gt;
статье я сначала поведаю об игре вообще и о программах с библиотеками – необходимом инструментарии для ее разработки, а уж потом&lt;br /&gt;
напущу вас на решение библейски-первозданной задачи: наколдовать&lt;br /&gt;
для игры небо и землю.&lt;br /&gt;
=== Барьер номер один ===&lt;br /&gt;
Прежде чем браться за написание кода – или даже за установку нужного для кодирования программного обеспечения, надо сообразить, что&lt;br /&gt;
именно вы хотите написать (дико извиняюсь перед программистами &lt;br /&gt;
экстремалами). Поэтому я задам особенности предполагаемой игры: что&lt;br /&gt;
она будет делать, как выглядеть, как в нее играть, и так далее.&lt;br /&gt;
* Это будет стрелялка от первого лица (First-Person Shooter, FPS). Я знаю, существуют тысячи FPS, а все потому, что их сравнительно лег ко порождать, они дают разгуляться фантазии и нуждаются в безумно красивой графике. Я не намерен ничего придумывать за вас, но надеюсь создать игру, простую в разработке и классную на вид!&lt;br /&gt;
* Это будет однопользовательская игра с неким подобием искусственного интеллекта, чтобы добавить сложности.&lt;br /&gt;
* Действие будет происходить на обширной открытой местности, игроки будут ее исследовать. Для разнообразия, они смогут передвигаться на транспорте, а может, и входить в помещения. Так игра будет больше похожа на Quake.&lt;br /&gt;
* Игра будет написана на С++, по принципу «лишь бы работало». За совершенством гнаться не станем. Место в журнале ограничено, и я лучше покажу вам 5 строк нормально работающего кода, чем 50 строк идеального.&lt;br /&gt;
* Игра будет кросс-платформенной. Мы будем разрабатывать ее в SUSE 10.1, но она должна работать и на любом другом дистрибутиве Linux. Будет здорово, если игра также будет работать в Windows и OS X, но это не главная наша цель.&lt;br /&gt;
* Игра будет выпущена под лицензией GPL.&lt;br /&gt;
&lt;br /&gt;
Напоминаю, что это руководство по программированию 3D-игр, а не&lt;br /&gt;
по С++, математике или Blender. Поэтому я сфокусируюсь на 3D-графике, прихватывая готовые модели и элементы игры везде где только можно. Если вы знаете Blender – прекрасно: сможете создать собственное&lt;br /&gt;
творение. Если нет, не переживайте: все, что вам нужно – способность&lt;br /&gt;
программировать.&lt;br /&gt;
&lt;br /&gt;
Наша цель состоит в создании законченной игры. Для этого мы&lt;br /&gt;
воспользуемся графическим движком Ogre 3D и SDL для аудио и прочих нужд. Однако потребуется еще заполнить немало пробелов, оставленных SDL и Ogre.&lt;br /&gt;
&lt;br /&gt;
=== Список требований ===&lt;br /&gt;
Теперь вы знаете, что мы хотим запрограммировать, поэтому необходимо привести в боевую готовность вашу систему. Для программирования потребуется установить следующее ПО (заметим, что здесь&lt;br /&gt;
указаны лишь минимально допустимые версии; более новые версии&lt;br /&gt;
будут предпочтительнее):&lt;br /&gt;
* Automake 1.6&lt;br /&gt;
* Autoconf 2.5&lt;br /&gt;
* make 3.8&lt;br /&gt;
* libtool 1.4&lt;br /&gt;
* pkg-config 0.17.2&lt;br /&gt;
* GCC 3.4&lt;br /&gt;
* g++ 3.4&lt;br /&gt;
* cpp 3.4&lt;br /&gt;
Приведенные названия должны совпадать с теми, что вы найдете в&lt;br /&gt;
менеджере пакетов вашего дистрибутива. Исключение может составить&lt;br /&gt;
pkg-config, иногда называемый pkgconfig.&lt;br /&gt;
&lt;br /&gt;
Так как мы собираемся работать с играми, понадобятся дополнительные пакеты, а именно:&lt;br /&gt;
* SDL 1.2.9&lt;br /&gt;
* SDL_Mixer 1.2.6&lt;br /&gt;
* Mesa&lt;br /&gt;
* FreeType2 2.1&lt;br /&gt;
* libpng&lt;br /&gt;
* libmng&lt;br /&gt;
* libtiff&lt;br /&gt;
* libjpeg&lt;br /&gt;
Как и в первом случае, все вышеозначенные библиотеки можно&lt;br /&gt;
найти в менеджере пакетов. Проверьте, что вы устанавливаете как&lt;br /&gt;
саму библиотеку, так и версию для разработчика, иначе вы сможете только запускать игру, но не разрабатывать свою собственную.&lt;br /&gt;
Например, помимо пакета SDL существует пакет SDL-devel (или SDLdev),&lt;br /&gt;
который также надо установить.&lt;br /&gt;
&lt;br /&gt;
Теперь нам надо установить действительно особые программы,&lt;br /&gt;
предназначенные для разработки игры. Этот список гораздо короче – и,&lt;br /&gt;
возможно, не все они найдутся в вашем менеджере пакетов. Нам понадобятся следующие:&lt;br /&gt;
* zziplib 0.12&lt;br /&gt;
* DevIL 1.5&lt;br /&gt;
* Ogre 3D 1.2&lt;br /&gt;
* Приличный драйвер видеокарты&lt;br /&gt;
Мы разместили все эти пакеты на диске (включая последние драйвера Nvidia и ATI для Linux) и расскажем, как их установить. Начнем с&lt;br /&gt;
драйвера видеокарты. У меня MSI Nvidia GeForce 7900, поэтому весь&lt;br /&gt;
код, описанный здесь, будет работать с картами Nvidia.&lt;br /&gt;
&lt;br /&gt;
=== Убойный графический драйвер ===&lt;br /&gt;
Чтобы установить драйвер Nvidia, нажмите Ctrl+Alt+F1 – попадете в&lt;br /&gt;
терминал. Переключитесь в суперпользователя и наберите init 3, что-бы завершить работу X. Далее скопируйте драйвер с нашего диска&lt;br /&gt;
в свой домашний каталог и запустите sh ./NVIDIA-Linux-x86-1.0-8756. Запустится программа установки, с текстовым интерфейсом, и&lt;br /&gt;
вас попросят принять лицензионное соглашение. Если драйвер у вас&lt;br /&gt;
уже был, вам надо нажать Yes, чтобы его удалить.&lt;br /&gt;
Может оказаться, что для вашего ядра не найдется скомпилированного&lt;br /&gt;
интерфейса, поэтому нажмите Yes, чтобы поискать драйвер на сайте&lt;br /&gt;
Nvidia. Если его там нет, снова нажмите OK и скомпилируйте собственный драйвер. Наконец, будет предложено отредактировать за нас файл&lt;br /&gt;
настроек X – соглашайтесь, да не забудьте потом проверить файл /etc/X11/xorg.conf и убедиться, что используется драйвер ‘nvidia’ (а не ‘nv’&lt;br /&gt;
или, того хуже, ‘vesa’). По завершении установки наберите init 5 – вернетесь обратно в X. Откройте терминал и запустите glxgears. Секунд через&lt;br /&gt;
пять вы увидите результаты тестирования – если результат меньше 1000&lt;br /&gt;
кадров в секунду, это сильно повредит нашей игре.&lt;br /&gt;
&lt;br /&gt;
Для более продвинутой работы с графикой можете установить&lt;br /&gt;
библиотеку Cg (здесь некогда про нее рассказывать, но вреда от нее&lt;br /&gt;
всяко не будет). ‘Cg’ – сокращение от ‘C for Graphics’, а цель библиотеки – облегчить создание продвинутых визуальных эффектов. Вы можете скачать инструментарий Cg со страницы Nvidia для разработчиков&lt;br /&gt;
по адресу http://developer.nvidia.com/page/cg_main.html. Процесс&lt;br /&gt;
ее установки лишен особого полета: скопировать в домашний каталог&lt;br /&gt;
в подкаталог Cg, извлечь с помощью tar xvfz Cg-1.4.1_x86.tar.gz,&lt;br /&gt;
переключиться в суперпользователя и запустить cp -R usr /.&lt;br /&gt;
&lt;br /&gt;
Установка zziplib – тоже всего-навсего извлечение и запуск&lt;br /&gt;
./configure, make и make install. Если кому интересно, zziplib предоставляет быстрый и удобный способ манипулирования zip-файлами, а&lt;br /&gt;
именно в них Ogre хранит множество своих ресурсов.&lt;br /&gt;
Далее идет DevIL – мультиплатформенная библиотека для работы с&lt;br /&gt;
изображениями, используемая Ogre. Она находится на диске к журналу,&lt;br /&gt;
так что скопируйте ее в ваш домашний каталог и запустите&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;tar xvfz DevIL-1.6.8-RC1-src.tar.gz&lt;br /&gt;
cd DevIL-1.6.8-RC1&lt;br /&gt;
./configure&lt;br /&gt;
make&lt;br /&gt;
su&lt;br /&gt;
make install&lt;br /&gt;
exit&amp;lt;/source&amp;gt;&lt;br /&gt;
Теперь осталось главное событие: Ogre. Скопируйте его в домашний&lt;br /&gt;
каталог с диска и наберите:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;tar xvfj ogre-linux_osx-v1-2-0.tar.bz2&lt;br /&gt;
cd ogrenew&lt;br /&gt;
./bootstrap&lt;br /&gt;
./configure (или&lt;br /&gt;
./configure --with-platform=GLX если используется Nvidia)&lt;br /&gt;
make&lt;br /&gt;
su&lt;br /&gt;
make install&lt;br /&gt;
ldconfig&lt;br /&gt;
exit&amp;lt;/source&amp;gt;&lt;br /&gt;
Список требований выполнен – можно начинать делать игру, ура!&lt;br /&gt;
&lt;br /&gt;
=== Время кодировать ===&lt;br /&gt;
Настал долгожданный момент первой «вылазки» в С++ ! Наш первый&lt;br /&gt;
урок – не простое введение или руководство по установке: мы собираемся написать сердцевину нашего движка. Цель урока – создание некого ландшафта, по которому можно перемещаться с помощью мыши, и&lt;br /&gt;
неба над ним. Большая часть кода этого урока состоит из основных&lt;br /&gt;
начальных установок Ogre: инициализации движка, обработки ввода&lt;br /&gt;
и т.д. В следующих выпусках уже добавятся красивости – например,&lt;br /&gt;
управление с клавиатуры, туман и свет, анимация и спецэффекты; а&lt;br /&gt;
пока займемся черновой работой.&lt;br /&gt;
&lt;br /&gt;
Вооружившись этими данными, откройте текстовый редактор и&lt;br /&gt;
настучите следующий код в chad.h, основной заголовочный файл&lt;br /&gt;
нашего игрового класса:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;quot;Ogre.h&amp;quot;&lt;br /&gt;
#include &amp;quot;SDL/SDL.h&amp;quot;&lt;br /&gt;
#include &amp;quot;SDL/SDL_mixer.h&amp;quot;&lt;br /&gt;
using namespace Ogre;&lt;br /&gt;
#include &amp;quot;chadframelistener.h&amp;quot;&lt;br /&gt;
class CChadGame {&lt;br /&gt;
public:&lt;br /&gt;
CChadGame();&lt;br /&gt;
~CChadGame();&lt;br /&gt;
bool loadConfig();&lt;br /&gt;
void initialise();&lt;br /&gt;
int run();&lt;br /&gt;
void createScene();&lt;br /&gt;
Root* m_Ogre;&lt;br /&gt;
EventProcessor* m_EventProcessor;&lt;br /&gt;
CChadFrameListener* m_FrameListener;&lt;br /&gt;
SceneManager* m_SceneMgr;&lt;br /&gt;
Camera* m_Camera;&lt;br /&gt;
Viewport* m_Viewport;&lt;br /&gt;
};&amp;lt;/source&amp;gt;&lt;br /&gt;
Первые три выражения #include включают наши стандартные библиотеки, хотя SDL мы пока трогать не будем. Четвертый #include предназначен для обработчика кадра –скоро мы к нему вернемся. Далее&lt;br /&gt;
идет главный класс нашей игры, ответственный за большую часть ее&lt;br /&gt;
организации. Не буду выпендриваться с объектно-ориентированным&lt;br /&gt;
программированием, хотя как раз организации объектный подход и способствует – как я уже сказал, нам важно не изящество кода, а удобство&lt;br /&gt;
игры; итак, не удивляйтесь, что я браво игнорирую инкапсуляцию объектов ради экономии места!&lt;br /&gt;
&lt;br /&gt;
Класс CChadGame содержит обработчик событий и обработчик&lt;br /&gt;
кадра, наш менеджер сцены (отслеживающий все объекты), камеру&lt;br /&gt;
(позицию игрока) и область просмотра (то, что мы видим на экране).&lt;br /&gt;
Позже в нем появится информация об игроке, очках, картах и многое&lt;br /&gt;
другое, но сейчас все предельно просто.&lt;br /&gt;
&lt;br /&gt;
Большая часть работы совершается обработчиком кадра и менеджером сцены, во многом благодаря Ogre. Задача нашего класса&lt;br /&gt;
CChadGame состоит в том, чтобы установить каждую сцену и обрабатывать любые изменения, например, передвижение игроков. Однако&lt;br /&gt;
менеджер сцены параллельно будет отслеживать все объекты в нашей&lt;br /&gt;
игре и обеспечивать их корректную прорисовку (с применением оптимизации). Нашу заботу о вводе данных от пользователя любезно берет&lt;br /&gt;
на себя обработчик событий Ogre. Затем эта информация посылается в&lt;br /&gt;
обработчик кадра, который переваривает изменения.&lt;br /&gt;
&lt;br /&gt;
Реализация класса CChadGame находится в файле chad.cpp на&lt;br /&gt;
нашем диске, но он слишком велик, чтобы напечатать его здесь, поэтому отразим только основные моменты: конструктор (CChadGame()) и функцию initialise().&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;CChadGame::CChadGame() {&lt;br /&gt;
m_Ogre = new Root;&lt;br /&gt;
this-&amp;gt;loadConfig();&lt;br /&gt;
if(!m_Ogre-&amp;gt;showConfigDialog()) return;&lt;br /&gt;
m_Ogre-&amp;gt;initialise(true, &amp;quot;Hanging Chad&amp;quot;);&lt;br /&gt;
this-&amp;gt;initialise();&lt;br /&gt;
this-&amp;gt;createScene();&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
Root – базовый класс Ogre и родитель остальных наших объектов из Ogre. Именно Root отвечает за прорисовку и передачу&lt;br /&gt;
обратных вызовов к обработчику кадров. Именно объект Root показывает диалог конфигурации пользователю (через вызов m_Ogre-&amp;gt;showConfigDialog()), а также вежливо завершает игру, когда мы&lt;br /&gt;
сигнализируем, что с нас хватит. Первое, что мы создаем, и последнее,&lt;br /&gt;
что удаляем – объект Root.&lt;br /&gt;
&lt;br /&gt;
В функции CСhadGame::initialise() настраиваются менеджер сцены, камера, область просмотра, обработчик событий и обработчик кадра.&lt;br /&gt;
В ней же происходит вызов функции InitialiseAllResourcesGroups(),&lt;br /&gt;
загружающей все ресурсы Ogre. Я одолжил стандартные файлы конфигурации (и их загрузчик, CChadGame::loadConfig()) из Ogre SDK&lt;br /&gt;
и немного их подправил, чтобы они работали в нашей игре. Загрузчик&lt;br /&gt;
конфигурации только читает текст: разборки синтаксиса не происходит,&lt;br /&gt;
пока не вызовется initialiseAllResourcesGroups(). Если вы забудете&lt;br /&gt;
вызвать эту функцию, то наверняка столкнетесь с проблемами!&lt;br /&gt;
&lt;br /&gt;
=== Делай, что я сказал... ===&lt;br /&gt;
Осталось написать обработчик кадра, в который будут посылаться и&lt;br /&gt;
обрабатываться события от Ogre. Здесь интерес представляют три функции, одна из которых говорит почти сама за себя. Это конструктор, и он&lt;br /&gt;
сохраняет ссылку на устройство ввода, камеру и менеджера сцены для&lt;br /&gt;
последующего использования.&lt;br /&gt;
&lt;br /&gt;
Другая интересная функция – frameStarted(), вызываемая перед&lt;br /&gt;
тем, как Ogre начнет обсчитывать кадр. Она перехватывает ввод и&lt;br /&gt;
проверяет необходимость ответа на ввод от пользователя. В данный&lt;br /&gt;
момент это значить «если нажали Escape, то возвратить false». Это&lt;br /&gt;
значение завершит цикл прорисовки Ogre, и произойдет выход из&lt;br /&gt;
игры. Третья функция – mouseMoved(), дублированная также в&lt;br /&gt;
mouseDragged(); она вызывается при любом перемещении мыши,&lt;br /&gt;
когда нам необходимо повернуть камеру в соответствии с параметрами перемещения.&lt;br /&gt;
&lt;br /&gt;
Оставьте пока функцию createScene() пустой – и ваша программа, наконец, готова к сборке. Однако вручную эту работу выполнять&lt;br /&gt;
довольно тягостно, поскольку необходимо подключить библиотеки&lt;br /&gt;
SDL и Ogre. Поэтому обратимся к Makefile, чтобы вы могли набрать&lt;br /&gt;
make и наслаждаться, любуясь, как вкалывают за вас. Наберите&lt;br /&gt;
следующий текст в файл Makefile – но очень аккуратно, потому&lt;br /&gt;
что пробелы – это на самом деле символы табуляции!&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;DEFINES =&lt;br /&gt;
LIBS = Ogre&lt;br /&gt;
CXX = g++&lt;br /&gt;
CXXFLAGS = $(shell pkg-config --cflags $(LIBS)) $(DEFINES) -I/home/paul/Desktop/Ogrenew/Samples/Common/include&lt;br /&gt;
LD = g++&lt;br /&gt;
LDFLAGS = $(shell pkg-config --libs $(LIBS)) -lSDL -lSDL_mixer -lpthread&lt;br /&gt;
all:&lt;br /&gt;
$(CXX) $(CXXFLAGS) $(LDFLAGS) -o chad chad.cpp&lt;br /&gt;
clean:&lt;br /&gt;
rm -f chad&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Время поколдовать ===&lt;br /&gt;
Все самое нудное позади, ваша «игра» (скопированная с диска к журналу) должна скомпилироваться и запуститься – просто наберите make.&lt;br /&gt;
Когда она запустится, возникнет окно настроек Ogre (см. рис. 1). Рядом&lt;br /&gt;
с пунктом Select Render вы увидите Select One. Нажав на него, вы&lt;br /&gt;
получите список вариантов, доступных в вашей системе, где почти&lt;br /&gt;
наверняка фигурирует только OpenGL Rendering Subsystem. Ogre все&lt;br /&gt;
равно, как отрисовывать изображения, поэтому под Windows ваша игра&lt;br /&gt;
может использовать DirectX.&lt;br /&gt;
&lt;br /&gt;
Окно настроек позволяет сделать многое, например, установить разрешение экрана или выбрать полноэкранный режим; и Ogre автоматически сохранит ваш выбор в Ogre.cfg для дальнейшего употребления.&lt;br /&gt;
&lt;br /&gt;
Настроив графику, нажмите Accept, и ваша «игра» начнется. Я&lt;br /&gt;
написал слово «игра» в кавычках, потому что на данном этапе это&lt;br /&gt;
пустой экран – зрелище не шибко захватывающее, но по крайней мере&lt;br /&gt;
видно, что код работает! И теперь можно применить возможности Ogre:&lt;br /&gt;
создадим пейзаж с помощью всего одной строки кода. Не бойтесь, она&lt;br /&gt;
много короче тысячи символов.&lt;br /&gt;
&lt;br /&gt;
Вот она, просто вставьте ее в вызов createScene():&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;m_SceneMgr-&amp;gt;setWorldGeometry(&amp;quot;terrain.cfg&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
Перекомпилируйте и запустите ваше приложение. Вы увидите нечто&lt;br /&gt;
похожее на рис. 2 – холмистый ландшафт. Свет, правда, прилип к текстуре, но даже так все выглядит вполне мило – это благодаря файлу&lt;br /&gt;
terrain.cfg, который загружает уже существующие текстуры из Ogre&lt;br /&gt;
SDK. Каталог, из которого берутся текстуры, получается из каталога&lt;br /&gt;
установки Ogre вашей машины, а загружаются они в файле resource.&lt;br /&gt;
cfg, который вы можете настроить по своему усмотрению (или позволить другим это делать), причем для этого не придется переписывать&lt;br /&gt;
ни строчки кода.&lt;br /&gt;
&lt;br /&gt;
Если вы все еще не пришли в восторг, добавим немного неба. Небо&lt;br /&gt;
предусмотрено в трех моделях: плоское, коробка или купол (в порядке&lt;br /&gt;
возрастания степени реализма и, соответственно, потребления ресурсов). Плоское небо (по сути, многоугольник, висящий над игроком) почти не нагружает GPU, но выглядит убого – наш ландшафт не упрятывает&lt;br /&gt;
линию горизонта, и сразу заметно, что оно именно плоское. Модель-коробка ликвидирует данный недостаток, помещая игрока внутрь куба&lt;br /&gt;
и отображая небо на каждую его грань. Потребление ресурсов шестикратно возрастает, зато уж небо есть везде. У последней модели – купола – отсутствует «дно», а на «покрышку» для пущей иллюзии натянута&lt;br /&gt;
текстура. Отсутствие дна может создать проблему, если игрок глянет&lt;br /&gt;
вниз, но там уже есть ландшафт, так что все в порядке.&lt;br /&gt;
&lt;br /&gt;
Код для невероятно сложной иллюзии выглядит так:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;m_SceneMgr-&amp;gt;setSkyDome(true,&amp;quot;Examples/CloudSky&amp;quot;);&amp;lt;/source&amp;gt;&lt;br /&gt;
Да, да, это все! – теперь перекомпилируйте и запустите игру.&lt;br /&gt;
Наслаждайтесь. Используйте мышь, чтобы оглядеться вокруг – вы увидите довольно милую картинку, как на рис. 3. Важнее всего, что наш&lt;br /&gt;
небольшой продукт не так плох для начала! Теперь осталось добавить&lt;br /&gt;
клавиши WASD для перемещения, немного тумана, пару источников&lt;br /&gt;
света, злодеев и физи... Стоп, я, кажется, забежал впереди паровоза.&lt;br /&gt;
Итак, вы получили краткое и несложное руководство для ознакомления&lt;br /&gt;
с Ogre – и вас ожидает еще много интересного.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>Yaleks</name></author>	</entry>

	</feed>