crypt of decay - Post a comment [entries|archive|friends|userinfo]
ketmar

[ userinfo | ljr userinfo ]
[ archive | journal archive ]

посмотрел на код mesh.c Nov. 21st, 2022|11:42 am

ketmar
варум… в общем, там хэш-табличка с кубиками 16x16x16. не нравится. переделаю на sparse arrays.

не, подход с хэш-табличкой имеет свои преимущества, и не то чтобы ужас-ужас, но… итерирование и одновременное изменение объекта вообще непонятно почему работает (а код это делает очень активно). в общем, мне не нравится. в том числе и потому, что это сложно будет выделить в независимую библиотеку (придётся таскать с ней UTHash), а я планирую (если не забью раньше) выделить стратегические части (работу с мешами) в библиотечку, которую можно будет использовать без всего остального.

попробую сделать на самописных sparse arrays, посмотрю, что получится. в принципе, хэши чуть-чуть эффективней (в том числе и по памяти) на объектах огромных размеров, где кубики понатыканы не сильно плотно. но на практике у рендера всё плохо уже с 160x160x200, которое изображает дерево (потому что там кубики-листики совершенно не мержатся). уровни от какого-нибудь ace of spades (или его наследников) кое-как грузятся, но редактировать их уже БОЛЬ. так что на практике большие размеры не особо важны (хотя мои sparse arrays можно очень быстро ресайзить, так что они отчасти тоже подходят).

можно будет ещё octree попробовать, с листиками 16x16x16 (в коде в разных местах предполагается наличие этих 16-кубиков, кажется, так что трогать их не хочу без нужды).

вообще, я что-то начинаю думать, что проще выкинуть абсолютно всё, и сделать нормально…
Link Read Comments

Reply:
From:
(will be screened)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Username:
Password:
Subject:
No HTML allowed in subject
Message: