<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
  <title>Программирование игр</title>
  <link>http://www.gamedev.ru/code/forum/</link>
  <description>Программирование игр</description>
  <language>ru</language>
  <generator>http://skif.qrim.ru/</generator>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136410</guid>
  <pubDate>Sat, 31 Jul 2010 12:37:53 GMT</pubDate>
  <title>Структура для ассоциативного контейнера с вилдкардами в ключе</title>
  <link>http://www.gamedev.ru/code/forum/?id=136410</link>
  <description>Пусть, для определённости, обычный ассоциативный контейнер индексируется по ключу-стрингу:
&lt;br /&gt;&amp;quot;key1&amp;quot; =&amp;gt; &amp;quot;value1&amp;quot;
&lt;br /&gt;&amp;quot;key2&amp;quot; =&amp;gt; &amp;quot;value2&amp;quot;
&lt;br /&gt;&amp;quot;foo&amp;quot; =&amp;gt; &amp;quot;ffff&amp;quot;
&lt;br /&gt;&amp;quot;bar&amp;quot; =&amp;gt; &amp;quot;uuuu~&amp;quot;
&lt;p&gt;Требуется следующее усложнение логики. В стринге-ключе может быть специальный символ-вилдкард - пусть, для определённости, &amp;quot;?&amp;quot;. При записи он ничем не отличается от остальных: перезаписывается только элемент с полностью совпадающим ключом, а если ключ отличается хоть одним символом, то они живут вместе:&lt;/p&gt;
&lt;p&gt;&amp;quot;key1&amp;quot; =&amp;gt; &amp;quot;value1&amp;quot;
&lt;br /&gt;&amp;quot;key2&amp;quot; =&amp;gt; &amp;quot;value2&amp;quot;
&lt;br /&gt;&amp;quot;key?&amp;quot; =&amp;gt; &amp;quot;value_wildcarded&amp;quot;
&lt;br /&gt;&amp;quot;foo&amp;quot; =&amp;gt; &amp;quot;ffff&amp;quot;
&lt;br /&gt;&amp;quot;bar&amp;quot; =&amp;gt; &amp;quot;uuuu~&amp;quot;&lt;/p&gt;
&lt;p&gt;(Т. е., при записи контейнер ведёт себя, как обычный ассоциативный.)
&lt;br /&gt;Но ситуация меняется, когда мы ведём поиск по ключу:
&lt;br /&gt;1. Ключ Y считается совпадающим с ключом-эталоном X, если они одинаковой длины и для каждого i-го символа соблюдается условие:
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;X[i]==Y[i] || (X[i]!=&apos;?&apos; &amp;amp;&amp;amp; Y[i]==&apos;?&apos;)&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;
Т. е.:
&lt;br /&gt;X:&amp;quot;foo&amp;quot; == Y:&amp;quot;foo&amp;quot;
&lt;br /&gt;X:&amp;quot;key1&amp;quot; == Y:&amp;quot;key1&amp;quot;, Y:&amp;quot;key?&amp;quot;
&lt;br /&gt;X:&amp;quot;key2&amp;quot; == Y:&amp;quot;key2&amp;quot;, Y:&amp;quot;key?&amp;quot;
&lt;br /&gt;X:&amp;quot;key?&amp;quot; == Y:&amp;quot;key?&amp;quot;
&lt;br /&gt;В принципе, можно допустить упрощение, что в X вилдкардов не бывает.&lt;/p&gt;
&lt;p&gt;2. Поиск по ключу должен возвращать либо один-единственный конкретный ключ, либо ошибку &amp;quot;неоднозначначность поиска&amp;quot;, либо ошибку &amp;quot;ключ не найден&amp;quot;. С последней всё ясно. Первые же две разруливаются по следующему принципу:
&lt;br /&gt;- сперва ищется точное совпадение (X:&amp;quot;key1&amp;quot; == Y:&amp;quot;key1&amp;quot;). Если оно найдено, то оно и есть результат.
&lt;br /&gt;- если не найдено точное совпадение, ищется совпадение с одним вилдкардом (X:&amp;quot;key1&amp;quot; == Y:&amp;quot;key?&amp;quot;, Y:&amp;quot;ke?1&amp;quot;, Y:&amp;quot;k?y1&amp;quot;, Y:&amp;quot;?ey1&amp;quot;). Если найдено ровно одно, оно и есть результат. Если найдено более одного, это &amp;quot;неоднозначность поиска&amp;quot;.
&lt;br /&gt;- если не найдено совпадений с одним вилдкардом, ищется совпадение с двумя (X:&amp;quot;key1&amp;quot; == Y:&amp;quot;ke??&amp;quot;, и т. д.). Опять-таки, если найдено ровно одно, оно и есть результат, если более одного - неоднозначность поиска.
&lt;br /&gt;- если не найдено совпадений с двумя вилдкардами, ищется совпадение с тремя
&lt;br /&gt;- ...и т. д., до полной длины X.&lt;/p&gt;
&lt;p&gt;Стоит вопрос - какая структура данных и алгоритм поиска подходит под это дело? Двоичное дерево (ака обычный мап) годится только для решения части с записью. С поиском вообще сходу непонятно: даже тупой линейный утяжеляется несколькопроходностью и вместо O(n) будет strlen(X)*O(n), что как-то неинтересно.&lt;/p&gt;
&lt;p&gt;(Если что, высший смысл этой задачги - поиск по списку параметров шаблона подходящей специализации или общего правила.)&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136409</guid>
  <pubDate>Sat, 31 Jul 2010 12:20:24 GMT</pubDate>
  <title>Отрисовка лазера Opengl</title>
  <link>http://www.gamedev.ru/code/forum/?id=136409</link>
  <description>Интересуют примеры по отрисовке лазера. Я понимаю что рисуется он легко. Но хотелось бы послушать&amp;nbsp; кто уже делал + посмотреть исходники. Может быть существует что-то красиво на шейдерах и т.д. В интернете особо ничего не нашел.</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136408</guid>
  <pubDate>Sat, 31 Jul 2010 11:34:48 GMT</pubDate>
  <title>отличия PSSM и CSM и проблемы с демкой nVidia CSM</title>
  <link>http://www.gamedev.ru/code/forum/?id=136408</link>
  <description>Привет всем, нужен пример по PSSM в OGL. За все мои несколько часовые гугления я нашол только это &lt;a href=&quot;http://hax.fi/asko/PSSM.html&quot;&gt;http://hax.fi/asko/PSSM.html&lt;/a&gt;
&lt;br /&gt;там мега могучий фреймворк НЕиспользуются шейдеры,&amp;nbsp; и приер тормозит как паравоз несмазанный. а в коде разбираться можно голову раззбить. там целый двиг.
&lt;br /&gt;Директовых примеров - валом. но мне нужен огл.
&lt;p&gt;русской документации нет. 
&lt;br /&gt;Неужто никто неделал pssm с использованием GLSL ?? Если есть источники поделитесь плз. 
&lt;br /&gt;это мнебы очень помогло.&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136405</guid>
  <pubDate>Sat, 31 Jul 2010 10:32:35 GMT</pubDate>
  <title>Intel GMA950 / OpenGL / VBO</title>
  <link>http://www.gamedev.ru/code/forum/?id=136405</link>
  <description>&lt;div class=&quot;quote&quot;&gt;The GMA 950 shares the same architectural weakness as the GMA 900: no hardware geometry processing. Neither basic hardware transform and lighting, nor more advanced vertex shaders are handled in the GMA hardware.&lt;/div&gt;
&lt;br /&gt;Что такая архитектура означает для VBO? Получается что исчезает всякий смысл в VBO? Поправьте меня, если я ошибаюсь. Спасибо!</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136394</guid>
  <pubDate>Sat, 31 Jul 2010 06:57:51 GMT</pubDate>
  <title>доступ к фунцкиям внешнего устройства с клавиатуры</title>
  <link>http://www.gamedev.ru/code/forum/?id=136394</link>
  <description>В арте не помогли, пощу сюда.
&lt;br /&gt;Мне нужно как-то продублировать кнопку на графическом планшете, т.е. эмулировать ее нажатие клавишей с клавиатуры. В настройках драйвера планшета такой возможности не предусмотрено. Это сильно сложно сделать? В какую сторону копать?</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136388</guid>
  <pubDate>Fri, 30 Jul 2010 22:01:11 GMT</pubDate>
  <title>Проблема с программингом майки на MEL</title>
  <link>http://www.gamedev.ru/code/forum/?id=136388</link>
  <description>Господа программеры, помогите решить проблему!
&lt;br /&gt;Имеем скрипт для дробления сегмента кости на несколько, в отдельном файле, &amp;quot;js_splitSelJointUI.mel&amp;quot;
&lt;p&gt;Так как в шелв он автоматом почему-то не загружается, ручками прописываю его в шелв, для command пишу:
&lt;br /&gt;&lt;span class=&quot;q&quot;&gt;&amp;gt;source js_splitSelJointUI;&lt;/span&gt;
&lt;br /&gt;&lt;span class=&quot;q&quot;&gt;&amp;gt;rjs_splitSelJointUI;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;п попытке исполнения выдаёт ошибку:
&lt;br /&gt;&lt;span class=&quot;q&quot;&gt;&amp;gt;// Error: Cannot find procedure &amp;quot;rjs_splitSelJointUI&amp;quot;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Как мне описать эту процедуру?&lt;/p&gt;
&lt;p&gt;Заранее благодарю!&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136386</guid>
  <pubDate>Fri, 30 Jul 2010 19:58:14 GMT</pubDate>
  <title>У меня почему-то не работают дисплейные списки...</title>
  <link>http://www.gamedev.ru/code/forum/?id=136386</link>
  <description>Когда я пишу 
&lt;br /&gt;&amp;nbsp;  auxSolidSphere(0.3); 
&lt;br /&gt;всё работает,
&lt;p&gt;когда заменяю на&lt;/p&gt;
&lt;p&gt; glNewList(1, GL_COMPILE);
&lt;br /&gt;auxSolidSphere(0.3);
&lt;br /&gt;glEndList();
&lt;br /&gt;glCallList(1);
&lt;br /&gt; 
&lt;br /&gt;Сфера не отображается.
&lt;br /&gt;Что я делаю не так?? &lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136383</guid>
  <pubDate>Fri, 30 Jul 2010 16:46:40 GMT</pubDate>
  <title>Вопрос по Z-буфферу</title>
  <link>http://www.gamedev.ru/code/forum/?id=136383</link>
  <description>Добрый..м...доброе время суток =) Хотел задать вопрос, возможно тупой, но почему-то перестал работать Z-буффер в приложении с мульти-рендером, делаю рендер в 4 окна через один LPDIRECT3DDEVICE9. 
&lt;p&gt;D3DVIEWPORT9 pRect;&lt;/p&gt;
&lt;p&gt;pRect.X&amp;nbsp; &amp;nbsp; &amp;nbsp; = info.rcWindow.left;
&lt;br /&gt;pRect.Y&amp;nbsp; &amp;nbsp; &amp;nbsp; = info.rcWindow.top;
&lt;br /&gt;pRect.Width&amp;nbsp; &amp;nbsp; = info.rcWindow.right - info.rcWindow.left;
&lt;br /&gt;pRect.Height&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = info.rcWindow.bottom - info.rcWindow.top;&lt;/p&gt;
&lt;p&gt;pDevice-&amp;gt;SetViewport(&amp;amp;pRect);&lt;/p&gt;
&lt;p&gt;Устанавливаю так куда рендер должен идти, и рисую, &lt;/p&gt;
&lt;p&gt;pDevice-&amp;gt;BeginScene();
&lt;br /&gt;pDevice-&amp;gt;Clear(0,NULL,D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER,D3DCOLOR_XRGB(0,0,0),1.0f,0);&lt;/p&gt;
&lt;p&gt;//Тут все рисуется&lt;/p&gt;
&lt;p&gt;pDevice-&amp;gt;EndScene();
&lt;br /&gt;pDevice-&amp;gt;Present(&amp;amp;info.rcClient,NULL,hWnd,NULL);&lt;/p&gt;
&lt;p&gt;Но почему-то картинка получается такая:&lt;/p&gt;
&lt;p&gt;&lt;div style=&quot; overflow: auto; overflow-x: scroll hidden; overflow-y:hidden;&quot;&gt;&lt;img src=&quot;http://www.gamedev.ru/files/images/56883_1280508312_10.gif&quot; alt=&quot;10 | Вопрос по Z-буфферу&quot; /&gt;&lt;/div&gt;
&lt;p&gt;Хотя при создании девайса указываю pDevice-&amp;gt;SetRenderState(D3DRS_ZENABLE,D3DZB_TRUE); и нигде значение не меняю, пробовал и D3DRS_ZWRITEENABLE ставить в тру, но не катит =( подскажите в чем дело, может кто сталкивался?&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136380</guid>
  <pubDate>Fri, 30 Jul 2010 16:12:52 GMT</pubDate>
  <title>Новый подход к моделированию деформируемых тел (на базе МКЭ)</title>
  <link>http://www.gamedev.ru/code/forum/?id=136380</link>
  <description>&lt;a href=&quot;http://fem.xp3d.net/public/cuda_newsolver_features.gif&quot;&gt;&lt;img src=&quot;http://fem.xp3d.net/public/fem_preview.gif&quot; /&gt;&lt;/a&gt;
&lt;br /&gt;&lt;a href=&quot;http://fem.xp3d.net/public/fem_basicdemos.zip&quot;&gt;Скачать (zip, 1.1 Mb)&lt;/a&gt;
&lt;br /&gt;Мы разработали метод моделирования эластичных и пластичных деформаций, который может быть с легкостью интегрирован в типичный конвеер современных движков, моделирующих динамику твердых тел с ограничениями.
&lt;br /&gt;Деформируемые тела представляются частицами с ограничениями, решить которые можно наряду с обыкновенными ограничениями для твердых тел, что делает возможным создавать ограничения не только между мягкими телами, но и для связки мягкое тело - твердое тело; эти ограничения так же могут быть решены в одном цикле со всеми остальными.
&lt;br /&gt;Если движок способен моделировать точки (упрощенные твердые тела, с тремя степенями свободы - без вращательной части в скоростях, положениях и пр.), а так же поддерживает&amp;nbsp; создание произвольных ограничений, наш метод может быть легко использован в таком движке.
&lt;br /&gt;Данный подход обеспечивает возможность создавать контактные ограничения между твердыми и мягкими телами в том же виде, в каком они создаются между твердыми телами; при таком подходе взаимодействие твердых и деформируемых тел гладкое и естественное, т.к. мягкие тела являются составной частью конвеера.
&lt;br /&gt;Алгоритм в основе нашего подхода - не упрощенное представление тел массами и пружинами (mass-spring), а реальный линейный метод конечных элементов. Используются тетраэдрические конечные элементы, теория бесконечно малых деформаций с технологией stiffness warping (для того чтобы сократить артефакты линеаризации), а так же матричная форма закона Гука, которая позволяет задавать свойства материалов в виде модуля Юнга и коэффициента Пуассона.
&lt;br /&gt;Алгоритм разработан для моделирования в реальном времени, практически все считается на этапе предварительных вычислений, а количество кода, выполняемого на каждом кадре моделирования сокращено насколько это возможно. Код подходит для параллельных вычислений (тетраэдры могут рассчитываться параллельно). В коде нет сборки глобальной матрицы жесткости.
&lt;br /&gt;Для жестких систем, точность метода Projected Gauss-Seidel недостаточна, так что мы предлагаем новый метод решения LCP, который основан на методе сопряженных градиентов; этот метод не использовался ранее в индустрии видеоигр. Метод был адаптирован нами, так что с нашими модификациями им можно заменить широко используемый на данный момент метод PGS.
&lt;br /&gt;Новый метод решения так же хорошо подходит для высокопараллельных систем (так же как и наша реализация МКЭ), так что в архиве присутствует версия, которая выполняется на GPU с использованием технологии CUDA.</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136370</guid>
  <pubDate>Fri, 30 Jul 2010 12:48:52 GMT</pubDate>
  <title>AlphaBlending</title>
  <link>http://www.gamedev.ru/code/forum/?id=136370</link>
  <description>У меня вопрос. Как, например, при рендеринге травы на ландшафте сделать ее прозрачной в том случае, если мы рисуем от ближнего к дальнему. От дальнего к ближнему - тут все просто. Отсортировать же мне не представляется реальным, т.к. вся трава выводится скопом, единым блоком.
&lt;br /&gt;Насколько я понимаю, если сначала рисуется ближняя трава, то, нарисовавшись, она обновляет Z-буфер и в последствии, все следующий объекты провалят Z-тест. Не вижу выхода из ситуации. Подскажите, кто сталкивался с такой проблемой.</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136365</guid>
  <pubDate>Fri, 30 Jul 2010 11:13:43 GMT</pubDate>
  <title>Что можно почитать по языку шейдеров для opengl?</title>
  <link>http://www.gamedev.ru/code/forum/?id=136365</link>
  <description>Какие есть книжки на эту тему?</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136363</guid>
  <pubDate>Fri, 30 Jul 2010 10:54:56 GMT</pubDate>
  <title>Стенсильные тени + FBO</title>
  <link>http://www.gamedev.ru/code/forum/?id=136363</link>
  <description>Всем доброго времени суток! В общем какая проблема: при рендеринге в окно работает, а когда рендерю в FBO на Nvidia GeForce8600GT(X) теней просто нет, при этом glGetError говорит, что всё нормально. Да, на АТИ Radeon 5450 Catalist 10.6 всё отлично работает.
&lt;p&gt;FBO создаю следующим образом:
&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: #808080&quot;&gt;// size = 1024*576, 1024*1024 - без разницы&lt;/span&gt;

GLint saveFB=&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;

&lt;span style=&quot;color: #808080&quot;&gt;/* generate render-to-clipmap framebuffer */&lt;/span&gt;
glGenFramebuffersEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;, &amp;amp;data.resolveFB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;


&lt;span style=&quot;color: #808080&quot;&gt;/* create primary MSAA render framebuffer */&lt;/span&gt;
glGenFramebuffersEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;, &amp;amp;data.fb&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

&lt;span style=&quot;color: #808080&quot;&gt;// create a regular MSAA depth buffer&lt;/span&gt;
glGenRenderbuffersEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;, &amp;amp;data.depthRB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
glBindRenderbufferEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;GL_RENDERBUFFER_EXT, data.depthRB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
&lt;span style=&quot;color: #808080&quot;&gt;//glRenderbufferStorageMultisampleEXT( GL_RENDERBUFFER_EXT, 1, GL_DEPTH24_STENCIL8_EXT, size.GetX(), size.GetY());&lt;/span&gt;
glRenderbufferStorageEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; GL_RENDERBUFFER_EXT, GL_DEPTH24_STENCIL8_EXT, size.GetX&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;, size.GetY&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

&lt;span style=&quot;color: #808080&quot;&gt;// create a regular MSAA color buffer&lt;/span&gt;
glGenRenderbuffersEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;, &amp;amp;data.colorRB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
glBindRenderbufferEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;GL_RENDERBUFFER_EXT, data.colorRB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
&lt;span style=&quot;color: #808080&quot;&gt;//glRenderbufferStorageMultisampleEXT( GL_RENDERBUFFER_EXT, 1, GL_RGBA8, size.GetX(), size.GetY());&lt;/span&gt;
glRenderbufferStorageEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; GL_RENDERBUFFER_EXT, GL_RGBA8, size.GetX&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;, size.GetY&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
ret = CHECK_GL_ERROR&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

&lt;span style=&quot;color: #808080&quot;&gt;// attach the render buffers&lt;/span&gt;
glGetIntegerv&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;GL_FRAMEBUFFER_BINDING_EXT, &amp;amp;saveFB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

glBindFramebufferEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; GL_FRAMEBUFFER_EXT, data.fb &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
glFramebufferRenderbufferEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;GL_FRAMEBUFFER_EXT, GL_DEPTH_ATTACHMENT_EXT, GL_RENDERBUFFER_EXT, data.depthRB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
glFramebufferRenderbufferEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;GL_FRAMEBUFFER_EXT, GL_COLOR_ATTACHMENT0_EXT, GL_RENDERBUFFER_EXT, data.colorRB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
      
glBindFramebufferEXT&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;GL_FRAMEBUFFER_EXT, saveFB&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
      &lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/p&gt;
&lt;p&gt;что с мультисемплингом, что без разницы нет.&lt;/p&gt;
&lt;p&gt;Кто сталкивался? с чем может быть проблема?&lt;/p&gt;
&lt;p&gt;P.S. Вообще я в шоке, что на НВ не работает то, что работает на АТИ (OpenGL). Да, дрова на НВ обновлять прообовал, про EXT_packed_depth_stencil рапортуется, что есть&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136360</guid>
  <pubDate>Fri, 30 Jul 2010 10:19:03 GMT</pubDate>
  <title>Оптимизация сети под FPS.</title>
  <link>http://www.gamedev.ru/code/forum/?id=136360</link>
  <description>Добры день!
&lt;br /&gt;Как лучше делать мультиплеер в FPS, что передавать и как( как часто и т.д ), сам пока склоняюсь к вареанту:
&lt;br /&gt;Клиент на сервер шлёт только инпут - нажатые клавиши и т.д а вся логика происходит на сервере, сервер же всем клиентам шлёт состояние всех игровых сущностей и игроков на карте, пока низнаю какие могут быть подводные камни - разве что увиличение трафика, или всётаки понижение? Предлагайте свои идеи с подробным описанием :) </description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136357</guid>
  <pubDate>Fri, 30 Jul 2010 08:52:57 GMT</pubDate>
  <title>Collider objects</title>
  <link>http://www.gamedev.ru/code/forum/?id=136357</link>
  <description>Снова всем привет.
&lt;br /&gt;Решил добавить в прилагу обнаружение столкновений объектов и децл застрял.
&lt;p&gt;Есть говнокод вида:
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: #808080&quot;&gt;// типы объектов столкновения&lt;/span&gt;
&lt;span style=&quot;color: #0030fF; &quot;&gt;#define&lt;/span&gt; COLLIDER_TYPE_SPHERE &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0x00000001&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #0030fF; &quot;&gt;#define&lt;/span&gt; COLLIDER_TYPE_CYLINDER &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0x00000002&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #0030fF; &quot;&gt;#define&lt;/span&gt; COLLIDER_TYPE_BOX &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0x00000003&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
&lt;span style=&quot;color: #0030fF; &quot;&gt;#define&lt;/span&gt; COLLIDER_TYPE_MESH &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0x00000004&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;


&lt;span style=&quot;color: #808080&quot;&gt;// базовый интерфейс объекта столкновений&lt;/span&gt;
&lt;span style=&quot;color: #0030fF; &quot;&gt;typedef&lt;/span&gt; &lt;span style=&quot;color: #0030fF; &quot;&gt;struct&lt;/span&gt; ICollider
{
   &lt;span style=&quot;color: #0030fF; &quot;&gt;virtual&lt;/span&gt; UInt32 GetType&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;VOID&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt; = &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;

   &lt;span style=&quot;color: #0030fF; &quot;&gt;virtual&lt;/span&gt; Boolean Collide&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;ICollider* collider&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt; = &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;

} ICollider;


&lt;span style=&quot;color: #808080&quot;&gt;// далее наследуем несколько коллайд классов от базового интерейса &lt;/span&gt;


&lt;span style=&quot;color: #0030fF; &quot;&gt;typedef&lt;/span&gt; &lt;span style=&quot;color: #0030fF; &quot;&gt;struct&lt;/span&gt; SphereCollider : &lt;span style=&quot;color: #0030fF; &quot;&gt;public&lt;/span&gt; ICollider
{
&lt;span style=&quot;color: #0030fF; &quot;&gt;private&lt;/span&gt;:

   Single radius;
   Single location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;;

&lt;span style=&quot;color: #0030fF; &quot;&gt;public&lt;/span&gt;:

   &lt;span style=&quot;color: #0030fF; &quot;&gt;virtual&lt;/span&gt; UInt32 GetType&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;VOID&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
   {
      &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; COLLIDER_TYPE_SPHERE;
   }

   &lt;span style=&quot;color: #0030fF; &quot;&gt;virtual&lt;/span&gt; Boolean Collide&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;ICollider* collider&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
   {
      UInt32 collider_type = collider-&lt;span style=&quot;color: #a06000&quot;&gt;&amp;gt;&lt;/span&gt;GetType&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

      &lt;span style=&quot;color: #0030fF; &quot;&gt;switch&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;collider_type&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
      {
         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_SPHERE: &lt;span style=&quot;color: #808080&quot;&gt;// sphere - sphere&lt;/span&gt;
         {
            SphereCollider* sc = &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;SphereCollider*&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;collider;
            Single r2 = radius + sc-&lt;span style=&quot;color: #a06000&quot;&gt;&amp;gt;&lt;/span&gt;radius;
            Single x = location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt; - sc-&lt;span style=&quot;color: #a06000&quot;&gt;&amp;gt;&lt;/span&gt;location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;;
            Single y = location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt; - sc-&lt;span style=&quot;color: #a06000&quot;&gt;&amp;gt;&lt;/span&gt;location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;;
            Single z = location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt; - sc-&lt;span style=&quot;color: #a06000&quot;&gt;&amp;gt;&lt;/span&gt;location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;;

            r2 *= r2;

            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;x * x + y * y + z * z&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #a06000&quot;&gt;&amp;lt;&lt;/span&gt; r2;
         }

         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_CYLINDER: &lt;span style=&quot;color: #808080&quot;&gt;// sphere - cylinder&lt;/span&gt;
         {
            ...

            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; ...;
         }

         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_BOX: &lt;span style=&quot;color: #808080&quot;&gt;// shpere - box&lt;/span&gt;
         {
            ...

            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; ...;
         }

         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_MESH: &lt;span style=&quot;color: #808080&quot;&gt;// sphere - mesh&lt;/span&gt;
         {
            ...

            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; ...;
         }
      }

      &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;
   }

} SphereCollider;


