Russian Qt Forum
Март 29, 2024, 14:37 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Выбор качества моделей  (Прочитано 10524 раз)
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #15 : Ноябрь 27, 2014, 15:09 »

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

Есть же игры, в них скажем 100К полигонов или 15К, к чему мне стремиться и как посчитать(скажем частоту умножить на количество конвееров еще на что то и получим что X полигонов будет оптимально)?
Скажем хороший тон это в пределах 500К полигонов?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #16 : Ноябрь 27, 2014, 23:09 »

deMax, вы, видимо, не поняли идею.
Нарисуйте в поле видимости 100К рандомных полигонов с помощью OpenGL. Они будут прорисовываться примерно с такой же производительностью, как и ваша модель. Потом увеличте количество до 500К. Только так вы оперативно сможете ответить на свой вопрос.
Или вы ожидаете готовый код?
« Последнее редактирование: Ноябрь 27, 2014, 23:10 от __Heaven__ » Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #17 : Ноябрь 28, 2014, 08:06 »

2__Heaven__Человек получил ответ который его не устроил. Он его просто игнорирует и продолжает задавать тот же вопрос. Это его право, но зачем повторять ответ который уже звучал раз 5?  Улыбающийся

Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #18 : Ноябрь 28, 2014, 16:06 »

зачем повторять ответ который уже звучал раз 5?  Улыбающийся
Ну, вдруг не понял, не уловил. Я попытался перефоазировать.
Не со злым намерением.
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #19 : Ноябрь 28, 2014, 16:37 »

2__Heaven__Человек получил ответ который его не устроил. Он его просто игнорирует и продолжает задавать тот же вопрос. Это его право, но зачем повторять ответ который уже звучал раз 5?  Улыбающийся
Как тестировать на практике мне понятно, любых 3d моделек можно и в интернете накачать и самому сделать нарисовав шар с нужной детализацией полигонов. У меня нет счас движка(тем более законченного, fps которого будет ниже при добавлении красоты или выше при оптимизации), и нет всех видеокарт для тестирования(только названия).
Я хочу понять как посчитать какое количество полигонов может проглотить видеокарта - Теоретически. (т.е. расчитать производительность по параметрам видеокарты, а не реального запуска программы)
Вот сейчас модель 6млн полигонов(не треугольных), допустим она будет ровно крутиться и с высоким фпс, мне кажется это не совсем нормально или если не тормозит то все замечательно и так можно? Может стандарты хорошего тона какие есть?

p.s. извините за кривой язык, но искал ответ только на выделенные 2 вопроса, возможно они глупые и на них ответа нет. где то видел тесты по полигонам но для древних видюх. В играх полигонов как правило мало, вот и думаю может есть правило какое?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #20 : Ноябрь 28, 2014, 18:13 »

Хочу немного вас поправить
количество конвееров
В OpenGL один конвейер, в котором участвует несколько GPU.
У меня нет счас движка(тем более законченного, fps которого будет ниже при добавлении красоты или выше при оптимизации)
Движки и fps, наверное, правильнее относить к играм. Как я понял, у вас CAD модель в единственном числе. В движках не шарю, но мне кажется, что применение их в отрисовке CAD будет неэффективным, по крайней мере в плане разработки. Термин FPS (количество кадров в секунду) больше применим к анимации, имхо. При проектировании в CAD системе у нас картинка зачастую статична и при повороте геометрии нет привязки к определённому числу кадров. Прорисовка происходит моментально реагируя на поступающие сигналы мыши.

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

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

Для того, чтобы запускать эту программу на разном оборудовании, достаточно использовать то самое число M как эталон. Если же на более мощных карточках хочется большего качества, то при запуске программы можно тестировать новое оборудование и записывать результаты в настройки.
Записан
Hrundel
Гость
« Ответ #21 : Ноябрь 29, 2014, 03:35 »

Кстати, чтобы увеличить перформанс, можно пропускать модель через алгоритм проверяющий видимость плоскости и отображать только те плоскости, которые в ракурсе. Правда придется припиливать  OpenCL чтобы расчет происходил как можно быстрее, иначе через процессор можешь получить даже обратный эффект.
Возможно, до конца не понял твою мысль, но при отрисовке OpenGL сам отрезает всё то, что не попало в отображаемый объём. Также можно попросить его, чтобы он отсекал примитивы повернутые задом к зрителю.

На самом деле суть идеи очень проста. OpenGL конечно отсекает то что перекрывается, но для отсечения необходимо провести некоторые расчеты, перед этим необходимо загрузить геометрию, выстроить ее и тд и тп.
Экономия должна происходить до передачи геометрии в OpenGL. То есть нужно в алгоритме отсечения просчитать перекрытые области, оставить только видимую геометрию. При всех последующих расчетах, просчитывается не вся модель целиком,  а только полигоны попадающие в угол поворота.
Алгоритм надо искать. У меня нету. Эффективность алгоритма во многих случаях сомнительна, и оправдана только под OpenCL
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



Просмотр профиля
« Ответ #22 : Ноябрь 29, 2014, 11:20 »

Не встречал такой информации.
OpenGL отсекает по простому принципу:
Если мы передадим ему ModelViewProjection матрицу и массив вершин, то он будет умножать матрицу на каждую вершину. Те вершины, которые имеют какую-либо координату вне диапазона [-1;1], являются непопавшими в обзор. если все вершины примитива не попадают, значит примитив игнорируется.
Но это в общем случае.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #23 : Ноябрь 29, 2014, 17:10 »

Не встречал такой информации.
OpenGL отсекает по простому принципу:
Если мы передадим ему ModelViewProjection матрицу и массив вершин, то он будет умножать матрицу на каждую вершину. Те вершины, которые имеют какую-либо координату вне диапазона [-1;1], являются непопавшими в обзор. если все вершины примитива не попадают, значит примитив игнорируется.
Но это в общем случае.
Если все 3 вертекса треугольника невидимы - это совсем не значит что и треугольник невидим Улыбающийся Задача отсечения старая, слышал о ней еще в конце 90x. Ваше удивление совершенно естественно: ну как же так, GPU мощнее и заточен на эти дела, чего же отсечка на CPU должна ускорять? Думаю до того как мощный GPU начнет отсекать, ему нужно "поселить" геометрию у себя на видео, а ее передача может оказаться намного медленнее всего рендера (вспомните VBO). Поэтому если CPU передает меньше данных - ускорение возможно. Ну это я так думаю  Улыбающийся
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



Просмотр профиля
« Ответ #24 : Декабрь 01, 2014, 14:39 »

Движки и fps, наверное, правильнее относить к играм. Как я понял, у вас CAD модель в единственном числе. В движках не шарю, но мне кажется, что применение их в отрисовке CAD будет неэффективным, по крайней мере в плане разработки. Термин FPS (количество кадров в секунду) больше применим к анимации, имхо. При проектировании в CAD системе у нас картинка зачастую статична и при повороте геометрии нет привязки к определённому числу кадров. Прорисовка происходит моментально реагируя на поступающие сигналы мыши.
У меня визуализация, по сути та же игра. В моем случае пользователь только мониторит.
У меня визуализация, а не CAD система. Просто у меня есть физическая CAD сборка тех объектов которые нужно визуализировать.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 23.