Войти
ПрограммированиеФорумГрафика

Как запустить Qt OpenGL ES под Android c тенями ? Shadows

#0
8:11, 26 мар. 2020

Какого черта обычная текстура накладывается в качестве теней, а VBO буфер с помощью QOpenGLFramebufferObject не пишется в текстуру в шейдере . Которая отвечает за тени VTF...?

P.S : Может есть у кого исходники с тенями и светом на Qt OpenGL ES . Который работает на Android ?


FragmentShader:

+ Показать


VertexShader :

+ Показать



#1
9:03, 26 мар. 2020

ShadowMatrix в пространстве вида?

#2
9:19, 26 мар. 2020

werasaimon

В курсе, что Qt+LGPL плохо дружит с Android?
Т.е. нужна или коммерческая лицензия или надо делать открытый свой код - а с LGPL проблемы.
Просто на будущее, ибо есть подозрение, что Qt тут лишнее в связи с этой проблемой.

#3
20:54, 26 мар. 2020

=A=L=X=
Ну всё кроме тенее работает, как-же так?

#4
(Правка: 28 мар. 2020, 15:02) 17:35, 27 мар. 2020
=A=L=X=
> В курсе, что Qt+LGPL плохо дружит с Android?
Расскажите по подробнее, чем это Android хуже Windows для LGPL?
Или речь не про Android, в про приложения, которые зашифрованы от копирования APK?
#5
(Правка: 5:16) 4:58, 28 мар. 2020

gkv311
> Расскажите по подробнее, чем это Android хуже Windows для LGPL?

LGPL не просто "прилинковался динамически к библиотекам". На самом деле это только одно из требований общий смысл которых в том чтобы свободное оставалось свободным. Полностью.
В том числе должна быть у пользователя свобода заменить эти самые свободные DLL-ки (именно для этого их надо выделять в отдельные сущности) на то что ему вздумается с ними сделать.

d) Do one of the following:
    0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
    1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.

В Windows это делается просто заменой DLL-ек в папке Program Files. Но нужно снабдить чёткой и понятной инструкцией как это сделать - это тоже в требованиях.
А вот как удовлетворить это требование с (действительно подписанным ключем) APK Android - это уже давно предмет жарких споров.
Если твой код остаётся закрытым, то единственное что хоть как то удовлетворяет лицензии - это любому желающему предоставлять объектные файлы и все ресурсы проекта с чёткими инструкциями как из этого собрать собственный APK с изменёнными LGPL-библиотеками. Каково?

#6
(Правка: 15:02) 15:01, 28 мар. 2020
=A=L=X=
> В Windows это делается просто заменой DLL-ек в папке Program Files.
> Но нужно снабдить чёткой и понятной инструкцией как это сделать - это тоже в требованиях.
> А вот как удовлетворить это требование с (действительно подписанным ключем) APK Android
LGPL не требует "простоты" данной процедуры. APK файл можно перепаковать и запустить.
А вот требовать, чтобы модифицированное приложение "прикидывалось" немодифицированным (для чего и нужны цифровые подписи) - это уже точно к LGPL не относится, его придётся переподписывать уже своим ключом. Заменить DLL'ку современного приложения лишь не многим проще, чем заменить so-шку в APK файле (попробуй эту DLL'ку собрать нужной версии в проектах с 1000ми зависимостями и непредсказуемым сборочным инструментарием - сегодня собирается, а завтра уже нет).
#7
(Правка: 16:28) 16:22, 28 мар. 2020

gkv311
> LGPL не требует "простоты" данной процедуры.

Он требует чтобы она была возможна: " effectively do not restrict modification of the portions of the Library contained in the Combined Work" - и если это вызывает хоть какие то затруднения, то должны быть понятные инструкции от тебя как это сделать - так чтобы получить твою программу с новой версией LGPL библиотек. "Простота" может быть и не обязательна в принципе своём, но ты должен описать как всё сделать, выложить это вместе с программой и если инструкция повторять, то должно всё получится, а не просто отмазка:
"only to the extent that such information is necessary to install and execute a modified version of the Combined Work"
А в Android-е как раз вообще неочевидно как выковырять пакет из кишок операционки - это всё совершенно нестандартные действия.
Т.е. это лично твои, а не пользователя проблемы как твой пакет перелинковать с изменёнными LGPL-библиотеками и подписать любым ключом но чтобы программа запустилась и продолжала работать как твоя с учётом только изменений в открытой части.

#8
18:12, 28 мар. 2020
=A=L=X=
> А в Android-е как раз вообще неочевидно как выковырять
> пакет из кишок операционки - это всё совершенно нестандартные действия.
Выковыривать пакет из кишок системы не нужно, если положить его отдельно.
А вот если магазин гугл - это единственное место дистрибуции программы, то да, могут быть проблемы. Но магазин гугл - это ещё не весь Android, как магазин Microsoft Store или Steam - не весь Windows.

А вот в случае с iOS всё как раз совсем плохо со свободой - там их магазин является практически единственным способом установить программу.

ПрограммированиеФорумГрафика