2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение31.08.2019, 21:03 
Заслуженный участник


31/12/15
941
Тут проблема в том, что я рисую полупрозрачные предметы. Полупрозрачные предметы рисуются методом щелушения (peeling). Сначала рисуется ближайший к нам по глубине слой, получается обычная непрозрачная картинка. Затем рисуется следующий по глубине слой и прибавляется к уже нарисованной картинке, умноженный на коэффициэнт, зависящий от прозрачности. В результате второй слой "просвечивает" сквозь первый. И так в цикле, пока не кончатся слои. Возникает вопрос - сглаживать ли каждый нарисованный слой? Это много времени и ресурсов занимает. Или сглаживать уже готовую, многослойную картинку? Такой метод есть (MLAA), сглаживает неплохо, но при движении возникает мерцание. Умельцы добавляют ещё "временнОе" сглаживание, когда к каждому кадру добавляется немножко предыдущего кадра. Если подобрать пропорцию (для каждого пикселя отдельно), то не мерцает! В общем, я уже почти специалист, прочитал много.

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


29/05/17
808
george66 в сообщении #1413069 писал(а):
Такой метод есть (MLAA), сглаживает неплохо, но при движении возникает мерцание.

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

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

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

-- 01.09.2019, 11:37 --

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

 Профиль  
                  
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 15:31 
Заслуженный участник


27/04/09
28128
Mental
А задние поверхности?

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

 Профиль  
                  
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 16:11 
Заслуженный участник
Аватара пользователя


27/05/11
874
bondkim137 в сообщении #1368482 писал(а):
Первая техника с retina от apple вообще не справлялась с попиксельной конверсией рядовых видео в шейдерах, только с потексельной - и потом скейлинг в target-пиксели уже без шейдеров.

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

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


29/05/17
808
arseniiv в сообщении #1413153 писал(а):
А задние поверхности?


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

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

 Профиль  
                  
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение01.09.2019, 21:12 
Заслуженный участник


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

 Профиль  
                  
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение02.09.2019, 17:29 
Аватара пользователя


07/02/12
1439
Питер
lek в сообщении #1413163 писал(а):
bondkim137 в сообщении #1368482 писал(а):
Первая техника с retina от apple вообще не справлялась с попиксельной конверсией рядовых видео в шейдерах, только с потексельной - и потом скейлинг в target-пиксели уже без шейдеров.

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

 Профиль  
                  
 
 Re: Кто-нибудь разбирается в компьютерной графике?
Сообщение02.09.2019, 21:22 
Аватара пользователя


29/05/17
808
george66 в сообщении #1413187 писал(а):
WebGL дешёвка, ей много не нарисуешь. Полупрозрачность сама собой не достигается, есть разные способы её рисовать (и Qt этого вообще автоматически не делает, самому надо).

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

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

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group