Делаю простое свечение чтобы точку у курсора мыши подсвечивалась, создал объект назвала obj_movinglight. В нем добавил action->step, с кодом x = mouse_x; y = mouse_y; чтобы он двигался за мышкой. Создал шейдеры и в нем изменил код.
Код
//////////////
//Vertex
//////////////
attribute vec3 in_Position; // (x,y,z)
varying vec2 pos;
void main()
{
vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0);
gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos;
pos = in_Position.xy;
}
///////////////////////
//Fragment
//////////////////////
varying vec2 pos;
uniform vec2 u_pos;
void main()
{
// gl_FragColor = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord );
vec2 dis = pos - u_pos;
float str = 1./sqrt(dis.x*dis.x + dis.y*dis.y);
gl_FragColor = vec4(vec3(str),1.);
}
Дальше объект obj_setup, создал в нем два действия "Create" и "Draw". Добавил obj_setup в комнату.
В Create записал.
Код
u_pos = shader_get_uniform(shd_light,"u_pos");
В Draw записал.
Код
var _u_pos = u_pos;
with(obj_light){
shader_set(shd_light);
shader_set_uniform_f(_u_pos,x,y)
draw_rectangle(0,0,320,180,0);
shader_reset();
}
В итоге главный объект двигается за мышкой но никакого свечения не происходит. Даже ошибок нет, поэтому не понятно, что исправлять. В чем может быть проблема?Добавлено (27 Августа 2021, 23:13)
---------------------------------------------
Все нашел в чем проблема, надо было obj_movinglight установить parent->obj_light.