Как оптимизировать определение границ произвольной фигуры ?

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

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

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Pavia » 20.01.2017 11:29:38

vitaly_l писал(а):а потому что, прирост в скорости 3D-движка будет на 75% ферштейн или нибельмеса?

За счёт чего выигрыш возьмётся? Для правильных расчётов нужно выполнять перспективное интерполирование(не ленеыйная) для всех точек.
Для ускорения видео карты разбивают треугольники на прямоугольники и границы.
Даже если мы откажемся от треугольников у нас будут четырёхуголники которые не будут прямоугольниками. И они так же будут биться на квадраты и границы.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Mikhail » 20.01.2017 11:31:22

Pavia писал(а): Давно известно, что все 3D модели состоят из 4 угольников.

Да неужели? :D
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 11:41:47

Pavia писал(а):Для ускорения видео карты разбивают треугольники на прямоугольники и границы.

Pavia писал(а):За счёт чего выигрыш возьмётся?

Соответственно, даже из ваших слов - видна экономия времени видеокарты, которая аппроксимирует треугольники в прямоугольники, т.к. предлагаемой схеме, ей этого делать - уже ненужно. И она (видеокарта) может в это время попить кофе или порисовать какие-нить сложные фигуры.

Pavia писал(а):Даже если мы откажемся от треугольников у нас будут четырёхуголники которые не будут прямоугольниками. И они так же будут биться на квадраты и границы.

Для 4-х угольников, абсолютно все операции сокращаются ровно в 2 раза. Это уже 100% прирост на 50% в скорости отрисовки или при обработке.

Кстати, решение с GetPixel - сразу из адреса в памяти очевидно, но почему этого нет в стандартном TBitmap?

/
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Лекс Айрин » 20.01.2017 11:42:58

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

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Pavia » 20.01.2017 11:53:56

Mikhail писал(а):Да неужели?

При сечении твёрдого тела оно должно состоять из четырёхугольников иначе при сечении невозможно сохранить замкнутость фигуры. В гранях могут появиться дыры, т.е. оно перестанет быть твёрдым.
Поэтому 4-угольники применяются в таких САПР как SolidWorks. И в 3D-рисовалках.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Mikhail » 20.01.2017 11:59:12

Pavia писал(а):При сечении твёрдого тела оно должно состоять из четырёхугольников иначе при сечении невозможно сохранить замкнутость фигуры. В гранях могут появиться дыры, т.е. оно перестанет быть твёрдым.
Поэтому 4-угольники применяются в таких САПР как SolidWorks. И в 3D-рисовалках.

:shock:
Откуда Вы почерпнули эту ахинею? Изучайте литературу по САПР и устройству твердотельных моделей в частности.
В порядке ликбеза, GPU умеет только точку, отрезок и треугольник. Все остальное строится из этих примитивов.
Mikhail
энтузиаст
 
Сообщения: 565
Зарегистрирован: 24.10.2013 16:06:47

Re: Как оптимизировать определение границ произвольной фигур

Сообщение olegy123 » 20.01.2017 12:18:30

как мне правильно сделать: есть отрезок и еще один отрезок но крепится перпендикулярно к первому.. сам узел крепления должен выделятся и может перемещаться.. как мне правильно сделать: делить первый отрезок на два и точку группировать с другими двумя или делать общую точку для трех отрезков или фиксировать место узла ..
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Pavia » 20.01.2017 12:19:51

Откуда Вы почерпнули эту ахинею? Изучайте литературу по САПР и устройству твердотельных моделей в частности.
В порядке ликбеза, GPU умеет только точку, отрезок и треугольник. Все остальное строится из этих примитивов.

В порядке ликбеза GPU с появлением универсальных вичислительных блоков больше не работает с примитивами. Это было где-то в 2000-2004 году.
А по поводу САПР это вам надо ознакамливаться.
При потери фигуры замкнутости становиться не возможным сделать её заполнение распечатать на 3D принтере или отфрезировать на станке.
Вы бы сами попробовали сделать заполнение G-кодом не замкнутую поверхность.
Это всеравно что нарисовать в паинте фигуру, но оставить дырку и поопробовать её залить. Всё выльется за её приделы.
Поэтому фигура должна быть замкнутая и в 3D САПР это можно гарантировать только при использовании четырёхугольников.
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 12:24:09

