Моє вітання вам творці ігор, я знайшов всеж таки час, щоб написати невеликий пост про підсвітку предметів у ваших проектах.
Якщо ви створите гру, вам необхідно відповідати вимогам ігрової індустрії, щоб ваша гра сприймалася гравцями - це еталон успіху. Однією з найважливіших частин естетики геймплей є його візуальна частина. У цьому топіку ми напишемо шейдер, який підсвічує інтерактивний об'єкт гравця, це може бути як об'єкт, який знаходиться недалеко від гравця, так і важелі на рівні.
shader_type spatial;
render_mode unshaded, depth_draw_never;
uniform vec4 shine_color : source_color = vec4( 1.0, 1.0, 1.0, 1.0 );
uniform float cycle_interval : hint_range(0.5, 5.0) = 1.0;
uniform float shine_speed : hint_range(1.0, 5.0) = 3.0;
uniform float shine_width : hint_range(1.0, 100.0) = 3.0;
void fragment( )
{
vec3 vertex = ( INV_VIEW_MATRIX * vec4( VERTEX, 1.0 ) ).xyz;
float width = shine_width 0.001 cycle_interval;
float frequency = floor( sin( vertex.z cycle_interval + TIME shine_speed * cycle_interval ) + width );
ALBEDO = shine_color.rgb;
ALPHA = clamp( ( 1.0 - dot( NORMAL, VIEW ) ) frequency shine_color.a, 0.0, 1.0 );
}
Ось і все, в нас виходить ось такий шейдер =)
Comments