Re[2]: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 29.07.17 17:56
Оценка:
Здравствуйте, velkin, Вы писали:

V>Теперь, что касается связывания объектов:

V>1. Во время компиляции (compile time)
V>2. Во время исполнения (runtime)

V>Каждая парадигма реализует свои варианты связывания, да и объекты в данном случае условное понятие, скажем так это данные и методы работы с ними.


V>Object Management Group (OMG) и другие уже давно исследуют способы гибкого управления объектами, но если обобщить существуют всего два подхода:


V>1. Передача данных

V>2. Передача методов
...

Есть ещё один способ — через компиляцию производных пользовательских классов во время исполнения основной программы с помощью встроенного компилятора.
Кстати, мне интересно попробовать именно этот способ для борьбы с комбинаторным взрывом.
Re: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 30.07.17 21:07
Оценка:
Нашёл одну из первых версий LikeView



LikeView_Demo_1_0_0_0.zip

Это делалось 7 лет назад.
Конечно есть ряд глюков и багов.
Если винда будет отчаянно бороться за свой курсор — то кликните в меню.
Чтобы хорошенько поиграться с демкой — прочитайте описание — Description.
Re[2]: Тензорная архитектура на примере интерактива
От: Stanislav V. Zudin Россия  
Дата: 31.07.17 05:28
Оценка: +1
Здравствуйте, LVE, Вы писали:

LVE>Нашёл одну из первых версий LikeView


Занятная игрушка.
Стресс-тесты делал?
Скажем, пару миллионов примитивов без анимации нарисовать сможет?
Что-то подобное рисовать можно?
  Кусок платы


При работе с тяжелой графикой приходится оперировать с несколькими представлениями одних и тех данных. Скажем, пользователь редактирует объекты, которые лежат в структурах данных в, так сказать, исходном виде, при этом поиск выполняется в 2Д-(или 3Д-)хеше, а рисуются те же объекты, но в триангулированном виде, которые хранятся в виде массива вершин. И таких представлений могут быть десятки — зависит от решаемых задач.
Если в собственном движке все эти представления данных хорошо укладываются и выводятся одни из других, то как с этим обстоят дела в универсальных движках?
Вот в твоей архитектуре это учитывается? Её можно будет применить для рисования через OpenGL/DirectX?

Кстати, поделюсь опытом. В одном из проектов мой предшественник , которого покусал Александреску, применил Визитёра для работы с данными.
Всё было сделано так, как ты мечтал — никакого комбинаторного взрыва , все операции над объектами проходят через единственный метод, а в зависимости от визитёра, подсунутого в этот метод, мы получаем и поиск, и рисование, и формирование тултипов, и перебор объектов с какими-то трансформациями...
Но вот проблема в том, что такой приём хорош для лабораторной работы в институте. А в реальной жизни, когда число объектов выросло до пары тысяч вся программа встала колом. Потому что перебор через Визитёр вырождался в O(N^2). А уж отлаживать такой код — проще повеситься. Нам стоило немалых усилий, чтобы выпилить этот шлак и заставить работать как надо.
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 31.07.17 05:46
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

LVE>>Нашёл одну из первых версий LikeView


SVZ>Занятная игрушка.

Спасибо.

SVZ>Стресс-тесты делал?

SVZ>Скажем, пару миллионов примитивов без анимации нарисовать сможет?
В некотором смысле — да.
У сложных объектов — сделал буферизацию.
У сетки и хендлов — быстрый растровый вывод.
Так что это зависит от уровня рукожопости.

SVZ>Что-то подобное рисовать можно?

Без проблем. Была бы только объектная модель.
Для примера — нажмите Ctrl+D — это дебажная отрисовка.

SVZ>При работе с тяжелой графикой приходится оперировать с несколькими представлениями одних и тех данных. Скажем, пользователь редактирует объекты, которые лежат в структурах данных в, так сказать, исходном виде, при этом поиск выполняется в 2Д-(или 3Д-)хеше, а рисуются те же объекты, но в триангулированном виде, которые хранятся в виде массива вершин. И таких представлений могут быть десятки — зависит от решаемых задач.

Да. С графами работа отлажена через списки зависимых компонентов.

SVZ>Если в собственном движке все эти представления данных хорошо укладываются и выводятся одни из других, то как с этим обстоят дела в универсальных движках?

SVZ>Вот в твоей архитектуре это учитывается? Её можно будет применить для рисования через OpenGL/DirectX?
Думаю, что здесь будет проблема с HitTest.

SVZ>Кстати, поделюсь опытом. В одном из проектов мой предшественник , которого покусал Александреску, применил Визитёра для работы с данными.

SVZ>Всё было сделано так, как ты мечтал — никакого комбинаторного взрыва , все операции над объектами проходят через единственный метод, а в зависимости от визитёра, подсунутого в этот метод, мы получаем и поиск, и рисование, и формирование тултипов, и перебор объектов с какими-то трансформациями...
SVZ>Но вот проблема в том, что такой приём хорош для лабораторной работы в институте. А в реальной жизни, когда число объектов выросло до пары тысяч вся программа встала колом. Потому что перебор через Визитёр вырождался в O(N^2). А уж отлаживать такой код — проще повеситься. Нам стоило немалых усилий, чтобы выпилить этот шлак и заставить работать как надо.



