У моїй грі на основі шуму Perlin виникли деякі проблеми. Погляньте на доданий скріншот нижче.
Білі області, які ви бачите, - це стіни, а чорні - прохідні. Трикутник посередині - гравець.
Я реалізував фізику в цій грі, намалювавши її на текстурі (білі або чорні пікселі), а потім отримав її з процесора.
Однак зараз я стою з іншою проблемою. Я хочу, щоб одиниці (або повзання, як би ви їх не називали) нерестилися постійно в краю екрана. Сенс у тому, що у фінальній грі з'явиться "туман війни", який не дозволяє гравцеві бачити так далеко.
Я подумав, що я можу просто сканувати пікселі на краю екрана і побачити, чи є їхня текстура фізики чорною, а потім нерегулярно нерестувати там речі. Однак якщо ви поглянете на скріншот, є (у верхньому лівому куті) приклад того, коли я не хотів би, щоб повзали крипси (оскільки вони не змогли б дістатися до гравця звідти) .
Чи можливо якимось чином GPU визначити ці нерестові місця для мене чи якимось іншим способом? Я думав про те, щоб зробити вектори між запропонованою точкою на краю екрана та програвачем, а потім слідувати за нею кожні 10 вокселів і подивитися, чи стикається стінка, перш ніж нерестувати одиницю там.
Однак запропоноване вище рішення може бути занадто інтенсивним процесором.
Будь-які пропозиції з цього приводу?
Примітка 1. Що стосується породжених одиниць, я не хочу використовувати будь-яку форму накладання маршруту, щоб уникнути зіткнень стіни, оскільки ці одиниці бігають до гравця. Тому підрозділи повинні нереститися на краю екрану в тому місці, де ходіння по прямій лінії до гравця не зіткнеться з жодними стінами.