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

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

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

Сообщений: 600



Просмотр профиля
« : Ноябрь 24, 2014, 10:09 »

Какое максимальное количество полигонов допустимо(оптимально) для трехмерной модели с поддержкой текстур раскраски и объема (все остальные модели отрисовываются достаточно просто и они низкополигональные).
Изначально модель находится в CAD файле, насколько сильно можно ее порезать. Предположительно уровень видеокарты Radeon HD7850, nvidia quadro 440.
Записан
Hrundel
Гость
« Ответ #1 : Ноябрь 25, 2014, 01:13 »

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

Сколько потянет железо. На Крее чуть больше чем на лэптопе.

Изначально модель находится в CAD файле, насколько сильно можно ее порезать.

Что подразумевается под словом "порезать" ? Особенно интересно узнать это в контексте с CAD файлом.
CAD файл это тебе не mesh какой-нибудь.

Предположительно уровень видеокарты Radeon HD7850, nvidia quadro 440.

Хорошие карты

Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



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

Сколько потянет железо. На Крее чуть больше чем на лэптопе.
Железо будет разным, но примерно такого уровня. Какое количество полигонов оптимально, будет текстура и возможно текстура нормалей(не для всех элементов).
Что подразумевается под словом "порезать" ? Особенно интересно узнать это в контексте с CAD файлом.
CAD файл это тебе не mesh какой-нибудь.
Разная степень детализации при экспорте, тот же шарик можно 20 полигонами отрисовать, а можно тысячей. Шлифовка модели в 3d редакторе.

Как узнать рекомендуемое число полигонов или как это расчитать? Хотя бы примерно? Какие есть ограничения?
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

У меня имеется сторонняя конечно-элементная программка, которая может выводить более 4 млн. тетраэдров. При повороте геометрии глючит, но выводит.
Сам же я написал свою прогу, которая берёт оболочку детали и выводит треугольники (грани тетраэдров, лежащие на поверхности). Могу сказать, что для детали габаритом метр можно смело брать размер элемента 5мм.

У меня геометрия в 3348324 элемента обрабатывается мгновенно. Правда, и карта Quadro K4000
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

Да, хочу добавить, что представленные мною данные не обрабатываются освещением и текстурой. Но поверх полигонов ложиться ещё один слой, который отображает сетку. Так что по факту выводится 6696648 полигонов
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


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

Как узнать рекомендуемое число полигонов или как это расчитать? Хотя бы примерно? Какие есть ограничения?
Число полигонов - всего лишь один из факторов влияющих на быстродействие, поэтому попытки его предрассчитать обречены. Лучшее что можно сделать - давать пользователю выбор какую детализацию использовать. Если такой возможности нет - давать выбор режима рисования. Напр "без шейдеров" (gourand), без текстур и/или без шейдинга текстур, только с 1 источником (обычно от камеры) и.т.п

Что? Да, это капитальный геморрой, это в неск раз больше работы. Но так у всех, это нормальные рабочие проблемы которых никто не отменял.
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



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

Число полигонов - всего лишь один из факторов влияющих на быстродействие, поэтому попытки его предрассчитать обречены. Лучшее что можно сделать - давать пользователю выбор какую детализацию использовать.
Это все понятно, только у меня есть модель и она дорабатывается и надо понять на какое количество полигонов для каждого уровня детализации мне ориентироваться.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

Число полигонов - всего лишь один из факторов влияющих на быстродействие, поэтому попытки его предрассчитать обречены. Лучшее что можно сделать - давать пользователю выбор какую детализацию использовать.
Это все понятно, только у меня есть модель и она дорабатывается и надо понять на какое количество полигонов для каждого уровня детализации мне ориентироваться.
Предлагаю  сделать некий спинбокс, который будет динамически регулировать количество полигонов.
Потестируете свою программу на разных машинах и геометрии. Там уж решите, какой уровень детализации вам нужен.
P.S.: Хорошая детализация нужна только для скруглений. Плоские же поверхности обойдутся и грубой (относительно).
Записан
Hrundel
Гость
« Ответ #8 : Ноябрь 25, 2014, 21:01 »

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

Сообщений: 2130



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

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

Сообщений: 600



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

Предлагаю  сделать некий спинбокс, который будет динамически регулировать количество полигонов.
Потестируете свою программу на разных машинах и геометрии. Там уж решите, какой уровень детализации вам нужен.
P.S.: Хорошая детализация нужна только для скруглений. Плоские же поверхности обойдутся и грубой (относительно).
У меня модель содержит десятки тысяч элементов, ее нельзя быстро взять и уменьшить. Нужно примерно ориентироваться какое количество полигонов будет оптимально для каждого уровня детализации и как это можно подсчитать, чтоб комп под завязку не нагружать, параллельно 3D модельке у него других задач не мало.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

Ясно, что она перестраивается долго. Я имел в виду, что этот спинбокс должен быть временной мерой, которая позволит вам сориентироваться в количествах. Просто после нахождения необходимых чисел зададите их константами.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


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

Возможно, до конца не понял твою мысль, но при отрисовке OpenGL сам отрезает всё то,
Та мысль из статьи (которую я помню) Улыбающийся Да, так какое-то ускорение достигается, но хлопот предостаточно. И всегда найдется такое view где нечего отсекать.

У меня модель содержит десятки тысяч элементов, ее нельзя быстро взять и уменьшить. Нужно примерно ориентироваться какое количество полигонов будет оптимально для каждого уровня детализации и как это можно подсчитать, чтоб комп под завязку не нагружать, параллельно 3D модельке у него других задач не мало.
"Хто про що - а я про Тараса" Улыбающийся Конечно Вы можете упорно задавать тот же вопрос снова и снова, но мало шансов получить "тот самый" ответ.

Вот у Вас есть какая-то машина. Сделайте "нормальные" модели (на глазок) и посмотрите загрузку, потом, если надо, уменьшите детализацию. Ничего плохого в таком подходе нет, называется "эмпирически"  Улыбающийся
Записан
deMax
Хакер
*****
Offline Offline

Сообщений: 600



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

Это понятно, что на глаз, но законченного движка счас нет, а людям надо примерно ориентироваться на что то. Объект в солиде сотни метров весит.

Так вот в играх используется известное число полигонов, и у видеокарты есть примерный параметр количество полигонов в секунду, скажем 30 миллионов текстурированных полигонов(понятно что от угла обзора эта цифра может меняться, но не на порядки же), т.е. при фпс 60 модель на 500К полигонов максимум. Какие средние оптимальные параметры под указанные мной видеокарты.
Записан
__Heaven__
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2130



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

сгенерируйте плоскость полигонов, выведите их на экран и замерьте количество/скорость. Это и будет приверным ответом на ваш вопрос.
А реальную геометрию бить будет всё равно CPU, так понимаю.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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