Тогда я тоже поделюсь опытом.
Во многих подобных иерархиях для компонента делают привязку на родителя или владельца.
Это отнимает внимание программиста на связку компонентов, не говоря уже про небольшой расход памяти.
А когда делаешь многостраничный вывод холста — то эти связки только мешают.

Тогда я поступил просто: Я делаю стек текущих компонентов в классе Контекста.
Экземпляр контекста я передаю в методы компонента при всяких иерархических обходах модели.
Получается так — с какой бы стороны я не зашёл в компонент, его метод знает историю обхода.
Отредактировано 31.07.2017 12:35 LVE . Предыдущая версия .
Re[7]: Тензорная архитектура на примере интерактива
От: vmpire Россия  
Дата: 31.07.17 15:40
Оценка:
Здравствуйте, LVE, Вы писали:

LVE>Сейчас я вылез из норы.

LVE>Я теперь понимаю, что в архитектурном новаторстве действительно отстал.
Ничего, нагоните. Если фундаментальная база есть — то нагоните быстро.

LVE>Однако если будет интерес к теме интерактивной библиотеки, то я готов к сотрудничеству.

Лично у меня нет потребности, но может кому-то и пригодится.
Небольшой совет: сделайте демо в виде видео, с красивыми картинками и примерами API. Может, кто-то заинтересуется.
Можно послать демо разработчикам разных ыизуальных компонентов, такая целевая реклама часто работает лучше.
Re[8]: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 31.07.17 15:51
Оценка:
Здравствуйте, vmpire, Вы писали:

LVE>>Однако если будет интерес к теме интерактивной библиотеки, то я готов к сотрудничеству.

V>Лично у меня нет потребности, но может кому-то и пригодится.
V>Небольшой совет: сделайте демо в виде видео, с красивыми картинками и примерами API. Может, кто-то заинтересуется.
V>Можно послать демо разработчикам разных ыизуальных компонентов, такая целевая реклама часто работает лучше.

Спасибо за добрые слова.
Однако Вы не поняли — библиотека уничтожена из принципиальных соображений.
Я здесь показал то, что случайно осталось.
Теперь всё надо начинать заново, если будет поддержка.
Re: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 31.07.17 16:06
Оценка:
Немного о наболевшем.
Я не случайно наезжаю на Макса Шеманарёва и его agg.

1. Очень неудобно работать с agg.
Его шаблоны битмапов угнетают всю работу.
Лучше бы он менял указатели на функции, и грубо кастил указатели на данные.

2. Я уже писал о том, что не надо сортировать сканлайны.
Достаточно просто транспонировать вектор векторов.
Прирост производительности для кривых и полигонов — до 30%.

3. Создавать графические объекты на стеке — очень не эффективно.
Мне нужен корневой графический класс, чтобы я обновлял его производные только при необходимости.

4. Короче — у меня есть хорошая идея — сделать 2Д рисовалку и интерактив — в одном флаконе.
Re[8]: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 31.07.17 16:39
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Лично у меня нет потребности, но может кому-то и пригодится.


Вот именно!
На нахрапистых ура-инвесторов я уже не рассчитываю.
На наших чинуш — тем более.

Однако, лично мне интересно сделать эту тему как пошаговое образовательное руководство с целью получения оптимального результата.
Много денег не надо. Достаточно 20 тыс.р. в месяц. + Премии до 10 тыс.р.
Вот такая простая стратегия.
Re[8]: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 31.07.17 16:52
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Небольшой совет: сделайте демо в виде видео, с красивыми картинками и примерами API. Может, кто-то заинтересуется.


LikeView2

LikeView3
Re[2]: Тензорная архитектура на примере интерактива
От: c-smile Канада http://terrainformatica.com
Дата: 02.08.17 21:13
Оценка:
Здравствуйте, LVE, Вы писали:

LVE>Немного о наболевшем.

LVE>Я не случайно наезжаю на Макса Шеманарёва и его agg.

LVE>1. Очень неудобно работать с agg.

LVE>Его шаблоны битмапов угнетают всю работу.
LVE>Лучше бы он менял указатели на функции, и грубо кастил указатели на данные.

"Павшие сраму не имут". Нет Макса с нами больше.

LVE>2. Я уже писал о том, что не надо сортировать сканлайны.

LVE>Достаточно просто транспонировать вектор векторов.
LVE>Прирост производительности для кривых и полигонов — до 30%.

Генерировать scanlines где-либо кроме GPU и его shaders — себя не любить.
Re[3]: Тензорная архитектура на примере интерактива
От: LVE https://www.proza.ru/avtor/woldemar1974lve
Дата: 03.08.17 16:14
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>"Павшие сраму не имут". Нет Макса с нами больше.


Ну, пипец. Надеюсь, что он был счастлив и не мучился.

Теперь кто-то должен продолжать его дело.

Был проект по портированию AGG на C# — это имхо фигня.
Уж лучше его портировать на голый Си. Делать структуры, указатели на функции и грубые касты.
Потом уже, можно сделать интерфейс для C#.
Это как в Москву через Владивосток. Зато в производительности не проиграешь.

Надо специальную тему где-то открыть...

Я открыл тему:
Проекты — Открытые проекты — AGG жив и будет развиваться!
Отредактировано 03.08.2017 19:58 LVE . Предыдущая версия . Еще …
Отредактировано 03.08.2017 16:31 LVE . Предыдущая версия .
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.