&lt;span style=&quot;color: #0030fF; &quot;&gt;typedef&lt;/span&gt; &lt;span style=&quot;color: #0030fF; &quot;&gt;struct&lt;/span&gt; CylinderCollider : &lt;span style=&quot;color: #0030fF; &quot;&gt;public&lt;/span&gt; ICollider
{
&lt;span style=&quot;color: #0030fF; &quot;&gt;private&lt;/span&gt;:

   Single radius;
   Single height;
   Single location&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;;

&lt;span style=&quot;color: #0030fF; &quot;&gt;public&lt;/span&gt;:

   &lt;span style=&quot;color: #0030fF; &quot;&gt;virtual&lt;/span&gt; UInt32 GetType&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;VOID&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
   {
      &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; COLLIDER_TYPE_CYLINDER;
   }

   &lt;span style=&quot;color: #0030fF; &quot;&gt;virtual&lt;/span&gt; Boolean Collide&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;ICollider* collider&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
   {
      UInt32 collider_type = collider-&lt;span style=&quot;color: #a06000&quot;&gt;&amp;gt;&lt;/span&gt;GetType&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

      &lt;span style=&quot;color: #0030fF; &quot;&gt;switch&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;collider_type&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
      {
         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_SPHERE: &lt;span style=&quot;color: #808080&quot;&gt;// cylinder - sphere&lt;/span&gt;
         {
            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; ...;
         }

         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_CYLINDER: &lt;span style=&quot;color: #808080&quot;&gt;// cylinder - cylinder&lt;/span&gt;
         {
            ...

            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; ...;
         }

         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_BOX: &lt;span style=&quot;color: #808080&quot;&gt;// cylinder - box&lt;/span&gt;
         {
            ...

            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; ...;
         }

         &lt;span style=&quot;color: #0030fF; &quot;&gt;case&lt;/span&gt; COLLIDER_TYPE_MESH: &lt;span style=&quot;color: #808080&quot;&gt;// cylinder - mesh&lt;/span&gt;
         {
            ...

            &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; ...;
         }
      }

      &lt;span style=&quot;color: #0030fF; &quot;&gt;return&lt;/span&gt; &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;
   }

} CylinderCollider;

...&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Вопрос следующий: Правильный ли я использую подход?
&lt;br /&gt;Мне не очень нравится то, что нужно для каждого класса объекта столкновений делать большой свич размер которого опять же будет зависеть от количества объектов столкновений.
&lt;br /&gt;Так же по данной схеме приходится реализовывать два раза каждый вариант столкновений, может проще использовать функции вида CollideSphereSphere(SphereCollider*, SphereCollider*), CollideSphereCylinder(SphereCollider*, CylinderCollider*), ...
&lt;br /&gt;Второй вариант позволяет избавиться от дублирования кода, но не совсем ООП.
&lt;br /&gt;Нужен ваш совет комрады, любые ссылки.&lt;/p&gt;
&lt;p&gt;Суслика в студию! :))&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136351</guid>
  <pubDate>Fri, 30 Jul 2010 02:59:25 GMT</pubDate>
  <title>Зачем нужна инструкция dst?</title>
  <link>http://www.gamedev.ru/code/forum/?id=136351</link>
  <description>J.C. Lelterman в книге &amp;quot;Learn Vertex and Pixel Shaders&amp;quot; пишет о использовании инструкции dst:
&lt;p&gt;dst: Distance vector
&lt;br /&gt;dst Dst, aSrc, bSrc&lt;/p&gt;
&lt;p&gt;This instruction calculates the distance between the source aSrc
&lt;br /&gt;and the source bSrc and stores the result in the destination Dst.
&lt;br /&gt;...
&lt;br /&gt;Pseudocode:
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;dx=1.0 dy=ayby dz=az dw=bw&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Vertex Shader:
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;// Find the distance from v1 to the origin {0,0,0}
mov r1.xyz, v1.xyz // vec = {xyz#} Position
dp3 r1.yz, r1, r1 // d={##yz} = sum of squares
rsq r2.y, r1.y // {# # 1/ d #}
rcp r2.yw, r2.y // { d d # #} = 1/(1/ d)
dst r0,r1,r2 // = r1#yz# r2#yw#&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;MSDN также пишет:
&lt;br /&gt;The first source operand (src0) is assumed to be the vector (ignored, d*d, d*d, ignored) and the second source operand (src1) is assumed to be the vector (ignored, 1/d, ignored, 1/d). The destination (dest) is the result vector (1, d, d*d, 1/d).&lt;/p&gt;
&lt;p&gt;Но о какой &amp;quot;distance&amp;quot; идёт речь, и что на самом деле выполняет инструкция dst? Если dst рассчитывает расстояние между двумя точками в трехмерном пространстве, то почему ожидаемые параметры aSrc и bSrc, не содержат самих координат первой и второй точки? &lt;/p&gt;
&lt;p&gt;Не проще ли рассчитать расстояние между точками как-то так?
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;;...
def c20, 3.3f, 3.4f, 3.5f, 1.0f
def c21, 3.4f, 3.5f, 3.6f, 1.0f
add r0, c21, -c20
dp3 r1.y, r0, r0
rsq r0.y, r1.y
rcp r0.w. r0.y
;...&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136348</guid>
  <pubDate>Thu, 29 Jul 2010 21:47:57 GMT</pubDate>
  <title>Нанесение текстуры на сложные 3D объекты</title>
  <link>http://www.gamedev.ru/code/forum/?id=136348</link>
  <description>Пытаюсь сделать свой 3D редактор на Delphi&amp;amp;OpenGL, с помощью которого можно создавать трехмерные объекты для разного рода игр. Но не знаю как рассчитать для них текстурные координаты (все фигуры состоят из треугольников).&amp;nbsp; </description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136347</guid>
  <pubDate>Thu, 29 Jul 2010 21:20:03 GMT</pubDate>
  <title>Не работает GL_ARB_debug_output</title>
  <link>http://www.gamedev.ru/code/forum/?id=136347</link>
  <description>Люди добрые, подскажите как заюзать новый экстеншен GL_ARB_debug_output.
