Палитра как в Photoshop

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
dummy_account
 

Re: Палитра как в Photoshop

Сообщение dummy_account » 05.03.2009 (Чт) 10:14

MIT писал(а):Scarabey шифровался, но писал

Скарабей в бане, приходится с другого акка.

MIT писал(а):А можешь свою работу выложить? А то все-таки хочется на одной машине проверить.

Конечно, сейчас доделываю, чтобы была полностью идентична фотошоповской и выложу!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 05.03.2009 (Чт) 10:15

Кстати, шутка юмора: вчера попытался создать палитру разложения SB, но вместо этого изобрел что-то свое. Вот:
Изображение

Если кто-нибудь мне пояснит чо это, то я буду весьма признателен :)

Scarabey шифровался, но писал(а):Скарабей в бане, приходится с другого акка.
Я типа понял :wink:
Scarabey шифровался, но писал(а):Конечно, сейчас доделываю, чтобы была полностью идентична фотошоповской и выложу!
Давай-давай :)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Палитра как в Photoshop

Сообщение Mikle » 05.03.2009 (Чт) 13:38

Хакер писал(а):ты на асме будешь месяц писать

От силы два часа. А можно готовое применить.
"Быстрый" вариант от Scarabey дает 150 fps, мой 2600.
Кстати, зачем замерять скорость заливки гаммы, она же не меняется?
Учитывая, что львиную долю времени все равно занимает SetDibits, оптимизировать дальше особого смысла нет.
Пример с исходником:
Вложения
PSPal.rar
(141.17 Кб) Скачиваний: 121

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 05.03.2009 (Чт) 14:11

Mikle писал(а):"Быстрый" вариант от Scarabey дает 150 fps, мой 2600.
Да, зачетно :)
Mikle писал(а):Кстати, зачем замерять скорость заливки гаммы, она же не меняется?
Просто так, для комплекта
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Палитра как в Photoshop

Сообщение Хакер » 05.03.2009 (Чт) 15:35

Mikle, у тебя используется правильная Native-кодная библиотека. Это не так интересно, потому что смысл топика, действительно, не в том, чтобы определить "у кого быстрее", а в чтобы определить "что можно выжать из языка/технологии".
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Палитра как в Photoshop

Сообщение Хакер » 05.03.2009 (Чт) 18:59

Административное сообщение: Пользователь Scarabey изъявил желание сменить ник на Joo.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Re: Палитра как в Photoshop

Сообщение 1Steps » 06.03.2009 (Пт) 2:39

"Быстрый" вариант от Scarabey дает 150 fps, мой 2600.
У меня твой дает 1650. Плюс процессор мгновенно загружается на 70%.

Да, Scarabey предлагал замерять тем кодом, который приведён им же выше.
Удалена за ненадобностью.

Aproksimus
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 07.01.2006 (Сб) 12:27
Откуда: Казахстан

Re: Палитра как в Photoshop

Сообщение Aproksimus » 06.03.2009 (Пт) 6:30

Хакер писал(а):Административное сообщение: Пользователь Scarabey изъявил желание сменить ник на Joo.


Ну я же не в тихаря хотел семнить, я не от кого не скрывал, что это я, Скарабей.

Mikle Довольно неплохо, но опять же я таки хотел на .NET. Но все равно интересно!
<---- Хакер, это не новый акк, смотри на дату регистрации!. Scarabey.
Если долго вглядываться в меня, я начну вглядываться в тебя
http://www.sbgroup.kz - Официальный сайт SB Group - свободной группы разработчиков!

Aproksimus
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 07.01.2006 (Сб) 12:27
Откуда: Казахстан

Re: Палитра как в Photoshop

Сообщение Aproksimus » 06.03.2009 (Пт) 6:32

1Steps писал(а):Да, Scarabey предлагал замерять тем кодом, который приведён им же выше.


Ну правильно, чтобы было честно нужно мерять чем-то одним!
<---- Хакер, это не новый акк, смотри на дату регистрации!. Scarabey.
Если долго вглядываться в меня, я начну вглядываться в тебя
http://www.sbgroup.kz - Официальный сайт SB Group - свободной группы разработчиков!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 06.03.2009 (Пт) 8:36

Aproksimus писал(а):Ну правильно, чтобы было честно нужно мерять чем-то одним!
Ну, имхо, метод реальных FPS намного объективней...

1Steps писал(а):У меня твой дает 1650. Плюс процессор мгновенно загружается на 70%.
У меня - в районе 900 (при том, что мои выдают от 700 до 1000, иногда допрыгивая до 1500). А такая загрузка - не удивительно, т.к. реальные FPS можно считать только таким способом - постоянной перерисовкой
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Палитра как в Photoshop

Сообщение Mikle » 06.03.2009 (Пт) 9:15

Замерять один такт и из него вычислять FPS неверно, вы уверены, что NET ничего не откладывает на потом?
Я замеряю число кадров за реальную секунду.
И если уж делать через NET, то и без SetDiBits, и делать рефреш в каждом кадре. Вот вариант, не самый быстрый, на вскидку, есть мысля, как ускорить:
Вложения
PSPalNET.rar
(92.22 Кб) Скачиваний: 106

Aproksimus
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 07.01.2006 (Сб) 12:27
Откуда: Казахстан

Re: Палитра как в Photoshop

Сообщение Aproksimus » 06.03.2009 (Пт) 9:23

MIT писал(а):
Aproksimus писал(а):Ну правильно, чтобы было честно нужно мерять чем-то одним!
Ну, имхо, метод реальных FPS намного объективней...

Я не против, предложите другой алгоритм расчета ФПС. Только в нашем случае его считать беспрерывано не имеет смысла, рисуем то одно и то же. Можно подсчитывать среднее, например из 100 прогонов.
<---- Хакер, это не новый акк, смотри на дату регистрации!. Scarabey.
Если долго вглядываться в меня, я начну вглядываться в тебя
http://www.sbgroup.kz - Официальный сайт SB Group - свободной группы разработчиков!

Aproksimus
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 07.01.2006 (Сб) 12:27
Откуда: Казахстан

Re: Палитра как в Photoshop

Сообщение Aproksimus » 06.03.2009 (Пт) 9:24

Mikle писал(а):Замерять один такт и из него вычислять FPS неверно, вы уверены, что NET ничего не откладывает на потом?
Я замеряю число кадров за реальную секунду.
И если уж делать через NET, то и без SetDiBits, и делать рефреш в каждом кадре. Вот вариант, не самый быстрый, на вскидку, есть мысля, как ускорить:

Я не юзал SetDiBits и делал рефреш в каждом кадре )).
<---- Хакер, это не новый акк, смотри на дату регистрации!. Scarabey.
Если долго вглядываться в меня, я начну вглядываться в тебя
http://www.sbgroup.kz - Официальный сайт SB Group - свободной группы разработчиков!

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Палитра как в Photoshop

Сообщение Mikle » 06.03.2009 (Пт) 9:47

Я не юзал SetDiBits и делал рефреш в каждом кадре

Это радует :)
Только в нашем случае его считать беспрерывано не имеет смысла, рисуем то одно и то же.

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

Aproksimus
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 07.01.2006 (Сб) 12:27
Откуда: Казахстан

Re: Палитра как в Photoshop

Сообщение Aproksimus » 06.03.2009 (Пт) 10:08

Mikle
Эх поторопился я ))
Смухлевал ты )) Не предержался алгоритма и вот что получилось, во вложнии палитры Фотошоповская, моя и Mikle
Вложения
Mikle.png
Mikle.png (27.19 Кб) Просмотров: 6914
Photoshop.png
Photoshop.png (8.41 Кб) Просмотров: 6914
Scarabey.png
Scarabey.png (9.03 Кб) Просмотров: 6910
<---- Хакер, это не новый акк, смотри на дату регистрации!. Scarabey.
Если долго вглядываться в меня, я начну вглядываться в тебя
http://www.sbgroup.kz - Официальный сайт SB Group - свободной группы разработчиков!

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 06.03.2009 (Пт) 14:57

Хакер писал(а):Mikle, у тебя используется правильная Native-кодная библиотека. Это не так интересно, потому что смысл топика, действительно, не в том, чтобы определить "у кого быстрее", а в чтобы определить "что можно выжать из языка/технологии".
Хакер писал(а):Заодно, я напишу код на С++ и вот его-то мы и сравним с .net вариантом.
Странное сочитание высказываний...

Aproksimus писал(а):Я не юзал SetDiBits и делал рефреш в каждом кадре )).
Аналогично.
Mikle писал(а):Это имеет смысл как раз для замера быстродействия, а в конечном приложении от этого нужно отказаться, и вообще перерисовывать палитру только по событию смены гаммы.
Пойду переделаю отрисовку на бесконечный цикл
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Палитра как в Photoshop

Сообщение Хакер » 06.03.2009 (Пт) 15:54

Странное сочитание высказываний...

Что в сочетвании странного?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 06.03.2009 (Пт) 16:07

