SVG: проблема с отрисовкой [Графика, форматы]

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение Лекс Айрин » 05.06.2017 12:33:45

vitaly_l писал(а):Такой учебник только Перельману в кайф, читать вместо нюней Достоевского.


К сожалению, он ни возразить, ни подтвердить уже не сможет(((

vitaly_l писал(а):А высказался я "так странно" про математику, т.к. Pavia - дал мне гиперссылку на учебник по высшей математике на 1000-чу страниц.

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

vitaly_l писал(а):Чё-то нашему Zub-ику и команде - ничего не дали: ни премии, ни звания, а программу они написали!


Все еще впереди. Плюс, он сам не считает свою программу дописанной. Плюс, надо набрать определенных форматов.

vitaly_l писал(а):Программировать нужно, ТО, что вам интересно. САПр - мне не интересен и я прекрасно понимаю, что это очень сложно. Но и его я смог бы написать, если бы рядом со мной был математик, который бы мне дешифровал всё чёртовы мат. формулы на русский язык и смог бы в итоге проверить точность вычислений, после создания алгоритмов.


В общем, слабО. Ранее ты говорил о готовности написать все это в одиночку, без привлечения математика.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение veb86 » 05.06.2017 13:51:36

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

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

Найти математика который мог разговаривать с программистом на одном языке это уже сложная задача.
Чё-то нашему Zub-ику и команде - ничего не дали: ни премии, ни звания, а программу они написали! И внешне там довольно много инструментов (в смысле на ней можно реально работать, сейчас проверю).

Собственно из-за этого и вмешался в диалог. Zcad написан одним человеком это zub, нет у него ни какой команды, только советчики. Я полтора года присутствую в проекте, но назвать себя прям программистом не могу. В основном делаю скрпитоподобные приблуды. Сам проектировщик и могу сказать, что в программе можно вполне работать. И это лучший опенсоурсный CAD на сегодняшнее время, LibreCAD хуже. Язык написания хороший, код если ты программист читабельный. Нехватка комментариев, это не беда, zub всегда на связи. Вместо обсуждений того чего не хватает его проекту, лучше вмешаться и помочь. А не каждому пилить свой CAD.
MylnikovDm << Вы писали что делали движок, что то там развивали, а могли взять и подтянуть движок ZCAD сделать от него форк и сделать свой продукт. А так Ваш вклад в общее развитие открытых CAD систем нулевой. И следующие люди должны будут пройти туже самую дорогу что и Вы снова. А могли бы взять готовый движок изучить и доработать под свою задачу.

Ни кого не хотел обидеть. Знаю, я наивный чукотский мальчик. Zub-а в обиду не дам!!! :D
veb86
новенький
 
Сообщения: 62
Зарегистрирован: 16.03.2016 12:58:35

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение MylnikovDm » 05.06.2017 15:06:27

veb86 писал(а):MylnikovDm << Вы писали что делали движок, что то там развивали, а могли взять и подтянуть движок ZCAD сделать от него форк и сделать свой продукт. А так Ваш вклад в общее развитие открытых CAD систем нулевой. И следующие люди должны будут пройти туже самую дорогу что и Вы снова. А могли бы взять готовый движок изучить и доработать под свою задачу.

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

Что касается развития открытых CAD, точнее BIM систем, то в плана было открыть как минимум часть кода для свободного использования, когда там будет что открывать, поскольку пока в плане собственно BIM всё очень сырое. Возможно даже, что мы выпустим одну из урезанных версий в свободное плавание. Но в целом данный проект коммерческий. За его разработку нам платят деньги, чтобы в перпективе на этом заработать и окупить понесённые затраты.
MylnikovDm
постоялец
 
Сообщения: 103
Зарегистрирован: 15.02.2007 21:26:10
Откуда: Челябинск

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение vitaly_l » 05.06.2017 16:42:38

veb86 писал(а):Как так можно говорить, это очень сложная наука.

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

MylnikovDm писал(а):у нас несколько более обширная задача и под неё делается более сложный движок

У вас есть BGRA - они используют процессор, поэтому медленно. OpenGL - понятно. А что есть третий вариант в чём секрет?

MylnikovDm писал(а):Если бы нам подошёл движок от ZCad

ZCad - оказался очень шустрой программой. Я не нашёл там использование шейдеров видео карты силами OpenGl - это там есть?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение veb86 » 05.06.2017 17:05:01

Если бы нам подошёл движок от ZCad, то уверяю вас, я бы так и сделал. Но, увы, у нас несколько более обширная задача и под неё делается более сложный движок, чем есть сейчас в ZCad.

Наверное на ранних стадиях проекта всегда стоит более обширная задача и под такую задачу надо все свое.
Что касается развития открытых CAD, точнее BIM систем, то в плана было открыть как минимум часть кода для свободного использования, когда там будет что открывать, поскольку пока в плане собственно BIM всё очень сырое. Возможно даже, что мы выпустим одну из урезанных версий в свободное плавание. Но в целом данный проект коммерческий. За его разработку нам платят деньги, чтобы в перпективе на этом заработать и окупить понесённые затраты.

Всегда казалось что CAD и BIM системы идут рука об руку. Только BIM это следующая ступень эволюции, т.е. все равно вначале CAD. Инструментарий должен быть хорошо развит и для простого черчения и для БИМ.
Когда человек работает в компании то понятно что все решения опираются на созданные ранее разработки, но когда люди в силу не желания разобраться с уже готовым кодом и влиться в команду, начинают переписывать все с нуля - это странно. Главное если проект провалится выложите исходники на изучение молодым. А так удачи в развитии BIM, жду отечественный ответ на возможности Revit.
Флуд прекращаю :)

Добавлено спустя 26 минут 43 секунды:
vitaly_l писал(а):Ненужно делать из математики слона.
Когда владеешь знаниями: математика - точно такая же лёгкая наука как и все остальные.

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

MylnikovDm писал(а):Если бы нам подошёл движок от ZCad

vitaly_l писал(а):ZCad - оказался очень шустрой программой. Я не нашёл там использование шейдеров видео карты силами OpenGl - это там есть?

Я первый раз был в шоке, скорость работы на уровне других CAD, наличие инструментария, поэтому и сделал вывод что это лучший open source CAD.
veb86
новенький
 
Сообщения: 62
Зарегистрирован: 16.03.2016 12:58:35

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение vitaly_l » 05.06.2017 17:55:27

veb86 писал(а):Перестань, математика очень ветвистая. Это линейная алгебра, тригонометрия, интегралы/дифференциалы, теория графов, матрицы, разного рода вельвет преобразования, генетические алгоритмы. Это все математика.

Когда человек стоит вначале пути, то всё кажется сложным. В том числе и первая относительно сложная программа, на Паскале. Но проходит немного времени и вуаля, вы пишете код с пугающей лёгкостью, даже не задумываясь. Тоже самое и с математикой. Ещё вчера я задавался алгоритмами Безье, уже завтра - это станет, просто решать: как дважды два. Так что не преувеличивайте. Знать действительно нужно много, но математика, это - не сложная наука.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение MylnikovDm » 05.06.2017 18:05:05

vitaly_l писал(а):У вас есть BGRA - они используют процессор, поэтому медленно. OpenGL - понятно. А что есть третий вариант в чём секрет?

У BGRA очень плохое программирование, ресурсоёмкое. Как таковой оптимизации алгоритмов практически нет, в основном всё реашется в лоб. Кругом вещественная арифметика. При этом нет поддержки многопоточности, поэтому весь рендер изображения идёт на одном ядре процессора. Поэтому медленно.

OpenGL для вывода на экран сейчас фактически вне конкуренции, поскольку позволяет в полной мере задействовать аппаратные возможности видеокарты для построения изображения. Поэтому вывод на экран будем делать именно через него. Варианты типа DirectX и тому подобных, которые работают только на MS Windows не рассматриваются в виду того, что изначально ставится условие кроссплатформенности. Кстати, с точки зрения переноса кода между платформами Lazarus оказался очень хорошо. У нас был до этого опыт разработки приложений на Qt/С++, но там при переносе между платформами приходилось весьма много править под каждую платформу. А у Lazarus'а достаточно было поставить оболочку и необходимые библиотеки, после чего все наши тестовые проекты, в том числе с выводом 3Д графики, собрались и заработали без какой-либо дополнительной доработки.

Что касается третьего варианта, то нам необходим рендер с поддержкой прозрачности и сглаживания для вывода на печать или в растр изображений большого формата. OpenGL для этого, к сожалению, не очень подходит. То есть, теоретически с его помощью можно провести рендер в произвольный битмап, а не на экран, но там есть определённые ограничения и проблемы, типа невозможности задействовать графический ускоритель для растров, размер которых больше максимально поддерживаемого разрешения экрана. А у нас бывают чертежи размером в несколько метров, для которых необходимо обеспечить разрешение не ниже 300 dpi. Поэтому на данный момент предполагается сделать свой рендер для внутреннего метафайла, по логике работы напоминающий BGRA, но использующий многопоточность и более эффективные алгоритмы построения примитивов и сглаживания через целочисленную арифметику с фиксированной точкой. В связи с тем, что набор базовых примитивов у внутреннего метафайла не очень большой, то работа не такая уж сложная. Но мы ей планируем заниматься не прямо сейчас, а когда нам потребуется делать вывод на печать, то есть где-то через полгода.

vitaly_l писал(а):Я не нашёл там использование шейдеров видео карты силами OpenGl - это там есть?

А для чего в ZCad может потребоваться использование шейдеров?

veb86 писал(а):Когда человек работает в компании то понятно что все решения опираются на созданные ранее разработки, но когда люди в силу не желания разобраться с уже готовым кодом и влиться в команду, начинают переписывать все с нуля - это странно. Главное если проект провалится выложите исходники на изучение молодым. А так удачи в развитии BIM, жду отечественный ответ на возможности Revit.

Мы вполне отдаём себе отчёт в том, что имеющими силами нам Autodesk с их Revit'ом по функциональности не переплюнуть. Поэтому мы такую задачу себе и не ставили.
Что касается возможностей разобраться с готовым кодом, то я вас уверяю, что у нас достаточно квалификации, чтобы разобраться с любым кодом. Мне лично приходилось несколько раз участвовать в рефактоинге уже готовых чужих проектов для выпуска новой версии. И мы не переписываем всё с нуля. У нас есть масса собственных наработок, которые мы активно используем в своём проекте. Поэтому вопрос стоял не о том, чтобы написать всё с нуля, а в том, тратить ли время на изучение чужого кода, либо развивать свой до необходимого уровня. При этом мы и так на изучение имеющихся библиотек и проектов, включая упомянутый ZCad, потратили больше двух месяцев.
MylnikovDm
постоялец
 
Сообщения: 103
Зарегистрирован: 15.02.2007 21:26:10
Откуда: Челябинск

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение Alex2013 » 05.06.2017 19:06:51

У меня процессе чтения развития темы сложилось впечатление, что тут каждый говорит про что-то свое .
А исходный вопрос так и висит воздухе ... :idea:

Может все-же вначале стоит прояснить цели, которые реально преследует автор топика ?
(Тем более что проблемы с SVG волнуют многих и меня в том числе )

У меня возник ряд уточняющих вопросов: (ответы на которые как мене кажется сделают дискуссию более предметной )

1 Где именно и в какой форме будет применяется изображения в формате SVG ?
2 Будет ли нужно динамическое построение графики ? ( Например построение диаграмм )
3 Будет ли SVG нужен только для показа изображений в браузере ?
4 Почему выбран именно стандарт SVG если есть много альтернатив ?

Зы
Создание статических изображений в формате SVG точно не как не проблема (практически любой профессиональный векторный редактор умеет экспортировать изображения в SVG-формат ) . А для создания динамических веб-приложений (как показывает мой опыт) использование браузерных SVG -расширений далеко не самое удачное решение ... (Очень высоки проблемы совместимости особенно с поделками от MicroSoft )Тоже причем в еще большей степени касается и расширений самого SVG (типа анимации, слоев , прозрачности и т.п. ) впрочем многое можно сделать средствами html ( особенно с дополнением различными скриптами ) но к SVG формату это отношения иметь не будет ....
Зы Зы
Быстрый векторный 2Д-двжок для показа чистого показа чертежей, как мне кажется, не нужен в принципе .
Нужна ступенчатая детализация и возможность быстрого "математического обрезания" невидимой части чертежей .
Скорости вывода в ~1000 примитивов в секунду (ИМХО) более чем достаточно для удобного просмотра
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение vitaly_l » 05.06.2017 19:36:53

Alex2013 писал(а):А исходный вопрос так и висит воздухе ... Тем более что проблемы с SVG волнуют многих и меня в том числе

Модуль работает - но неправильно. Зависит от того, в какой программе сохранён SVG-xml. Если в InkScape, то модуль читает, а если в программе топик стартера - то не читает PATH. Кроме того, при отрисовке путаются Z положения элементов. Судя по ассоциации, SVG - сохраняется в порядке кликов по элементам. И точно также рисуется модулем Лазаруса. Поэтому они (слои) в итоге получаются в неправильном порядке. Это можно нивелировать, если в SVG файле(в редакторе) сгруппировать все объекты

Alex2013 писал(а):расширений самого SVG (типа анимации

Анимация SVG выглядит так:
https://tympanus.net/Development/SVGDra ... index.html

Описание как это делается здесь:
https://habrahabr.ru/post/207908/
https://msdn.microsoft.com/ru-ru/librar ... 79(v=vs.85).aspx

.
Последний раз редактировалось vitaly_l 05.06.2017 20:41:45, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение zub » 05.06.2017 20:21:50

>>Быстрый векторный 2Д-двжок для показа чистого показа чертежей, как мне кажется, не нужен в принципе .
>>Нужна ступенчатая детализация и возможность быстрого "математического обрезания" невидимой части чертежей .
Первая строчка без второй невозможна в принципе.

>>Скорости вывода в ~1000 примитивов в секунду (ИМХО) более чем достаточно для удобного просмотра
окстись, так рисовали во времена 8086
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение Alex2013 » 05.06.2017 23:58:14

zub писал(а):>>Быстрый векторный 2Д-двжок для показа чистого показа чертежей, как мне кажется, не нужен в принципе .
>>Нужна ступенчатая детализация и возможность быстрого "математического обрезания" невидимой части чертежей .
Первая строчка без второй невозможна в принципе.

"Сказал как отрезал"... :D
... видимо проблема "внезапно возникшего непонимания" в том что я считаю "движком" в первую очередь то что обычно называют "игровым движком"... а там скорости даже при софтверном рендаринге требуются значительно выше 30-60 fps при огромном количестве полигонов и сложных моделях , цветном освещении тенях, условно реалистичной "физике" и прочих эффектах. (даже для условно 2д игр вроде СтарКрафта )

>>Скорости вывода в ~1000 примитивов в секунду (ИМХО) более чем достаточно для удобного просмотра
окстись, так рисовали во времена 8086

Ну добавь нулик или два (10 000 или даже 100 000 ПЛОСКИХ примитивов в секунду) все равно даже с движком многих RTS разработки конца 90-х сравнить трудно ...(А там еще звук игровой-ИИ и еще много чего при довольно кудрявых разрешениях экрана )

https://www.youtube.com/watch?v=dU3t-HBFnAg
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение olegy123 » 06.06.2017 00:37:31

Alex2013 писал(а):1 Где именно и в какой форме будет применяется изображения в формате SVG ?
2 Будет ли нужно динамическое построение графики ? ( Например построение диаграмм )
3 Будет ли SVG нужен только для показа изображений в браузере ?
4 Почему выбран именно стандарт SVG если есть много альтернатив ?

1)Векторная форма она удобна, она очень хорошо идет под векторные акселераторы..
2) Желательно.
3) У меня есть подозрение, что в итоге будет Web3.0=SVG.
4) Потому, что иного не было - не исключено, что он родился "по пьяни"..

