Перейти к содержимому


Фотография

DoubleBuffering: двойная буферизация графики

Буферизация Двойная Графика Окна Гуи Интерфейс

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 25

#1 Оффлайн   ECS

ECS
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 26 Октябрь 2015 - 04:26

*
Популярное сообщение!

4c72bfcbe8fbee5993bfd7a058a5f88a.png
 
Всем известно, что видеокарты в OpenComputers, мягко говоря, не торт. Чем больше вы обращаетесь к ее методам, будь то установка цвета или символа, тем больше ваш компьютер будет тормозить при отрисовке. Поэтому ко мне пришла идея реализовать так называемую двойную буферизацию, а также несколько алгоритмов ускорения местных GPU.
 
Подробная иллюстрированная документация, описание структуры, способы установки и несколько практических примеров доступны по ссылке:
https://github.com/I...bleBuffering.md


Сообщение отредактировал ECS: 02 Ноябрь 2017 - 04:36


#2 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 210
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

5                                 

Отправлено 26 Октябрь 2015 - 10:55

Проводилось ли какое либо тестирование на предмет эффективности предлагаемой библиотеки по сравнению со стандартным выводом на экран?

 

ECS? Такое ощущение, что давно знакомый человек сменил ник и аву.


Сообщение отредактировал Zer0Galaxy: 21 Март 2016 - 11:19


#3 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 26 Октябрь 2015 - 11:04

Проводилось ли какое либо тестирование на предмет эффективности предлагаемой библиотеки по сравнению со стандартным выводом на экран?

 

Ясен красен производилась. Собственно, для этого и писалась сама либа - во славу прироста скорости. Отдельные замеры проводить дико лень, ибо смысла убеждать себя в очевидных вещах нет, однако вон тут на 3:45 быстродействие будет четко заметно:

 


Сообщение отредактировал ECS: 26 Октябрь 2015 - 11:09

  • Mecopy6ka и krovyaka это нравится

#4 Оффлайн   cyber01

cyber01

    Техническая поддержка

  • Администраторы
  • Сообщений: 849
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

   2         

Отправлено 26 Октябрь 2015 - 11:29

@Zer0Galaxy, это EliteClubSessions 



#5 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 27 Октябрь 2015 - 14:49

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

 

4003a7bc65402317eba3600c758f4f7b.png


  • Alex, Fingercomp, Mecopy6ka и 2 другим это нравится

#6 Оффлайн   evgkul

evgkul
  • Пользователи
  • Сообщений: 366
  • Уровень сигнала: 0,01%
  • В игре: 0 час. 3 мин.

Награды

     

Отправлено 27 Октябрь 2015 - 15:20

Вот теперь есть повод его использовать :)



#7 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 28 Октябрь 2015 - 00:02

Добавил программку-демонстратор в установщик либы. Запускайте BufferDemo.lua, если надо.

 

383b39575822a142c67408a7a9de2d68.png


Сообщение отредактировал ECS: 28 Октябрь 2015 - 09:12

  • Alex, Fingercomp, Mecopy6ka и 3 другим это нравится

#8 Оффлайн   davial

davial
  • Пользователи
  • Сообщений: 437
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.
  • ГородТроон в системе Канопуса.

Награды

                    

Отправлено 28 Октябрь 2015 - 13:37

Чёрт. До боли напоминает другое время и другие компы. Бейсик на ZX в 80-х - 90-х. :)


  • Saintmare это нравится

#9 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 28 Октябрь 2015 - 14:55

Чёрт. До боли напоминает другое время и другие компы. Бейсик на ZX в 80-х - 90-х.

 

Кстати, алгоритм смешивания цветов (тени, прозрачность) мы сперли именно из QBasic IDE :D


  • Mecopy6ka и davial это нравится

#10 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 21 Март 2016 - 11:02

Небольшое, но крайне емкое обновление:

  • Увеличена скорость отрисовки в 1.5 - 2 раза посредством добавления третьего промежуточного буфера
  • Уменьшено количество обращений к CPU, уменьшено число операций сложения/вычитания
  • Улучшена система конвертации индексов
  • Добавлено больше благодарных комментариев в коде, славящих Krutoy за помощь в разработке.

