77kruk11 написав:Я можливо і не правий, але аналізуючи мапи 6ї циви, таке враження що вони використовували елементи круглої форми, потім зв'язували їх між собою, це і давало плавні заокруглі переходи, до того ж на їх мапах річки які формуються між клітинами явно огортають кола, а не гекси. А зверху всього цого накладена гексагональна сітка. Хоча це моя особиста нічим не підтверждена думка.
Я теж точно не знаю, як саме вони генерують карти, але щось у мене є підозри, що вони все ж намагаються зберегти шестикутну природу своїх карт, як мінімум на логічному рівні. Так, ймовірно, вони для більш реалістичного стилю не використовують шестикутну сітку для генерації мап. Тобто, шестикутна сітка існує не як "реальна" геометрія, а лише як логічна у вигляді даних. Тоді можна зберігати кожен окремий тайл та всі його дані (положення, тип рельєфу, сусідів тощо) у пам’яті, а потім використовувати їх для створення остаточного рельєфу.
Гм.. Тоді, знаючи тип рельєфу, можна було б згенерувати мапу висот (heightmap) будуючи площини над положеннями шестикутників (тайлів) та записуючи їх як текстуру в terrain chunk (?). І тоді це можна було б прогнати через splatmap shader для блендингу текстур.
Але це все досить складно. Я б таки напевно почав з простішого і залишився з шестикутною сіткою для генерації мап. Ось тут є хороші туторіали. І лиш потім задумувався про більш реалістичну генерацію мап.
UPD. Знайшов їхню презентацію з GDC. І, схоже, вони щось подібне робили до того, що я описав вище. Вони будували динамічно мапи висот та мали текстури високої роздільної здатності на шестикутник (per hex).