HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Наши проекты (https://hlfx.ru/forum/forumdisplay.php?forumid=1)
-- XashNT: блог разработчика (https://hlfx.ru/forum/showthread.php?threadid=5297)
Отправлено Ku2zoff 19-01-2020 в 08:32:
Цитата:
Дядя Миша писал:
Просьба от меня небольшая. Скачайте вот эту карту, пооткрывайте её в разных редакторах, на предмет битых полигонов:
Открыл в Джеке. Последняя стимовская бета. Визуально дырок нет. Тонна ошибок Invalid solid structure (face is not planar), (tiny edge). Ну и, соответственно, нестыковки по сетке, см. аттач.
Добавлено 19-01-2020 в 15:32:
Хаммер 3.5 сразу же при загрузке карты говорит "For your information, 2854 solids were not loaded due to errors in the file". И после загрузки на виде сверху сплошные дырки.
Отправлено Дядя Миша 19-01-2020 в 11:56:
Цитата:
nemyax писал:
Нормалями плейнов наружу.
Косинусом вперёд?
Добавлено 19-01-2020 в 14:48:
Цитата:
Ku2zoff писал:
Открыл в Джеке. Последняя стимовская бета. Визуально дырок нет. Тонна ошибок Invalid solid structure (face is not planar), (tiny edge). Ну и, соответственно, нестыковки по сетке, см. аттач.
Ну вот наконец-то открылась страшная правда. В древнем кварке на этой карте ровно один неисправный браш, в котором достаточно удалить одну overconstrained плоскость. При использовании этих брашей для колоизации, тем более нет никаких проблем. А ваши хвалёные хаммеры, да джеки - фейлят. Ну вот и понятно откуда дырки, вот и понятно откуда говно в движок утикает. Надо всё же писать свой редактор, это ужас какой-то.
Добавлено 19-01-2020 в 14:56:
Ну вот, построил колоизацию для моделей. Теперь самое время заняться мета-сурфейсами, стрипификацией и прочим. Хотя у меня даже на чистых фан-секвенциях, даже без виза очень впечатляющие результаты.
Вот к примеру тестовая кутришная карта с ландшафтами.
Кстати говоря я планирую реализовать генерацию этих ландшафтов по картинкам. Т.е. из хейтмапы сперва генерятся треугольники, потом из треугольников создаются коллизионные брашы.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ku2zoff 19-01-2020 в 12:57:
Цитата:
Дядя Миша писал:
В древнем кварке на этой карте ровно один неисправный браш, в котором достаточно удалить одну overconstrained плоскость. При использовании этих брашей для колоизации, тем более нет никаких проблем. А ваши хвалёные хаммеры, да джеки - фейлят.
А какой минимальный шаг сетки в этом древнем кварке? Небось, меньше 1 юнита? А то и вообще 0.125? Помнится, у кого-то были проблемы с инвалидными брашами, когда он пытался скомпилить из исходника твою тестовую карту для спирита с зеркалом. Дело оказалось в том, что толщина табличек на дверях 0.5 юнита. Ну хаммер и тово, корёжил браши при экспорте. Джек стопудово норм работает с 0.5 юнита, я проверял. 0.25 уже китайские компиляторы сами бракуют на этапе сборки.
Попробуй научить свой колоизатор выдавать результат с точностью хотя бы не ниже 0.5 юнита. Думаю, в таком случае, в джек импортнётся без проблем, а в хаммере кол-во инвалидных структур уменьшится в разы.
Отправлено Crystallize 19-01-2020 в 13:14:
Цитата:
Ku2zoff писал:
А какой минимальный шаг сетки в этом древнем кварке?
ДМ говорил что 1/10000 юнита но спустя пару версий поменяли на 1/100.
Добавлено 19-01-2020 в 20:14:
Дядя Миша ты вот делаешь много оптимизаций для CSG, ту которая ускоряет от 10 до 500% и ту где у тебя стало на четверть меньше плейнов. Но нейжели Кармак не догадывался о таком? Или догадывался но счёл неуместным, может у него были другие цели?
Отправлено Дядя Миша 19-01-2020 в 15:04:
Цитата:
Crystallize писал:
Но нейжели Кармак не догадывался о таком?
Творчество закончилось вместе с первой квакой. Дальше начался чистый продакшен.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Ku2zoff 19-01-2020 в 15:11:
Цитата:
Crystallize писал:
1/10000 юнита но спустя пару версий поменяли на 1/100
Имхо, даже одна сотая - перебор. При прямых руках маппера вершины не будут съезжать с сетки. Есть же куча статей, как делать то да это. Либо вообще отказываться от привязки к сетке. Тогда другая проблема - в редакторе всё может быть норм, а на выходе у компилятора всё поедет после оптимизаций. Ну не зря же эту сетку вообще завели? Как раз таки, чтобы маппер придерживался того, что в теории может компилятор.
Отправлено Дядя Миша 19-01-2020 в 16:41:
Цитата:
Ku2zoff писал:
При прямых руках маппера вершины не будут съезжать с сетки
Причём тут вообще нахрен сетка? Сетка изначально базировалась на неверном предположении, что если всё делать по ней, то можно избежать потери точности. Это условие справедливо, когда у тебя все стороны аксиальные. Как только ты начинаешь делать какие-то скосы, ты не контролируешь уже ничего и сетка из друга превращается в смертельного врага, который всё портит. Весь этот снаппинг противоречит устойству вещественных с плавающей точкой. Вы просто не помните, что сетку вводили изначально в те далёкие времена, когда компиляторы считывали карты в формате целых чисел. И мнимальный шаг был 1 юнит. В тот момент, когда это решили переделать, от сетки надо было отказываться ВООБЩЕ или же хотя бы выполнить шаг в комфортных для флоата значениях.
(1/8), (1/16)?, (1/32), но эти больные ублюдки начали снапать к десятичным значениям 0.1, 0.01, 0.001 и огребли кучу проблем, причём большинство даже не поняло откуда.
Добавлено 19-01-2020 в 19:21:
Нет, я всё-таки чую придется свой редактор писать. Не обойтись без этого.
Добавлено 19-01-2020 в 19:35:
Вот хорошая статья про вещественные: https://habr.com/ru/post/112953/
Добавлено 19-01-2020 в 19:41:
Вот вам маленький примерчег, для понимания что такое флоат
C++ Source Code:
1 | float f = 0.0f, f2 = 0.02f; |
3 | for( i = 0; i < 1000000; i++ ) |
5 | Msg( "float: %f\n", f ); |
Калькулятор это маскирует, надо именно в коде.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 19-01-2020 в 17:14:
Цитата:
Дядя Миша писал:
Вот вам маленький примерчег, для понимания что такое флоат
Это нужно запустить и пронаблюдать?
Отправлено Дядя Миша 19-01-2020 в 19:43:
Crystallize посмотреть что он напишет.
Добавлено 19-01-2020 в 22:43:
Цитата:
Дядя Миша писал:
Калькулятор это маскирует, надо именно в коде.
хотя я наверное погорячился. Ну не хватило у меня терпения миллион раз нажать на кнопку +.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено thambs 19-01-2020 в 20:13:
Дядя Миша
В калькуляторх fixedpoint юзается же.
__________________
http://www.moddb.com/mods/monorail-quest
Отправлено Government-Man 19-01-2020 в 21:52:
Цитата:
Дядя Миша писал:
Нет, я всё-таки чую придется свой редактор писать. Не обойтись без этого.
Зачем множить сущности? Лицензируй у Ксерокса сорцы Джека
Отправлено Дядя Миша 20-01-2020 в 09:37:
Government-Man я не совместим с хаммероподобным редактором.
Да и в любом случае объем переделок сопоставим с написанием с нуля.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено nemyax 20-01-2020 в 11:55:
Дядя Миша
Надоел кварк?
Отправлено Дядя Миша 20-01-2020 в 12:09:
Кварк не поймёт новую систему материалов, да и модельки по типу халфовских он рисовать никада не умел
Добавлено 20-01-2020 в 15:09:
Но в целом да, вот интерфейс у кварка идеальный, покрайней мере для меня. Компас опять жы.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено FiEctro 20-01-2020 в 12:13:
Цитата:
Дядя Миша писал:
Как только ты начинаешь делать какие-то скосы, ты не контролируешь уже ничего и сетка из друга превращается в смертельного врага, который всё портит. Весь этот снаппинг противоречит устойству вещественных с плавающей точкой.
Мне вот интересно, почему в 3д моделировании принято делать именно 4вершинные полигоны, и всякие компиляторы и конвертёры моделей их прекрасно триангулируют. А вот у халфовских компиляторов случается майндфак, и в панике они начинают пытаться натянуть сову на глобус, тоесть вершины на плоскость, в итоге на выходе жидко обсираясь сами же вставляют себе палки в колёса.__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!