Выложил обновление для генератора процедурных текстур. Посмотрев на скорость работы libnoise решился таки начать портирование данной библиотеки на OpenCL. В данной версии используется библиотека libclnoise. Конечно портирование еще только в процессе и много функционала отсуствует (на самом деле есть только один вид шума — Perlin и один вид вывод — PlaneMap, такчто это скорее можно рассматривать как proof of concept)

Сама тулза переписана почти на 90%, как из-за новой билиотеки так и из-за кривизны предыдущей реализации.

Реализованный функционал

NoiseTextureGenerator

  • Построение схемы генерации.
  • Сохранение и загрузка схемы.
  • Экспорт схемы.
  • Соединение по контактам (перетаскиваем источник на получатель — получаем связь).
  • Автообновление предпросмотра текстуры.
  • Сохранение текстуры в файл.
  • Редактирование свойств модулей.

libclnoise

  • Построение схемы.
  • Установка параметров модулей
  • Инициализация OpenCL контекста.
  • Построение кода OpenCL ядра для выполнения.
  • Выполнение OpenCL ядра и получение результата.

Планируемый функционал

NoiseTextureGenerator

  • Автоматический предпросмотр.
  • Предпросмотр текстуры в OpenGL режиме, с различными примитивами.
  • User-defined модули.

libclnoise

  • Портирование всех модулей из libnoise в libclnoise.
  • Улучшенный генератор кода.
  • Поддерка user-defined модулей.
  • Поддержка типов выходов/входов модуля.
  • Дополнительные модули: colorer, source from image, scale

Сборка из исходных кодов

Для сборки NoiseTextureGenerator из исходных кодов теперь необходимо немного шаманства. Для начала надо получить исходные коды как генератора так и библиотеки libclnoise:

git clone git://developer.nsws.ru/NoiseTextureGenerator.git
cd NoiseTextureGenerator/NoiseTextureGenerator
git clone git://developer.nsws.ru/libclnoise.git

Далее необходимо сгенерировать код модулей для билиотеки:

cd libclnoise/src/modules/
./cl2h.sh

Теперь можно использовать qmake или qtcreator. Сборка проверялась на gcc-4.7. Гарантированно собрать срествами VS2010 не получится т.к. используется for по коллекции, который не реализован в VS2010

Бинарные версии

32-х битная версия под Ubuntu не была обновлена, надо разобраться с кросс компиляцией.

Для работы любой версии потребуется установленный OpenCL runtime (поидее должен быть установлен если у вас достаточно свежие драйвера)

Ожидаемая обратная связь

Очень хочется узнать, запустилось ли у вас без бубна, удалось ли сгенерировать текстуру? Это мой первый опыт в использовании OpenCL поэтому могут быть разные баги.

Tags:

This entry was posted on Воскресенье, Январь 27th, 2013 at 18:39 and is filed under NoiseTextureGenerator, Новости, Утилиты. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

One comment

CrazyDev
 1 

Win7 x64.
Запустилось нормально.
Текстура генерируется нормально.
Когда удаляю связанный noise модуль с output модулем, возникает ошибка:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: NoiseTextureGenerator.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 51054350
Имя модуля с ошибкой: NoiseTextureGenerator.exe
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 51054350
Код исключения: c0000005
Смещение исключения: 000c9b20
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: c488
Дополнительные сведения 2: c4888e7772d154b6bd3520d065fed587
Дополнительные сведения 3: d630
Дополнительные сведения 4: d6307b71a7ff38dab8082bb4828ccff1

admin Reply:

Спасибо за тестирование. Проблема с падением уже известна и надеюсь что скоро будет решена. Чтобы не падало надо сначала удалять связь между модулями а потом сам модуль.

Март 18th, 2013 at 12:13