Добавлено спустя 10 минут 7 секунд:
MylnikovDm писал(а):У BGRA очень плохое программирование, ресурсоёмкое. Как таковой оптимизации алгоритмов практически нет, в основном всё реашется в лоб. Кругом вещественная арифметика. При этом нет поддержки многопоточности, поэтому весь рендер изображения идёт на одном ядре процессора. Поэтому медленно.

BGRA создавалось как замена Canvas с альфой. Растр сложно с оптимизировать - даже под GPU это сложная задача.
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение vitaly_l » 06.06.2017 08:20:43

Alex2013 4 Почему выбран именно стандарт SVG если есть много альтернатив ?
olegy123 4) Потому, что иного не было - не исключено, что он родился "по пьяни".
Нет не по пьяни! он сделан на XML и поэтому легко читается программистами. Расчёт, такой же как в HTML, а именно: легко читаемый формат, на любой платформе, любым программистом. XML делает формат SVG очень доступным для широкой аудитории, т.к. с бинарными форматами работать "сложнее", а равно и с индивидуальными текстовыми - нужно придумывать архитектуру парсера чтения. А xml - везде имеет одинаковый алгоритм чтения/записи.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение zub » 06.06.2017 08:32:02

vitaly_l
>>... XML ...
Оды XMLу? любой текстовый формат прекрасно читается. Вообще в данном случае невижу полюсов. Темболее имеем какуюто мешанину структурированого xml и необходимости "наколенных" парсеров - теже координаты патчей записаны в виде простой строки.
Такчто по пъяни 100%
ИМХО
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: SVG: проблема с отрисовкой [Графика, форматы]

Сообщение vitaly_l » 06.06.2017 08:36:57

zub писал(а):Оды XMLу? любой текстовый формат прекрасно читается. Вообще в данном случае невижу полюсов. Темболее имеем какуюто мешанину структурированого xml и необходимости "наколенных" парсеров - теже координаты патчей записаны в виде простой строки.
Такчто по пъяни 100%

нет. просто программистам - удобно было взять один стандартный формат передачи данных на все случаи жизни. и этим стандартом сделали ХМL. Теперь, один XML парсер позволяет открыть любой формат данных. Но я XML не люблю, мне больше нравятся компактные форматы..
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Пред.След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru