<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3814090</guid>
        <pubDate>Tue, 05 Nov 2019 15:29:15 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3814090</link>
        <description><![CDATA[kotmatroskin55: в общем проблему решить получилось, спасибо коллегам с gamedev, <a class='tag-url' href='https://gamedev.ru/code/forum/?id=247785&m=5068043#m10' target='_blank'>тут описание решения</a>, если кому интересно, могу поделиться реализацией.]]></description>
        <author>kotmatroskin55</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3813513</guid>
        <pubDate>Mon, 28 Oct 2019 10:25:00 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3813513</link>
        <description><![CDATA[kotmatroskin55: эти результаты я получил с помощью glBlend<br>
<span class="b-attach" data-size="164456" data-hits="10140" data-attach-id="61054" data-attach-post-id="3813513">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3813513&amp;attach_id=61054' title='Скачать файл' target='_blank'>_______________________________2019_10_28_15_11_13.png</a> (, : 10140)
		</span><br>
<span class="b-attach" data-size="138611" data-hits="9687" data-attach-id="61055" data-attach-post-id="3813513">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3813513&amp;attach_id=61055' title='Скачать файл' target='_blank'>_______________________________2019_10_28_15_09_48.png</a> (, : 9687)
		</span>]]></description>
        <author>kotmatroskin55</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3813507</guid>
        <pubDate>Mon, 28 Oct 2019 09:08:35 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3813507</link>
        <description><![CDATA[kotmatroskin55: доброго всем дня. тема была заброшена, так как был занят более приоритетными задачами.  теперь же руки дошли наконец. Но воз пока и ныне там. Т.е. не совсем. С помощью альфа-канала я очень даже умею подсвечивать пересечения. Тут особых проблем не возникло. А вот с заданием конкретного цвета - не могу понять в чем проблема. <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;void GlWidget::stencilIntersection()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;updateTransforms();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);// отключили запись во все буферы</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glStencilOp(GL_KEEP, GL_KEEP, GL_INCR);// включили увеличение стенсила при каждом пересечении</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drawTrack(m_trackColor);// отрисовали трек, причем, получается, что на каждом пересечении значение в стенсиле увеличилось на единичку, так?</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glStencilMask(0);// отключаем запись в стенсил</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glStencilFunc(GL_EQUAL, 1, 0b111);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_trackColor = Qt::white;//там где стенисил единичка - рисуем белым</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drawTrack(m_trackColor);// отрисовали трек белым цветом</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glStencilFunc(GL_EQUAL, 2, 0b111);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_trackColor = Qt::red;// там где стенсил двоечка - рисуем бледно красным</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drawTrack(m_trackColor);// отрисовали трек</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glStencilFunc(GL_EQUAL, 3, 0b111);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glClearStencil(0);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_trackColor = Qt::darkRed;// там где стенсил троечка - рисуем темно красным</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drawTrack(m_trackColor);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;drawCenterLine();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_trackProgram.bind();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;calculateFps();</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
то есть, по идее алгоритм должен быть примерно таким. однако на выходе получаю черный экран. Почему - понятно<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);// отключили запись во все буферы</div></ol></div></div></div></div> - из-за этой строки,  а вот как сделать так, чтобы это все работало - не пойму. Что я делаю не так. Спасайте, люди добрые. Нужен хотя бы какой-то толчок в направлении решения.]]></description>
        <author>kotmatroskin55</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809313</guid>
        <pubDate>Thu, 05 Sep 2019 10:03:59 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809313</link>
        <description><![CDATA[kotmatroskin55: <strong class='tag-b'>OpenGL</strong><br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415662&view=findpost&p=3809291'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>OpenGL &#064; <time class="tag-quote__quoted-time" datetime="2019-09-05T07:24:44+00:00">05.09.19, 07:24</time></span><div class='quote '>У меня готового примера нет, и когда сделаю - не могу сказать. </div></div><br>
ну это не страшно, буду курить мануалы, а за идею спасибо.]]></description>
        <author>kotmatroskin55</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809291</guid>
        <pubDate>Thu, 05 Sep 2019 07:24:44 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809291</link>
        <description><![CDATA[OpenGL: У меня готового примера нет, и когда сделаю - не могу сказать. Идея была в том, чтобы рисовать дважды - первый раз с функцией GL_ALWAYS и операцией GL_INCR (т.е. каждый раз увеличиваешь значение в буфере, там, где нарисуешь больше 1 раза будет значение, большее 1), а второй раз - цветом смешения и функцией GL_NOTEQUAL (т.е. рисуешь там, где не равно 1).]]></description>
        <author>OpenGL</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809288</guid>
        <pubDate>Thu, 05 Sep 2019 07:06:16 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809288</link>
        <description><![CDATA[Mikle: Я могу только на Direct3D пример сделать, если поможет.]]></description>
        <author>Mikle</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809224</guid>
        <pubDate>Wed, 04 Sep 2019 17:42:48 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809224</link>
        <description><![CDATA[kotmatroskin55: <strong class='tag-b'>Mikle</strong><br>
<strong class='tag-b'>OpenGL</strong>, и все же таки, можно пример какой-нить? Для тех, кому сразу непонятен, например <a class='tag-url' href='https://habr.com/ru/post/344238/' target='_blank'>этот мануал</a>. Мне бы маленькую зацепочку, а дальше я сам.]]></description>
        <author>kotmatroskin55</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809211</guid>
        <pubDate>Wed, 04 Sep 2019 13:52:56 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809211</link>
        <description><![CDATA[Mikle: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=415662&view=findpost&p=3809205'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>kotmatroskin55 &#064; <time class="tag-quote__quoted-time" datetime="2019-09-04T11:23:18+00:00">04.09.19, 11:23</time></span><div class='quote '>мне нужно получать заданный цвет и трек у меня одного цвета</div></div><br>
Тогда лучше стенсил, именно заданный цвет получить сложнее с помощью альфы, можно получить просто контрастный, какой получится.]]></description>
        <author>Mikle</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809205</guid>
        <pubDate>Wed, 04 Sep 2019 11:23:18 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809205</link>
        <description><![CDATA[kotmatroskin55: <strong class='tag-b'>OpenGL</strong>, а можно чуть подробнее? с учетом того, что с openGL  я работаю без году неделю. <br>
у меня есть следующий код:<br>
initGL:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;void SnowGlWidget::initializeGL()</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glEnable(GL_DEPTH_TEST);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilMask(0x00);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilFunc(GL_ALWAYS, 1, 0xFF);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilMask(0xFF);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;QGLShader vShader(QGLShader::Vertex);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(!vShader.compileSourceCode(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;attribute vec3 vertexPosition;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;uniform mat4 modelViewProjMatrix;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;attribute highp vec4 vertexAttr;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;attribute lowp vec4 colorAttr;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;varying lowp vec4 color;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;void main()\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;{\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;color = colorAttr;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;gl_Position = modelViewProjMatrix * vec4(vertexPosition, 1.0);\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;}\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;QGLShader fShader(QGLShader::Fragment);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(!fShader.compileSourceCode(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;varying lowp vec4 color;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;void main()\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;{\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot; gl_FragColor = color;\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;}\n&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;)) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;QMessageBox::critical(0, tr(&quot;ERROR&quot;), fShader.log(),</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;QMessageBox::Ok);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(!m_program.addShader(&amp;vShader)){</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if(!m_program.addShader(&amp;fShader)){</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (!m_program.link()) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;if (!m_program.bind()) {</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;return;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;}</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_vertexAttr = m_program.attributeLocation(&quot;vertexAttr&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_colorAttr = m_program.attributeLocation(&quot;colorAttr&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_track = new SnowTrack(&amp;m_program, m_vertexAttr, m_colorAttr, m_points);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_perspective.aspectRatio = height() &#62; 0.0f ? float(width()) / float(height()) : 1.0f;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div><br>
<br>
paintGL:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">void SnowGlWidget::paintGL()</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;qglClearColor(QColor(32,64,128,0));</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilMask(0x00);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilFunc(GL_ALWAYS, 1, 0xFF);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;glStencilMask(0xFF);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_projectionMat.setToIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_projectionMat.perspective(</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_perspective.verticalAngle,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_perspective.aspectRatio,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_perspective.nearPlane,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;m_perspective.farPlane);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_viewMat.setToIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_viewMat.lookAt(m_lookAt.eye, m_lookAt.center, m_lookAt.up);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_modelMat.setToIdentity();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_modelMat.scale(m_modelScale);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_modelMat.rotate(m_angle,-0.f,0.f,1);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_modelMat.translate(m_modelTranslation);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program.setUniformValue(&quot;normalMatrix&quot;, m_modelMat.normalMatrix()); // world normal</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program.setUniformValue(&quot;modelViewMatrix&quot;, m_viewMat * m_modelMat);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program.setUniformValue(&quot;projectionMatrix&quot;, m_projectionMat);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program.setUniformValue(&quot;modelViewProjMatrix&quot;, m_projectionMat * m_viewMat * m_modelMat);</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program.setUniformValue(&quot;lightPosition&quot;, m_lightPosition);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program.setUniformValue(&quot;lightKd&quot;, m_lightKd);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program.setUniformValue(&quot;lightLd&quot;, m_lightLd);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_track-&#62;draw();</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;calculateFps();</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div><br>
формирование вершин и цветов для шейдера<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp;void SnowTrack::drawTest()</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_vertices &#60;&#60; -0.5f &#60;&#60; -0.5f &#60;&#60; 0.0f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_vertices &#60;&#60; 0.5f &#60;&#60; -0.5f &#60;&#60; 0.0f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_vertices &#60;&#60; 0.0f &#60;&#60; 0.5f &#60;&#60; 0.0f;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_vertices &#60;&#60; -0.2f &#60;&#60; -0.5f &#60;&#60; 0.0f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_vertices &#60;&#60; 0.8f &#60;&#60; -0.5f &#60;&#60; 0.0f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_vertices &#60;&#60; 0.2f &#60;&#60; 0.5f &#60;&#60; 0.0f;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_colors &#60;&#60; 0.f &#60;&#60; 1.f &#60;&#60; 0.f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_colors &#60;&#60; 0.f &#60;&#60; 1.f &#60;&#60; 0.f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_colors &#60;&#60; 0.f &#60;&#60; 1.f &#60;&#60; 0.f;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_colors &#60;&#60; 1.f &#60;&#60; 1.f &#60;&#60; 0.f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_colors &#60;&#60; 1.f &#60;&#60; 1.f &#60;&#60; 0.f;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_colors &#60;&#60; 1.f &#60;&#60; 1.f &#60;&#60; 0.f;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div><br>
<br>
ну и собственно отрисовка<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;void SnowTrack::draw()</div><div class="code_line">&nbsp;&nbsp; &nbsp;{</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program-&#62;enableAttributeArray(&quot;vertexPosition&quot;);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program-&#62;setAttributeArray(&quot;vertexPosition&quot;, m_vertices.data(), 3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program-&#62;setAttributeArray(m_colorAttr, m_colors.data(), 3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program-&#62;enableAttributeArray(m_colorAttr);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;glDrawArrays(GL_TRIANGLE_STRIP, 0, m_vertices.size() / 3);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program-&#62;disableAttributeArray(m_vertexAttr);</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;m_program-&#62;disableAttributeArray(m_colorAttr);</div><div class="code_line">&nbsp;&nbsp; &nbsp;}</div></ol></div></div></div></div><br>
<br>
и, судя по всему, я все же что-то делаю не так, ибо получаю следующую картинку<br>
<span class="b-attach" data-size="15810" data-hits="2301" data-attach-id="60923" data-attach-post-id="3809205">
			<span class="b-attach__title"></span><a class='b-attach-link' href='https://forum.sources.ru/index.php?act=Attach&amp;type=post&amp;id=3809205&amp;attach_id=60923' title='Скачать файл' target='_blank'>_______________________________2019_09_04_17_21_08.png</a> (, : 2301)
		</span> <br>
<br>
<span class="tag-color tag-color-named" data-value="mergepost" style="color: mergepost"><span class='tag-size' data-value='7' style='font-size:7pt;'>Добавлено <time class="tag-mergetime" datetime="2019-09-04T11:26:44+00:00">04.09.19, 11:26</time></span></span><br>
<strong class='tag-b'>Mikle</strong>, наверное можно, только пока не могу понять как. С учетом того, что мне нужно получать заданный цвет и трек у меня одного цвета.]]></description>
        <author>kotmatroskin55</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809204</guid>
        <pubDate>Wed, 04 Sep 2019 11:17:25 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809204</link>
        <description><![CDATA[Mikle: А можно и без стенсила обойтись, альфаканал задействовать.]]></description>
        <author>Mikle</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809200</guid>
        <pubDate>Wed, 04 Sep 2019 10:29:35 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809200</link>
        <description><![CDATA[OpenGL: glStencilFunc + glStencilOp.]]></description>
        <author>OpenGL</author>
        <category>Программирование графики</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809199</guid>
        <pubDate>Wed, 04 Sep 2019 10:08:47 +0000</pubDate>
        <title>Смешивание цветов</title>
        <link>https://forum.sources.ru/index.php?showtopic=415662&amp;view=findpost&amp;p=3809199</link>
        <description><![CDATA[kotmatroskin55: Добрый день. Такой вопрос: имеется некий код, отображающий произвольную кривую посредством TRIANGLES_STRIP, необходимо подсвечивать зоны самопересечения. Варианта два:<br>1) городить огород и вычислять точки пересечения, добавлять нужные вершины и цвета, ...<br>2) использовать смешивание цветов. <br>Проблема в том, что цвет один и glBlendFunc() на выходе дает исходный цвет. Что логично и так должно быть. <br>Я пока не могу найти адекватного решения данной проблемы. Но, полагаю, что не я первый с этим сталкиваюсь. Если есть опыт или идеи - прошу поделиться. Возможно нужно просто написать хитрей шейдер и будет мне счастье.]]></description>
        <author>kotmatroskin55</author>
        <category>Программирование графики</category>
      </item>
	
      </channel>
      </rss>
	