Я собираюсь создать эффект светящейся линии в BlitzMax, что-то вроде светового меча или лазерного луча в Звездных войнах.Не должен быть в реальном времени, но только для объектов TImage и затем может быть сохранен в PNG для последующего использования в анимации.Я рад использовать 3D-функции, но это будет для использования в 2D-игре.
Поскольку это будет на черном фоне, моя стратегия - нарисовать серию белых размытых линий с цветомвысокая прозрачность, то в итоге центральные линии менее размытые и более белые.То, что я хочу нарисовать, это на самом деле более изогнутые линии.Рисовать изогнутые линии достаточно просто, но я не могу использовать описанную выше технику для создания хорошего лазерного / неонового эффекта, потому что он выглядит очень сегментированным.Итак, я думаю, что может быть лучше использовать эффект размытия / шейдер на том, что хорошо рендерится, это кривая Безье с 1 пикселем.
Проблемы, с которыми я столкнулся:
- Применение шейдера только к определенной области экрана, где нарисованы линии.Если есть способ рисовать линии на текстуре, а затем размыть эту текстуру и сохранить png, было бы здорово услышать.Должен быть способ сделать это, но я просто пока не получил правильных элементов, работающих вместе.Любая помощь от кого-то, знакомого с этим материалом, будет принята с благодарностью.
- Использование только 2D-вызовов может быть выгодно, проще для понимания и повторного использования.
- Было бы очень хорошо знать, каксохраните PNG, который сохраняет прозрачность / альфа-содержимое.
ps Я просмотрел этот пост (и другие), подготовил примеры и даже разработал свой собственный шейдер 5x5.Но это 3D и вещь всей сцены, которая не очень хорошо конвертируется в 2D или просто в определенную область.http://www.blitzbasic.com/Community/posts.php?topic=85263