Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Парсинг текстового файла без напряга для GC и без unsafe (9 стр)

Парсинг текстового файла без напряга для GC и без unsafe (9 стр)

Страницы: 18 9 10 1116 Следующая »
MrShoorУчастникwww10 мар. 201822:11#120
Dampire
> Это к твоему "структуры всегда аллоцируются на стеке"
Но ведь так и есть. Когда ты используешь массивы и List-ы, то аллоцируются не структуры, а массивы, в которые ты потом копируешь эти структуры.
alexzzzzПостоялецwww10 мар. 201822:43#121
Polyflow3d
> почему?

Ну, результат же может отличаться.

Polyflow3dПостоялецwww11 мар. 201811:47#122
alexzzzz
Ну, результат же может отличаться.

да, потому что каждый софт может считать нормали по разным алгоритмам, и не факт что эти алгоритмы правильные.
К тому же их может вообще не быть в файле, или файл сохранен с низкой точностью и нормали импортнутся с длиной не равной 1.0
И все эти вопросы решает собственный пересчет нормалей. Тангенты то в любом случае нужно считать вручную, за одно лучше и нормали пересчитывать.
MrShoorУчастникwww11 мар. 201812:46#123
Polyflow3d
> И все эти вопросы решает собственный пересчет нормалей.
Не решает, потому что нормали часто могут быть посчитаны до ретопологии моделей, и рассчет нормалей по лоуполи модели может дать куда большую погрешность.
Polyflow3dПостоялецwww11 мар. 201816:30#124
MrShoor
это ты нормали вертексов и нормал мап текстуру путаешь.

Правка: 11 мар. 2018 16:30

MrShoorУчастникwww11 мар. 201819:52#125
Polyflow3d
> это ты нормали вертексов и нормал мап текстуру путаешь.
Это ты что-то путаешь. Вот тебе хайполи модель:
high | Парсинг текстового файла без напряга для GC и без unsafe
Вот что может посчитать редактор для лоуполи модели:
lo1 | Парсинг текстового файла без напряга для GC и без unsafe
Потому что редактор знает топологию хайполи, и нет никаких проблем взять нормали оттуда.
А вот что в лучшем случае можешь посчитать ты, зная только про лоуполи модель:
lo2 | Парсинг текстового файла без напряга для GC и без unsafe
И чем меньше полигонов в модели, тем корявее будут твои посчитанные нормали на выходе. Поэтому нормалям, пришедшим из редактора все таки стоит доверять больше.
Polyflow3dПостоялецwww11 мар. 201820:22#126
MrShoor
А теперь назови мне 3д редактор который делает это.


MrShoorУчастникwww11 мар. 201820:34#127
Polyflow3d
> А теперь назови мне 3д редактор который делает это.
Госпади, да любой. Это базовая функциональность любого 3д редактора. На вот мануал (вот прям первая картинка и демонстирует насколько лучше перенесенные нормали, по сравнению с вычисленными):
https://docs.blender.org/manual/en/dev/modeling/modifiers/modify/… transfer.html

Правка: 11 мар. 2018 20:35

Polyflow3dПостоялецwww11 мар. 201821:34#128
MrShoor
не любого, в 3д максе такого нет .
лучше перенесенные нормали, по сравнению с вычисленными):

они лучше  только в том случае , если на модели не планируется использовать нормал мап.
Лет 10 назад такой вариант был актуален, наверное.
Сейчас наверное тоже можно так делать для мобилок.
Ответ принят, короче. 
Но это не отменяет того что нужна опция пересчитывать нормали.
MrShoorУчастникwww11 мар. 201821:57#129
Polyflow3d
> не любого, в 3д максе такого нет .
3ds max древнее барахло, но наверняка и он может (как минимум через скрипты). Вот например майка: https://knowledge.autodesk.com/support/maya-lt/learn-explore/caas… utes-htm.html

> если на модели не планируется использовать нормал мап.
Само собой. Нормали в меше не нужны, если они хранятся в текстуре, лол.

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

Polyflow3dПостоялецwww12 мар. 20186:56#130
MrShoor
я говорю опция.
Не хочешь - не пересчитывай, используй свои.
Только я не видел ни разу что бы кто то в реальном продакшене занимался такой дрочью как трансфер нормалей вертексов с хай поли. Если у человека есть хайполи, то он запечет с него нормал мап .

Правка: 12 мар. 2018 6:57

DampireУчастникwww12 мар. 201810:32#131
MrShoor
В поля класса я их тоже копирую шталь? Или они сами аллоцируются в куче? Как насчет статических экземпляров?
alexzzzzПостоялецwww12 мар. 201816:50#132
Polyflow3d
> Если у человека есть хайполи, то он запечет с него нормал мап .

Если эта карта будет в object-space, то нет проблем (наверно, не уверен), а если в tangent-space, то нормали и тангенты в вершинах должны оставаться ровно такие, какие были на момент запекания карты. Карта в tangent-space описывает относительную разницу в нормалях между hi-poly и low-poly.

Правка: 12 мар. 2018 17:14

*Lain*Постоялецwww12 мар. 201817:09#133
Я так понимаю проблема тех, кто заявляет что нормали надо пересчитывать в том, что они не разобрались в какой системе координат нормали расположены
Polyflow3dПостоялецwww12 мар. 201817:22#134
alexzzzz
совершенно верно на счет тангент спейса, и по этому нет смысла как-то одельно улучшать нормали lopoly  если на выходе lopoly+normal map все равно получится идентичным.

*Lain*

Я так понимаю проблема тех, кто заявляет что нормали надо пересчитывать в том, что они не разобрались в какой системе координат нормали расположены

нормали расположены с пространстве модели, внезапно. Не?
А на счет проблем - проблема будет если ты захочешь модифицировать мешь в рантайме, а не просто загрузить статичную. 

Страницы: 18 9 10 1116 Следующая »

/ Форум / Программирование игр / Общее

2001—2018 © GameDev.ru — Разработка игр