&lt;p&gt;Создал GL 3.3 контекст с WGL_CONTEXT_DEBUG_BIT, получил ненулевые указатели на glDebugMessageCallbackARB и glDebugMessageControlARB. &lt;/p&gt;
&lt;p&gt;Объявил callback:&lt;/p&gt;
&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;static void APIENTRY MessageCallback(
                                                            GLenum source,
                                                            GLenum type, 
                                                            GLuint id, 
                                                            GLenum severity, 
                                                            GLsizei length, 
                                                            const char* message, 
                                                            void* userParam )
{
}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;Дальше делаю вот так:&lt;/p&gt;
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;      glDebugMessageCallbackARB( &amp;amp;MessageCallback, this );
      glDebugMessageControlARB( 
                                                   GL_DONT_CARE, // source
                                                   GL_DONT_CARE, // type
                                                   GL_DONT_CARE, // severity
                                                   0, NULL, true );&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p&gt;Но не смотря на большой проект и обильное использование OpenGL вызовов внутрь MessageCallback() управление так и не передаётся.
&lt;br /&gt;Что делаю не так?&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136345</guid>
  <pubDate>Thu, 29 Jul 2010 20:56:11 GMT</pubDate>
  <title>Наклон пера планшета: помогите протестировать фреймворк</title>
  <link>http://www.gamedev.ru/code/forum/?id=136345</link>
  <description>В развитии своего фреймворка я упёрся в тот факт, что мой Bamboo One - это простейшая игрушка для бедных, и ничего, кроме силы нажатия, не понимает. Но иксы (по дефолту) возвращают информацию об ещё трёх осях, и какая из них наклон, какая - вращение, а какая - ещё какой х/з, у меня ни малейшего понятия. 
