21.09.2022

Прозрачные рельефные титры в Cinelerra (ч.2) | Transparent relief text effect with Cinelerra (p.2)

Эта публикация является продолжением серии статей о прозрачных титрах в Cinelerra, начатого здесь. Как и в предыдущих публикациях при помощи эффектов Reroute, Blur, Invert Video и Title создаётся 'Alpha Matte Text effect'. Однако, в отличие от ранее представленных примеров, здесь применён двойной 'Reroute', что позволяет улучшить сглаживание краёв букв в Cinelerra, создать рельефный контур и отдалённо намекнуть на объёмность. О том как работать с эффектом 'Reroute' я подробно рассказывал в статье 'Reroute | Перенаправление' и Alpha Matte в Cinelerra (p. 1). Дополнительно смотрите по тегу.
                                                              #1
Cinelerra: transparent titles with alpha matte

          #2:
Transparent titles in Cinelerra (alpha matte)

Как это сделано
(стартовые настройки):

Color Model = YUVA-8bit
На дорожке 'Video 3' -- два видеофайла формата h264.mp4 (avc1), yuv420p(tv, bt709), 1280x720.
Те же два видеофайла -- на дорожке 'Video 2'.
#3
Cinelerra: set transparent titles with alpha-matte (multiply-max)
#4:
Cinelerrra: set transparent titles

Если увеличить радиус размытия с 3 до 6 и выше в 'Blur', который применён сразу после 'Title' (окно слева), то рельефность букв несколько увеличится. Однако мне не очень нравится этот способ, так как края букв выглядят "мыльными", а после 7-8 и вовсе получается размазня. Ниже я ещё вернусь к этому вопросу.
#5:

-------------------------------------------------------

Вернём радиус к 3, затем изменим 'Overlay mode | Режим наложения' и порядок расположения эффектов на дорожке 'Video 2'. Здесь же включим размытие альфа-канала в 'Blur | Размытие'. Остальные стартовые настройки без изменений:

#6:

Cinelerra: transparent titles. Settings.

Получим: 
#7:
Cinelerra: transparent titles with alpha matte

----------------------------------------------------------------------------

Теперь вернёмся к стартовым настройкам, затем установим 'Режим наложения | Overlay mode' для дорожки 'Video 3' = 'Normal', а для дорожки 'Video 2' = 'Замена | Replace'. Эффект 'Blur' дорожки 'Video 2' отключим, чтобы содержимое букв было абсолютно прозрачным.

В результате получим в Cinelerra контурные титры, нарисованные карандашом:

#8:

Cinelerra: how to create transparent titles with alpha matte

-----------------------------------------------------------------------------

В принципе, схема размещения основного эффекта ('Reroute') и его распределённой копии может быть и как на скриншоте ниже (я подробно рассказывал об этом в постскриптуме к статье по ссылке выше):
#9:

Cinelerra: Reroute effect


--------------------------------------------------------------

Так а можно ли увеличить рельефность букв, сохранив чёткими края ? Можно.
Вернёмся к стартовым настройкам (вернём режимы наложения и включим Blur на дорожке 'Video 2'). Далее в этих старт. настройках внесём изменения в Blur-эффекты дорожки 'Video 1': в том, что применяется сразу после 'Title' (окно слева), oтключим размытие альфа-канала и увеличим радиус размытия до 12, а в том, что перед 'Invert Video' (окно справа), уменьшим радиус размытия до 3. В эффекте 'Title' уменьшим значение 'Shadow' с 2 до 1 (края букв станут аккуратнее). Остальные настройки -- без изменений.
 #10:
                                                                              #11:
Cinelerra: pseudo 3D titles


В результате рельефность, объёмность букв несколько возросла (видеоролик). Однако с увеличением радиуса достигнутая рельефность начинает теряться, ухудшается сглаженность краёв букв. Кроме того, этот способ капризен касательно футажа. Ищите баланс.

---------------------------------------------------------------------------------------------------

Все представленные выше примеры могут быть воспроизведены в полном объёме только в Cinelerra CV.

