Comments 10
Весьма и весьма недурно. С нетерпением жду продолжения.
+2
Безумно нравится водичка.
Спасибо!
Спасибо!
+3
Спасибо за очень интересные статьи. А в какой программе вы строили майндкарту (1й скриншот в секции Баги и картинки)?
+1
Здесь когда-то была статья-обзор разных вариантов, остановился на mindmeister.
+1
Возможно глупый совет, но не пробовали ли вы делать минимальный размер субрегиона в RegionTree допустим 8х8 или 16х16, и делать там сплошную битовую маску? Мне кажется, это было бы эффективней и по памяти, и по времени доступа.
+1
Я бы этот совет глупым не назвал. Пока не придумал, как можно было бы хранить битовую маску только в листьях (можно, конечно, через optional value делать), но даже если пихать её в каждый узел, получится большая экономия.
По скорости доступа при поиске коллизий точно даст выигрыш. Будут сложности при слиянии деревьев и ray'cast'е, но полагаю, оно того стоит.
Спасибо, как доберусь до оптимизаций, попробую этот подход.
По скорости доступа при поиске коллизий точно даст выигрыш. Будут сложности при слиянии деревьев и ray'cast'е, но полагаю, оно того стоит.
Спасибо, как доберусь до оптимизаций, попробую этот подход.
0
Увы, это идеально ложится на языки с поддержкой tagged unions — а Unity не тот случай.
Можно попробовать так, если надо в основном проверки на "пустой-полный" (псевдокод)
interface INode {
bool isEmpty(Coord);
}
class BigNode: INode {
INode topleft, topright, bottomleft, bottomright;
bool IsEmpty(Coord position) {
var subnode = selectChildFromCoord(position);
return subnode ? subnode.isEmpty(position) : false;
}
}
class SmallNode: INode {
BitMaskBlob bitmask;
bool isEmpty(Coord position) {
return getBitFromPosition(position) != 0;
}
}
+1
Впечатляет! Особенно вода, и тени.
0
Sign up to leave a comment.
2D магия в деталях. Часть вторая. Структура