Ну, и, собственно, демонстрация скорости работы:

 


Сообщение отредактировал ECS: 22 Март 2016 - 00:11


#11 Оффлайн   SDV

SDV
  • Пользователи
  • Сообщений: 655
  • Уровень сигнала: 33,35%
  • В игре: 204 час. 27 мин.
  • ГородO.R.E.N.B.U.R.G.

Награды

     

Отправлено 21 Март 2016 - 16:19

Молодец, Krutoy!

Помог человеку и засветился на его канале :D

А либа просто шикарная!



#12 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 397
  • Уровень сигнала: 0,17%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 21 Март 2016 - 16:43

Теперь в каждом новом видео светится моя прога  :)


Сообщение отредактировал qwertyMAN: 21 Март 2016 - 16:43


#13 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 26 Март 2016 - 20:22

В описание добавлены новые и не указанные ранее методы:

 

Спойлер

Сообщение отредактировал ECS: 26 Март 2016 - 20:27


#14 Оффлайн   unknown

unknown
  • Пользователи
  • Сообщений: 63
  • Уровень сигнала: 14,82%
  • В игре: 90 час. 52 мин.

Награды

     

Отправлено 29 Март 2016 - 19:44

В описание добавлены новые и не указанные ранее методы...
 


А кнопки и скроллбары возвращают что-нибудь? (Есть хендлер по клику? Текущее положение скроллбара? и т. д.)

#15 Оффлайн   Jet

Jet
  • Пользователи
  • Сообщений: 80
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.
  • ГородМосква

Отправлено 12 Май 2016 - 19:45

Идею для оптимизации надо? Или нет пределу совершенства.

GP2UiybfhpM.jpg

С символом "F" так вобще не 8 будет а 4.


Сообщение отредактировал Jet: 12 Май 2016 - 19:46


#16 Оффлайн   Seryoga

Seryoga
  • Пользователи
  • Сообщений: 107
  • Уровень сигнала: 0,42%
  • В игре: 2 час. 33 мин.
  • ГородSaint-Petersburg

Награды

        

Отправлено 12 Май 2016 - 20:11

Мне казалось, что у него так рисует:
b09bed391c0dc4502549de8f529d55d6.png



#17 Оффлайн   Jet

Jet
  • Пользователи
  • Сообщений: 80
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.
  • ГородМосква

Отправлено 12 Май 2016 - 20:50

Мне казалось, что у него так рисует:
b09bed391c0dc4502549de8f529d55d6.png

Ну рекурсивное заполнение буфера именно так выглядит. А рисование (само рисование) по строчкам, хотя можно отпимизировать.



#18 Оффлайн   DarthWirthe

DarthWirthe
  • Пользователи
  • Сообщений: 13
  • Уровень сигнала: 0,02%
  • В игре: 0 час. 7 мин.

Награды

        

Отправлено 22 Июнь 2016 - 17:15

Крутая библиотека.

Экран 160х50

На нижнем видно фпс (новая версия игры)

0G2dk.png

 

IhlKA.png

Просто пользуюсь ей часто)

 

Кстати, максимальный возможный фпс - 19 (пустой экран)


Сообщение отредактировал DarthWirthe: 23 Июнь 2016 - 14:27


#19 Оффлайн   Asummonster

Asummonster
  • Пользователи
  • Сообщений: 570
  • Уровень сигнала: 53,11%
  • В игре: 325 час. 32 мин.
  • ГородКиев

Награды

                    

Отправлено 22 Июнь 2016 - 18:23

Крутая библиотека.

Экран 160х50

На нижнем видно фпс (новая версия игры)

0G2dk.png

 

IhlKA.png

Просто пользуюсь ей часто)

Ого, что это на экране? Посмотреть исходники можно?



#20 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 397
  • Уровень сигнала: 0,17%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 22 Июнь 2016 - 19:01

Круто конечно, но ОС изначально не планировался для создание на ней игр. И 2 FPS тому свидетельство.

Не вижу смысла делать полноценные сложные игры на ОС. Для этого есть луа движки. Вон например я что накатал на love2D: атака бактерий и относительный космос.



#21 Оффлайн   Doob

Doob
  • Пользователи
  • Сообщений: 785
  • Уровень сигнала: 23,85%
  • В игре: 146 час. 10 мин.

Награды

                                   

Отправлено 22 Июнь 2016 - 19:26

Для экшон-шутеров OC не приспособлен, но какая-нибудь пиксельная казуальщина или продвинутые настолки работают прекрасно.

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


  • LeshaInc, davial и Kid это нравится

#22 Оффлайн   DarthWirthe

DarthWirthe
  • Пользователи
  • Сообщений: 13
  • Уровень сигнала: 0,02%
  • В игре: 0 час. 7 мин.

Награды

        

Отправлено 22 Июнь 2016 - 19:29

Ого, что это на экране? Посмотреть исходники можно?

Это порт моей старой игрули с CC на OC

Топик:

http://computercraft...ft-2d-rpg-game/

 

И еще OCEmu немного модифицированный мной


Сообщение отредактировал DarthWirthe: 22 Июнь 2016 - 19:38

  • Asummonster это нравится

#23 Оффлайн   Zer0Galaxy

Zer0Galaxy
  • Гуру
  • Сообщений: 1 210
  • Уровень сигнала: 0%
  • В игре: 0 час. 0 мин.

Награды

5                                 

Отправлено 23 Июнь 2016 - 10:57

И еще OCEmu немного модифицированный мной
Вау! Мне нравится этот эмулятор. Вот только почему то  основная файловая система readonly

#24 Оффлайн   qwertyMAN

qwertyMAN
  • Пользователи
  • Сообщений: 1 397
  • Уровень сигнала: 0,17%
  • В игре: 1 час. 3 мин.
  • ГородCity17

Награды

                             

Отправлено 23 Июнь 2016 - 12:34

Для экшон-шутеров OC не приспособлен, но какая-нибудь пиксельная казуальщина или продвинутые настолки работают прекрасно.

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

Ну вот например, отличная игра, Сапёр!

Или Lava runner от electronic_steve в которой очень круто можно бегать убегать.

 

Кто то говорит что у меня много рекламы своих игр. А я говорю что не только своих =)

 

Если вы заметили, это сообщение номер 666. Совпадение? Не думаю.


Сообщение отредактировал qwertyMAN: 23 Июнь 2016 - 16:20

  • electronic_steve это нравится

#25 Оффлайн   ECS

ECS
  • Автор темы
  • Гуру
  • Сообщений: 147
  • Уровень сигнала: 0,04%
  • В игре: 0 час. 13 мин.
  • ГородСанкт-Петербург

Награды

      7               

Отправлено 02 Ноябрь 2017 - 04:33

Проведен рефакторинг библиотеки с целью увеличения скорости отрисовки: все методы и поля таблиц, хоть как-либо используемые самой библиотекой, заменены на единоразово созданные локальные переменные. Удалена избыточная группировка по функциям. Изменен принцип растеризации отрезков. Добавлен метод buffer.formattedText, позволяющий изменять цвет текста в реальном времени через вставку синтаксических конструкций вида #RRGGBB.

 

Как результат - общая производительность выросла в ~3 раза по сравнению со старой версией библиотеки (первая пикча) и новой (вторая):

 

pP11Ijv.png?1

 

5bn9k6n.png?1


  • Alex, NEO, Doob и еще 1 это нравится

#26 Оффлайн   eu_tomat

eu_tomat
  • Хранители Кода
  • Сообщений: 789
  • Уровень сигнала: 0,05%
  • В игре: 0 час. 19 мин.

Награды

                          

Отправлено 02 Ноябрь 2017 - 08:42

все методы и поля таблиц, хоть как-либо используемые самой библиотекой, заменены на единоразово созданные локальные переменные.

Чётко! И сборщик мусора зря не напрягается, и результаты вычислений используются повторно.






Темы с аналогичным тегами Буферизация, Двойная, Графика, Окна, Гуи, Интерфейс

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных