PictureView — просмотр изображений различных форматов

Здесь можно обсудить ваш любимый плагин.
User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

Re: PictureView — просмотр изображений различных форматов

Post by uncle-vunkis »

Latest post of the previous page:

JFK wrote:Трилинейная фильтрация будет побыстрее (там нет синусов), но и качеством похуже.
Лично я собирался прикрутить именно аппаратную трилинейку. Во-первых, она будет очень быстрой (по fps - не медленее нынешней реализации), во-вторых, поддерживается практически всеми карточками одинаково. Есть, конечно, и минус - потребует в два раза больше видео-памяти. Ещё минус - большее время на создание мип-уровней. Насколько это критично - может показать только тестирование.

Трилинейка позволит сделать down-sampling качественее nearest'а.
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: PictureView — просмотр изображений различных форматов

Post by Andrey Budko »

uncle-vunkis wrote:Трилинейка позволит сделать down-sampling качественее nearest'а.
Трилинейная фильтрация это вроде GL_LINEAR_MIPMAP_LINEAR. Последний линеар в случае квада на экран не поможет. GL_LINEAR_MIPMAP_NEAREST - это билинейная с мипмапингом, не?
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re: PictureView — просмотр изображений различных форматов

Post by HaRT »

uncle-vunkis wrote:потребует в два раза больше видео-памяти
На встроенных видяшках уже и сейчас часто не хватает видеопамяти, чтобы показать фотку целиком (вместо этого показывается четверть), т.ч. полагаю, не стоит усугублять.
Фар есть инструмент, а не нянька. © 2009 DrKnS
JFK
Posts: 34
Joined: Fri 05 Jan, 2007 06:37

Re: PictureView — просмотр изображений различных форматов

Post by JFK »

Andrey Budko wrote:Причем вообще трилинейная фильтрация к 2д графике? Трилиная фильтрация сглаживает переходы между мипами.
Правильно, конечно triangle resampling. Но в некоторых источниках говорят именно о трилинейном ресемплинге применительно к 2D-графике.
User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

Re: PictureView — просмотр изображений различных форматов

Post by uncle-vunkis »

Andrey Budko wrote:GL_LINEAR_MIPMAP_NEAREST - это билинейная с мипмапингом, не?
Да.
Andrey Budko wrote:Последний линеар в случае квада на экран не поможет.
1) Качество изображения для скейлов, попадающих между мип-уровнями, у трилинейки будет выше, чем у простой билинейки с мип-мапами.
2) В этом плагине реализован плавный зум. Для него трилинейка также пригодится - не будет явных скачков (переходов между мип-уровнями).
User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

Re: PictureView — просмотр изображений различных форматов

Post by uncle-vunkis »

HaRT wrote:На встроенных видяшках уже и сейчас часто не хватает видеопамяти, чтобы показать фотку целиком
Резонно, но с этим можно бороться. Кстати, если задать DDSCAPS_SYSTEMMEMORY, не помогает?
P.S. Я только что на плагине просмотрел картинку bmp размером 20000x20000, и всё показало правильно. Надеюсь, вы не подумали, что у меня больше 1 Гб видеопамяти? :wink:
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: PictureView — просмотр изображений различных форматов

Post by Andrey Budko »

uncle-vunkis wrote:Я только что на плагине просмотрел картинку bmp размером 20000x20000, и всё показало правильно.
Как это реализуется в плагине? Разбивается на части? Ибо самый распространненный максимальный размер текстуры это 4к на 4к. На "ультра" современных видяхах это 8к на 8к как максимум (GL_MAX_TEXTURE_SIZE=8192 на 8800 GTS), больше не видел. Откуда тогда проблема с памятью описанная хартом? Надо просто разбивать на меньшие куски (4 штуки) размером ближайшей степени двойки от разрешения экрана. То есть если у харта 1680 на 1050, то это будет 4 текстуры по 2к: 2K*2K*4=16Мб - должно хватать на любом встроеном.

Кто-то тут заикался про дх10, что мол легко реализуемо в терминах существующей имплемиентации. Так в чем проблема? ДХ10 так ДХ10. Тем более, как я понял, глюки только в виндовс виста и выше, а там дх10 де факто.
uncle-vunkis wrote:Ещё минус - большее время на создание мип-уровней
Их вроде как можно генерировать динамически по мере необходимости, но не думаю, что стоит заморачиваться с умодавящим алгоритмом ради ускорения в четветь секунды на файлах размером 5к на 5к.
uncle-vunkis wrote:Качество изображения для скейлов, попадающих между мип-уровнями, у трилинейки будет выше
Шоты можешь показать? Уменьши 1100x1100 до 400x400 билинейной и трилинейной.

Я вот поэкспериментировал - разницы не вижу. Да и не должно быть насколько я себе представляю ибо трилинейная на то и трилинейная, что ей надо третее измерение (глубину сцены) К примеру, трилинейная не делается в шейдере, где можно оперировать только пикселями текущего мипа. Мне вот нужно было для дума, да нет возможности. Научишь? :)
http://prboom-plus.sourceforge.net/a1.png
http://prboom-plus.sourceforge.net/a2.png

Вот тут видно, но это обычный GL_LINEAR на увеличение.
http://prboom-plus.sourceforge.net/a3.png
http://prboom-plus.sourceforge.net/a4.png

Хотя могу заблуждаться.
uncle-vunkis wrote:В этом плагине реализован плавный зум. Для него трилинейка также пригодится - не будет явных скачков (переходов между мип-уровнями)
Как ты себе это представляешь чисто теоретически? Надо вывести большую картинку квадом 600 на 600. Есть два соседних мипа: 1024х1024 и 512х512. Вроде как очевидно, что берется 1024х1024 и уменьшается либо неарестом либо линеаром. Мип 512х512 в этом случае не поможет никак.
UJvu
Posts: 156
Joined: Tue 03 May, 2005 15:38
Location: Севастополь
Contact:

Re: PictureView — просмотр изображений различных форматов

Post by UJvu »

Andrey Budko wrote:Я вот поэкспериментировал. Разницы не вижу. Ну да и не удивительно. Ибо насколько я себе представляю, трилинейная на то и трилинейная, что ей надо третее измерение.
http://prboom-plus.sourceforge.net/a1.png
http://prboom-plus.sourceforge.net/a2.png
Красивые трусики
a2, мне кажется, получше. a1 слегка смазана. На кружевах видно.
User avatar
Александр Кряжев
Posts: 882
Joined: Sun 03 Dec, 2006 10:09
Location: Москва
Has thanked: 2 times
Contact:

Re: PictureView — просмотр изображений различных форматов

Post by Александр Кряжев »

UJvu wrote:a2, мне кажется, получше. a1 слегка смазана. На кружевах видно.
Да там - горизонт завален!
(А если серьёзно, я разницы не увидел. Ни в кружевах, ни в остальном).

Фар - маргинальный продукт. (c) zg
User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

Re: PictureView — просмотр изображений различных форматов

Post by uncle-vunkis »

Andrey Budko wrote:Надо вывести большую картинку квадом 600 на 600. Есть два соседних мипа: 1024х1024 и 512х512. Вроде как очевидно, что берется 1024х1024 и уменьшается либо неарестом либо линеаром. Мип 512х512 в этом случае не поможет никак.
Попробую объяснить. Вместо 600х600 можно для пущего эффекта взять 513х513. Разве не очевидно, что мип-512 даже сам по себе будет смотреться гораздо лучше в этом случае, чем линейно уменьшенный в два раза 1024. Почему? Да потому что для получения мипа-512 используют фильтры более качественные: Catmull-Rom, Гаусс, Митчелл, Sinc и т.п (уменьшается альясинг). А вот если бы мы скейлили до 1023, то, очевидно, ближе всего к нужному был бы тогда чистый мип-1024 (вырождается в билинейку). Кстати, выбор мип-уровней определяется не глубиной, а соотношением площадей пиксель/тексель. А скриншоты сейчас делать нет смысла: каждый сможет убедиться в этом эффекте, когда сделаем соответствующие модификации плагина (с трилинейкой и без).
User avatar
Andrey Budko
Posts: 1203
Joined: Fri 01 Apr, 2005 14:03
Contact:

Re: PictureView — просмотр изображений различных форматов

Post by Andrey Budko »

uncle-vunkis wrote:Да потому что для получения мипа-512 используют фильтры более качественные: Catmull-Rom, Гаусс, Митчелл, Sinc и т.п
А для 1024 не используются?
User avatar
Taciturn
Posts: 603
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Re: PictureView — просмотр изображений различных форматов

Post by Taciturn »

Denis wrote:Если найти ACDSee SDK, то можно.
http://asia.acdsee.com/files/acdsee_plugin_sdk.zip
User avatar
uncle-vunkis
Posts: 72
Joined: Thu 11 Jun, 2009 15:16
Been thanked: 1 time

Re: PictureView — просмотр изображений различных форматов

Post by uncle-vunkis »

Andrey Budko wrote:А для 1024 не используются?
А это не важно в приведенном примере уменьшения до 513-ти. Для простоты можно даже считать, что 1024 - и есть размер исходного изображения, и мип-1024 нулевой уровень. Как бы ни был хорош мип-1024, но мип-512 всё равно ближе по качеству к желаемому 513-му, чем билинейно уменьшенный 1024-й.
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

Re: PictureView — просмотр изображений различных форматов

Post by Denis »

Taciturn
Спасибо. С наскока не получилось заюзать основной плагин от ацд :(
То ли руки... то ли SDK очень не свежий, так как даже IDP_Init у плагинов не проходит.
User avatar
Taciturn
Posts: 603
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

Re: PictureView — просмотр изображений различных форматов

Post by Taciturn »

Denis wrote:то ли SDK очень не свежий
Гм. Файлы в архиве от 2007 года, а PictureView успешно работал с плагинами ACDSee ещё в 2005 году.
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

Re: PictureView — просмотр изображений различных форматов

Post by Denis »

Taciturn
То, что он работал 2005, ещё не говорит о том, что сейчас в нём используется api от 2005 года. IDE_ACDStd.apl датирован 10 февраля 2009, и там экспортируются функции, которых в SDK нет.

Может меня спецы поправят, следующий код не работает:
Post Reply

Return to “Обсуждение плагинов”