Сказал, что напишешь пример на Си, признавая факт того, что смысл топика в определении "что можно выжать из языка/технологии", а все остальное "не так интересно"
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Палитра как в Photoshop

Сообщение Хакер » 06.03.2009 (Пт) 16:10

Угу, но ты говорил о сочетании. Видимо о сочетании тех двух сообщений, которые ты процитировал. Что странного в сочетании тех двух сообщений?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 06.03.2009 (Пт) 17:03

То что они взаимоисключающие
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Палитра как в Photoshop

Сообщение Хакер » 06.03.2009 (Пт) 17:09

Бывает такие ситуации: вырвет кто-нибудь две фразы и заявит, что они взаимоисключают друг-друга. Сам ты смотришь на свои фразы и не видешь там ничего такого. И, главное, непонятно что делать и что отвечать: человек ведь просто заявил, что они взаимоисключают друг-друга, не предоставив больше никаких подробностей, на которые можно было бы опираться.

Ну хорошо: чем они взаимоисключаются друг-друга?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 06.03.2009 (Пт) 17:20

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

Я уже писал(а):Сказал, что напишешь пример на Си, признавая факт того, что смысл топика в определении "что можно выжать из языка/технологии", а все остальное "не так интересно"

Отсюда следует считать, что ты опять пытался выставить свою крутость на показ (словоми типа "да я вам щас напишу - обзавидуетесь"), а увидев "реально крутой" пример настаиваешь на том, что ничего кроме dotNET`а здесь выкладываться не должно, соответственно отмазываясь от сказанных слов, т.к. на НЕТе ты писать ничего не будешь из принципа.

Хакер писал(а):Что странного в сочетании тех двух сообщений?
Хакер писал(а):Ну хорошо: чем они взаимоисключаются друг-друга?
Я более чем уверен, что ты понял о чем речь - не дурак же.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Палитра как в Photoshop

Сообщение Mikle » 06.03.2009 (Пт) 18:50

Aproksimus
Я не смухлевал, можно подобрать характеристику распределения, как в фотошопе, все равно это задается предварительно и не влияет на быстродействие результата.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Палитра как в Photoshop

Сообщение Хакер » 06.03.2009 (Пт) 20:18

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

..., что другой:
создается впечатление, что для тебя только твое мнение верное, и совсем не допускаешь мысли что ты не прав!

Ну раз они пишут, думаю я, наверное не раз становились свидетелями (и без труда предоставлят ссылки) того, как я ошибался, куча людей доказывала мне это, но я всё равно считал своё мнение — единственно верным, а себя — высшей инстанцией.

Отсюда следует считать, что ты опять пытался выставить свою крутость на показ

Это твоё больное восприятие, не более. Жалко нет Antonariy, он бы присоединился.

а увидев "реально крутой" пример настаиваешь на том, что ничего кроме dotNET`а здесь выкладываться не должно,

Вот наглость, а? :shock: Выдумать то, чего не было, а потом обвинить в этом кого-нибудь.
Чел, а чел? Где (предоставь ссылку) я настаивал, чтобы "ничего кроме dotNET`a здесь не выкладывалось"? У тебя хватает наглости выдумавать такие высказвания?
У тебя хватает наглости брать сообщение, смысл которого "Mikle, твой пример интересен, но не так сильно, как если бы ты использовал в нём чистый dotnet", и выдавать его за требование "что ничего кроме dotNET`а здесь выкладываться не должно"?
У тебя хватает совести использовать слово "настаиваешь", говоря о том сообщении? Чел, ты адекватен, трезв? Ты понимаешь значение слова "настаивать"? Ты осознаёшь, что даже если бы я написал не "не так интересно", а "абсолютно неинтересно", здесь близко нет никакого настаивания?

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

На самом деле, я был (и остаюсь) заинтересован в чистоте эксперимента. Мне было интересно выжать максимум из дотнета, и максимум из vb6, максимум из C++. Затем сравнить результаты. И уже выставить на показ крутость, но не свою, а Native-кода и x86-платформы, в противостояние .net-платформе, которая всё-равно зиждится N-коде и x86. А может быть дотнет бы не уступил, тогда бы я добавил +1 в свой собственный рейтинг этой технологии.

Второй твоей ошибкой было мнение, что я стал настаивать (фу!) после того, как увидел "реально крутой" пример. Я написал то самое сообщение до того, как запустил его. Когда я открыл проект, мне был интересен в первую очередь алгоритм, и когда я стал спускаться по call-tree, я наткнулся на функции из SR2D — библиотеки, полностью написанной на ассемблере, которую у автора было время вылизать и оптимизировать по максимуму. И тогда я написал сообщение, что смотреть такой пример мне не интересно.

Для меня этот пример не является крутым. Я хотел увидеть, насколько быстр может оказаться dotnet в задаче по расчёту 256x256 матрицы трёхкомпонентных элементов. Я хотел сравнить это с другими языками/платформами. Вместо этого я увидел, насколько быстро dotnet может вызывать функции из нормальной библиотеки.
Тот FPS, который светился в заголовке — для меня он не являлся показателем крутости примера. Для меня он не являлся показателем тормознутости дотнета или наоборот показателем его быстродействия. Для меня он оказался бесполезным. Совершенно неинтересным (о чём я и сказал), так как его нельзя было ни с чем сравнить.

Единственным, чем для меня был этот FPS, так это показателем крутости библиотеки SR2d. Но своё восхищение крутостью библиотеки, а также респекты автору я уже выразил в том же топике.

Так что пример для меня оказался абсолютно бесполезным.
Но не могу исключать, что найдутся люди, которые будут тащиться от vb.net-проекта, в котором вызываются быстрые функции и что для них этот пример (и ему подобные) будет иметь огромную роль как источник кайфа.
Поэтому я скроо-о-омненько так заметил, что это не совсем интересно, что это не интересно мне. Но я, открой же наконец глаза, ни на чём не настаивал.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 06.03.2009 (Пт) 21:31

Ответ на кинутый вызов:
Хакер писал(а):Чел, а чел?
Я тебе (уж извини) не чел. Если ты не знаешь меня по имени (тем более лично), то для этого существует ник.
Хакер писал(а):У тебя хватает наглости
Хватает, но не только ее, но еще и терпения.
Хакер писал(а):Чел, ты адекватен, трезв?
Не поверишь. Ни-за-что.
Хакер писал(а):Я до глубины души поражен тем, насколько сильно ты исковеркал смысл сообщения.
Не прикидывайся. Ты просто придираешься к словам.
Хакер писал(а):Хакер — тиран, деспот и самолюбивый ублюдок
:?
Хакер писал(а):открой же наконец глаза
Они открыты - читать твой пост с закрытыми глазами довольно сложно и непривычно :)

По вопросу:
Почему-то мне кажется, что твой пост не что иное, как попытка выкрутится из неловкой ситуации путем придирчивой оценки произнесенных мной слов с плавным уходом от основной темы. Я признателен тебе в том, что ты не поленился написать такой объем (в стиле многа букафф :) ) на столь животрепещущую тему, но все же проблема намного глубже и немного не в этом. Ну да и ладно, спорить с тобой - занятие бесполезное, так что я оставлю обсуждение данного вопроса на этом месте и поставлю от себя точку. Если у кого-то есть желание - продолжайте, у меня его нет, я не хочу бестолку постить никому не нужный текст. В любом случае не здесь (ибо это все-таки тематический форум, а не флудильня) и не сейчас.

Хакер, не мне тебя, конечно, судить...

Если ты и меня забанишь (как Скарабея), то на лицо будет еще одно доказательство того, что ты из себя представляешь как личность, даже абстрагировано от форумских привилегий.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Палитра как в Photoshop

Сообщение iGrok » 06.03.2009 (Пт) 21:44

[offtop]
MIT, по-моему Хакер всё-таки достаточно прозрачно описал свою точку зрения. И по-моему в его постах всё-таки нет ничего такого, о чём ты говоришь. Это так - чисто ради "мнения со стороны".

А насчёт скарабея.. Так извините. В правилах любого форума чётко прописаны санкции за "наезд" не по делу на модераториал (и администрацию в том числе). Как, впрочем, обычно(здешние не смотрел) и санкции за пользование альтернативными аккаунтами во время пребывания в выданном администрацией бане. И обычно это перманент.

При этом с чем я согласен - так это с тем фактом, что манеру общения Хакера никак нельзя назвать мягкой. Но обсуждение его личности у нас, помнится, в другом топике. (И, кстати, тоже несколько противоречит правилам любого форума..)
[/offtop]
label:
cli
jmp label

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Палитра как в Photoshop

Сообщение Mikle » 08.03.2009 (Вс) 10:09

Хакер
Согласен, в контексте тестирования скорости разных подходов на vb.net тест на sr2d неинтересен, это был ответ на ваш с MIT разговор - "А я напишу на асме, а я - на си, но быстрее".
Если подходить исключительно средствами net, тут возможны два подхода:

1. Попытаться переложить нагрузку на GDI+ (это ведь компонент net, в отличие от GDI ?)
2. Вычислить и занести в массив данные палитры вручную, сведя нагрузку на GDI+ к минимуму.

Первый подход я уже демонстрировал в прошлом примере, вот оптимизированный вариант. Правда от "похожести на фотошоп" приходится отказаться, но палитра не менее информативна и, возможно, даже удобнее, чем в фотошопе. Алгоритм такой - создаем в PictureBox Image с альфаканалом, в котором альфа градиентно распределена сверху-вниз, а остальные каналы справа-налево. В процедуре Render остается только записать цвет выбранной гаммы в BackColor и сделать Refresh, все за нас делает GDI+. У меня получается 680 fps. Если убрать Refresh, то получается 990000 fps и палитра работает! Но это говорит лишь о том, что net неплохо умеет отсеивать ненужные действия, при повторной записи одного и того же цвета в BackColor события смены BackColor не происходит, и только при записи нового значения происходит обновление картинки.
Быстродействие второго метода целиком зависит от нашего умения оптимизировать код. Во втором примере нагрузка на GDI+ сведена к минимуму - только Refresh одного Image без альфаканала. Данные палитры каждый раз рассчитываются и заносятся непосредственно в память, занимаемую Image. Тут полная "похожесть на фотошоп", тем не менее у меня 980 fps, а если вырубить Refresh, то 3650! Тут уже все честно, расчеты не пропускаются. Сомневаюсь, что это можно сильно ускорить.
Как видим, основной тормоз - GDI+, если принципиально пользоваться только Managed компонентами, остается заменить его на Managed DX (или XNA), других вариантов не вижу.
Вложения
PSPalGDI+.rar
Нагрузка на GDI+.
(99.46 Кб) Скачиваний: 110
PSPalNet.rar
Нагрузка на NET математику.
(102.05 Кб) Скачиваний: 101

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Палитра как в Photoshop

Сообщение Хакер » 08.03.2009 (Вс) 14:28

Mikle писал(а):это был ответ на ваш с MIT разговор - "А я напишу на асме, а я - на си, но быстрее".

Такого разговора с MIT'ом у меня не было.

Mikle писал(а):1. Попытаться переложить нагрузку на GDI+ (это ведь компонент net, в отличие от GDI ?)

Нет!

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

Что замерять? Просчёт, просчёт+отрисовку, отрисовку? В этом топике же не выработали единого соглашения насчёт этого.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Палитра как в Photoshop

Сообщение Nord777 » 08.03.2009 (Вс) 14:46

Хакер писал(а):Что замерять? Просчёт, просчёт+отрисовку, отрисовку? В этом топике же не выработали единого соглашения насчёт этого.
Полностью согласен. Видимо товарищам скучно :D

Добавлено:
Ребят, а для чего такая жестокая оптимизация в контроле с размером графической области 256х256 :?:
Вы хотите, чтобы от трения электронов процессор начал светиться? :D
На мой взгляд обьект для надругательлства выбран крайне неудачно.
В данном случае будет достаточно лишь написать код НЕ КРИВО.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Палитра как в Photoshop

Сообщение MIT » 08.03.2009 (Вс) 15:07

Хакер писал(а):Такого разговора с MIT'ом у меня не было.
И правда, ты что-то напутал.

Mikle писал(а):лгоритм такой - создаем в PictureBox Image с альфаканалом, в котором альфа градиентно распределена сверху-вниз, а остальные каналы справа-налево. В процедуре Render остается только записать цвет выбранной гаммы в BackColor и сделать Refresh, все за нас делает GDI+. У меня получается 680 fps. Если убрать Refresh, то получается 990000 fps и палитра работает!
Да, работает. Но как-то оно не так работает-то. На фотошоп ни ногой не похоже.

Кстати вот (немного оффтопа) интересно на чем ты тестировал (не то что бы не верю, просто интересно). Возьмем пример PSPalNet с обновлением. Результаты теста:
P4 2.8:
Изображение
Максимум - 313

AMD Athlon 64 x2 Dual 4200+:
Изображение
Максимум - 435

у тебя - 680 fps.


Касательно примера PSPalNet
он больше похож на правду, честно выдат на P4 2.8 280 fps, в то время как "PSPalNoRefresh.exe" не перерисовывается вообще и со скоростью 1500-2000 показывает стабильное одно-и-тоже.


Nord777 писал(а):Видимо товарищам скучно
:mrgreen:
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Пред.След.

Вернуться в Народный треп

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

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

    TopList  
cron