Войти
ПрограммированиеФорумГрафика

Нормали в GS (5 стр)

Страницы: 1 2 3 4 5 6 Следующая »
#60
(Правка: 5:30) 5:29, 13 фев. 2020

В общем 102к полигонов за 0,12 сек. сортирует теперь вместо минуты. 488k - за 0,64 сек.
Не знаю быстро ли или медленно, но быстрее чем старый вариант примерно в 500 раз.

#61
6:21, 13 фев. 2020

eDmk
Через TDictionary сделал?

#62
10:01, 13 фев. 2020

алло, какие ещё геометрические шейдеры для flat shading'а?

Kripto289
> half3 normal = normalize(cross(ddx(i.worldPosition.xyz), ddy(i.worldPosition.xyz)));
хоть кто-то один это заметил за 5 страниц.

#63
10:05, 13 фев. 2020

Suslik
> алло, какие ещё геометрические шейдеры для flat shading'а?

автор не любит простых путей

#64
13:08, 13 фев. 2020

MrShoor
> Через TDictionary сделал?
>
>
Не. VCL у меня не используется. Все алгоритмы свои.
Через вокселизацию. По сути тот же  словарь, только в виде кубов.
Разбиваю модель на мелкие кубики и сортирую только те точки, которые попали в кубик.
По геометрическому признаку одинаковые точки не могут находится в других кубах.

#65
13:09, 13 фев. 2020

innuendo
> автор не любит простых путей
>
>
Я самоучка и не знаю простых путей :)

#66
(Правка: 13:16) 13:13, 13 фев. 2020

eDmk

погугли про квадратичную интерполяцию нормалей - вот тут gs полезен

CubeMapGS Sample dxsdk

#67
13:24, 13 фев. 2020

Suslik
> алло, какие ещё геометрические шейдеры для flat shading'а?
Так можно :) Только у меня в VS нормали считаются.

#68
16:33, 13 фев. 2020

Suslik
> хоть кто-то один это заметил за 5 страниц.
У него там еще и софтверный рендеринг имеется. Так что gs может быть "универсальнее".

#69
16:38, 13 фев. 2020

eDmk
> Не. VCL у меня не используется.
Когда TDictionary успел стать VCL-ем?

> Через вокселизацию. По сути тот же  словарь, только в виде кубов.
> Разбиваю модель на мелкие кубики и сортирую только те точки, которые попали в
> кубик.
Нууу, такой себе вариант. Если попадется модель, где много мелких треугольников в одном месте, и мало в остальных - алгоритм начнет сливать. Даже сейчас вот можешь попробовать, просто добавь один большой треугольник в свою 3д модель (большой - это в несколько раз больше, чем 3д модель)

#70
17:05, 13 фев. 2020

MrShoor
Да не. Треугольник никак не повлиял. Любого размера.
Пустые кубы же выкидываются и не участвуют в анализе.
В алгоритме только один минус - жрет память.
В общем 488k поликов - 0,55 сек.
Тем более это подготовительный алгоритм, а не реалтайм опция.

У меня 488к на старом варианте 20 минут считался!
На новом 0.55 сек. Все же не самый плохой алгоритм.

> Когда TDictionary успел стать VCL-ем?
Дело не VCL'е и не в Delphi. Я просто делаю свои библиотеки.
Есть задумки на будущее. Даже менеджер памяти будет свой.
Поэтому классы Delphi (кроме базового TObject) не использую.
Лицензиаты злобствуют (если сильно интересно) ;)

#71
23:50, 13 фев. 2020

по fps меряется не абсолютная величина производительности, а её вектор. Ну для оценочной прикидки вполне годится.

#72
2:42, 14 фев. 2020

Последний тест дает 878к полигонов за 1,13 сек.
Сколько даст вариант с TDictionary если не секрет?

#73
3:39, 14 фев. 2020

eDmk
> Сколько даст вариант с TDictionary если не секрет?
Так ты попробуй, я же тебе почти готовый код написал.

#74
(Правка: 16 фев. 2020, 0:29) 23:17, 15 фев. 2020

MrShoor
> Так ты попробуй
Тестировал этот код:

+ Показать

Mesh 488к полигонов:
TDictionary - 0,47 сек. (16 Мб памяти).
TVoxelize - 0.21 сек. (83 Мб памяти).
Свой я могу ускорить еще раза в 2. Основная сортировка неоптимизирована.
Минус только в кол-ве памяти.

Страницы: 1 2 3 4 5 6 Следующая »
ПрограммированиеФорумГрафика