Здравствуйте. Недавно увидел интересный пример шейдера, очень понравилось, решил в них разобраться. После пару часов мучений и поисков в Яндексе, я так и не разобрался, и решил создать тут тему, вдруг кто поможет. Сам пример: https://www.dropbox.com/s/gb03jegm3idpc9w/normalmap%20example.gmz (Пример не мой! Взял с hellroom'a) Я добавил спрайт танка, поставил его в комнату и запустил: ничего не увидел, всё как было, так и осталось. Потом я начал всё это крутить, менять и т.д, как я уже говорил выше, но все без результата. Что мне нужно: Сделать свет по центру, фон, и сам танк, который ездит(с движением я сам разберусь) Кто может помочь в это разобраться, или кинуть готовый исходник?
Добавлено (08 июля 2015, 20:57) --------------------------------------------- Никто не может помочь?
Nitro, +1. maksim1221232, ты точно определениями не ошибся? Если вы решили обратиться к нам за помощью, не становитесь в позицию неудачника. И не ведите себя как неудачник. Лучший способ получить быстрый и чуткий ответ, - спрашивать как победитель — спрашивать как человек умный, уверенный в себе и знающий, которому просто понадобилась помощь при решении одной конкретной проблемы. Как правильно задавать вопросы в технических форумах
Притом что на танка и на фон должен работать шейдер, а я не могу этого сделать.
чтобы на несколько объектов работал шейдер их сперва надо "запечь" на сурфейс и шейдер применять к отрисовке сурфейса. что касается шейдеров, хорошие начальные уроки видел у местного модератора http://gcup.ru/publ/0-0-14431-0-17 Последний готовый проект: флэппиберд с яйцами "Rescue Bird"(скачать с GooglePlay) В разработке: 3-в-ряд "Корабельная команда", рогалик "Живой Мир", квест "Экипаж "Солнечной" (ждите на КРИЛ-15!)
Сообщение отредактировал skypo - Четверг, 09 Июля 2015, 08:07
Если честно, сам пытался разобраться, но как то пока особо не вышло)
Вообще без серьезной теоретической подготовки браться за них не стоит, там все не так просто. Тот же мультиплеер например в разы проще устроен, это для сравнения. Ghaarp
чтобы на несколько объектов работал шейдер их сперва надо "запечь" на сурфейс и шейдер применять к отрисовке сурфейса. что касается шейдеров, хорошие начальные уроки видел у местного модератора http://gcup.ru/publ/0-0-14431-0-17
Пробовал разными способами это реализовать, но в результате получал размытую картинку где куча танков(след из них) и просто ничего.
Вот спрайты(не мои)
вот код в obj_c
Create
surf=surface_create(room_width, room_height);
Step
surface_set_target(surf) draw_set_blend_mode(bm_normal) with obj_tank { var s_multitex = shader_get_sampler_index(shader0, "s_multitex") var bg_multitex = sprite_get_texture(spr_graphics_tanks_B_s,0); var Resolution = shader_get_uniform(shader0,"Resolution"); var LightPos = shader_get_uniform(shader0,"LightPos"); var LightColor = shader_get_uniform(shader0,"LightColor"); var AmbientColor = shader_get_uniform(shader0,"AmbientColor"); var Falloff = shader_get_uniform(shader0,"Falloff"); shader_set(shader0); shader_set_uniform_f(Resolution,1.0,1.0); shader_set_uniform_f(LightPos,mouse_x/512.0,mouse_y/512.0,0.075); shader_set_uniform_f(LightColor,0.94,0.77,0.17,2.0); //R,G,B, Strength shader_set_uniform_f(AmbientColor,0.6,0.6,1.0,0.5); //R,G,B, Strength shader_set_uniform_f(Falloff,0.4,2.0,10.0); texture_set_stage(s_multitex,bg_multitex); draw_sprite(spr_graphics_tanks_B,0,x,y) shader_reset(); } draw_set_blend_mode(bm_normal) surface_reset_target()
какая-то, извините, фигня у вас. надо после surface_set_target(surf) просто отрисовать танки через with obj_tank draw_sprite(spr_graphics_tanks_B,0,x,y)) (почему, кстати, вы это делаете в step, а не draw?!). затем уже к draw_surface(surf,0,0) (полотну, на котором танчики УЖЕ нарисованы все) применять один раз шейдер. а не к каждому танчику, как сейчас. и употребляя with, не забывайте про other, т.к. внутри этой функции вы находитесь в объекте танчика, а не в том объекте, который в данный момент пишите. Последний готовый проект: флэппиберд с яйцами "Rescue Bird"(скачать с GooglePlay) В разработке: 3-в-ряд "Корабельная команда", рогалик "Живой Мир", квест "Экипаж "Солнечной" (ждите на КРИЛ-15!)
Сообщение отредактировал skypo - Суббота, 11 Июля 2015, 17:16