2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение31.08.2019, 21:03 
Тут проблема в том, что я рисую полупрозрачные предметы. Полупрозрачные предметы рисуются методом щелушения (peeling). Сначала рисуется ближайший к нам по глубине слой, получается обычная непрозрачная картинка. Затем рисуется следующий по глубине слой и прибавляется к уже нарисованной картинке, умноженный на коэффициэнт, зависящий от прозрачности. В результате второй слой "просвечивает" сквозь первый. И так в цикле, пока не кончатся слои. Возникает вопрос - сглаживать ли каждый нарисованный слой? Это много времени и ресурсов занимает. Или сглаживать уже готовую, многослойную картинку? Такой метод есть (MLAA), сглаживает неплохо, но при движении возникает мерцание. Умельцы добавляют ещё "временнОе" сглаживание, когда к каждому кадру добавляется немножко предыдущего кадра. Если подобрать пропорцию (для каждого пикселя отдельно), то не мерцает! В общем, я уже почти специалист, прочитал много.

 
 
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 11:22 
Аватара пользователя
george66 в сообщении #1413069 писал(а):
Такой метод есть (MLAA), сглаживает неплохо, но при движении возникает мерцание.

Мудреная штука этот QT. Вот за полчаса нарисовал две вращающиеся прозрачные сферы:

https://yvital.github.io/Earth/

причем без всякого мерцания.

-- 01.09.2019, 11:37 --

Кстати, существует простой способ проверить откуда это самое мерцание взялось: запустить вашу программу на компьютере с мощной видеокартой. Если это никак не отразиться на исчезновении или продолжительности черных кадров, то это означает ошибку в самой архитектуре вашего приложения.

 
 
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 15:31 
Mental
А задние поверхности?

Я тоже думал, что сейчас (и уже лет как минимум десять?) легко рисовать полупрозрачные тела и не очень понимаю, зачем это делать какими-то ручными трюками, но я не разбираюсь и сам не пробовал.

 
 
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 16:11 
Аватара пользователя
bondkim137 в сообщении #1368482 писал(а):
Первая техника с retina от apple вообще не справлялась с попиксельной конверсией рядовых видео в шейдерах, только с потексельной - и потом скейлинг в target-пиксели уже без шейдеров.

Сложный пятистопный метр. :D

 
 
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 16:14 
Аватара пользователя
arseniiv в сообщении #1413153 писал(а):
А задние поверхности?


Если смешивание не включено, то не отображаются, если включено, то возможны варианты :mrgreen: .

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

 
 
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 21:12 
Прошу прощения, вы все не в теме. А я теперь в теме по необходимости. WebGL дешёвка, ей много не нарисуешь. Полупрозрачность сама собой не достигается, есть разные способы её рисовать (и Qt этого вообще автоматически не делает, самому надо). Вот почитайте доходчивый обзор
http://www.decom.ufop.br/sibgrapi2012/e ... _paper.pdf

 
 
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение02.09.2019, 17:29 
Аватара пользователя
lek в сообщении #1413163 писал(а):
bondkim137 в сообщении #1368482 писал(а):
Первая техника с retina от apple вообще не справлялась с попиксельной конверсией рядовых видео в шейдерах, только с потексельной - и потом скейлинг в target-пиксели уже без шейдеров.

Сложный пятистопный метр. :D
Расшифрую :-)
С появлением iPad3, у которого на экране оказалось вчетверо больше пикселей, чем у предшественника, при той же производительности GPU, многие алгоритмы, расчитанные на работу с шейдерами, перестали работать - скорости просто не хватало. В частности, если написать конверсию из цветового пр-ва YUV в RGB на шейдерах, и выполнять ее для каждого пикселя экрана, как это обычно делается, все дико тормозит. Выходом из создавшегося положения оказалось производить процедуру в два этапа. Первым делом конвертировать шейдерами текстуру YUV в текстуру RGB, имеющую исходное разрешение (порядочно меньшее, чем разрешение экрана). А затем уже без использования шейдеров (что значительно быстрее) натягивать получившуюся текстуру на экран.

 
 
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение02.09.2019, 21:22 
Аватара пользователя
george66 в сообщении #1413187 писал(а):
WebGL дешёвка, ей много не нарисуешь. Полупрозрачность сама собой не достигается, есть разные способы её рисовать (и Qt этого вообще автоматически не делает, самому надо).

Ну что же, бюджетный WebGL смело бросается в бой и представляет вам 18 полупрозрачных вращающихся плоскостей:

https://yvital.github.io/Transparency/

 
 
 [ Сообщений: 23 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group