&lt;br /&gt;Под виндой поддержку наклона и прочего сделать было бы нетрудно - но опять всё упёрлось в невозможность пощупать вживую, так что пока не делал, и оно тупо ловит одну силу нажатия.
&lt;p&gt;Помогите чем сможете, ели у кого есть продвинутый планшет под Linux. Если эти три дополнительные оси что-нибудь дадут, должны отклоняться три верхних кружочка (красный, зелёный, синий). Интересно, какой на что отреагирует.
&lt;br /&gt;ПРЕДУПРЕЖДЕНИЕ: требует OpenGL 2.0 -- т.е. проприетарные дрова на видеокарту.&lt;/p&gt;
&lt;p&gt;Ну, и вообще интересно насколько моя тварь живучая. Под Убунтой и OpenSUSE идёт, под вайном идёт, под Windows XP идёт, под Windows 98 поднимается и бухтит, ибо нет для неё в природе драйверов под бамбук :(
&lt;br /&gt;Висты и семёрки я в глаза ещё не видел - не то, что тестировать.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://217.70.20.10/downloads/chentrah_test_014.zip&quot;&gt;http://217.70.20.10/downloads/chentrah_test_014.zip&lt;/a&gt; (4Мб)&lt;/p&gt;
&lt;p&gt;Ну, и если не лень, запостите сюда содержимое файла LOG -- особенно если упадёт.&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136344</guid>
  <pubDate>Thu, 29 Jul 2010 20:42:09 GMT</pubDate>
  <title>Локальная сеть через WinSock 2</title>
  <link>http://www.gamedev.ru/code/forum/?id=136344</link>
  <description>&lt;b&gt;Всем доброй ночи!&lt;/b&gt;
&lt;p&gt;Использую &lt;b&gt;Microsoft Visual Studio 2010 Ultimate&lt;/b&gt; и &lt;b&gt;Microsoft WinSock 2&lt;/b&gt;. Для работы в сети Интернет всё понятно. А вот как дело обстоит с локальной сетью?&lt;/p&gt;
&lt;p&gt;И там и там есть &lt;b&gt;IP&lt;/b&gt;-адрес (буду использовать версии 4). Так вот мне и интересно: программирование в &lt;b&gt;WinSock 2&lt;/b&gt; под локальную сеть ничем не отличается от программирования для Интернет?&lt;/p&gt;
&lt;p&gt;А как в локальной сети искать созданные сервера? Я всё время думал, что локальная сеть, это перебор четвёртого значения в &lt;b&gt;IP&lt;/b&gt;-адресе. То есть если клиент имеет &lt;b&gt;IP&lt;/b&gt;-адрес &lt;b&gt;10.0.0.1&lt;/b&gt; и состоит в локальной сети, то я должен игры искать через сканирование определённого порта по следующему диапазону адресов:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;10.0.0.x&lt;/b&gt;, где &lt;b&gt;x&lt;/b&gt; число от 0 до 255 (не включая число 1).
&lt;p&gt;Так ли это делается или нет?&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136342</guid>
  <pubDate>Thu, 29 Jul 2010 19:20:59 GMT</pubDate>
  <title>указатели.Портация с 2003 на 2005 студии..{Решено}</title>
  <link>http://www.gamedev.ru/code/forum/?id=136342</link>
  <description>Что же начну.. гугл именно по моему случаю ничего не выдал...
&lt;br /&gt;Самое странное,что на 2003 студии все нормально собирается и работает.,а на 2005 в никакую&amp;nbsp; :(
&lt;br /&gt;Кому не трудно объясните,как исправить-в коде GUI(написан группой,но этот программист редко в онлайне,а сам не сталкивался ещё с указателями) полно таких &amp;quot;ошибок&amp;quot;,следовательно мне в любом случае надо понять..(выяснено подставлением NULL и костылей) 
&lt;p&gt;
&lt;br /&gt;&lt;span class=&quot;q&quot;&gt;&amp;gt;error C3867: &apos;WProperties::OnListDoubleClick&apos;: function call missing argument list; use &apos;&amp;amp;WProperties::OnListDoubleClick&apos; to create a pointer to member&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;&amp;nbsp;  List.DoubleClickDelegate&amp;nbsp; &amp;nbsp;  = FDelegate(this,(TDelegate)OnListDoubleClick);
&lt;br /&gt;&amp;nbsp;  &lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136340</guid>
  <pubDate>Thu, 29 Jul 2010 18:58:35 GMT</pubDate>
  <title>HDR и матрицы просто пара вопросов. Как лучше использовать.</title>
  <link>http://www.gamedev.ru/code/forum/?id=136340</link>
  <description>Два вопроса по поводу HDR и матриц.
&lt;br /&gt;С удовольствием приму ответы тип это здесь уже обсуждалось иди тудато.
&lt;br /&gt;Пойду туда главное чтобы темя была не закрыта и ссылка была действительной.
&lt;p&gt;1.&amp;nbsp; я&amp;nbsp; *_НЕ_*&amp;nbsp;  выяснил зачем нужна HDR текстура для простых объектов моделей к примеру. 
&lt;br /&gt;К примеру есть ли смысл наравне с небом использовать еще и заHDRенный террайн.
&lt;br /&gt;в чем будет смысл?
&lt;br /&gt;Просто я HDR рассматривал через рендер манки. И там все довольно примитивно на мой взгляд. Я имею ввиду пример с HDR. Читал книгутипа адвансед&amp;nbsp; вертекс и пиксел шадер програминг, но там тоже все сводится к небу. Но в халфе, к примеру есть отдельные HDR текстуры. Есть HDR источники света. Этого всего то нету там где я был. Поэтому мне неясно тупо как использовать ХДР для того чтобы что то сделать непонятно тоже что. Про смену дня и ночи это я понял. Про эффекты типа блума только с помощью объекта без хдр я тоже понял. Вообще может я неправ но может хдр будет использоваться для цветовой коррекции текстур объектов? Ну чтобы правильно воспринимались цвета? или наоборот появлялись разные градации при разных уровнях освещенности? Нафига на HDR текстуру светить HDR светом, и что от этого будет?
&lt;br /&gt; 
&lt;br /&gt;2. Вопрос второй&amp;nbsp; : нужна математика матриц. Для 3D конечно. Матрицы поворота и масштабирования мало интересуют. Нужна математика матрици проекций. Подробно описанная. Во всех книгах, этот момент самый короткий. Такое ощущение что никто с ними не знаком, поскольку когда ктото знает чтото он этим делится. А там целая страница на тупую матрицу переноса. И один абзац на проекцию. А мне нужно полность все. Не только частный случай. Поскольку есть задача сместить центр проекции немного вверх от центра экрана. (варианты типа окно увеличить и потом 30 процентов оставить за монитором утопичны и некрасивы).&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136335</guid>
  <pubDate>Thu, 29 Jul 2010 17:21:18 GMT</pubDate>
  <title>Хардварный инстансинг не работает.</title>
  <link>http://www.gamedev.ru/code/forum/?id=136335</link>
  <description>вроде сделал как в примере... а не пашет) отображается то ли один объект, то ли все в одной позиции. шейдерная переменная, которая жуётся вертекс шейдером однако не нулевая... если её кинуть в пиксельный шейдер и отобразить, там явно что-то больше единицы (всё белое). видюха инстансинг держать должна (GF8600GT).
&lt;br /&gt;может трабла в том что я по старинке юзаю FVF для вертексов меша, а стремный вертексДекларейшен только для инстанс-буфера. но я хз как это может повлиять.
&lt;br /&gt;я честно говоря вообще плохо въехал как он работает, обчитавшись документации сдк и других док.
&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;вырезал/сжал отрывки из своего кода:

отрывки проги

const D3DVERTEXELEMENT9 InstanceVElem[] =
{
{1, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 1},
D3DDECL_END()
};

struct instPos
{
  float x;
  float y;
  float z;
  float w;
};


---------------------------

device-&amp;gt; CreateVertexBuffer(  count*D3DXGetDeclVertexSize( InstanceVElem, 1 ), 0,0, D3DPOOL_DEFAULT,   &amp;amp;BatchVB,  0);

---------------------------

instPos* vertices;
BatchVB-&amp;gt;Lock(0,0,(void**)&amp;amp;vertices,0);

for(int i=0; i&amp;lt;matrices.size(); i++)
{
  instPos p;
  p.x = matrices[i]-&amp;gt;GetPos().x;
  p.y = matrices[i]-&amp;gt;GetPos().y;
  p.z = matrices[i]-&amp;gt;GetPos().z;
  //matrices[i]-&amp;gt;GetPos() возвращает нормальные позиции - проверял

  *vertices = p;
}

BatchVB-&amp;gt;Unlock();

---------------------------

device-&amp;gt;SetTransform(D3DTS_WORLD, world-&amp;gt;GetWorld());

mat.shader-&amp;gt;Begin();

    // Set up the geometry data stream
  device-&amp;gt;SetStreamSourceFreq(0, (D3DSTREAMSOURCE_INDEXEDDATA | matrices.size()) );
  device-&amp;gt;SetStreamSource(0, GetMesh()-&amp;gt;VB, 0, GetMesh()-&amp;gt;GetFVFSize());

   // Set up the instance data stream
  device-&amp;gt;SetStreamSourceFreq(1, (D3DSTREAMSOURCE_INSTANCEDATA | 1) );
  device-&amp;gt;SetStreamSource(1, BatchVB, 0,  D3DXGetDeclVertexSize( InstanceVElem, 1 ) );


  device-&amp;gt;SetIndices( GetMesh()-&amp;gt;surfs[0]-&amp;gt;IB );
  device-&amp;gt;SetFVF(*GetMesh()-&amp;gt;GetFVF());

  int tris = GetMesh()-&amp;gt;surfs[0]-&amp;gt;GetNumTris();

  HRESULT h = device-&amp;gt;DrawIndexedPrimitive( GetMesh()-&amp;gt;surfs[0]-&amp;gt;GetPrimitiveType(),0, 0,                       GetMesh()-&amp;gt;GetNumVerts(), 0, tris);

  if FAILED(h)
  {
    cout &amp;lt;&amp;lt; &amp;quot;Failed\n&amp;quot;;
  }

mat.shader-&amp;gt;End();

device-&amp;gt;SetStreamSourceFreq(0,1);
device-&amp;gt;SetStreamSourceFreq(1,1);

---------------------------
шейдер

const float4x4 MatWorldViewProj;
const float4x4 MatWorld;

float3 LightDir = float3(0.1,0.7,-0.5);

//##################  Input VS  ##################
struct vi {
    float4 Position : POSITION0;
  float3 Normal : NORMAL;
  float4 InstanceCoords : TEXCOORD1;
};
//##################  Output VS  ##################
struct pi {
  float4 Position : POSITION0;
  float3 Normal : TEXCOORD1;
};


//##################  VS  ##################
void vs( in vi IN, out pi OUT ) {

  IN.Position.xyz += float4( IN.InstanceCoords.xyz * 4 - 2, 0 );

  OUT.Position= mul(IN.Position,MatWorldViewProj);

  OUT.Normal  = normalize(mul(IN.Normal,MatWorld));
}


//##################  PS  ##################

float4 diffm( in pi IN ) : COLOR0
{
        float4 tx= float4(1,0,0,1);
  float light = dot(IN.Normal,LightDir);
  tx *= light;
        return tx;
}

technique diff
{
    pass p0
    {
        AlphaBlendEnable = FALSE;
        vertexshader  = compile vs_3_0 vs();
        PixelShader = compile ps_3_0 diffm();
    }
}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136331</guid>
  <pubDate>Thu, 29 Jul 2010 15:41:11 GMT</pubDate>
  <title>Разбиение контуров на части</title>
  <link>http://www.gamedev.ru/code/forum/?id=136331</link>
  <description>Есть нений контур, если проще, то можно считать, что это полигон (левый рисунок, голубенький)... Внутри этого контура другие контуры (левый рисунок, жёлтые)...
&lt;br /&gt;Задача состоит в том, чтобы порезать внешний контур на части так, чтобы внутренние контуры не были внутри этого контура, например как на рисунке справа, жёлтые полигоны как были, так и остались, а вот голубенький разбит на три части...
&lt;p&gt;&lt;img src=&quot;http://savepic.ru/1525987.png&quot; alt=&quot;Изображение&quot; /&gt;
&lt;p&gt;Подскажите как подобное реализовывается?
&lt;br /&gt;Или хотя бы какими словами про такое гуглить?&lt;/p&gt;</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136329</guid>
  <pubDate>Thu, 29 Jul 2010 15:01:10 GMT</pubDate>
  <title>Пример с исходным кодом создания машины</title>
  <link>http://www.gamedev.ru/code/forum/?id=136329</link>
  <description>У кого есть пример создания машины на физическом движке PhysX для Blitz3D?? Поделитесь пожалуйста!!! А то сижу делаю а вот все ни как не получается реализовать!!!</description>
</item>
<item>
  <guid isPermaLink="true">http://www.gamedev.ru/code/forum/?id=136327</guid>
  <pubDate>Thu, 29 Jul 2010 13:40:10 GMT</pubDate>
  <title>DS Shadow2D (ПАНИКА)</title>
  <link>http://www.gamedev.ru/code/forum/?id=136327</link>
  <description>&lt;b&gt;OpenGL&lt;/b&gt;
&lt;p&gt;Пишу тени к Deferred Shading&apos;гу.
&lt;br /&gt;Цикл по источникам там проверка нужны ли тени вычисление координат и получение значения тени.&lt;/p&gt;
&lt;p&gt;Для теста источник света всего один, но с тенью.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;shade&lt;/b&gt; - коэф. тени
&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: #0030fF; &quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0030fF; &quot;&gt;int&lt;/span&gt; i=&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;i&lt;span style=&quot;color: #a06000&quot;&gt;&amp;lt;&lt;/span&gt;lightCount;i++&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
{
vec3 l1 = gl_LightSource&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.position.xyz;


&lt;span style=&quot;color: #808080&quot;&gt;// Shadow computing&lt;/span&gt;
&lt;span style=&quot;color: #0030fF; &quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;Light&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.shadow==&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
{
sh_pos = Light&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.matrix * vec4&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;position.xyz,&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
tex = vec3&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt; + &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;5&lt;/span&gt; * &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;sh_pos.xyz / sh_pos.w&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

shade = shadow2D&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;Light&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.shadowMap1, tex.xyz&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;.x;
}
&lt;span style=&quot;color: #0030fF; &quot;&gt;else&lt;/span&gt;
shade=&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;


vec3    l  = l1 - pp;
vec3    h  =  normalize     &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; normalize&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;l&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt; + v &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
&lt;span style=&quot;color: #0030fF; &quot;&gt;float&lt;/span&gt;   diff = max         &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;2&lt;/span&gt;, dot &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; normalize &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;l&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;, normal &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
&lt;span style=&quot;color: #0030fF; &quot;&gt;float&lt;/span&gt;   spec = pow         &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; max &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;, dot &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; h, normal &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt; &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;, &lt;span style=&quot;color: #F04000; &quot;&gt;40&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt; &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;

d = length&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;l&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
attenuation = &lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;00&lt;/span&gt; / &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;gl_LightSource&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.constantAttenuation+gl_LightSource&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.linearAttenuation * d +
                      gl_LightSource&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.quadraticAttenuation * d * d&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;


&lt;span style=&quot;color: #0030fF; &quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;gl_LightSource&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.ambient.r == &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
{
diff=&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;
spec=&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;;
}
   

temp_color = texture * lighting * &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;diff + &lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;spec * mshine&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;* attenuation &lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
                       * attenuation * gl_LightSource&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;i&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;.diffuse.rgb; 

&lt;span style=&quot;color: #808080&quot;&gt;// Test shadow.&lt;/span&gt;
temp_color = temp_color*&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;8&lt;/span&gt;+temp_color*&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;2&lt;/span&gt;*shade;

final_color += temp_color;
}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;p&gt;В итоге получаю черный экран. 
&lt;br /&gt;А если добавить:
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: #0030fF; &quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;temp_color != vec3&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
temp_color=vec3&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;5&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
&lt;span style=&quot;color: #0030fF; &quot;&gt;else&lt;/span&gt;
temp_color=vec3&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;1&lt;/span&gt;.&lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Получаю все равно черный экран. То есть не существующее значение?
&lt;br /&gt;причем если &lt;b&gt;shade&lt;/b&gt; получить но не использовать то все ок. &lt;/p&gt;
&lt;p&gt;Переменные все правильно объявлены вроде. Текстура не пустая.&lt;/p&gt;
&lt;p&gt;Матрицу передаю:
&lt;div style=&quot;background: #f2f2f2; padding: 5px; margin: 4px;&quot;&gt;&lt;pre&gt;&lt;span style=&quot;color: #0030fF; &quot;&gt;void&lt;/span&gt; SetUniformM4&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0030fF; &quot;&gt;float&lt;/span&gt; value&lt;span style=&quot;color: #a06000&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #F04000; &quot;&gt;16&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;]&lt;/span&gt;, AnsiString unif&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;
{
&lt;span style=&quot;color: #0030fF; &quot;&gt;int&lt;/span&gt; loc = glGetUniformLocation&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt; program, unif.c_str&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
glUniformMatrix4fv&lt;span style=&quot;color: #a06000&quot;&gt;(&lt;/span&gt;loc, &lt;span style=&quot;color: #F04000; &quot;&gt;16&lt;/span&gt;, &lt;span style=&quot;color: #F04000; &quot;&gt;0&lt;/span&gt;, value&lt;span style=&quot;color: #a06000&quot;&gt;)&lt;/span&gt;;
}&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Логи компиляции шейдеров все пустые.&lt;/p&gt;
&lt;p&gt;Как такое получается? :panika:&lt;/p&gt;</description>
</item>
</channel>
</rss>
