Обновить
2

Пользователь

2
Рейтинг
Отправить сообщение

Процедурные текстуры на GPU: пишем генератор местности в Compute Shader

Время на прочтение6 мин
Охват и читатели3.2K

Когда мы говорим о генерации ландшафтов в компьютерных играх или симуляторах, перед разработчиком всегда встает вопрос: хранить огромные карты высот на диске или генерировать их на лету? Хранение готовых текстур требует места, а их загрузка - времени и пропускной способности памяти. Процедурная генерация решает эту проблему, позволяя создавать уникальные, детализированные и невероятно большие миры, имея в распоряжении лишь математические формулы и несколько входных параметров он же сид.

Однако генерация сложных ландшафтов на CPU может стать узким местом, особенно когда речь идет о streaming-мирах или динамическом разрушении окружения. На помощь приходит вычислительная мощь графического процессора. Используя Compute Shaders, мы можем перенести тяжелые математические расчеты на тысячи ядер видеокарты, получая готовую карту высот или же heightmap за доли миллисекунд. В этой статье мы разберем, как устроены процедурные текстуры, почему GPU идеален для этой задачи, и напишем собственный генератор местности с эрозией на HLSL.

Читать далее

Информация

В рейтинге
1 730-й
Зарегистрирован
Активность

Специализация

Десктоп разработчик, Разработчик игр
Стажёр
От 3 000 €
Python
C++
Английский язык
ООП