Godot: isnan () рд╢реЗрдбрд░ рдХреЛрдб рдореЗрдВ рдПрдХ рдЧреИрд░-рдлреНрд▓реЛрдЯ рдкрд╛рд╕ рд╣реЛрдиреЗ рдкрд░ рд╢реЗрдбрд░ рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдордИ 2018  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: godotengine/godot

рдЧреЛрдбреЛрдЯ рд╕рдВрд╕реНрдХрд░рдг:
3.0.2 рдореЛрдиреЛ

рд╕рдВрд╕реНрдХрд░рдг рд╕рд╣рд┐рдд рдУрдПрд╕/рдбрд┐рд╡рд╛рдЗрд╕:
рдХреЗрдбреАрдИ рдирд┐рдпреЙрди
рдЬреАрдЯреАрдПрдХреНрд╕ 1060

рдореБрджреНрджреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг:
рдПрдХ рд╢реЗрдбрд░ рдореЗрдВ рдЖрдк isnan() рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдлреНрд▓реЛрдЯ NaN рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рднреА рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕рдореЗрдВ рдлреНрд▓реЛрдЯ рдирд╣реАрдВ рд╣реИ (рдЬреИрд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ, рд╡реЗрдХреНрдЯрд░, рдореИрдЯреНрд░рд┐рдХреНрд╕, рдЖрджрд┐) рддреЛ рдпрд╣ рд╢реЗрдбрд░ рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЧреЗрдо рдЪрд▓рдиреЗ рдкрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рддреНрд░реБрдЯрд┐ рд╕реНрдкреИрдо рдорд┐рд▓рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐:

 drivers/gles3/shader_gles3.h:377 - Condition ' !version ' is true. returned: -1

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╢реЗрдбрд░ рдХреЛ рдЖрдЬрдорд╛рдПрдВ:

shader_type spatial;

void fragment()
{
    ALBEDO = isnan(vec2(0,0)) ? vec3(1.0) : vec3(0.0);
}

рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдПрдХ рдЧреЛрд▓реЗ рдкрд░ рдирд┐рдпрдд рдХрд┐рдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреЛрд▓рд╛ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдЦрд┐рдВрдЪ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдХреНрд░реАрди рд╕реНрдкреЗрд╕ рдореЗрдВ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИ:
bug

рдкреНрд░рдЬрдирди рдХрд░рдиреЗ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛:

  1. рджреГрд╢реНрдп рдореЗрдВ MeshInstance рдЬреЛрдбрд╝реЗрдВ, рдХреНрд╖реЗрддреНрд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВ, рдФрд░ рдЗрд╕реЗ рдПрдХ рдирдпрд╛ ShaderMaterial рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред
  2. рдЗрд╕рдореЗрдВ рдКрдкрд░ рд╢реЗрдбрд░ рд▓рдЧрд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦреЗрдВред

рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдкрд░рд┐рдпреЛрдЬрдирд╛:

рд╢реЗрдбрд░реНрдирдирдмрдЧ.рдЬрд╝рд┐рдк

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╢реЗрдбрд░ рдХреЛрдб рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рднреА рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ isnan(vec2) рдПрдХ рдмреВрд▓рд┐рдпрди vec2 рджреЗрддрд╛ рд╣реИред рдЖрдкрдХрд╛ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ vec2 рдХрд╛ рдХреМрди рд╕рд╛ рддрддреНрд╡ рдЖрдк рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

shader_type spatial;

void fragment()
{
    ALBEDO = isnan(vec2(0,0)).x ? vec3(1.0) : vec3(0.0);
}

>рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВрдиреЗ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдмрдЧ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдкрдХрд╛ рд╢реЗрдбрд░ рдХреЛрдб рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рднреА рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ isnan(vec2) рдПрдХ рдмреВрд▓рд┐рдпрди vec2 рджреЗрддрд╛ рд╣реИред рдЖрдкрдХрд╛ рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдкрдиреЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ vec2 рдХрд╛ рдХреМрди рд╕рд╛ рддрддреНрд╡ рдЖрдк рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

shader_type spatial;

void fragment()
{
    ALBEDO = isnan(vec2(0,0)).x ? vec3(1.0) : vec3(0.0);
}
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Spooner picture Spooner  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bojidar-bg picture bojidar-bg  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RayKoopa picture RayKoopa  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

testman42 picture testman42  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

n-pigeon picture n-pigeon  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