Skip to content

Experimental CorelDraw CPG-addon for shape nesting using GLSL-shaders

License

Notifications You must be signed in to change notification settings

fersatgit/GPUNest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPUNest

Это концептуальный CPG-аддон к CorelDraw для компоновки объектов произвольной формы. Он написан для иследования возможностей современных видеокарт в задачах компоновки. Алгоритм использует GLSL-шейдеры для решения задачи, перекладывая большую часть работы на видеокарту. В этом есть большой минус - с увеличением площади компонуемых объектов быстро возрастают требования к производительности видеокарты, размер листа также влияет на производительность. Перед использованием я настоятельно рекомендую провести тест на объектах размером 100x100мм при размере листа 400x400мм, затем, постепенно увеличивая масштаб можно определить возможности своей видеокарты. В окне предпросмотра можно изменять масштаб колёсиком мыши и "перетаскивать" камеру левой кнопкой. Выбраные параметры сохраняются в GlobalUserData.

Системные требования

Операционная система:Windows 7 или выше
Программное обеспечение:CorelDraw версии 17 или выше
Видеокарта:Совместимая с OpenGL 4.6
Процессор:С поддержкой SSE4.1

Установка

x86: Скопировать файл GPUNest_x86.cpg в каталог "Draw\Plugins", если такого каталога нет - его необходимо создать

x64: Скопировать файл GPUNest_x64.cpg в каталог "Programs64\Addons"

Работа с аддоном

  1. Выделить объекты для компоновки. Аддон позволяет работать с кривыми, эллипсами, прямоугольниками и растрами, остальные объекты обрабатываются как прямоугольники. Группа объектов считается одним неразрывным объектом.
  2. Запустить аддон при помощи иконки на панели "Стандарт"
  3. В появившемся диалоговом окне настроить параметры компоновки:
    • В полях ширина и высота задаётся размер листа в миллиметрах. Галочка "разместить внутри наибольшей фигуры" позволяет использовать наибольший объект в качестве листа для компоновки.
    • Стратегия задаёт способ выбора оптимального положения объектов. В ограниченых пространствах хорошо работает стратегиия "по карте высот" в остальных случаях лучше подойдёт стратегия "по выссоте". На эффективность компоновки также сильно влияет шаг поворота (количество вращений). Зачастую шаг в 90 градусов может оказаться предпочтительнее (это зависит от формы компонуемых объектов).
    • Количество вращений задаёт шаг поворота объектов при переборе вариантов расположения. Например при количестве вращений равном 64, шаг поворота будет равен 360/64=5.625 градуса.
    • Минимально расстояние между объектами задаётся в миллиметрах.
  4. После нажатия кнопки "Применить" начнётся процесс компоновки.
  5. По завершении компоновки нужно нажать "Ok" для того, чтобы переместить объекты в CorelDraw.

Известные проблемы

  • Если после запуска диалогового окна настройки панели команд (Инструменты->Параметры->Рабочее пространство->Настройка->Панели команд) выбрать "Отмена" - иконка аддона будет изменена на иконку по-умолчанию. Лечится перезапуском CorelDraw.
  • Компоновщик может занизить расстояние между объектами. Рекомендуется задавать немного большее расстояние в настройках.
  • При компоновке объектов большой площади (особенно на слабых видеокартах) операционная система может прервать выполнение шейдера по таймауту. Если это произошло, то для восстановления работоспособности аддона нужно будет перезапустить CorelDraw. Чтобы отключить лимитирование вы можете создать ключ реестра с именем TdrLevel типом'+' REG_DWORD и значением 0 в разделе "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers" и перезагрузить компьютер. Но учтите, что в таком случае выполнение тяжёлой компоновки уже не удастся прервать (операционная система перестанет отвечать на запросы до тех пор, пока компоновка не завершится).
  • Максимальное количество листов - 64, количество вращений - 64, расстояние между объектами - 50мм.

About

Experimental CorelDraw CPG-addon for shape nesting using GLSL-shaders

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published