Как нарисовать плавную линию в OpenGL с сглаживанием?

Вам нужна обратная запись DNS. Вам не нужно дважды отправлять один и тот же контент одному и тому же пользователю. Вам нужно протестировать его с помощью некоторых распространенных почтовых клиентов и электронной почты. Лично я побежал за свежеиспеченным спам-убийцей, обученным спам-убийцей и несколькими учетными записями hotmail, gmail и aol.

Но вы видели, что спам, который, кажется, не ссылается или не рекламирует что-либо ? Это спамер, который пытается повлиять на ваш байесовский фильтр. Если он может получить высокий рейтинг, а затем включить некоторые слова, которые будут в его будущих электронных письмах, он может быть автоматически изучен как хороший. Таким образом, вы не можете догадаться, какой фильтр пользователя будет установлен как на момент вашей рассылки.

Наконец, я не сортировал свой список по доменам, но рандомизировал его.

13
задан Kromster 20 August 2018 в 07:12
поделиться

3 ответа

Вместо этого можно создавать тонкие многоугольники, ориентированные на экран, и устанавливать альфа фрагмента в соответствии с расстоянием до линии.

Пример:

   a (0,1)                                  b (0,1)
    +--------------------------------------+
  A |                                      | B
----+--------------------------------------+----
    |                                      |  
    +--------------------------------------+
   d (0,0)                                  c (0,0)

Предположим, вы хотите нарисовать отрезок [AB].

  • Вместо этого нарисуйте многоугольник abcd
  • Сопоставьте UV ((0,0), (0,1))
  • привяжите черно-белую текстуру 8x1, которая является белой только в центре
  • визуализируйте с помощью фрагментный шейдер, который устанавливает gl_FragColor.a из текстуры

(более или менее метод, используемый в ShaderX5)

Но делайте это, только если вы не можете использовать MSAA.

12
ответ дан 1 December 2019 в 18:04
поделиться

GL_POLYGON_SMOOTH сам по себе бесполезен. При создании контекста OpenGL необходимо принудительно включить сглаживание. Что вы используете для создания окна OpenGL? Посмотрите, поддерживает ли он сглаживание среди своих параметров. Или вы можете принудительно сглаживать антиалиасинг для всех программ OpenGL с помощью инструментов Nvidia или ATI ... Все зависит от ваших настроек.

5
ответ дан 1 December 2019 в 18:04
поделиться

Вам также необходимо включить смешивание, чтобы сглаживание линий работало. Попробуйте:

glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

, а затем нарисуйте линии. Также может помочь установка нецелой ширины линии.

Как уже упоминалось, это не сглаживает края многоугольника, но создает линии со сглаживанием.

22
ответ дан 1 December 2019 в 18:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: