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

Как правильно писать свой GLSL шейдер, в Unity3D и именно под Android?

Страницы: 1 2 Следующая »
#0
17:19, 11 дек 2015

Есть ли у кого какой примерчик? по ходу нужны переменные атрибутов их имена...
Изображение

Как я понял, мне нужно брать какие-то атрибуты, а не как я использую, в режиме OpenGL!
Изображение

#1
18:33, 11 дек 2015

ЗАЧЕМ?
Мне glsl понадобился только два раза и оба раза я тестил уникальные экстеншоны на каких-то девайсах (экстеншоны можно подрубать в glsl шойдерах):
- экстеншон EXT_shader_framebuffer_fetch на поварах. В итоге завелось только на тегре2 и благополучно было отправлено на помойку.
- для изменения gl_PointCoord в point-меше. Работает тоже не везде
Рекомендую все-таки упороться нейтивным языком написания шойдеров в юнити. Для него умными дядьками написан умный конвертор-оптимизатор, который, зачастую, выдает код оптимальнее "ручного" glsl. Плюс туда еще зашиты юнитековские финты ушами под конкретные платформы и даже конкретных вендоров, их корявые дрова и баги.

#2
19:07, 11 дек 2015

Belfegnar
> Мне glsl понадобился только два раза и оба раза я тестил уникальные экстеншоны
> на каких-то девайсах (экстеншоны можно подрубать в glsl шойдерах):
> - экстеншон EXT_shader_framebuffer_fetch на поварах. В итоге завелось только на
> тегре2 и благополучно было отправлено на помойку.
> - для изменения gl_PointCoord в point-меше. Работает тоже не везде
> Рекомендую все-таки упороться нейтивным языком написания шойдеров в юнити. Для
> него умными дядьками написан умный конвертор-оптимизатор, который, зачастую,
> выдает код оптимальнее "ручного" glsl. Плюс туда еще зашиты юнитековские финты
> ушами под конкретные платформы и даже конкретных вендоров, их корявые дрова и
> баги.
- мне нужно ручное писание, а редакторы все в мире говно! все еще говно...  почему?
А потому что пишешь пару букв и кнтр+пробел и выбираешь то что нужно мгновенно!! Когда клацаешь мышью все в СОТНИ если даже не в 1000 раз медленее...
и пока напишешь и все потеряешь интрес)))))))

п.с. было бы не плохо, создать вместо юнити свой Редактор, который бы переводил любой код в визуальную среду и наоборот! вот тогда я был бы доволен  икаждый был бы доволен.

> ЗАЧЕМ?
нужно писать игры под сайты на яве... потому использую GLSL GLES используя те же шейдеры, так как CG и т.п. шедйеры стандарта Юнити не поддерживают сайты))
было бы круче если бы создали спец.браузер)) поддерживающий все виды шейдеров... а то опять же говно говно... везде все меня как и всех нас, все это го* не устраивает!

#3
19:29, 11 дек 2015

nano
> - мне нужно ручное писание, а редакторы все в мире говно! все еще говно...
Там такие оптимизации вплоть до того, что на мобилках сначала идут выборки из текстуры, потом арифметика. Так быстрее получается на некоторых мобильных железках. Порядок операций и т.д. На других платформах - по другому. Ну и обход всяких багов в дровах. О которых ты даже еще и не знаешь, возможно. Хочешь пописать glsl чтобы пописать glsl, может лучше тогда вообще свой движок юзать?
nano
> нужно писать игры под сайты на яве... потому использую GLSL GLES используя те
> же шейдеры, так как CG и т.п. шедйеры стандарта Юнити не поддерживают сайты))
> было бы круче если бы создали спец.браузер)) поддерживающий все виды
> шейдеров... а то опять же говно говно... везде все меня как и всех нас, все это
> го* не устраивает!
Поясни за юнити в заголовке тогда. Смысл ускользает от меня, хотя по твоему настрою чувствую, что где-то он есть. Так или иначе, смотри по ссылкам, которые я дал))

#4
19:39, 11 дек 2015

>Как правильно писать ... GLSL ... именно под Android?
ничем не отличается от "именно под Windows",  и от "именно под Linux", и от "именно под Mac"

>Как я понял, мне нужно брать какие-то атрибуты, а не как я использую, в режиме OpenGL!
http://google.ru и http://ya.ru для кого придумали?

https://en.wikibooks.org/wiki/GLSL_Programming/Unity -> минимальный шейдер https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Minimal_Shader

#5
19:44, 11 дек 2015

nano

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Думаю тебе не помешает посмотреть.

#6
20:27, 11 дек 2015

FireFenix
> > ак правильно писать ... GLSL ... именно под Android?
> ничем не отличается от "именно под Windows",  и от "именно под Linux", и от
> "именно под Mac"
> > ак я понял, мне нужно брать какие-то атрибуты, а не как я использую, в режиме
> > OpenGL!
> http://google.ru и http://ya.ru для кого придумали?
>
> https://en.wikibooks.org/wiki/GLSL_Programming/Unity -> минимальный шейдер
> https://en.wikibooks.org/wiki/GLSL_Programming/Unity/Minimal_Shader
Думаешь я такое ленивый? я уже месяц все перечитываю)))) все это уже перерыл там нет того, что мне нужно под Андроиды чисто не пашет все это!!)))
я кое что все же нашел...
http://answers.unity3d.com/questions/1110684/need-help-with-shade… nswer-1110717

Но эту ссылку еще не прошел практику, но ОЧЕ видно уже, что атрибуты совершенно разные!! странно, чтон е компилирует GLSL юнити автоматом под GLES?! оч странно...

#7
20:42, 11 дек 2015

Executor
В видео только о CG. Мне же нужен только GLSL

#8
20:49, 11 дек 2015

nano
> Мне же нужен только GLSL

Ты пишешь шейдера на Cg, Unity сам преобразует в GLSL. То что ты можешь в Unity писать на GLSL это опция, ты можешь ей не пользоваться.
Или ты целенаправлено хочешь именно в GLSL писать?

#9
21:34, 11 дек 2015

Executor
> nano
> > Мне же нужен только GLSL
> Ты пишешь шейдера на Cg, Unity сам преобразует в GLSL. То что ты можешь в Unity
> писать на GLSL это опция, ты можешь ей не пользоваться.
> Или ты целенаправлено хочешь именно в GLSL писать?
- Цель писать один шейдер под Андроиды и HTML-5 на который будет разработана игровая соц.сеть... мне нужна максимальная интеграция.
Я не видел, что бы юнити компилировало в код GLSL! это помоему скрывается, если не ошибаюсь... мне нужен был бы код этот для HTML-5

И да от части принципиально узнать все о GL
Изучить и передалть на чистый CG, было бы проще... но есть еще задачи и моя упертость))))

#10
21:42, 12 дек 2015

так я кое что начал вычислять методом перебора и исключения))))

первое!

vec2 pos =  vec2(gl_FragCoord.x, gl_FragCoord.y)/500;//  gl_FragCoord.xy/500 - это на андроиде не работает!

оказывается нужно плавающее чисто))) 500.0!
капец везде работает и без этого, а на мобилах вот такая беда))))

Второе!

//  /*нельзя так коментирвать//*/ - в юнити перестает воспринимать код и не включает шейдер! Если в этой строке нет в начала "//"

- нельзя оставлять ЭТО "*/" без его начинания "/*", иначе мобилочка ругается))

ну вот и осталось последнее.... почему-то таймер смещает синусоиду?! И рвет изображение ее?!
через время вместо плавных синусоид, летящие штрихи идут капец)))

вот исходник первого рабочего Шейдера на GLSL, работающий под GL ES(правда не проверял версию 2 или 3ю на какой работае или на какой нет):
Изображение

+ Показать

Осталось разобраться с глюком на мобиле, почему синусоиды со Временем, начинают рваться и прерываться?!!!!
Заметил этот глюк давно... и что-то со временем...
п.с. опять придется старинным методом исключения перебирать все это капец)

#11
22:40, 12 дек 2015

вот здесь полно примерчиков под юнити на GLSL
https://en.wikibooks.org/w/index.php?title=Special:Search&lim… ng%2FUnity%2F

#12
23:40, 12 дек 2015

nano
Ну а лог посмотреть никак? Там же все ошибки должны быть.

> vec2 pos = vec2(gl_FragCoord.x, gl_FragCoord.y)/500;// gl_FragCoord.xy/500 -
> это на андроиде не работает!

Это не работает не только на Андроиде, но и на более старом ОпенГЛ.

> // /*нельзя так коментирвать//*/ - в юнити перестает воспринимать код и не
> включает шейдер! Если в этой строке нет в начала "//"

А ещё драйвер может не воспринимать русские комментарии.

#13
15:50, 13 дек 2015

Executor
> nano
> Ну а лог посмотреть никак? Там же все ошибки должны быть.
слушай слушай.... интерсно говоришь.... но я проверяю еще все...
как можно посмотреть то лог? у меня не показывает в консоле чаще ничего, то потом заглючит и оптяь покзывает?!
фигня какаято твориться....

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

#14
16:29, 13 дек 2015

Вот: https://en.wikibooks.org/wiki/GLSL_Programming/Unity
Не за что =)

Страницы: 1 2 Следующая »
ПрограммированиеФорумГрафика

Тема в архиве.