OpenCL процедурный пример травы и ландшафта
| Последняя версия: | Версия 1.5, 2011-01-12 Удаленный строка, вызвавшая сверхвыпуск объекта «пути». (Полная история редакций) |
| Требования сборки: | Mac OS X v10.6 или позже |
| Требования во время выполнения: | Макс. OS X v10.6 или позже |
Этот пример показывает, как OpenCL может использоваться для создания процедурного поля травы на сгенерированной модели ландшафта, тогда представляющейся с OpenGL. Поскольку буферы OpenGL совместно используются с OpenCL, данные могут остаться на видеокарте, таким образом устранив API наверху создания и представления вершин от узла.
Вся геометрия сгенерирована на вычислить устройстве и выведена в совместно используемый буфер OpenGL. Ландшафт сгенерирован только в видимой дуге, покрывающей представление камеры frustum для предотвращения потребности в отборе. Страница травы вычислена на поверхности ландшафта как bezier патчи, и шум потока применяется к углу блейдов для моделирования ветра. Многократные экземпляры травы представляются при дрожавших смещениях для добавления большего количества покрытия травы, не имея необходимость вычислять новые страницы. Наконец, физически основанная программа построения теней неба (через OpenGL) применяется к фону для обеспечения среды для травы.
Обратите внимание на то, что .cl вычисляют файл (ы) ядра, и файлы программы построения теней (.vert и .frag) загружаются и компилируются во время выполнения. Источник в качестве примера предполагает, что эти файлы находятся по тому же пути как созданная исполнимая программа.