В Cin-HV эффект 'Reroute' отсутствует (портирован не был). В Cin-GG поломаны режимы наложения (Overlay modes). В Cin-CVE функционал техники  'Shared effects | Shared Track'  модифицирован значительно урезан её разработчиком Einar Rünkaru и, в частности, не позволяет применить более одного мультиканального эффекта (Reroute). Он в Cin-CVE ещё много чего не позволяет -- подробнее смотрите в посткриптуме к статье Reroute и Alpha Matte в Cinelerra (p. 1) (я внёс дополнения в ранее написанный постскриптум).

Post scriptum.
Я намерен сделать здесь разбор полётов (со скриншотами) попыток активистов the Cin-GG Community разобраться в ситуации, которые больше похожи на отчаянное стремление замести проблемы Cin-GG под ковёр. А также покажу что же всё-таки можно сделать в Cin-GG, чтобы достичь более-менее приемлемого результата, потому что то, что предложил IgorBeghetto, очень от него далеко. 

UPD.: 07.2023
Ну, поехали (лучше ведь позже, чем никогда, не так ли ?).
Вот такой <результат> выдаёт Cinelerra-GG, если воспроизвести в ней вышеприведённый проект. Как видите - ни тебе прозрачности, ни рельефности, вообще ничего. Туши свет, кидай гранату. 
В рядах the CinGG-Community эта публикация вызвала лёгкое брожение. Пользователь Andrea paz (Италия) <попробовал> повторить:
I open a new post to better recall the subject; the discussion in the post "CinGG's Youtube channel" is off topic. I tried to repeat Igor Valdimirsky's tutorial; maybe I did something wrong but my result is not good. Already with the default overlay (Normal) the result is not exactly the same as in the tutorial. For example, the outline of the letters is all white while in the tutorial there are plays of light and shadows that make it three-dimensional. But the worst comes when I set the center track to "Multiply": a completely wrong color comes out! 

Пользователи вяло и без особого энтузиазма принялись обсуждать ситуацию; ситуация, разумеется, требовала скомпилировать CinCV, но компилировать какую-то там древнюю CV им не хотелось. Только Andrew-R, собрав программу, безуспешно пытался расшевелить апатичных сонных зазнаек. Пошли разговоры про особый путь, некую специфику: IgorBeghetto: "It may be (surely) that Cin-CV and Cin-GG work slightly differently. I remember that, when you are using the Title effect, the black colour is meant to be the alpha channel (more or less). It may be that not everything Cin-CV is able to do can be reproduced in Cin-GG,... and vice versa."  Phyllis Smith: ".. thanks for reaffirming that not everything will be the same."
Phyllis Smith: "You can perform this convoluted method OR "just use a simple Outline font" which can be freely downloaded." Кстати, вот я бы очень хотел посмотреть как она добьётся рельефности и объёмности при помощи Outline font (контурного шрифта). Я говорю про рельефность и объёмность, а не про то, чтобы размазать контур вокруг границ шрифта. Andrea ведь уже сказал до неё: ".. For example, the outline of the letters is all white while in the tutorial there are plays of light and shadows that make it three-dimensional"

Спустя некоторое время тамошнему народу снова явился Igor Beghetto (Италия) и выдал <вот такое> (изображение по ссылке кликабельно - щелкните ЛКМ для увеличения). Его проект можете скачать <здесь> (скачиваете attachment-0001.bin и для распаковки переименуйте в test_alpha-channel-overlay_5a.tar.gz). Пользователь, в попытках  справиться с поломанной цветопередачей, включил инвертирование G и B каналов, размытие ряда каналов и добавил эффект 'YUV'. Режимы наложения остались те же. Гм, ну, вы сами видите.. Кроме того он добавил (как вариант), сделанную вне проекта картинку с текстом, причём рисуя текст, включил отображение тени. Но и это не помогло. Тем не менее, кричали дамочки "Ура !" и в воздух монитор бросали. Phyllis Smith на радостях: "IgorBeghetto -- that is a wonderful demonstration that it can be done in CinGG! I will have to really study how you did it by analyzing your jpg. It does look quite complicated but I want to see if I can successfully reproduce it myself." И даже <воспроизвела>. 

Мне сложно сказать что ей там так понравилось. Похоже, что она либо так хотела увидеть желаемое, что усмотрела его там где его нет, либо вообще не поняла о чём речь состроила хорошую мину при плохой игре. Для полноты сравнения обеих форков, я добавил в его проект футажи из своего проекта и открыл его в Cin-GG. Настройки его проекта я не менял. Установил только шрифт Century Schoolbook L (как и в моём проекте).  Результат выглядит <вот так>, т.е. всё так же уныло и плохо. 

Поймите меня правильно --  я ни в коей мере не строю из себя какого-то там синелерра-гуру. Я за девиз "Делай с нами, делай как мы, делай лучше нас". Только так возможно развитие и движение вперёд. Но я за то, чтобы признавать проблемы, а не стыдливо заметать их под ковёр, вводя в заблуждение доверчивых пользователей, плохо знакомых с состоянием дел "под капотом". 
Понимаете, их маркетологи, провозгласив cinelerra-gg профессиональным редактором и надеясь на мощь ныне покойного разработчика программы, надели штаны на вырост и выписали себе некий "кредит доверия". И теперь, попав в ловушку этого подхода, не в состоянии признать, что "проф." редактор имеет фундаментальные проблемы с базовым функционалом. Думаю, что здесь комплексная проблема с цветопередачей, режимами наложения, цветоконверсией между цвет. моделями и, вероятно, проблема также и в эффекте 'Blur'. 

В YUV,YUVA в Cin-GG проблемы в режимах наложения: Multiply, Divide, Overlay, Burn, Dodge, Difference, Hardlight, Softlight, Min, Darken, And. 
Режим Divide в Cin-GG имеет проблемы в обеих цветовых моделях. Здесь я сравнил режим Divide (RGBA) в разных форках (с учётом его "перевернутого" поведения в cin-gg: в СinGG (Sc / Dc), а в других форках и HV (dst_color.rgb / src_color.rgb) ). Здесь - Divide (RGBA - YUVA):  HV vs Cin-GG.
Очевидно имеется  серьёзная проблема конверсии цвета между RGB(A) <->YUV(A) в Cin-GG. Просто загрузите в Cin-GG <картинки> и сравните. Например:




Впечатляет ? Вот потому их сообщество состроило хорошую мину при плохой игре, рассказав доверчивым пользователям про некую специфику, особые методы расчётов, отличные от других форков и т.п. (специфика в некоторых режимах присутствует, но что с остальными ?), а после предпочло забыть о проблеме. Даже тему на багтрекере не создали.

В принципе, как сказал мне Адам в переписке касательно своей Cin-HV (оттуда для Cin-GG были взяты формулы расчёта некоторых режимов): "YUV never perfectly matched RGB & probably never will. Nowadays, it's easier to do all compositing in RGBA float." Но речь здесь идёт о небольших несоответствиях. А то, что демонстрирует Cin-GG в YUV(A) свидетельствует о фундаментальных проблемах под капотом.
Впрочем, в вышедшем 23 октября 2022г. релизе Cin-HV 8 конверсия цвета между цветовыми моделями значительно ухудшилась, в моделях с альфа-каналом режимы смешивания тоже поломаны. Я уже написал Адаму о проблеме, а пока можно пользоваться HV 7.4. 
UPDATE.: Адам внёс иcправления и обновил 12.11.2022 на sourceforge готовый бинарник для Ubuntu 16.04. Этот же бинарник нормально работает и на 18.04. Пакет с исход. кодом там не обновлялся. Обновлённый код берите с githab -- ссылка в комментариях. UPD. 02.2024: Теперь нет необходимости ждать ежегодных релизов Cinelerra-HV, чтобы ознакомиться с новшествами. По моей просьбе Адам создал на github роллинг-репозиторий, в котором публикует готовые бинарные сборки Cinelerra-HV (подробнее здесь).

Наилучшие результаты в плане цветоконверсии между RGBA <-> YUVA демонстрирует Cinelerra-CVE, но это экспериментальный форк и для работы я рекомендовать его пока не могу.

Ну да ладно, давайте посмотрим, что всё-таки можно сделать в Cinelerra-GG. Например, так:

Color Model = YUVA-8bit
#12:
Cinelerra-GG : relief text effect | рельефные титры
#13:
Cinelerra-GG: relief text effect | рельефные титры

Как это сделано
 (обратите внимание: на дорожке 'Video 1' один из эффектов 'Blur' отключен):
#14:
Cinelerra-GG: relief text effect settings
#15

Если включить на дорожке 'Video 1' отключенный эфф. 'Blur', тогда результат слегка изменится:
#16:
Cinelerra-GG - relief text

А если воспроизвести этот проект с картинкой, предложенной IgorBeg, то получится так:
#17:

Однако если воспроизвести эти настройки в Color Model = RGBA-8 bit, то снова получится <ерунда>. 

Ну что ж, примем меры. Результат см. ниже:

                                                                                    Color Model = RGBA-8bit:
                                                                                               #18:
Cinelerra-GG: relief text effect in RGBA
                                                                                                 Как это сделано:
                                                                                                              #19

На скриншоте ниже результат после дополнительной установки в 'Title' параметров 'Outline'=1, 'Stroker'=1 для основной надписи, для названия блога - 'Shadow', 'Outline', 'Stroker'=0:
#20
cinelerra-gg-relief-text-effect-v1=off-rgba


Поиграемся ещё с настройками. Например, так:
#21
cinelerra-gg-relief-text-effect-darken-yuva=rgba

#22 (Font: Radio stars (misc))

Cinelerra-GG Relief transparent titles (alpha matte))

Настройки для #21, #22(одинаковы для RGBA и YUVA):
#23
settings for relief text effect with cingg yuva=rgba_darken


На скриншоте #24 (см. ниже) результат достигнут при помощи настроек, представленных на скриншоте #14 с той разницей, что для дорожки V.2 установлен режим наложения Softlight (как я уже говорил выше, он проблемный в YUVA (равно как и Darken, применённый выше), но тем не менее с ним можно получать при определенных условиях приемлемые результаты), на дорожке V.3  в 1-м "Blur" Radius = 4, во 2-м "Blur": Radius = 3, R.=ON, G.B.=OFF, A.=ON. Цветовая модель YUVA (в RGBA - сильные артефакты).  
                                                                                      #24

Transparent relief titles in Cinelerra (alpha matte)

Ещё раз хочу заметить, что представленные выше результаты в определённой  степени зависят от футажа. 
Поэкспериментируйте с другими режимами наложения и настройками эффектов - приведёнными выше настройками тема не исчерпывается. В следующей публикации речь пойдёт о "великом и ужасном" <Time Front effect(spatio-temporal video warping).    Вот уж воистину terra incognita. Для пользователей из РФ, РБ сайт по ссылке доступен только через VPN/Proxy.

5 комментариев:

  1. Анонимный21/9/22

    "В Cin-GG поломаны режимы наложения (Overlay modes)" - а можно шпаргалку как воспроизвести? все-таки это довольно базовая функциональность. Я там лазил, но мои изменения не в мастер-ветке.

    ОтветитьУдалить
    Ответы
    1. С кем я говорю ? Это Андрей ? Эта статья в качестве шпаргалки не подходит ? Ну начни с 1-ой статьи серии https://linuxvideoediting.blogspot.com/2022/01/transparent-text-effect-in-Cinelerra-part1.html Там попроще комбинация. Воспроизведи. Затем сравни с CV, HV.

      Удалить
    2. Анонимный24/9/22

      да, это я с планшета. хорошо, попробую воспроизвести. (благо и меня и cv есть)

      Удалить
    3. Ты в курсе, что у HV есть репо на гитхаб и там идут обновления ? https://github.com/heroineworshiper/hvirtual
      И у guicast тоже репо там же https://github.com/heroineworshiper/guicast

      Удалить
    4. Анонимный29/9/22

      нет, это репо я не знал. Спасибо!

      Удалить