Pavia писал(а):Поэтому фигура должна быть замкнутая и в 3D САПР это можно гарантировать только при использовании четырёхугольников.

Ну это безусловно чушь, т.к. 4-х угольник легко разбивается на два треугольника и 3D-САПР нервно курит в сторонке.

Mikhail писал(а):В порядке ликбеза, GPU умеет только точку, отрезок и треугольник. Все остальное строится из этих примитивов.

Вы хотите сказать, что мы тут действительно, случайно - придумали крутой копирайт с 4-х угольниками? (с) :cry: :cry: :cry:
Теперь довольные художники будут танцевать крутую аджигу до конца дней! :wink:

:arrow: Вообще если взять, например текстовый 3D-формат *.obj, то там исключительно только треугольники и вся структура под них.
Но другие более продвинутые форматы, могут хранить данные в: 3-х, 4-х, 5-и и даже в 12-ти - угольниках.
А вот как это отрисовывают 3D-движки, мне неизвестно т.к. я видел только треугольные коды и умею работать только с ними,
теперь попробую поменять *.obj на придуманный формат *.4obj

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Pavia » 20.01.2017 12:24:38

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

Разделяйте модель управление и представление MCV.
В модели должны быть цельные отрезки. Узел вычисляете при перемещение мышки в классе control/управление.
Хранить узлы отдельным массивом для передачи их в классе представления(отображения).
Аватара пользователя
Pavia
постоялец
 
Сообщения: 290
Зарегистрирован: 07.01.2011 12:46:51

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Лекс Айрин » 20.01.2017 12:27:53

Pavia писал(а):А по поводу САПР это вам надо ознакамливаться.


... сказали человеку ее пишущему.

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


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

Re: Как оптимизировать определение границ произвольной фигур

Сообщение olegy123 » 20.01.2017 12:31:49

Pavia писал(а):В модели должны быть цельные отрезки.

просто я не до конца понимаю как мне разделять отрезки и их концы.. где один конец может быть общим для другого отрезка..
или представить проще набор точек и их графы(принадлежность к точкам)?
olegy123
долгожитель
 
Сообщения: 1643
Зарегистрирован: 25.02.2016 12:10:20

Re: Как оптимизировать определение границ произвольной фигур

Сообщение vitaly_l » 20.01.2017 12:36:02

Лекс Айрин писал(а):ЗЫ: вы бы хоть постыдились такое говорить... вдруг школьники услышат и по геометрии кол получат. Как, например, при сечении правильной треугольной пирамиды получить четырехугольник? А пятиугольной?

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


.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Как оптимизировать определение границ произвольной фигур

Сообщение Лекс Айрин » 20.01.2017 12:46:46

vitaly_l писал(а):т.к. добавьте одну точку, в пятиугольную пирамиду и получите её в чистом виде состоящую из трёх прямоугольников.


Куда? Фигура есть сущность уже установленная и при ее изменении уже будет совсем другой фигурой. Единственное, где я действительно ложанулся, так это в том, что в случае не треугольной пирамиды есть способ сделать четырехугольный разрез. (но не обязательно прямоугольный) В случае треугольной такого способа я не знаю... Уже давно пытаюсь... с утра.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Как оптимизировать определение границ произвольной фигур

Сообщение zub » 20.01.2017 12:52:07

>>Поэтому фигура должна быть замкнутая и в 3D САПР это можно гарантировать только при использовании четырёхугольников.
Поэтому фигура представляется набором ограничивающих поверхностей, вовсе необязательно плоских - конических, нурбс, ну и плоскостей конечно. а что там в итоге получится после расчета всех пересечений, и чем всё это дело апроксимирует видеокарта чтоб отобразить - совсем другое дело.
Как четырехугольник влияет на замкнутость? он точно такойже в этом отношении как треугольник. Вы наверно путаете с полскостью
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Пред.След.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Google [Bot] и гости: 235

Рейтинг@Mail.ru
cron