Three.js: рд╕рдлрд╛рд░реА/рдЖрдИрдУрдПрд╕ рдкрд░ рдПрдЪрдПрд▓рдПрд╕ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рд╕рд┐рддре░ 2016  ┬╖  210рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: mrdoob/three.js

рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдореИрдВ рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдмрд╣реБрдд рдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдХрд┐ рдПрдЪрдПрд▓рдПрд╕ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрдЪрд╛рдирдХ рдЕрдм рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдпрд╣рд╛рдБ CORS рдкреНрд░реЙрдХреНрд╕реА рд╣реИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдЗрд╕рд▓рд┐рдП CORS рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╡реЗрдмрд╡реНрдпреВ рдЖрдИрдУрдПрд╕ рдРрдкреНрд╕ рдореЗрдВ рд╕реАрдУрдЖрд░рдПрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдкреНрд░рддрд┐рдкрд╛рджрди рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдИ рд╡реЗрдмрдЬреАрдПрд▓ рдлрд┐рдХреНрд╕ рд╣реИ рдЬрд┐рд╕реЗ рд╡реЗрдмрдЬреАрдПрд▓ рдореЗрдВ рдПрдЪрдПрд▓рдПрд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдореИрдВ рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдХреЛ рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдбреНрд░рд╛рдЗрдореЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдПрдХ рдлреНрд░реЗрдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╛рд╕ рдХреЗ рдбрдмрд▓ рдбреНрд░рд╛рдЗрдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ Mp4 рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдБ рд╣реИ

http://dev.electroteque.org/threejs/

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

рдмрд┐рд▓реНрдЯ-рдЗрди рд╢реЗрдбрд░ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╕реНрдЯрдо рд╢реЗрдбрд░ рдмрдирд╛рдКрдВрдЧрд╛ред

рд╣реЗрдпрд░ рдпреВ рдЧреЛ! рдореИрдВ

const WIDTH = window.innerWidth;
const HEIGHT = window.innerHeight;

var camera = new THREE.PerspectiveCamera( 75, WIDTH / HEIGHT );

var scene = new THREE.Scene();

// geometry

var geometry = new THREE.SphereGeometry( 1, 32, 16 );

// material

var loader = new THREE.TextureLoader();
var texture = loader.load( 'https://threejs.org/examples/textures/2294472375_24a3b8ef46_o.jpg');

// material

var material = new THREE.ShaderMaterial( {
    uniforms: {
        texture: new THREE.Uniform( texture )
    },
    vertexShader: [
        "varying vec2 vUV;",
        "void main() {",
        "   vUV = vec2( 1.0 - uv.x, uv.y );", // fipY: 1.0 - uv.y
        "   gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
        "}"
    ].join( "\n" ),
    fragmentShader: [
        "uniform sampler2D texture;",
        "varying vec2 vUV;",
        "void main() {",
        "   gl_FragColor = texture2D( texture, vUV ).bgra;",
        "}"
    ].join( "\n" ),
    side: THREE.BackSide
} );

var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

var renderer = new THREE.WebGLRenderer();
renderer.setSize( WIDTH, HEIGHT );
document.body.appendChild( renderer.domElement );

function animate( time ) {
    requestAnimationFrame( animate );
    mesh.rotation.y = time * 0.0001;
    renderer.render( scene, camera );
}

animate();

https://jsfiddle.net/9jy92zxn/

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

рдпрд╣ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдЖрд░реЗрдЦрд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдбреНрд░реЙрдкрд┐рдВрдЧ рдлрд╝реНрд░реЗрдоред webgl рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдпрд╣ рдПрдХ рд╕реБрдВрджрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкреНрд░реЙрдХреНрд╕реА рдПрдЪрдПрд▓рдПрд╕ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рд╛рде рдПрдХ рдХреЗрдкреИрдиреЛ рдбреЗрдореЛ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

рдпрд╣ рдЕрдм рд╕рдлрд╛рд░реА рдУрдПрд╕рдПрдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдИрдУрдПрд╕ 9 рдкрд░ рдирд╣реАрдВред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ? рдореИрдВ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ webgl рдЭрдВрдбреЗ рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реВрдВ рдпрд╛ рд╡реЗ рдХреНрдпрд╛ рдХрд░рддреЗ рднреА рд╣реИрдВред IOS9 рдкрд░ рдпрд╣ рдЕрднреА рднреА рдПрдХ рдХрд╛рд▓рд╛ рдлреНрд░реЗрдо рд╣реИред

http://dev.electroteque.org/threejs/webgl.html

рдпрд╣ рдЕрдВрддрд┐рдо рд▓рд┐рдВрдХ рдХреЗрд╡рд▓ рд╕рдлрд╛рд░реА 9.1.3 / рдореИрдХ рдУрдПрд╕ x 10.11.6 . рдореЗрдВ рдмреНрд▓реИрдХ рд░реЗрдХреНрдЯ / рдзреНрд╡рдирд┐ рд╣реИ

рдПрдЪрдПрд▓рдПрд╕ рдХреНрдпрд╛ рд╣реИ?

@makc рд╕рдЪ рдореЗрдВ? рдореЗрд░реЗ рдкрд╛рд╕ OSX 10.10 рдФрд░ Safari 10 рд╣реИред рд╡реИрд╕реЗ рдпрд╣ Apple рджреНрд╡рд╛рд░рд╛ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрд┐рдП рдЧрдП рддреЛрдбрд╝рдлреЛрдбрд╝ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реИред рд╕рдлрд╛рд░реА 10. рддреЛ рдЕрдЧрд░ рд╣рдо рд╕рдлрд╛рд░реА 10 рд╣реИрдВ рддреЛ рд╣рдо рд╕рдм рдЕрдЪреНрдЫреЗ рд╣реИрдВред

@mrdoob HLS = Apple Streaming. рдпрд╛рдиреА рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рд▓реЗрдХрд┐рди рд╡реАрдУрдбреА рднреАред рдЯреЗрд░рд╛рдбреЗрдХ рдЧрд┐рдпрд░ рдХреЗ рд╕рд╛рде рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдПрдХ рдЖрджрд░реНрд╢ рдмрдирдиреЗ рдЬрд╛ рд░рд╣реА рд╣реИред рдпрд╛рдиреА http://dev.electroteque.org/video/360/hls/ultra_light_flight.m3u8

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпрд╛ рдорддрднреЗрдж рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рджреВрд╕рд░рд╛ рдЙрджрд╛рд╣рд░рдг рдХрдЪреНрдЪрд╛ рд╡реЗрдмрдЧреНрд▓ рдлрд╝рдВрдХреНрд╢рди рд╣реИред

рддреЛ texImage2D рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдПрдЪрдПрд▓рдПрд╕ рдкреНрд░рд╕реНрддреБрдд рдХрд░реЗрдЧрд╛ рд▓реЗрдХрд┐рди рдЖрдИрдУрдПрд╕ рдкрд░ рдирд╣реАрдВ, рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ рд╕рдлрд╛рд░реА 10 рдирд╣реАрдВ рд╣реИ?

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдореИрдВрдиреЗ рдХреБрдЫ рд╡реЗрдмрдХрд┐рдЯ рдмрдЧ рдЯрд┐рдХрдЯреЛрдВ рдХреА рд╕реВрдЪрдирд╛ рджреА рд╣реИред

рд╡реЗ рдЪрд▓реЗ рдЧрдП рд╣реИрдВ рдФрд░ IOS рдЕрдкрдбреЗрдЯ рдкрд░ CORS рдкреНрд░реЙрдХреНрд╕реА рд╣реИрдХ рдХреЛ рддреЛрдбрд╝рдлреЛрдбрд╝ рдХрд┐рдпрд╛ рд╣реИред macOS рдиреЗ рднреА рд╕рдлрд╛рд░реА рдореЗрдВ CORS рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреА рд╕реВрдЪрдирд╛ рджреА рд╣реИред

рдореБрдЭреЗ рдЕрдм рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдЙрдирдХреЗ рддреЛрдбрд╝рдлреЛрдбрд╝ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдПред рдореБрдЭреЗ рдЖрдИрдУрдПрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдПрдЪрдПрд▓рдПрд╕ рдХреЛ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред Apple рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдореБрдЭреЗ рдЕрдкрдиреА рдЖрдЧ рдмреБрдЭрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╕реАрдирд╛ рдмрд╣рд╛ рд░рд╣рд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ OSX рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдПрдХ рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреАред рдореБрдЭреЗ рдмрд╕ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдХреНрдпрд╛ рдЕрд▓рдЧ рд╣реИ?

рдЬреЛ рдЕрд▓рдЧ рд╣реИ рдЙрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрднреА рднреА рдХрдореА рдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛ рд▓реЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВ рдЖрдИрдУрдПрд╕ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рд╢рд╛рдпрдж рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рднреАрддрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИ? рдореИрдВ рдЗрд╕рдХреЗ рдкрд╛рд░ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХрдЪреНрдЪреЗ рд╡реЗрдмрдЧреНрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЙрд╕ рд╕рдордХреЛрдг рдЙрджрд╛рд╣рд░рдг рдореЗрдВ three.js рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдХреНрдпрд╛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг рд╢реЗрдбрд░ рдХреЛрдб рд╣реИ?

рдореБрдЭреЗ рдпрд╣рд╛рдВ рдХреБрдЫ рдХрдЪреНрдЪреЗ рдХрд╛рд░реНрдп рдорд┐рд▓реЗ рдЬреЛ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рд╕реАрдзреЗ рд╢реЗрдбрд░ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рдЪрд░ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рд╡рд┐рд╢реНрд╡ рд╕реНрдерд┐рддрд┐ рдХреА рддрд░рд╣ рд╕реЗрдЯ рд╣реЛрддреЗ рд╣реИрдВред

https://bl.ocks.org/mbostock/5446416

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрднреА-рдЕрднреА рдЗрд╕ рдпрд╛ рд╕рдВрднрд╡рддрдГ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЗ рдкрд░ рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реЛред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ S3 рдмрд╛рд▓реНрдЯреА рдкрд░ рд╕реНрдерд┐рдд h264 mp4 рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВ рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдПрдХ video.src рдкрд░ рдПрдХ рдмреНрд▓реЙрдм рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЕрдЧрд░ рдореИрдВ рдЕрдореЗрдЬрд╝реЕрди рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдЕрдкрд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдПрд╕ 3 рдмрд╛рд▓реНрдЯреА рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡реАрдбрд┐рдпреЛ рд╕реАрдзреЗ рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА (рдЖрдИрдУрдПрд╕ 10.0.1) рдореЗрдВ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдареАрдХ рдЪрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рдЕрдкрдиреЗ рддреАрди.рдЬреЗрдПрд╕ рд╡реНрдпреВрдЕрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдмрд╕ рдПрдХ рдорд┐рд▓рддрд╛ рд╣реИ рдХрд╛рд▓рд╛ рдЪрд┐рддреНрд░рдкрдЯред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рдореИрдВ рд╕рд╛рдЗрдмрд░рдбрдХ рдХреЗ рд╕рд╛рде S3 рдмрд╛рд▓реНрдЯреА рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡реЗ рд╕реАрдзреЗ рдореЛрдмрд╛рдЗрд▓ рд╕рдлрд╛рд░реА рдФрд░ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдареАрдХ рдЦреЗрд▓рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╛рдЗрдмрд░рдбрдХ рдореЗрдЯрд╛-рдбреЗрдЯрд╛ 'рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ = рд╡реАрдбрд┐рдпреЛ/mp4' рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рдЕрдкрд▓реЛрдбрд░ 'рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ = рдПрдкреНрд▓рд┐рдХреЗрд╢рди/рдСрдХреНрдЯреЗрдЯ-рд╕реНрдЯреНрд░реАрдо' рд╣реИред рдЬрдм рдореИрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрд╕ рдореЗрдЯрд╛-рдбреЗрдЯрд╛ рдХреЛ рд╡реАрдбрд┐рдпреЛ/mp4 рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╕рдм рдХреБрдЫ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЕрдЬреАрдм рдореБрджреНрджрд╛, рдФрд░ рдПрдХ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдореБрдЭреЗ рдмрд╣реБрдд рд╕рд┐рд░ рдЦреБрдЬрд▓рд╛рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЯрд┐рдХрдЯ рдХреЗ рд╕рдорд╛рди рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореБрджреНрджрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдореБрдЭреЗ рдПрдХ рдирдпрд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдзрдиреНрдпрд╡рд╛рдж,
рдбрд╕реНрдЯрд┐рди

рдпрд╣ рдПрдЪрдПрд▓рдПрд╕ рдореЗрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ mpegts рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдпрд╛ рдЦрдВрдбрд┐рдд рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ mp4 рдирд╣реАрдВ рд╣реИред Mp4 рд╕рдлрд╛рд░реА рдФрд░ рдЖрдИрдУрдПрд╕ рджреЛрдиреЛрдВ рдкрд░ рдареАрдХ рд╣реИред рдореИрдВрдиреЗ рд╕рд╛рдЗрдмрд░рдбрдХ рдореЗрдВ рдорд╛рдЗрдордЯрд╛рдЗрдк рдХреА рдЬрд╛рдБрдЪ рдХреА рдФрд░ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ mpegts рд╕рд╣реА рд╣реИред

рд╡рд╣реА рд╕реНрдЯреНрд░реАрдо рдореЗрд░реЗ рд▓рд┐рдП рдХрдЪреНрдЪреЗ рд╡реЗрдмрд▓реЙрдЧ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рди рдХрд┐ рдЖрдИрдУрдПрд╕ рдкрд░ред рдЖрдкрдХрд╛ рдореБрджреНрджрд╛ рдореЗрд░реЗ рдЬреИрд╕рд╛ рд╣реА рд▓рдЧрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдХрд╛рд▓реЗ рдлреНрд░реЗрдо рдореЗрдВред рдХреЛрдИ рдкреНрд░рддрд┐рдкрд╛рджрди рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВред

@danrossi рдУрдХреЗ рдХреВрд▓ред рдореИрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдЯрд┐рдХрдЯ рдмрдирд╛рдКрдВрдЧрд╛ред рдзрдиреНрдпрд╡рд╛рджред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ: www.krpano.com/ios/bugs/ios10-webgl-video-texture-crash/
рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдорд╛рдзрд╛рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рджреВрд░ рдирд╣реАрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

@рдкрд╣рд▓рд╛ рдЪрд░рдгред рдпрд╣ рдПрдХ рд╕рдлрд╛рд░реА рдореБрджреНрджрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдУрдПрд╕рдПрдХреНрд╕ рдФрд░ рдЖрдИрдУрдПрд╕ рджреЛрдиреЛрдВ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред Mp4 IOS рдФрд░ OSX рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдПрдВрдЯреАрдЕрд▓рд┐рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░реВрдВрдЧрд╛ред

рдЕрднреА рднреА рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдорддрднреЗрджреЛрдВ рдХреЛ рджреВрд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХрдЪреНрдЪрд╛ рд╡реЗрдмрд▓реЙрдЧ рдЙрджрд╛рд╣рд░рдг рдЕрднреА рднреА IOS рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕реЗ OSX рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдПрдХ рд╢реБрд░реБрдЖрдд рд╣реИред

рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рдПрдХ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЗрдХреНрд╡рд┐рд░реЗрдХреНрдЯреЗрдВрдЧрд▓ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореИрдВ рдЫреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред

рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ: http://stackoverflow.com/questions/39123109/rendering-a-video-with-webgl-in-ios-10-beta-7-safari-shows-weird-purplish-coред

рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдмрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрди рд╡реЗрдмрдЬреАрдПрд▓ рдмрдЧреНрд╕ рдХреЛ рдареАрдХ рд╣реЛрдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рд╕рдордп рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреИрдирд╡рд╛рд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡реАрдбрд┐рдпреЛ рдХреЛ рд╕рдлрд╛рд░реА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪреВрдБрдХрд┐ рдЕрднреА рднреА iOS рдореЗрдВ CORS рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ, рдЗрд╕рдиреЗ рдХреЗрд╡рд▓ рдЙрд╕реА рдореВрд▓ рдореЗрдВ рдХрд╛рдо рдХрд┐рдпрд╛ред
https://bugs.webkit.org/show_bug.cgi?id=135379

рдореИрдВ рд╡реЗрдмрд▓реЙрдЧ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред
https://github.com/NishimuraT/videojs-panorama/commit/bd99200d8831c7ad0d10d742e087953da0f44169

@ рдирд┐рд╢рд┐рдореБрд░рд╛ рдЯреА рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ рдХреИрдирд╡рд╕рд░реЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдХрдореА рд╡рд┐рдзрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕реАрдкреАрдпреВ рдХреЗ рдХрд╛рд░рдг рдЧрдВрднреАрд░ рдбреНрд░реЙрдк рдлреНрд░реЗрдо рдФрд░ рдкреНрд▓реЗрдмреИрдХ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдореБрджреНрджреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдЖрдИрдУрдПрд╕ рдкрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдмрджрддрд░ред Ipad 3 рдкрд╣рд▓реЗ рд╕реЗ рд╣реА webgl рдХреЗ рд▓рд┐рдП рдлреНрд░реЗрдо рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

@danrossi рдореБрдЭреЗ рдереЛрдбрд╝реА рдЧрд▓рддрдлрд╣рдореА рд╣реБрдИред рдореБрдЭреЗ рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЧреБрдорд░рд╛рд╣ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдмрд╛рдд рднреЗрдЬреА рдереАред

рдореИрдВрдиреЗ рдПрд▓реЗрд╡рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЙрд╕реА рд╕рдорд╕реНрдпрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдЬреЛ рдХрдЪреНрдЪреЗ рд╡реЗрдмрдЧреНрд▓ рдФрд░ рд╢реЗрдбрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдореБрдЭреЗ рд╡рд╛рдкрд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрд╕реЗ рд╣реИрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд╣рд╛рдВ рдХреБрдЫ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рддреАрди.рдЬреЗрдПрд╕ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдЧрд╛ред

рдореИрдВрдиреЗ рдПрд▓реЗрд╡рд░ рдореЗрдВ рдкреБрд╖реНрдЯрд┐ рдХреА рд╣реИ рдХрд┐ рдпрд╣ рдмрдирд╛рд╡рдЯ рдХреЛ рдмрд╛рдзреНрдп рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдСрдЯреЛ рд╕рдорд╛рд╢реЛрдзрди рд╣реИ рдЬреЛ рдЗрд╕реЗ рддреЛрдбрд╝рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИ рдпрд╛рдиреА

webGL.gl.bindTexture(webGL.gl.TEXTURE_2D, null);

рдЕрдЧрд░ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХреА рдЧрдИ рд╣реИ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕ рд▓рд┐рдП рд╣реИред

webGL.gl.pixelStorei(webGL.gl.UNPACK_FLIP_Y_WEBGL, true);

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдСрдЯреЛ рдХреНрд▓рд┐рдпрд░ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реЛ рдЬреЛ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдПрдХ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реЛ?

рдореБрдЭреЗ рдХрдИ рд╕рдВрджрд░реНрдн рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ

state.bindTexture(_gl.TEXTURE_2D, null);

рд▓реЗрдХрд┐рди рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХрд╣рд╛рдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЬрд░реВрд░реА рд╣реИ?

рдмрдирд╛рд╡рдЯ рдбреНрд░рд╛рдЗрдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрд╣реБрдд рдкрд╛рдЧрд▓ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрдирд╛рд╡рдЯ рдХреЗ рдЗрд╕ рдмрдВрдзрди рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╣реИред

@danrossi рд╡рд╣рд╛рдБ рдХреЛрдИ рдкреГрд╖реНрда рд╣реИ рдЬреЛ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ?

рд╢реЛрд░ рджреЛрд╕реНрдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЦреЗрдж рд╣реИред рдореИрдВрдиреЗ рдЕрдзрд┐рдХ рдПрдмреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдПрд▓реЗрд╡рд░ рдбреЗрдореЛ рдХреЗ рд▓рд┐рдП рднреА рдЯрд┐рдкреНрдкрдгреА рдХрд░рдиреА рдереАред

_gl.pixelStorei (_gl.UNPACK_FLIP_Y_WEBGL, рдмрдирд╛рд╡рдЯ.flipY);
https://github.com/mrdoob/three.js/blob/6c7f000734f8579da37fb39e5c2e9e5e2dfb14f8/src/renderers/webgl/WebGLTextures.js#L411

рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдмрдирд╛рд╡рдЯ рдЙрд▓реНрдЯрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЕрдм рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

рдПрдХ рдФрд░ рдХрдЪреНрдЪрд╛ рдЙрджрд╛рд╣рд░рдг рдореИрдВрдиреЗ рдкрд╛рдпрд╛, FLIP_Y рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХреАред рд╕рдВрднрд╛рд╡рд┐рдд рд╡реЗрдмрдХрд┐рдЯ рдмрдЧ рдЕрдм ?

http://dev.electroteque.org/threejs/webgl3.html

рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдВрджрд░реНрдн рдпрд╣ рд╣реИ рд▓реЗрдХрд┐рди рд╡реЗрдмрдХрд┐рдЯ рд░рд╛рдд рдореЗрдВ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ

https://bugs.webkit.org/show_bug.cgi?id=162491

рдЕрдЧрд░ рдореИрдВ рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рддреНрд╡рд░рдг рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

texture = new THREE.VideoTexture( video );
                texture.minFilter = THREE.LinearFilter;
                texture.format = THREE.RGBFormat;
                texture.magFilter = THREE.LinearFilter;
                texture.flipY = false;

http://dev.electroteque.org/threejs/hlsflipy.html

рдпрд╣ рджреЗрдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЕрдм рд╡реЗрдмрдХрд┐рдЯ рдмрдЧ рд╣реИред рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдХреЛ рдШреБрдорд╛рдирд╛ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ?

рдЕрднреА рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рд╡рдЯ рдХреЛ рдШреБрдорд╛рдирд╛ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ?

рдХреНрдпреЛрдВ рди рд╕рд┐рд░реНрдл рдЬреНрдпреЛрдореЗрдЯреНрд░реА uv рдХреЛ рдлреНрд▓рд┐рдк рдХрд░реЗрдВ рдпрд╛ рд╢реЗрдбрд░ рдореЗрдВ рдХрд░реЗрдВ

@makc рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдирд╛ рд╣реИред

рдмрд╕ рдЖрдЧреЗ рд╕рд┐рд░ рдХрд░рдирд╛ рд╣реИред рдпрд╣ FlipY "рдлрд┐рдХреНрд╕" IOS 9 рдкрд░ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд╕ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

рд╡рд╣рд╛рдБ рдЕрдм рдХреБрдЫ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИред рдЗрд╕реЗ рдиреАрдЪреЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдмрд╕ рдХреБрдЫ рджрд┐рди рд▓рдЧ рдЧрдПред

рдпрд╣ рд╕рдм рд╡реЗрдмрдХрд┐рдЯ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рддреАрди рдирд╣реАрдВред рдЬреЗрдПрд╕ рдЗрд╕реЗ рджрд┐рдЦрдиреЗ рд╕реЗред рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИред

рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рднреА рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рджрд░реНрдЬ рдХреА рд╣реИ https://bugs.webkit.org/show_bug.cgi?id=163866

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕реЗ рдЬрд╛рдирд╛ рд╣реИред

http://jsfiddle.net/hfj7gm6t/2182/

@makc рдпреВрд╡реА рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░

uv.setY (i, 1 - uv.getY (i));

http://dev.electroteque.org/threejs/hls.html

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдИрдУрдПрд╕ рдкрд░ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИред

@makc. рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдпрд╣ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдлреНрд▓рд┐рдк рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣ рдбреЗрдореЛ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдерд╛ред

attribute vec2 vx;varying vec2 tx;void main(){gl_Position=vec4(vx.x*2.0-1.0,1.0-vx.y*2.0,0,1);tx=vx;}

рдпрд╣ рдореВрд▓ рдбреЗрдореЛ рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдлрд╝реНрд▓рд┐рдкреА рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

http://dev.electroteque.org/threejs/webglnoflip.html

рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рдХреИрд╕реЗ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдХреНрдпрд╛ рдПрдХ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛?

рдореИрдВ рдЕрднреА рднреА рдЖрдИрдУрдПрд╕ рдбреАрдмрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЙрд╕ рдЧрдгрдирд╛ рдХреЛ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджреЛрд╣рд░рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдХреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рдлрд╝реНрд▓рд┐рдк рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрднреА рднреА рдмреБрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрдХреЗрд▓ рдХрд░рддрд╛ рд╣реИред

http://dev.electroteque.org/threejs/webglflipped.html

рддреЛ gl_Position рдЗрд╕рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред

 gl_Position = vec4(aVertexPosition.x*2.0-1.0,1.0-aVertexPosition.y*2.0,0,1);

рдХреНрдпрд╛ рдПрдХ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛?

рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╣рд░ рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрдирд╛рдо рдкреВрд░реА рдЪреАрдЬ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдЬреНрдпрд╛рдорд┐рддрд┐ рдореЗрдВ рдпреВрд╡реА рдХреЛ рдлрд╝реНрд▓рд┐рдк рдХрд░рдирд╛ред

@makc рд╢рд╛рдпрдж рд╢реБрд░реБрдЖрдд рдореЗрдВ рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реЗрдЯ рдХрд░реЗрдВред рдЕрдЧрд░ рдореИрдВ рд╕рд╣реА рд╣реВрдВ, рддреЛ рдпреЗ рдпреВрд╡реА рдорд╛рди рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдЪрд░ рд╣реИрдВ рдФрд░ рдЧрдгрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ?

рдореИрдВ рд╕реНрд░реЛрддреЛрдВ рдореЗрдВ gl_Position рдХреЗ рдХреБрдЫ рд╕рдВрджрд░реНрдн рджреЗрдЦрддрд╛ рд╣реВрдВред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдПрдХ рд╣реИ

gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );

рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВрдиреЗ IOS рд╕рдлрд╛рд░реА рдкрд░ webgl рдХреЗ рд╕рд╛рде рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреА рддрд░рдХреАрдмреЗрдВ рдЖрдЬрдорд╛рдИрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдореБрдЭреЗ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЕрднреА рдХреЗ рд▓рд┐рдП рдХрд╛рд▓рд╛ рд╣реИред Mp4 рдареАрдХ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИрдВред рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдореЗрд░реА рдЦреЛрдЬ рд▓реЛрдЧ рднреА рдвреВрдВрдв рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП рд╣реИ рд▓реЗрдХрд┐рди рд╡реАрдУрдбреА рднреАред

рдореИрдВрдиреЗ рдХрд┐рд╕реА рдиреЗ рдХреБрдЫ рдЪреАрдЬреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛ред рдЙрдирдХрд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ FLIPY рдлрд┐рдХреНрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рдХрдЪреНрдЪрд╛ webgl рдЙрджрд╛рд╣рд░рдг IOS 10 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди three.js рд╕рдВрд╕реНрдХрд░рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрди рдкрд░ рдХреНрд░реИрд╢ рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрдЯрддрдо рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмрдирд╛рд╡рдЯ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдмрдирд╛рддрд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рддреЛ рдЗрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдХрд╛рдо рдирд╣реАрдВ

http://dev.electroteque.org/threejs/hls.html
http://dev.electroteque.org/threejs/hls2.html

рд▓реЗрдХрд┐рди рдпрд╣ рдЙрдирдХреЗ рд▓рд┐рдП рд╣реИ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореЗрд░реЗ рд▓рд┐рдП рдЖрдИрдУрдПрд╕ 9 рдирд╣реАрдВ рд╣реИ

http://dev.electroteque.org/threejs/webglworking.html

рдХреБрдЫ рдмрд╣реБрдд рднрд╛рд░реА рдФрд░ рджрд░реНрджрдирд╛рдХ рдкрд░реАрдХреНрд╖рдг рдХреЗ рдмрд╛рдж рдореИрдВрдиреЗ рдбреЗрдореЛ рдФрд░ рдореБрджреНрджреЗ рдХреЛ рдЯреНрдпреВрди рдХрд┐рдпрд╛ рд╣реИред

OSX 10.11 рдФрд░ macOS, IOS 9 рдФрд░ 10 рджреЛрдиреЛрдВ рдореЗрдВ HLS рдХреЗ рд▓рд┐рдП FlipY рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдХрдЪреНрдЪрд╛ webgl рдЙрджрд╛рд╣рд░рдг FlipY рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдЗрдзрд░-рдЙрдзрд░ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

IOS 10 рдкрд░ HLS рд░реЗрдВрдбрд░рд┐рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЧрдВрднреАрд░ рд░рдВрдЧ рд╡рд┐рд░реВрдкрдг рд╕рд╛рдХреНрд╖реНрдп рд╣реИрдВред рдлреНрд░реЗрдо рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдпрд╣ рдПрдореБрд▓реЗрдЯрд░ рдФрд░ рдлреНрд░реЗрдо рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдореБрджреНрджрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдм рдРрд╕рд╛ рдХреЛрдИ рдЙрдкрдХрд░рдг рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕реЗ IOS 10 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ IOS 9 рдкрд░ рдмрд┐рд▓реНрдХреБрд▓ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рджреЛрдиреЛрдВ рдХреЛ mp4 рдФрд░ HLS рдХреЗ рд▓рд┐рдП CORS рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдПрдХ рдмрд╛рд░ рдЬрдм рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рджреВрдВ рдХрд┐ рдпрд╣ рдПрдореНрдпреВрд▓реЗрдЯрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЖрдИрдУрдПрд╕ 10 рдкрд░ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд╕рд╛рде рд░рдВрдЧ рдкреНрд░рддрд┐рдкрд╛рджрди рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдПрдХ рдФрд░ рдЯрд┐рдХрдЯ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рджрд░реНрджрдирд╛рдХ рд╣реИ рдХреЛрдИ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рдХрд┐ рдХреЛрдИ рднреА рд╕рдлрд╛рд░реА рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд▓реЛрдЧреЛрдВ рдХреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред

рдореБрдЭреЗ рдпрд╣рд╛рдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрд░рдЬреАрдмреА рдкреНрд░рд╛рд░реВрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреНрд░рджрд╛рди рдХрд░рдиреА рдкрдбрд╝реА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд░реНрдЯрд┐рдХрд▓ рдХреЛрдСрд░рдмрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ, рдЖрд░рдЬреАрдмреАрдП рдПрдХ рд░рдВрдЧ рдЧрд▓рдд рд╣реИред рд▓реЗрдХрд┐рди рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВред рдореИрдВ рдЕрдм рдЖрдИрдУрдПрд╕ 10 рдХрд╛ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░рд╛ рдЖрдИрдкреИрдб рдбрд┐рд╡рд╛рдЗрд╕ рдЕрд╕рдорд░реНрдерд┐рдд рд╣реЛ рдЧрдпрд╛ рд╣реИред рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдИрдУрдПрд╕ 10 рдХреЗ рд╕рд╛рде рдЖрдИрдлреЛрди рдкрдХрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред

http://dev.electroteque.org/webgl/threejs-hls.html
http://dev.electroteque.org/webgl/threejsrgba-hls.html

http://dev.electroteque.org/webgl/webgl.html
http://dev.electroteque.org/webgl/webglrgba.html

рдХреГрдкрдпрд╛ рдЗрди рджреЛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред рдЖрд░рдЬреАрдмреА рдЭрдВрдбреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рджреЛрд╖рдкреВрд░реНрдг рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрд░рдЬреАрдмреАрдП рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдорд╛рди рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

HLS рдХреЗ рд╕рд╛рде IOS 9/10/ OSX Safari рдХреЗ рд▓рд┐рдП FlipY рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдореИрдВ рдПрдЪрдПрд▓рдПрд╕ рд╡реЗрдмрдЬреАрдПрд▓ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде рдПрдХ рд░рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдЬрд┐рд╕реЗ рдЕрдм рджреВрд╕рд░реЗ рдЯрд┐рдХрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡реЗрдмрдХрд┐рдЯ рдлреНрд▓реЗрдХреА рдмрдЧ рддреАрди.рдЬреЗрдПрд╕ рдореБрджреНрджрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдЗрддрдиреА рдмрдбрд╝реА рдЦрд╛рдорд┐рдпрд╛рдВ рдФрд░ рдмрдЧреНрд╕ рдХреЗ рдХрд╛рд░рдг рдпрд╣ рд╢реЛ рд╕реНрдЯреЙрдкрд░ рдмрди рдЧрдпрд╛ рд╣реИред

рддреЛ рдРрд╕реЗ HLS webgl рдЖрдЙрдЯрдкреБрдЯ рдХреЗрд╡рд▓ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ IOS 10 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, IOS 9 рдкрд░ рдирд╣реАрдВред рдХрдИ рдбрд┐рд╡рд╛рдЗрд╕ рдЕрднреА 9 рдкрд░ рдЕрдЯрдХреЗ рд╣реБрдП рд╣реИрдВред рдореБрдЭреЗ 9 рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдордХрд╛рдЬ рдЦреЛрдЬрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

http://dev.electroteque.org/webgl/threejs-hls.html
http://dev.electroteque.org/webgl/webgl.html

рдирдорд╕реНрддреЗ! рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдм рдХреЛрдИ рдЙрдкрд╛рдп рд╣реИ?

рд╣рд╛рдБ рдпрд╣ рдЙрди рдбреЗрдореЛ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди IOS 10 рдХреЗ рд╕рд╛рде рдПрдХ рдХрд▓рд░рд╕реНрдкреЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рджреВрд╕рд░реЗ рдЯрд┐рдХрдЯ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ IOS 9 рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Webkit/Apple рдХреА рдУрд░ рд╕реЗ рдХреЛрдИ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ Ipad 3 рдЬреИрд╕реЗ рдкреБрд░рд╛рдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдЫреЛрдбрд╝ рджрд┐рдП рдЧрдП рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡реИрд╕реЗ рднреА рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ 5fps рд░реЗрдВрдбрд░ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред IOS 10 рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ http://dev.electroteque.org/webgl/webgl.html рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ ios10 рдкрд░ рдкреЗрдЬ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдкреЗрдЬ рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рд╕рдлрд╛рд░реА рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддреА рд╣реИред

рддреАрдиjs рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред

рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рд╕реВрдЪреАрдмрджреНрдз рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ http://dev.electroteque.org/webgl/webglrgba.html рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдХрд▓рд░рд╕реНрдкреЗрд╕ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

@wuyingfengsui рдпрд╣ рдЖрдИрдУрдПрд╕ 10

http://dev.electroteque.org/webgl/threejs-hls.html

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

рд╡рд╛рд╕реНрддрд╡рд┐рдХ IDevice рдкрд░ рдЖрдкрдХреЛ RGB рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд░рдВрдЧрд╕реНрдерд╛рди рдХреА рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА рдЬреИрд╕реЗ рдЖрдк рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ RGBA рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рдХрд░рддреЗ рд╣реИрдВ!

рдореБрдЭреЗ рдЕрднреА рдХреЗ рд▓рд┐рдП IOS 10 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдареАрдХ рд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Ipad 3 рдХреЛ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрдХреНрд░ рд╣реИ рдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ Iphone рддрдХ рдкрд╣реБрдВрдЪ рдереАред

рдЗрд╕ рдкрд░ CORS рдкреНрд░реЙрдХреНрд╕реА url рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрдВред

рдХрд▓рд░рд╕реНрдкреЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрд╕реЗ рдЕрднреА рджреЗрдЦреЗрдВ

https://github.com/mrdoob/three.js/issues/10067

рдФрд░ рдпрд╣ рд╡реЗрдмрдХрд┐рдЯ рдЯрд┐рдХрдЯ рдЬрд┐рд╕ рдкрд░ рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рд░рд┐рд▓реАрдЬ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрднреА рдкрд░реЗрд╢рд╛рди рд╣реЛрдВрдЧреЗред

https://bugs.webkit.org/show_bug.cgi?id=164540

рдЬрдм рдореИрдВ рдЖрдИрдУрдПрд╕ 10 рдЖрдИрдлреЛрди 7 рдкрд░ рдЖрд░рдЬреАрдмреА рдХреЛ рдЖрд░рдЬреАрдмреАрдП рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рд▓рдЧрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ рддреЛ рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╣реИ рдПрдХ рдЕрдЪреНрдЫрд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЖрд░рдЬреАрдмреАрдП рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдХреИрд╕рд╛ рд╣реИрдВ ?

http://dev.electroteque.org/webgl/threejs-hls.html

@danrossi рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@wuyingfengsui рдореБрдЭреЗ рдЗрд╕рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╡реЗрдмрдХрд┐рдЯ рдЯрд┐рдХрдЯ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдЧрдбрд╝рдмрдбрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд░рдВрдЧ рдХреЗ рдЭрдВрдбреЗ рд╣реИрдВ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдПрдХ рд╕рд╣реА рд╣реИред рдореИрдВрдиреЗ рд╡рд┐рднрд┐рдиреНрди рдПрдЪрдПрд▓рдПрд╕ рдзрд╛рд░рд╛рдУрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рд╡реЗ рд╡рд╣реА рдереЗред

рдЖрдк рддреАрди.рдЬреЗрдПрд╕ рд╕реНрдерд┐рд░рд╛рдВрдХ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд╣реИред рдпрд╛рдиреА рдпреЗред рдмрд╛рдЗрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЭрдВрдбреЗ рднреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ рдФрд░ рдмрд╣реБрдд рдердХрд╛ рджреЗрдиреЗ рд╡рд╛рд▓рд╛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рддреНрд░реБрдЯрд┐ред

https://github.com/mrdoob/three.js/blob/dev/src/constants.js#L126

рддреЛ рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ IOS 9 рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреЗрдорд╛рдиреА рдмрдирд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд╕реЗ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдкреБрд░рд╛рдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдХрднреА рднреА IOS 10 рдирд╣реАрдВ рдорд┐рд▓реЗрдЧрд╛ред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдХрд┐рд╕реА рддрд░рд╣ рдХреА рддреЛрдбрд╝рдлреЛрдбрд╝ рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╕рдлрд╛рд░реА 10 рдХреА рд░рд┐рд▓реАрдЬ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛? рдРрдкреНрдкрд▓ рдФрд░ рдХрднреА-рдХрднреА рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд╕рд╛рде рд╕рднреА рд╡рд┐рд╕рдВрдЧрддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдг рдЪрд░рдг рдореЗрдВ рдорд╣реАрдиреЛрдВ рд▓рдЧ рдЧрдПред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдПрдЪрдПрд▓рдПрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ред

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

рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдмрдирд╛рд╡рдЯ рдХреЛ webgl рдкрд░ рдЕрдкрд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рд╡рд╣рд╛рдВ рд╡реЗ рдЭрдВрдбреЗ рд░реБрдЪрд┐ рдХреЗ рд╣реИрдВред

gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, video);

@wuyingfengsui рдЕрдЧрд░

рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рдХреЛ рд╡рд╣рд╛рдВ рдмреИрдардХрд░ рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдФрд░ рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдореИрдВ рд╣рд╛рд╣рд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдк рдХрдЪреНрдЪреЗ рд╡реЗрдмрд▓реЙрдЧ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЙрди рдЭрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рдЗрд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд░реЗрдВ рдФрд░ рдЧреБрдг "рдкреНрд░рд╛рд░реВрдк" рдФрд░ "рдкреНрд░рдХрд╛рд░" рдкреНрд░рдХрд╛рд░ рдмрд╛рдЗрдЯ рдкреНрд░рдХрд╛рд░ рд╣реИ, рдкреНрд░рд╛рд░реВрдк рд░рдВрдЧ рдкреНрд░рд╛рд░реВрдк рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдЖрд░рдЬреАрдмреАрдП рдХреЛ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдЗрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдореИрдВ рдХрд▓ рдХреБрдЫ рд╕рдордп рдкреНрд░рддреНрдпреЗрдХ рдЭрдВрдбреЗ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рддрд╛рдКрдВрдЧрд╛ рдФрд░ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдпреЛрдЬрди рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

@danrossi рдпрд╣ рдХреИрд╕рд╛ рдЪрд▓ рд░рд╣рд╛ рд╣реИ?

рдореИрдВрдиреЗ рдмрд╕ рд╣рд░ рд╕рдВрднрд╡ рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдХреБрдЫ рднреА рдирд╣реАрдВред рдпрд╣ рдХреЗрд╡рд▓ RGB рдФрд░ RGBA рдЭрдВрдбреЗ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдЗрдЯ рдкреНрд░рдХрд╛рд░ рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╣реИред рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдиреЗ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рд▓рд╛ рдХреИрдирд╡рд╛рд╕ рджрд┐рдЦрд╛рдпрд╛ред рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдП ?

@danrossi рдЖрдкрдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Hls.js, MSE рдХреЗ рд╕рд╛рде hls рд╡реАрдбрд┐рдпреЛ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдлрд╛рд░реА рдореЛрдмрд╛рдЗрд▓ рдПрдордПрд╕рдИ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@wuyingfengsui рдпрд╣ рдЕрдм IOS рдХреЗ рд╕рд╛рде рдПрдХ рдореВрд▓ HLS рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдКрдкрд░ рджрд┐рдП рдЧрдП рдореЗрд░реЗ рд╕реБрдзрд╛рд░ рд╕рдлрд╛рд░реА OSX рдХреЗ рд▓рд┐рдП рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдбреИрд╢ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рдкреБрд░рд╛рдиреЗ рд╕рдлрд╝рд╛рд░реА рдореЗрдВ CORS рд╕рдорд╕реНрдпрд╛рдПрдБ рдереАрдВ, рдпрд╣рд╛рдБ рддрдХ рдХрд┐ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдХрд╛рдо рдХреЗ рд╕рд╛рде рднреАред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ macOS рдореЗрдВ рдЙрдиреНрд╣реЛрдВрдиреЗ рд╡рд╣ рднреА рддрдп рдХрд░ рд▓рд┐рдпрд╛ рд╣реЛ?

рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╡рд┐рдзрд┐ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рд╡реЗрдмрдХрд┐рдЯ рдФрд░ рдРрдкреНрдкрд▓ рдЗрд╕реЗ рдХрднреА рднреА рдареАрдХ рдХрд░ рджреЗрдВрдЧреЗред рддреЛ рдЕрдм рд╕рдмрдХреА рдирд┐рдЧрд╛рд╣реЗрдВ рдЗрд╕ рдЯрд┐рдХрдЯ рдкрд░ рд╣реИрдВред рдЖрд░рдЬреАрдмреА рдзреНрд╡рдЬ рд╕рд╛рдордЧреНрд░реА рдЕрдм рдЖрдИрдУрдПрд╕ 10 рдкреНрд░рддрд┐рдкрд╛рджрди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред IOS 9 рдФрд░ рдЙрд╕ рдкрд░ рдлрдВрд╕реЗ рдкреБрд░рд╛рдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рднрд░ рдЧрдП рд╣реИрдВред

https://github.com/mrdoob/three.js/issues/10067

рдпрд╣рд╛рдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ? рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рдЖрдИрдУрдПрд╕ рдкрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░рдВрдЧ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ?

рдХреГрдкрдпрд╛ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рджреЗрдЦреЗрдВред

https://github.com/mrdoob/three.js/issues/10067

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдПрдЪрдПрд▓рдПрд╕ рдХрд╛ рдХрд╛рдордХрд╛рдЬ рддреАрди рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рдЬреЗрдПрд╕ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд╣рд░ рдЬрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдЙрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдХреЛрдб рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ

texture = new THREE.VideoTexture( video );
texture.minFilter = THREE.LinearFilter;
texture.format = THREE.RGBAFormat;
texture.magFilter = THREE.LinearFilter;
texture.generateMipmaps = false;
texture.flipY = false;

var geometry = new THREE.SphereBufferGeometry( 500, 64, 44 );
geometry.scale( - 1, 1, 1 );

var uv = geometry.getAttribute('uv');
for (var i = 0; i < uv.count; i++) {
     uv.setY (i, 1 - uv.getY (i));
}

рдпрджрд┐ рдЖрдк рд╡реЗрдмрд▓реЙрдЧ рдлрд╝реНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрдЪреНрдЪреЗ рд╡реЗрдмрд▓реЙрдЧ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдореИрдВрдиреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдЕрднреА рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рд╕рд╣реА рдорд╛рдпрдиреЗ рдореЗрдВ рддреЛрдбрд╝рдлреЛрдбрд╝ рд╣реИ рдФрд░ рд╡реЗрдмрдХрд┐рдЯ рд╕реЗ рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИред

http://dev.electroteque.org/webgl/webgl.html

рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдИрдУрдПрд╕ рд╡реАрдбрд┐рдпреЛ рдлреНрд▓реИрдЧ рдХреЛ рд╕реНрдЯреНрд░реАрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдиреНрдп рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рд░реВрдк рд╣реИ? рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдПрдЪ.264 рдХреЛ рдмрд┐рдирд╛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕реНрдЯреНрд░реАрдо рдХрд┐рдпрд╛ рдЬрд╛рдП?

@pedrofranceschi mp4 рдареАрдХ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдЪрдПрд▓рдПрд╕ рд╣реИ рдЬреЛ рдЖрдИрдУрдПрд╕ рдкрд░ рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ 360 рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рдЯрд┐рдХрдЯ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдлрд┐рдХреНрд╕ рдХреЛ рдХреЗрд╡рд▓ рдПрдЪрдПрд▓рдПрд╕ рд╕реНрдЯреНрд░реАрдо рдФрд░ рд╕рдлрд╛рд░реА рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ FlipY рдлрд┐рдХреНрд╕ IOS 9 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдкреБрд░рд╛рдиреЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ IOS 10 рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред

рдореЗрд░рд╛ рдЖрдИрдкреИрдб 3 рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрднреА рднреА рдПрдЪрдПрд▓рдПрд╕ рдФрд░ рд╡реЗрдмрдЬреАрдПрд▓ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдореБрдЭреЗ рдПрдХ рдирдП Iphone рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдерд╛ред IOS 10 рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдиреЗ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рди рд░рдВрдЧ рдЖрд░реНрдЯрд┐рдлреИрдХреНрдЯ рдореБрджреНрджреЗ рдереЗред

рдЖрдИрдУрдПрд╕ 10 рдкрд░ рдЖрдИрдлреЛрди рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рдЗрдирд▓рд╛рдЗрди рдЭрдВрдбреЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрдирд▓рд╛рдЗрди рд╡реАрдбрд┐рдпреЛ рдФрд░ рд╡реЗрдмрд▓реЙрдЧ рдЕрдм рд╕рдВрднрд╡ рд╣реИ рд▓реЗрдХрд┐рди рд╕реАрдУрдЖрд░рдПрд╕ рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИред рд╕реАрдУрдЖрд░рдПрд╕ рдХреЗрд╡рд▓ рдореИрдХрдУрдПрд╕ рдкрд░ рд╕рдлрд╛рд░реА рдореЗрдВ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рд╕рдлрд╛рд░реА рдХреА рдмрд╛рдд рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдФрд░ рдХреНрд▓рд╛рд╕рд┐рдХ рд╡реЗрдмрдХрд┐рдЯ рдмрдЧ рд╣реИ рдФрд░ рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдкрд░ рдПрдЪрдПрд▓рдПрд╕.рдЬреЗрдПрд╕ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдареАрдХ рд╣реИред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЗрд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреИрдирд╡рд╛рд╕ рдЬреЛрдбрд╝рдХрд░ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ iOS 10 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдХрдорд┐рдЯ рдХреЛ рджреЗрдЦреЗрдВ: https://github.com/yanwsh/videojs-panorama/commit/0122b1bbd31093b77ca7f09900afa74e2c537037

рд╡рд╣ рдПрдХ рдЧреИрд░ рдШрдЯрдирд╛ рдереАред рдпрд╣ DrawImage рдХреЗ рд╕рд╛рде рдХреИрдирд╡рд╛рд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡реЗрдмрдЬреАрдПрд▓ рдирд╣реАрдВред рддреЛ рддреАрди.рдЬреЗрдПрд╕ рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдИрдУрдПрд╕ рдкрд░ рдмреЗрдХрд╛рд░ рд╣реИ, рдЧрд┐рд░рд╛рдП рдЧрдП рдлреНрд░реЗрдо рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдкреНрд░рдпреЛрдЧ рдпреЛрдЧреНрдп рдирд╣реАрдВред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХрд╛ рдлрд┐рдХреНрд╕ рд╣реИ?

рдЧреБрдгрд╡рддреНрддрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ :)

рдлреНрд░реЗрдо рдЧрд┐рд░рд╛рдирд╛ рдПрдХ рдЧреБрдгрд╡рддреНрддрд╛ рдХреЗ рдореБрджреНрджреЗ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ :)

@mrdoob рдореИрдВрдиреЗ рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдХреЛ рдПрдХ рдХрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдЬрд╛рд▓ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдШреБрдорд╛рдирд╛ рднреА рдареАрдХ рдирд╣реАрдВ рд╣реИред рдПрдХ mp4 рдлрд╝рд╛рдЗрд▓ рд▓реЛрдб рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╣ рдареАрдХ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЬрд╛рд▓ рд░реЗрдЦрд╛рдПрдВред

рдпрд╣ рдЕрднреА рднреА рдРрд╕рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдлреНрд░реЗрдо рдХреЛ рдЧрд┐рд░рд╛рддрд╛ рд╣реИред

http://dev.electroteque.org/webgl/canvas-hls.html

@danrossi

screen shot 2016-12-06 at 09 16 47

@mrdoob рдпрд╣ рдореБрджреНрджрд╛ рд╕рдлрд╛рд░реА рдкрд░ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред рдЗрди рд╕рднреА рдбреЗрдореЛ рдХреЛ рдХрд░рдирд╛ рд╡рд╛рдХрдИ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдХреБрдЫ рд╕рдВрдпреЛрдЬрди рдХрд┐рдП рд╣реИрдВред

рдореИрдВрдиреЗ рдЕрднреА рднреА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдПрдордкреА 4 рдЖрд╣ рдХреЗ рд╕рдлрд╛рд░реА рд╕реАрдУрдЖрд░рдПрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рддрдм рддрдХ рдХреНрд░реЛрдо рдПрдордкреА 4 рдХреЛ рд╡рд╛рдкрд╕ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдЗрдВрдХрд╛рд░ рдХрд░ рджреЗрддрд╛ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрд╡рд┐рдЪрд┐рддреНрд░ рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдореБрджреНрджрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдИрдУрдПрд╕ 10 рдХреЗ рд▓рд┐рдП рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдПрдЪрдПрд▓рдПрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рд╕рдВрдпреЛрдЬрди рд╣реИ рддреЛ рджрд┐рдЦрд╛рдПрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдЕрдЬреАрдм рд░реЛрдЯреЗрд╢рди рд╡реИрд▓реНрдпреВ рдСрдлрд╝рд╕реЗрдЯ рд╕рдВрднрд╡ рд╣реИред рдХреЛрдб рд╕рднреА рд╕рдорд╛рди рд╣реИред рдмрдирд╛рд╡рдЯ рдХреЗ рдКрдкрд░ рдПрдХ рдЬрд╛рд▓реАрджрд╛рд░ рдЬрд╛рд▓реА рд╣реИред

рд╕рдлрд╛рд░реА рдХреЗ рд▓рд┐рдП

http://dev.electroteque.org/webgl/webgl-mp4.html
http://dev.electroteque.org/webgl/canvas-hls.html

рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП

http://dev.electroteque.org/webgl/webgl-webm.html
http://dev.electroteque.org/webgl/canvas-webm.html

@danrossi рд╕рдлрд╛рд░реА рд╕рдВрд╕реНрдХрд░рдг рднреА рдЖрдИрдУрдПрд╕ 10 рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ ...

рдпрд╣ рдЖрдИрдУрдПрд╕ 10 рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд░рдВрдЧреАрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

http://dev.electroteque.org/webgl/threejs-hls.html

рдЖрдИрдУрдПрд╕ рдореБрджреНрджреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗ рдЕрдиреНрдп рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ, рдЗрд╕реЗ рдХрдо рд╕реЗ рдХрдо рдбреЗрд╕реНрдХрдЯреЙрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдирд╣реАрдВред

рдпрд╣ рдХрд┐рд╕реА рднреА рдЖрдИрдУрдПрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реВрдВред

http://dev.electroteque.org/webgl/webgl-mp4.html

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреИрдирд╡рд╛рд╕рд░реЗрдВрдбрд░ рд╕рдорд╛рдзрд╛рди рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рд╣реЛрдЧрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рди рдХреЗрд╡рд▓ рдЗрд╕реЗ рдЕрднреА рднреА CORS рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреИрдирд╡рд╛рд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗрд╡рд▓ рдЧрд┐рд░рд╛рдП рдЧрдП рдлрд╝реНрд░реЗрдо рдХрд╛ рдХрд╛рд░рдг рдмрдирдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред Safari OSX, рддреАрдиjs-hls.html рдореЗрдВ FlipY рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдореИрдВрдиреЗ рдХреИрдирд╡рд╛рд╕ рдбреЗрдореЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рдРрд╕рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕реЗ рдмрд╛рд╣рд░реА рд░реВрдк рд╕реЗ рдЪрд┐рддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЧреЛрд▓реЗ рдХреА рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдЬреАрдм рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдЗрд╕рд▓рд┐рдП рдЪрд┐рддреНрд░ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдпрд╛ рдШреВрдорддрд╛ рдирд╣реАрдВ рд╣реИ, рдпрд╣ рд╕рдм рдПрдХ рдмрд┐рдВрджреБ рдореЗрдВ рддрд┐рд░рдЫрд╛ рд╣реИред

рдКрдкрд░реА рдмрд╛рдПрдБ рдХреНрд╖реЗрддреНрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ orbitcontrols рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред

рдореЗрд╖ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдореЗрд╖ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП MeshBasicMaterial рдореЗрдВ "рдУрд╡рд░рдбреНрд░рд╛: 0.5" рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рдлрд╛рд░реА рдкрд░ рд╕реАрдУрдЖрд░рдПрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд░ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдлреНрд░реЗрдо рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред

http://dev.electroteque.org/webgl/canvas-mp4.html
http://dev.electroteque.org/webgl/canvas-hls.html

рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рд╕реНрдкрд╖реНрдЯ рдбреНрд░реЙрдкрд┐рдВрдЧ рдлреНрд░реЗрдо рдХреЗ рдХрд╛рд░рдг рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд░ рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд┐рдо рдЙрдкрд╛рдп рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдЕрднреА рддрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗрдЯрдЕрдк рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рд▓рд╛ рдХреИрдирд╡рд╛рд╕ рд╣реИред

рд░рдВрдЧ рдЧрдбрд╝рдмрдбрд╝реА рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХрд╛рдордХрд╛рдЬ? рд╕рдм рдХреБрдЫ рдиреАрд▓рд╛-рдИрд╢ рд╣реИ

@andreabadesso рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдЯрд┐рдХрдЯ рд╕реЗрдЯрдЕрдк рд╣реИрдВ рд╢рд╛рдпрдж рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рдорд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

OSX рдХреЗ рд▓рд┐рдП, FlipY рдХреЛ рдЗрдзрд░-рдЙрдзрд░ рдХрд░рдиреЗ рд╕реЗ рд╡рд╣ рдЧрдВрджреА рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧреАред IOS 10 рдХреЗ рд▓рд┐рдП, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдФрд░ рдЪрд╛рд╣рд┐рдПред

рдХреИрдирд╡рд╛рд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдПрдХ рдмрдбрд╝реА рд╡рд┐рдлрд▓рддрд╛ рд╣реИ, рдпрд╣ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рднреА рдареАрдХ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬреЗрдореЛрдЯреНрд░реА рд╡рд┐рдХреГрдд рд╣реИред рдпрд╣ рдлреНрд░реЗрдо рднреА рдЧрд┐рд░рд╛рддрд╛ рд╣реИред

рдореИрдВ рдЕрдм "рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд░" рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдХрд┐рд╕реНрдордд рдЖрдЬрдорд╛ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЕрднреА рднреА рдХреИрдирд╡рд╛рд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИред рдореБрдЭреЗ рдмрд╕ рдПрдХ рдХрд╛рд▓рд╛ рдХреИрдирд╡рд╛рд╕ рдорд┐рд▓рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВред рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рд╢реВрдиреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред

рдмрд╕ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ, рд╡реЗрдмрдХрд┐рдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рджреЗрдЧрд╛ рдФрд░ рдореИрдВрдиреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рд╡реЗрдмрд▓реЙрдЧ рдЭрдВрдбреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВ рд╡рд╛рдкрд╕ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рдФрд░ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд╕рдХрддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдПрдЪрдПрд▓рдПрд╕ рдХрд╛рдо рдХрд░ рд░рд╣реЗ mp4 рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдЗрд╕ рдмреАрдЪ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдПрдХ рд╣рддрд╛рд╢ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ .ts рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдЧрд╛, рдЙрдиреНрд╣реЗрдВ .mp4 рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдПрдХ рд╡реЗрдмрд╕реЛрдХреЗрдЯ рдЙрддреНрд╕рд░реНрдЬрд┐рдд рдХрд░реЗрдЧрд╛ рддрд╛рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ mp4 рдореЗрдВ рдЕрдЧрд▓рд╛ рдЯреБрдХрдбрд╝рд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХреЗ (рдЬреЛ ios10 рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ):

https://github.com/Lab21k/node-hls-mp4-ws/

рдЕрдЧрд░ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдкреВрд░рд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

@andreabadesso рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЕрдкрдиреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд┐рдпрд╛ рд╣реИ?

рдпрд╣ рддреЛ рдмреЗрд╣рдж рдмреЗрд╣реВрджрд╛ рд╣реИред рди рдХреЗрд╡рд▓ рдЖрдкрдХреЛ рдЕрднреА рднреА рдПрдХ рд╕реАрдУрдЖрд░рдПрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рд░реАрдпрд▓рдЯрд╛рдЗрдо рдореЗрдВ рдПрдлрдПрдлрдПрдордкреАрдИрдЬреА рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИ: рдУ рдХреНрдпрд╛ рдЖрдИрдУрдПрд╕ рднреА websockets рдХрд░рддрд╛ рд╣реИ? рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ webrtc рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд░ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрднреА рднреА рдХреИрдирд╡рд╛рд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рднреА рдЦрд░рд╛рдм рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╛рд▓рд╛ рдлреНрд░реЗрдо рд╣реИред рджреЛрдиреЛрдВ рд╡рд┐рдХрд▓реНрдк рдПрдХ рдореГрдд рдЕрдВрдд рд░рд╣реЗ рд╣реИрдВ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдХрдо рд╕реЗ рдХрдо SoftwareRenderer рдПрдХ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреЗрд╡рд▓ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛рд╡рдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред

рд╣реЗ рд╕рдм рд▓реЛрдЧ, рдореИрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рджрд┐рди рд╕реЗ рд░рдВрдЧ рдХреЗ рдореБрджреНрджреЗ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдПрдХ рдХрд╛рдо рдорд┐рд▓ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдпрд╣ рд╕реВрддреНрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд░рд╣рд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
рдореБрджреНрджрд╛ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐ рд▓рд╛рд▓ рдФрд░ рдиреАрд▓реЗ рд░рдВрдЧ рдХреА рдЕрджрд▓рд╛-рдмрджрд▓реА рд╣реЛ рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЙрди рд░рдВрдЧреЛрдВ рдХреЛ рдкреВрд░реНрд╡-рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ffmpeg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдЬреИрд╕реЗ рд╣реА рддреАрдиj рдкрд░ рд░рдВрдЧ рдлрд┐рд░ рд╕реЗ рд╕реНрд╡рд┐рдЪ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд╡реАрдбрд┐рдпреЛ рдЕрдкрдиреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрд╡рд░реВрдк рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдПрдХ рдЗрд╖реНрдЯрддрдо рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рдЖрдИрдУрдПрд╕ 10.2 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛)

@Yralec

рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рдереА рдпрд╛ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдорд┐рд▓ рд░рд╣реА рдереАред

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд╛рд╣ рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд╣рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рд▓рд╛рдЗрд╡ рдПрдиреНрдХреЛрдбрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕ рдкрд░ рдХрд┐рд╕реА рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╢рд╛рдпрдж рд╡реАрдУрдбреА рдХреЗ рд▓рд┐рдПред

рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЗрд╕рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ffmpeg рдзреНрд╡рдЬ рд╣реИ?

рдЕрднреА рднреА рдЕрджреНрднреБрддред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ FlipY рдореБрджреНрджреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рддреАрди.js рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреА рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдореИрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рд╡реЗрдмрдХрд┐рдЯ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реИред

@danrossi

рдпрд╣рд╛рдВ рд╡рд╣ рдЖрджреЗрд╢ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛:
ffmpeg -i in.mp4 -hls_time 10 -hls_list_size 0 -vf "colorchannelmixer=rr=0.0:rb=1.0:bb=0.0:br=1.0,vflip" -pix_fmt yuv420p out.m3u8
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдЖрдЙрдЯрдкреБрдЯ рднреА рдлрд╝реНрд▓рд┐рдк рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕реЗ рддреАрдиjs рдореЗрдВ рд╕реНрд╡рдпрдВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдареАрдХ рд╣реИ, рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ред

рдХреНрдпрд╛ рдиреАрд▓реЗ рдФрд░ рд╣рд░реЗ рд░рдВрдЧ рдХреА рдЕрджрд▓рд╛-рдмрджрд▓реА рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд╢реЗрдбрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛?

@mrdoob рдореБрдЭреЗ рд╢реЗрдбрд░реНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдирд╣реАрдВ рдерд╛ (рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рднреА рдирд╣реАрдВ рдерд╛), рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рд▓ рдФрд░ рдиреАрд▓реЗ рд░рдВрдЧ рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ рддреЛ рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдЖрдЦрд┐рд░рдХрд╛рд░ рдХрд╛рдо рдХрд░ рд╕рдХрддреА рд╣реИред

@mrdoob рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдХреБрдЫ рдкрд░ рд╣реИрдВред рдореБрдЭреЗ рдЦреЗрдж рд╣реИ рджреЛрд╕реНрдд рдлрд┐рд░ рд╕реЗ рдпрд╣ рдПрдХ рдФрд░ рд╡реЗрдмрдХрд┐рдЯ рд╕рдорд╕реНрдпрд╛ рдмрди рдЧрдИ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ FlipY рдлрд┐рдХреНрд╕ рдЕрднреА рднреА рдЯрд╛рд▓рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдХреБрдЫ рд╢реЛрдз рдХрд┐рдпрд╛ рдФрд░ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдПрдХ рдЪреИрдирд▓ рдСрд░реНрдбрд░ рд╕реНрд╡реИрдк рд╣реИ, рдореИрдВ рдЕрдм рд╢реЗрдбрд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реВрдВред

gl_FragColor = texture2D(u_image, v_texCoord).bgra;

@mredoob рдореЗрд░реЗ рдХрдЪреНрдЪреЗ

рдЕрднреА рддрдХ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдХрд╛рд░реНрдпрд╢реАрд▓ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

 gl.shaderSource(ps, "precision mediump float;uniform sampler2D sm;varying vec2 tx;void main(){gl_FragColor=texture2D(sm,txt).bgra;}");

рдХреЗрд╡рд▓ рдХреЙрдкреА рдФрд░ рдкреЗрд╕реНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рддреНрд░реБрдЯрд┐ рдереАред

рдЙрдкрд░реЛрдХреНрдд рдЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ред рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЬреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдЖрдИрдУрдПрд╕ 10 рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рд╢реЗрдбрд░ рдореЗрдВ рд╕реНрд╡реИрдк рдХрд┐рдП рдЧрдП рд▓рд╛рд▓ рдФрд░ рдзреБрдВрдзрд▓реЗ рд░рдВрдЧреЛрдВ рдХреЛ рдЙрдореНрдореАрдж рд╕реЗ рдЙрд▓рдЯрдирд╛ рдЪрд╛рд╣рд┐рдП?

http://dev.electroteque.org/webgl/webglbgra.html

@Yralec рд╢реЗрдбрд░ рдкрд░ рдХрд▓рд░ рдЪреИрдирд▓ рдСрд░реНрдбрд░ рдХреЛ IOS10 рдореЗрдВ рд╡рд╛рдкрд╕ рдЙрд▓реНрдЯрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдЬреАрдм рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдЖрд░рдЬреАрдмреАрдП рдореЗрдВ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред

gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, рд╡реАрдбрд┐рдпреЛ);

@mrdoob рдмрд┐рд▓реНрдЯ рдЗрди рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкрд░ рдЗрд╕ рдмрдирд╛рд╡рдЯ рд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ?

gl_FragColor=texture2D(sm,txt).bgra;

@рдорд░рджреВрдмред рд╕реБрдзрд╛рд░ред рдпрд╣ рд╡рд╣реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд▓реЛрдЧ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗред

gl_FragColor = texture2D( tEquirect, sampleUV )
var equirect_frag = "uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n";

рдЗрд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреИрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВ?

@danrossi рдЖрдк JS . рдореЗрдВ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

THREE.ShaderLib[ 'equirect' ].fragmentShader = THREE.ShaderLib[ 'equirect' ].fragmentShader.replace( "texture2D( tEquirect, sampleUV );", "texture2D( tEquirect, sampleUV ).bgra;" );

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдореБрдЭреЗ рд╢реЗрдбрд░реНрд╕ рдХреЛ рддреАрди рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред ShaderMaterial, рд▓реЗрдХрд┐рди рдмрдирд╛рд╡рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ?

var equirect_frag = "uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV );\n}\n";

                var equirect_vert = "varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}\n";


                var uniforms =  {
                    tEquirect: { value: null },
                    tFlip: { value: - 1 }
                };

                var material = new THREE.ShaderMaterial( {
                    uniforms: uniforms,
                    vertexShader: equirect_vert,
                    fragmentShader: equirect_frag
                });

рдпрд╣ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рдЕрдирдореНрдп рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдХреЗрд╡рд▓ IOS рдореЗрдВ HLS рд╕реНрдЯреНрд░реАрдо рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рд╕рдлрд╛рд░реА рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди FlipY рдлрд┐рдХреНрд╕ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЙрд▓реНрдЯрд╛ рдЦреЗрд▓рддрд╛ рд╣реИред рджрд┐рдорд╛рдЧ рдЪрдХрд░рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдм рдкреНрд░рдпрд╛рд╕ Apple рдФрд░ Webkit haha тАЛтАЛрдХреА рд╡рдЬрд╣ рд╕реЗ рд╣реИред

var uniforms =  {
                    tEquirect: { value: texture },
                    tFlip: { value: - 1 }
                };

                var material = new THREE.ShaderMaterial( {
                    uniforms: uniforms,
                    vertexShader: equirect_vert,
                    fragmentShader: equirect_frag
                });

@WestLangley рдкреИрдЪ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд░рдВрдЧ рдЙрд▓реНрдЯреЗ рджрд┐рдЦ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рд▓реЗрдХрд┐рди рдирд╣реАрдВред

gl_FragColor=texture2D(sm,txt).bgra;

[рдмреА] рд▓реНрдпреВ рдФрд░ [рдЖрд░] рдПрдб рдХреЛ рд╕реНрд╡реИрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рд╢реЗрдбрд░ рд╣реИ: рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдСрд░реНрдбрд░ рдЖрд░рдЬреАрдмреАрдП рд╣реИ, рдЗрд╕рд▓рд┐рдП рдмреАрдЬреАрдЖрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡реИрдк рдХрд░рддрд╛ рд╣реИред

FlipY рдлрд┐рдХреНрд╕ рдмреНрд░реЗрдХ

txt -> vec2 (txt.x, 1.0 - txt.y) рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

рдкрддрд╛ рдирд╣реАрдВ рдХреИрд╕реЗ

http://jsfiddle.net/p2duvg51/14/

рдкреИрдЪ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рд░рдВрдЧ рдЙрд▓реНрдЯреЗ рджрд┐рдЦ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рд▓реЗрдХрд┐рди рдирд╣реАрдВред

рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдкреИрдЪ рдХреЛ рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рд▓рдЧрд╛ рд░рд╣реЗ рд╣реЛрдВ

@makc рд╣рд╛рдБ рдореЗрд░реЗ рдХрдЪреНрдЪреЗ

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЕрдЧрд░ рдпреВрд╡реА рдХреЛрдб рдкрд░ рдлреНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рддреАрдиj рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддреЛ рдпрд╣ рдлреНрд░реЗрдо рдореЗрдВ рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рдлрд╝реНрд▓рд┐рдк рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЧрдгрдирд╛ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред

рдХрдЪреНрдЪреЗ рд╡реЗрдмрдЬреАрдПрд▓ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдпрд╣ рд╡рд░реНрдЯреЗрдХреНрд╕ рд╢реЗрдбрд░ рдкрд░ рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ

attribute vec2 vx;varying vec2 tx;void main(){gl_Position=vec4(vx.x*2.0-1.0,1.0-vx.y*2.0,0,1);tx=vx;}

рдлрд┐рд░ рдЯреБрдХрдбрд╝реЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдпрд╣ рд░рдВрдЧ рдЪреИрдирд▓реЛрдВ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

precision mediump float;uniform sampler2D sm;varying vec2 tx;void main(){gl_FragColor=texture2D(sm,tx).bgra;}

рдЗрд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдореЗрдВ рджреЛрд╣рд░рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдЕрдм рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди FlipY рдлрд┐рдХреНрд╕ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ bgra рдЬреЛрдбрд╝рдирд╛ рднреВрд▓ рдЧрдпрд╛ред

var equirect_frag = "uniform sampler2D tEquirect;\nuniform float tFlip;\nvarying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvec3 direction = normalize( vWorldPosition );\n\tvec2 sampleUV;\n\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\n\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\n\tgl_FragColor = texture2D( tEquirect, sampleUV ).bgra;\n}\n";

                var equirect_vert = "varying vec3 vWorldPosition;\n#include <common>\nvoid main() {\n\tvWorldPosition = transformDirection( position, modelMatrix );\n\t#include <begin_vertex>\n\t#include <project_vertex>\n}\n";




                var uniforms =  {
                    tEquirect: { value: texture },
                    tFlip: { value: 1 }
                };

                var material = new THREE.ShaderMaterial( {
                    uniforms: uniforms,
                    vertexShader: equirect_vert,
                    fragmentShader: equirect_frag
                });

рдЕрдЧрд░ рдореИрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ tFlip рдорд╛рди рдХреЛ 1 рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП HLS рдХреЗ рд╕рд╛рде FlipY рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдлрд┐рдХреНрд╕ рд╡рд┐рдХрд▓реНрдк?

tFlip: { value: 1 }

рд╡реАрдбрд┐рдпреЛ рдиреЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдкреНрд░рддрд┐рдкрд╛рджрди рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдо рд╕реЗ рдХрдо рдореБрдЭреЗ рдПрдХ рд░рдВрдЧ рдкрд░рд┐рд╡рд░реНрддрди рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИред рдкреИрдЪ рдЙрджрд╛рд╕ рд░реВрдк рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢реЗрдбрд░ рдХреЛрдб рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЙрд╕ рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд▓рд┐рдк рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕реЗ рдирдХрд╛рд░рд╛рддреНрдордХ рдХреЗ рдмрдЬрд╛рдп рд╕рдХрд╛рд░рд╛рддреНрдордХ 1 рджреЗрддрд╛ рд╣реИред

рдореИрдВрдиреЗ IOS10 рддрдХ рдкрд╣реБрдВрдЪ рдЦреЛ рджреА, рдПрдХ рдмрд╛рд░ рдЬрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреБрд░рд╛рдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдореЗрд░реЗ рдЖрдИрдкреИрдб 3 рдХреА рддрд░рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓рд┐рдпрд╛ред рдореБрдЭреЗ рдмрд╛рд╣рд░реА рдбреНрд░рд╛рдЗрд╡ рдкрд░ рдмреВрдЯ рдХрд┐рдП рдЧрдП рдореИрдХрдУрдПрд╕ рдкрд░ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╣реИ рдЬреЛ рдХреЗрд╡рд▓ 10.10 рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред рдЗрд╕ рд╕рдм рддреЛрдбрд╝рдлреЛрдбрд╝ рдХреЗ рд╕рд╛рде рдордЬреЗрджрд╛рд░ рд╕рдордпред

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдлреНрд░реЗрдо рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдареАрдХ рд╕реЗ рдШреВрдо рд░рд╣рд╛ рд╣реИред

рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЙрджрд╛рд╣рд░рдг IOS 10 рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдореИрдВ рдЕрднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╕рдлрд╛рд░реА рдореЗрдВ рдЗрд╕реЗ рдЙрд▓реНрдЯреЗ рд░рдВрдЧ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

http://dev.electroteque.org/webgl/threejs-hls.html

рдЫрд╛рдпрд╛рдВрдХрди рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЫрд╡рд┐ рд╕реНрдХреЗрд▓рд┐рдВрдЧ, рдЬреНрдпрд╛рдорд┐рддрд┐ рдХреЛ рдкреЗрдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреИрдорд░рд╛ рд░реЛрдЯреЗрд╢рди рдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ

camera.position.x = (Math.PI / 2);

рдХреЛрд╢рд┐рд╢ рдХрд░рдиреА рд╣реЛрдЧреА рдФрд░ рдЗрд╕ рдкреИрдЪ рдХреЛ рдХрд╛рдо рдореЗрдВ рд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдХреИрдорд░реЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдЦрд┐рд▓рд╡рд╛рдбрд╝ рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рд╡реНрдпрд╡рд╣рд╛рд░реНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд░рдиреЗ рд╕реЗ рдФрд░ рднреА рдЕрдзрд┐рдХ рдХреАрдбрд╝реЗ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред MeshBasicMaterial рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

THREE.ShaderLib[ 'equirect' ].fragmentShader = THREE.ShaderLib[ 'equirect' ].fragmentShader.replace( "texture2D( tEquirect, sampleUV );", "texture2D( tEquirect, sampleUV ).bgra;" );
                THREE.ShaderLib[ 'equirect'].uniforms.tEquirect = { value: texture };
                THREE.ShaderLib[ 'equirect'].uniforms.tFlip = { value: 1 };

                var material2 = new THREE.ShaderMaterial( {
                    uniforms: THREE.ShaderLib[ 'equirect'].uniforms,
                    vertexShader: THREE.ShaderLib[ 'equirect'].vertexShader,
                    fragmentShader: THREE.ShaderLib[ 'equirect' ].fragmentShader
                });

рдЕрдЧрд░ рдореИрдВрдиреЗ рдореВрд▓ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рддреЛ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдЕрд░реНрдерд╛рдд

THREE.ShaderLib[ 'equirect' ].fragmentShader = THREE.ShaderLib[ 'equirect' ].fragmentShader.replace( "texture2D( tEquirect, sampleUV );", "texture2D( tEquirect, sampleUV ).bgra;" );
                var material  = new THREE.MeshBasicMaterial( { map : texture } );

рдмрд┐рд▓реНрдЯ-рдЗрди рд╢реЗрдбрд░ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдХрд╕реНрдЯрдо рд╢реЗрдбрд░ рдмрдирд╛рдКрдВрдЧрд╛ред

рд╣реЗрдпрд░ рдпреВ рдЧреЛ! рдореИрдВ

const WIDTH = window.innerWidth;
const HEIGHT = window.innerHeight;

var camera = new THREE.PerspectiveCamera( 75, WIDTH / HEIGHT );

var scene = new THREE.Scene();

// geometry

var geometry = new THREE.SphereGeometry( 1, 32, 16 );

// material

var loader = new THREE.TextureLoader();
var texture = loader.load( 'https://threejs.org/examples/textures/2294472375_24a3b8ef46_o.jpg');

// material

var material = new THREE.ShaderMaterial( {
    uniforms: {
        texture: new THREE.Uniform( texture )
    },
    vertexShader: [
        "varying vec2 vUV;",
        "void main() {",
        "   vUV = vec2( 1.0 - uv.x, uv.y );", // fipY: 1.0 - uv.y
        "   gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
        "}"
    ].join( "\n" ),
    fragmentShader: [
        "uniform sampler2D texture;",
        "varying vec2 vUV;",
        "void main() {",
        "   gl_FragColor = texture2D( texture, vUV ).bgra;",
        "}"
    ].join( "\n" ),
    side: THREE.BackSide
} );

var mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );

var renderer = new THREE.WebGLRenderer();
renderer.setSize( WIDTH, HEIGHT );
document.body.appendChild( renderer.domElement );

function animate( time ) {
    requestAnimationFrame( animate );
    mesh.rotation.y = time * 0.0001;
    renderer.render( scene, camera );
}

animate();

https://jsfiddle.net/9jy92zxn/

рдХреЗрд╡рд▓ рдПрдХ рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@danrossi рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

var material = new THREE.ShaderMaterial({
      uniforms: {
        texture: { value: texture }
      },
      vertexShader: [
        "varying vec2 vUV;",
        "void main() {",
        "   vUV = vec2( uv.x, 1.0 - uv.y );",
        "   gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
        "}"
      ].join("\n"),
      fragmentShader: [
        "uniform sampler2D texture;",
        "varying vec2 vUV;",
        "void main() {",
        " gl_FragColor = texture2D( texture, vUV  ).bgra;",
        "}"
      ].join("\n")
    });

рдпрд╛рдж рд░рдЦреЗрдВ рд░рдВрдЧ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЪрд░ рдирд╛рдо рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

рдпрд╣ рдпрд╣рд╛рдБ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ... (Chrome 55, OSX)

screen shot 2016-12-20 at 18 05 29

рдпрд╣ рдореБрджреНрджрд╛ рдПрдЪрдПрд▓рдПрд╕ рд╕реНрдЯреНрд░реАрдо рдФрд░ рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдИрдУрдПрд╕ рдореБрдЭреЗ рдбрд░ рд╣реИ:|

рдореИрдВ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдХрд┐ рдореЗрд╢рдмреЗрд╕рд┐рдХ_рдлреНрд░реИрдЧ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкрд░ рдмрдирд╛рд╡рдЯ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред рд╡рд╣реА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЗрдХреНрд╡рд┐рд░реЗрдХреНрдЯ_рдлреНрд░реИрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЬрд┐рд╕реЗ рдореИрдВ рдЙрдкрдпреЛрдЧ рдпрд╛ рдЪрдпрдирд┐рдд рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред

gl_FragColor = vec4( outgoingLight, diffuseColor.a );

рдпрд╣реА рд╕рдм рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ meshbasic_frag рдФрд░ equirect_frag рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореЗрд░реЗ рдХреЛрдб рдХреЛ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдмрджрд▓реЗрдВ:

var loader = new THREE.TextureLoader();
var texture = loader.load( 'https://threejs.org/examples/textures/2294472375_24a3b8ef46_o.jpg');

рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд╛рде:

var video = document.getElementById( 'video' );
var texture = new THREE.VideoTexture( video );

@mrdoob

рдмреИрдХрд╕рд╛рдЗрдб рд╕рдорд╕реНрдпрд╛ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдпрд╣ рд╢реЗрдбрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рдл рд╣реИред рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ ?

рдХрд╕реНрдЯрдо рд╢реЗрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореИрдВ рдореВрд▓ FlipY рдлрд┐рдХреНрд╕ рдЦреЛ рджреЗрддрд╛ рд╣реВрдВред

for (var i = 0; i < uv.count; i++) {
    uv.setY (i, 1 - uv.getY (i));
}

рдореБрдЭреЗ рд╡рд░реНрдЯреЗрдХреНрд╕ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛, x рдлрд╝реНрд▓рд┐рдк рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ y рдХреЛ рдЗрдирд╡рд░реНрдЯрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╕реЗрдХрдВрдб рдореЗрдВ рд░рдЦ рджреВрдБрдЧрд╛ред

var uniforms = {
    texture: { value: texture }
};

var vertexShader = [
    "varying vec2 vUV;",
    "void main() {",
    "   vUV = vec2( uv.x, 1.0 - uv.y );", // fipY: 1.0 - uv.y
    "   gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
    "}"
].join( "\n" );

var fragmentShader = [
    "uniform sampler2D texture;",
    "varying vec2 vUV;",
    "void main() {",
    "   gl_FragColor = texture2D( texture, vUV ).bgra;",
    "}"
].join( "\n" );

var material = new THREE.ShaderMaterial( {
    uniforms: uniforms,
    vertexShader: vertexShader,
    fragmentShader: fragmentShader,
    //side: THREE.BackSide
});

рдпрд╣ рд╢реЗрдбрд░ рдХрд╛рд░реНрдпрдХреНрд░рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рдл рд╣реИред рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ ?

рдЬрд╛рджреВ! рдореИрдВ

@mrdoob рдзрдиреНрдпрд╡рд╛рдж рд╡рд┐рдЬреЗрддрд╛ред рд╢реЛрд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ Apple рдХреЛ рджреЛрд╖ рджреЗрдВред

рддреЛ рд╕рдордХреЛрдг рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдореЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рддреЛ MeshBasicMaterial рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдРрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдЯреЗрдХреНрд╕рдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ? рдореИрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рд╣рдо рдмрдВрдж рдХрд░реЗрдВ?

рдпрд╣рд╛рдБ рдЕрджреНрдпрддрди рдбреЗрдореЛ рд╣реИ

http://dev.electroteque.org/webgl/threejs-bgra.html

рддреЛ рд╕рдордХреЛрдг рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП, рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдореЛ рдХреЛ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП? рддреЛ MeshBasicMaterial рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╢реЗрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдРрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдЯреЗрдХреНрд╕рдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИ?

рдЦреИрд░, MeshBasicMaterial рдЕрдзрд┐рдХ рд▓рдЪреАрд▓рд╛ рд╣реИ рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЛ рд╢реЗрдбрд░ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рд╣реИ рдХрд┐, рдЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╕реНрдЯрдо рд╢реЗрдбрд░ рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдерд╛ред

рдХреНрдпрд╛ рд╣рдо рдмрдВрдж рдХрд░реЗрдВ?

рд╣рд╛рдВ!

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

var vertexShader = [
    "varying vec2 vUV;",
    "void main() {",
    "   vUV = vec2( uv.x, uv.y );", // fipY: 1.0 - uv.y
    "   gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
    "}"
].join( "\n" );

var fragmentShader = [
    "uniform sampler2D texture;",
    "varying vec2 vUV;",
    "void main() {",
    "   gl_FragColor = texture2D( texture, vUV );",
    "}"
].join( "\n" );

рдлрд╝реНрд▓рд┐рдкреА рдореЗрдВ рдереЛрдбрд╝реЗ рд╕реЗ рд╕рдорд╛рдпреЛрдЬрди рдХреЗ рд╕рд╛рде, рд╡рд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╡реЗрдм рдХреЗ рд╕рд╛рде рдХреНрд░реЛрдо рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

@mrdoob рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╢реЗрдбрд░ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рд╡рд╛рд▓реЗ рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдлреНрд▓рд┐рдк рдлрд┐рдХреНрд╕, "1.0 - uv.y" рдХреЗрд╡рд▓ рд╕рдлрд╛рд░реА рдкрд░ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд░рдВрдЧ рдЪреИрдирд▓ рдЙрд▓рдЯрд╛ рдХреЗрд╡рд▓ IOS10 рдХреЗ рд▓рд┐рдП HLS рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рд╕реАрдУрдЖрд░рдПрд╕ рдкреНрд░реЙрдХреНрд╕реА рд╕рдореЗрдд рдХрд╛рдо рдХреА рдмрд╣реБрдд рд╣реА рдкрд╛рдЧрд▓ рдкрд░рддреЗрдВред

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рдореЗрд╢рдмреЗрд╕рд┐рдХрдордЯреЗрд░рд┐рдпрд▓ рджреНрд╡рд╛рд░рд╛ рдЖрдкреВрд░реНрддрд┐ рдХрд┐рдП рдЧрдП рд╢реЗрдбрд░ рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред рдХреНрдпрд╛ рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рд░реЛрдЯреЗрд╢рди рд╡рд░реНрдЯреЗрдХреНрд╕ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдирдорд╕реНрддреЗ
рдореИрдВ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдПрдХ 360vr рдкреНрд▓реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдПрдЪрдПрд▓рдПрд╕ рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ (.m3u8 hls.js рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ)
рдпрд╣ рд╡реЗрдмрд▓реЙрдЧ рд╕рдХреНрд╖рдо рдХреЗ рд╕рд╛рде рд╕рдлрд╛рд░реА рдУрдПрд╕рдПрдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЖрдИрдкреИрдб 10.2 рдкрд░ рдореЗрд░реА рд╕рд╛рд░реА рдХреЛрд╢рд┐рд╢ рдПрдХ рдХрд╛рд▓реЗ рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдЦреЛ рдЬрд╛рддреА рд╣реИ (рдзреНрд╡рдирд┐ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ)
рдЕрдЧрд░ рдореИрдВ vr360 рдореЛрдб рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИред
рдореИрдВрдиреЗ рдХреБрдЫ рд╕реБрдЭрд╛рдП рдЧрдП рддрд░реАрдХреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХрд╛рд▓рд╛ рдХреИрдирд╡рд╛рд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реИред
рдХрд┐рд╕реА рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ?

FlipY рдФрд░ рдХрд▓рд░ рдЪреИрдирд▓ рдЗрдирд╡рд░реНрдЬрди рдлрд┐рдХреНрд╕ рдЗрд╕ рдереНрд░реЗрдб рдореЗрдВ рд╣реИрдВред

рдореИрдВрдиреЗ рдЬрд┐рди рд╡реЗрдмрдХрд┐рдЯ рдмрдЧреНрд╕ рдХреЛ рдЯреНрд░реИрдХ рдХрд┐рдпрд╛, рд╡реЗ рдмрд╛рд╕реА рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдЕрд╣рдВрдХрд╛рд░ рдХрд╛ рдореБрдХрд╛рдмрд▓рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ рдЕрднреА рднреА рдЦреБрд▓рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЙрдиреНрд╣реЗрдВ рджреЗрдЦрдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдПрдЧрд╛ред

рд╕рдлрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ FlipY рдлрд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ рдЗрд╕реЗ рдЕрднреА рднреА рддреАрди.рдЬреЗрдПрд╕ рдмрдирд╛рд╡рдЯ рдкрд░ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред

рдпрд╣рд╛рдБ рдФрдкрдЪрд╛рд░рд┐рдХ es6 рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХреА рд╣реИрдВред рдЗрд╕ рдмрдХрд╡рд╛рд╕ рдХреЛ рд╢рд┐рдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рдореБрдЭреЗ рдЕрднреА рднреА рдмреБрд░реЗ рд╕рдкрдиреЗ рдЖ рд░рд╣реЗ рд╣реИрдВред

рд╢реИрдбрд░рдордЯреЗрд░рд┐рдпрд▓ рд╕реЙрд▓реНрдпреВрд╢рди рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЪреИрдВрдкрд┐рдпрди рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЕрдм рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдпрд╣ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╢реЗрдбрд░ рд╣реИред рдпрд╣ рд╕рд┐рд░реНрдл рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдХреЗ рд▓рд┐рдП рд╣реИред

 static getVertexShader(unflipY) {
        return [
            "varying vec2 vUV;",
            "void main() {",
            "   vUV = vec2( uv.x, " + (unflipY ? "1.0 - uv.y" : "uv.y") + ");", // fipY: 1.0 - uv.y
            "   gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );",
            "}"
        ].join( "\n" );
    }

    static getFragmentShader(invertColour) {
        return  [
            "uniform sampler2D texture;",
            "varying vec2 vUV;",
            "void main() {",
            "   gl_FragColor = texture2D( texture, vUV )" + (invertColour ? ".bgra" : "") + ";",
            "}"
        ].join( "\n" );
    }

    static createShaderMaterial(texture, unflipY, invertColour) {

        texture.flipY = !unflipY;

        if (invertColour) {
            texture.format = THREE.RGBAFormat;
        }

        return new THREE.ShaderMaterial( {
            uniforms: { texture: { value: texture } },
            vertexShader: WebVRUtils.getVertexShader(unflipY),
            fragmentShader: WebVRUtils.getFragmentShader(invertColour)
        });
    }

рдкреНрд░рдпреЛрдЧ

 let invertColour = false;

        if (WebVRUtils.isSafari) {
            this.hasHLS = hasHls;
            invertColour = hasHls && WebVRUtils.isIpad;
        }

        this.material = WebVRUtils.createShaderMaterial(this.texture, this.hasHLS, invertColour);

рдареАрдХ рд╣реИ рд▓рд╛рдЗрди _gl.pixelStorei(_gl.UNPACK_FLIP_Y_WEBGL, рдмрдирд╛рд╡рдЯ.flipY) рдкрд░ рддреАрди.js рдкрд░ рдЯрд┐рдкреНрдкрдгреА рд╕рдлрд╛рд░реА рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИ (10.0.2, рдкрд┐рдЫрд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдЯреВрд▓ рдореЗрдВ webgl рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдЕрднреА рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ) рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрднреА рднреА iPad рдФрд░ iPhone рдкрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдпрд╣ рдореЗрд░рд╛ рд▓рдХреНрд╖реНрдп рд╣реИ)
ShaderMaterial рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдП ...
рдЖрдкрдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж

рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ FlipY рдЕрдХреНрд╖рдо рдХрд░рдирд╛ MacOs Safari 10 рдХреЗ рд▓рд┐рдП рднреА рдЖрд╡рд╢реНрдпрдХ рдерд╛ред

рд╣рд╛рдБ рдореЗрд░реЗ рд▓рд┐рдП рднреА (рдкрд┐рдЫрд▓реЗ 9.xx рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЫреЛрдбрд╝рдХрд░)
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкреНрд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕рдорд╛рдзрд╛рди рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди рди рд╣реЛ :-(

рдЖрдкрдХреЛ IOS рдкрд░ FlipY рдлрд┐рдХреНрд╕ рдФрд░ рдХрд▓рд░ рдЪреИрдирд▓ рдЗрдирд╡рд░реНрдЬрди рджреЛрдиреЛрдВ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдФрд░ рдХреЗрд╡рд▓ IOS 10 рдХреЗ рд▓рд┐рдПред IOS 9 рдкрд░ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред рдЬреЛ рдХрдИ рдкреБрд░рд╛рдиреЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдХреНрдпреЛрдВрдХрд┐ рдРрдкреНрдкрд▓ рдиреЗ рдЙрдиреНрд╣реЗрдВ рдореЗрд░реЗ рдЖрдИрдкреИрдб 3 рдХреА рддрд░рд╣ рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рдХрд┐рдпрд╛ рд╣реИред рдЖрдИрдУрдПрд╕ 10 рдЗрдирд▓рд╛рдЗрди рдкреНрд▓реЗрдмреИрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╡реИрд╕реЗ рднреА рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛ред

рдореИрдВ рдЕрдм рдЖрдИрдУрдПрд╕ рдореЗрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд░рд╣рд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рд╕реЗ рдереЛрдбрд╝рд╛ рднреНрд░рдорд┐рдд рд╣реВрдВред

рдПрдЪрдПрд▓рдПрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП:

  • рдЖрдИрдУрдПрд╕ рдЧрд▓рдд рдХреНрд░рдо рдореЗрдВ рд░рдВрдЧ рдЪреИрдирд▓ рдкреНрд░рджрд╛рди рдХрд░ рд░рд╣рд╛ рд╣реИ (рдЖрд░рдЬреАрдмреАрдП рдХреЗ рдмрдЬрд╛рдп рдмреАрдЬреАрдЖрд░)ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдорд╛рди рдЕрдиреНрдпрдерд╛ рд╕рд╣реА рд╣реИрдВред
  • macOS рдПрдХ рдРрд╕реА рдмрдирд╛рд╡рдЯ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП X рдЕрдХреНрд╖ рдореЗрдВ рдлрд╝реНрд▓рд┐рдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕реЗ setPixelStorei(UNPACK_FLIP_Y_WEBGL, true) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • рдЖрдИрдУрдПрд╕ рдПрдХ рдмрдирд╛рд╡рдЯ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕ рдЕрдХреНрд╖ рдореЗрдВ рдлрд╝реНрд▓рд┐рдкрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рд╕рд╣реА рд╣реИ?

рдЬрд╡рд╛рдм рдКрдкрд░ рдЗрд╕ рдЯрд┐рдХрдЯ рдореЗрдВ рд╣реИред

рдмрд╕ рдЖрдк рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЗрдбрдЕрдк рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдирд╡реАрдирддрдо iOS 10.3.3 рдЕрдкрдбреЗрдЯ рдиреЗ bgr рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ , рдЬреЛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдмрдирд╛ рджреЗрдЧрд╛ ... рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдореИрдВ three.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХрд┐рд╕реА рднреА рдкреНрд░рд╢реНрди/рдЯреНрд░рд╛рдЗрдЬрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдпрд╛ SO рдкреНрд░рд╢реНрди рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВред

рдЖрд╢рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред рд╕реБрдВрджрд░ рдорд╛рдирдХред рдЪреЗрддрд╛рд╡рдиреА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдзрдиреНрдпрд╡рд╛рджред

рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдЯрд┐рдХрдЯ рдХреЛ рдЦреБрд▓рд╛ рдФрд░ рдмрд╛рд╕реА рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдХреЛрдИ рдлрд┐рдХреНрд╕ рд╣реИ рддреЛ рд╕рднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЙрдиреНрд╣реЛрдВрдиреЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рддреЛ рдЕрдм рдЫреЛрдЯреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реИ?

IOS 11 рдореЗрдВ CORS рдлрд┐рдХреНрд╕ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдореИрдВ xcode 9 рдмреАрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣рд╛ред рдпрд╣ 10.3.3 рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЗрд╡рд▓ 10.3.1 рдФрд░ 11 рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред рдореИрдВрдиреЗ 11 рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдЙрд▓рдЯрд╛ рдЖрд░рдЬреАрдмреАрдП рдЕрднреА рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред рдореБрдЭреЗ рд╣рд░реЗ рд░рдВрдЧ рдХрд╛ рдбрд┐рд╕реНрдкреНрд▓реЗ рджрд┐рдЦрд╛рдИ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдЕрдиреНрдпрдерд╛ рдпрд╛ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВред рдореБрдЭреЗ рд╕реБрдзрд╛рд░ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рд╣реЛрдВрдЧреЗред

IOS11 рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдПрдХ рдмрдХрд╡рд╛рд╕ рд╣реИред рдХреЛрдИ 10.3.3 рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдирд╣реАрдВ рд╣реИред IOS11 рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ CORS рдлрд┐рдХреНрд╕ рд╣реИред

рдЕрдм рдЬрдм рдЖрдИрдУрдПрд╕ 11 рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ рддреЛ рдореИрдВ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдореИрдВ рдЖрдИрдлреЛрди рдЖрдИрдУрдПрд╕ 11 (рдЕрднреА рддрдХ рдЖрдИрдкреИрдб рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА) рдХреЗ рд▓рд┐рдП рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред

рдореИрдВ рдЗрд╕реЗ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд╕рд╛рде iPhone рдФрд░ iPad рдкрд░ iOS 10.3.3 рдХреЗ рд▓рд┐рдП (CORS рд╣реИрдХ, FlipY рдФрд░ рд░рдВрдЧ рд╕реБрдзрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
IPhone iOS 11 рдкрд░ рдореЗрд░реЗ рдкрд╛рд╕ HLS (CORS рд╣реИрдХ, FlipY рдФрд░ рдХрд▓рд░ рдлрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдХреЗ рд╕рд╛рде рдПрдХ рдмреНрд▓реИрдХ рд╕реНрдХреНрд░реАрди рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ рдЕрдкрдиреА рдЙрдВрдЧрд▓реА рдирд╣реАрдВ рдбрд╛рд▓реА рд╣реИред

CORS рдореБрджреНрджреЗ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХрдо рд╕реЗ рдХрдо MP4 рдкреНрд░рдЧрддрд┐рд╢реАрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХреЗ рд▓рд┐рдП iOS 11 рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдХрд╛рд░рдг HLS рдХреЗ рд▓рд┐рдП рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реВрдВред

рдЕрдЧрд░ рдХрд┐рд╕реА рдХреА рдХрд┐рд╕реНрдордд рдЕрдЪреНрдЫреА рд╣реИ рддреЛ рдХреГрдкрдпрд╛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ: /

рдореИрдВ IOS11 рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ iPad рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдкреВрд░реА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдПрдореНрдпреВрд▓реЗрдЯрд░ рдореЗрдВ рдлрд┐рдХреНрд╕ рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рд╡рд┐рдлрд▓рддрд╛ рдереАред

рдореБрдЭреЗ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреА рд╣реЛрдЧреА рдХрд┐ рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдХрд╛рдЙрдВрдЯрд░ рд╣реИрдХ рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╛ рдЕрдЧрд░ рдЖрд░рдЬреАрдмреА рд░рдВрдЧ рдЪреИрдирд▓реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдмреНрд▓реИрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдПрдХ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЙрдирдХреА рд╕рд╛рдорд╛рдиреНрдп рддреЛрдбрд╝рдлреЛрдбрд╝ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХреЛ рд╡рд╛рдкрд╕ рд▓рд╛рдиреЗ рдореЗрдВ рд╡рд░реНрд╖реЛрдВ рд▓рдЧреЗрдВрдЧреЗред IOS9 рдкрд░ рдпрд╣реА рд╣реЛрддрд╛ рд╣реИред

CORS рдХреЛ IOS11 рдореЗрдВ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдФрд░ рдЙрд╕реЗ рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ

@danrossi рдореИрдВ рднреА рдЕрдм iOS 11 рдХреЗ рд╕рд╛рде рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдЕрдЧрд░ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд▓реЗрдХрд░ рдЖрддреЗ рд╣реИрдВ рддреЛ рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред iOS 10 рдЕрднреА рднреА CORS рдлрд┐рдХреНрд╕ рдФрд░ Flip Y рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди iOS 11 рдХреЗрд╡рд▓ рдСрдбрд┐рдпреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рдЕрднреА рднреА IOS11 рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ iPad рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдЪрдПрд▓рдПрд╕ рдЖрдИрдУрдПрд╕ 11 рдмреАрдЯрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ? рдпрд╣ CORS рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрд░рдЬреАрдмреА рдЪреИрдирд▓ рдлреНрд▓рд┐рдк рдЙрд▓реНрдЯреЗ рд░рдВрдЧ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред рддреЛ рдХрд╛рд▓рд╛ CORS рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЕрдкрдиреЗ CORS рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдлреНрд▓рд┐рдк рд╡рд╛рдИ рдХреЗ рдмрд┐рдирд╛ рднреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рдФрд░ рдпрд╣ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдХреЗрд╡рд▓ рдзреНрд╡рдирд┐, рдХреЛрдИ рд╡реАрдбрд┐рдпреЛ рдирд╣реАрдВ: /

ios11 рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдзреНрд╡рдирд┐, рдХреЛрдИ рд╡реАрдбрд┐рдпреЛ рдирд╣реАрдВуАВ рдХрд┐рд╕реА рдиреЗ рднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рд╣реИя╝Я

рдореИрдВрдиреЗ рдЗрд╕реЗ 2рдбреА рдХреИрдирд╡рд╛рд╕ рдкрд░ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рдХрд░ рдФрд░ рд╡реЗрдмрдЧреНрд▓ рдореЗрдВ рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕ 2рдбреА рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд┐рдпрд╛ред

рдореБрдЭреЗ ios11 рдкрд░ 2D рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рд╡рдЯ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИя╝М рдХреНрдпрд╛ рдЖрдк рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВя╝Я

рдпрд╣ рдмрд╣реБрдд рдмреБрд░рд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИред рдХреИрдирд╡рд╛рд╕ рдбреНрд░рд╛рдЗрдВрдЧ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЧрд╣рди рд╣реИред

Ive рдиреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╡реЗрдмрдХрд┐рдЯ рдЯрд┐рдХрдЯ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░реНрдг рд╢реЗрдбрд░ рдФрд░ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдЖрдк рдЬреЛ рджрд╛рд╡рд╛ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдФрд░ рдХреЛ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдмреНрд░рд╛рдВрдб рдирдпрд╛ рдЙрдкрдХрд░рдг рди рдорд┐рд▓ рдЬрд╛рдПред рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд┐рдЦрд╛ рд░рд╣рд╛ рд╣реИред рдирд┐рдпреЛрдЬрд┐рдд рдЕрдкреНрд░рдЪрд▓рди рдХреЗ рд╕рд╛рде рдореБрд▓рд╛рдХрд╛рдд рдХреА рдЧрдИ рд╣реИ рдЬрд╣рд╛рдВ рдПрдХ рдЖрдИрдлреЛрди 5 рдХреЛ рднреА рдЖрдИрдУрдПрд╕ 11 рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдБ рдлрд┐рд░ рд╕реЗ рдЯрд┐рдХрдЯ рд╣реИред https://bugs.webkit.org/show_bug.cgi?id=163866#c17

@LoveLetterIloveU рдпрд╣рд╛рдБ рдореЗрд░рд╛ рдирдореВрдирд╛ рдХреЛрдб рд╣реИ: https://htmlvideocanvas-sibabi.c9users.io/hello-world.html (рдХреЗрд╡рд▓ ios рдкрд░ рдЦреЛрд▓реЗрдВ)
@danrossi рд╕рд╣реА рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдкреЙрдЗрдВрдЯрд░ рдХреЛ рдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдмрд╛рдЗрдЯ рдПрд░реЗрдЬрд╝ рдХреА рдореЗрдордХреЙрдкреА рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ рд╕реЗрдм рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХ mp4 рдлрд╝реЙрд▓рдмреИрдХ рд╡рд┐рдзрд┐ рднреА рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

рдореИрдВрдиреЗ рдкреВрд░реЗ рджреЛ рдорд╣реАрдиреЗ рдЙрд╕ рд╕рдорд╛рдзрд╛рди рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдмрд┐рддрд╛рдП, рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рд╣рд░ рдХрд┐рд╕реА рдХреА рдорджрдж рд╕реЗ рд╢реЗрдбрд░ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдЗрд╕рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЗрд╕рдХрд╛ рд╕реАрдзрд╛ рд╕рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣рдорд╛рд░рд╛ рдЕрдзрд┐рдХ рд╕рдордп рдЙрдиреНрд╣реЗрдВ рдПрдХ рдФрд░ рдХрд╛рдо рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдХрд╛рдмрд▓рд╛ рдХрд░рдирд╛ рд╣реИред

рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рдПрдХ рд╣реИред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдлрд╝реНрд▓рд┐рдкреА / рдПрдЪрдПрд▓рдПрд╕ / рд╡реЗрдмрдЧреНрд▓ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдИ, рдЖрдк рдЙрд╕ рдЯрд┐рдХрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдореИрдВрдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдХреЗрд╡рд▓ CORS рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЕрднреА рддрдХ рдЕрдирд┐рд╢реНрдЪрд┐рдд рд╣реВрдВ рдХрд┐ рдХреНрдпрд╛ рд╡реЗ рдбреИрд╢ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред

рд╕реЗрдм/рд╡реЗрдмрдХрд┐рдЯ рдореЗрд░реА рддрд░рдл рдХрд╛ рдХрд╛рдВрдЯрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЬрд╛рдирд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╣реИ рдФрд░ рдореИрдВ рд╕реА ++ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВред рдЕрдЧрд░ рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджреВрдВ рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдордЬрд╝реЗрджрд╛рд░ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдЕрдкрдиреЗ рдмрд╛рд▓реЛрдВ рдХреЛ рд░рдЦрдирд╛ рдкрд╕рдВрдж рдХрд░реВрдБрдЧреАред

рдХреНрдпрд╛ рдХреЛрдИ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдХреЛрдб рдкреЛрд╕реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдмрд╕ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ FlipY рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рд╣реИред

рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВред рдореИрдВ рдЗрд╕ рддреЛрдбрд╝рдлреЛрдбрд╝ рдХреА рдЧрдбрд╝рдмрдбрд╝реА рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реВрдВред рдмрдирд╛рд╡рдЯ рдкрд░ рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдПрдХ рддрд╕реНрд╡реАрд░ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдЙрд▓реНрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдпрд╣рд╛рдБ рдПрдХ рдХрд╛рд▓рд╛ рдлреНрд░реЗрдо рд╣реИред рд╢реБрд░реБрдЖрдд рд╕реЗред рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдкреНрд░рддрд┐рдЧрдорди рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ IOS9 рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдереАред

https://bugs.webkit.org/show_bug.cgi?id=163866#c19

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

рдпрд╣ рдореВрд▓ FlipY рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдХрднреА рднреА рдУрдПрд╕ рдЬрд╛рд░реА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡реЗрдмрдЬреАрдПрд▓ рдХреЗ рд╕рд╛рде рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рдХрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рддреЗред

рдореИрдВрдиреЗ рдПрдХ рдирдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓ рд╡реЗрдмрдХрд┐рдЯ рдЯрд┐рдХрдЯ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡реЗрдмрдЧреНрд▓ рдХреЗ рд╕рд╛рде рдПрдЪрдПрд▓рдПрд╕ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ рдФрд░ рдЕрднреА рддрдХ рдХреЛрдИ рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдореВрд▓ FlipY рдХрд╛рд░реНрдп рдЕрдм рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рд╕рднреА рд╡реЗрдмрдХрд┐рдЯ рд╡реЗрдмрдЬреАрдПрд▓ рдЕрдиреБрд░реВрдкрддрд╛ рдкрд░реАрдХреНрд╖рдг Mp4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдЙрдиреНрд╣реЛрдВрдиреЗ рдХрднреА рднреА Apple рдХреЗ рдЕрдкрдиреЗ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХреНрдпреЛрдВ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрднреА рднреА рдПрдХ рдирдП IOS 11 рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред

рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ

https://bugs.webkit.org/show_bug.cgi?id=163866#c22

@danrossi рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡реЗрдмрдХрд┐рдЯ рдХреЗ рд▓рд┐рдП рдирдП рдЦреБрд▓реЗ рдЯрд┐рдХрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ? рдореИрдВ рдЕрднреА рдЖрдИрдУрдПрд╕ 11 рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдареЛрдХрд░ рдЦрд╛рдИ рд╣реВрдВ рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕реБрдХ рд╣реВрдВред

рдореИрдВ рдЙрдирдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╕реЗрд▓реНрдл рдлрдВрдбрд┐рдВрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ Khronos рдкрд░реАрдХреНрд╖рдг mp4 рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди HLS рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реВрдкрддрд╛ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдБред рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рд╕ рд╣реЛ рдЧрдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреБрдЫ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдХреИрдирд╡рд╛рд╕ рдпрд╣рд╛рдВ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЕрд╕рд▓ рдореЗрдВ рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЖрдИрдУрдПрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдареАрдХ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рд▓реЙрдЧ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдпрд╣ рд╕рд╛рдмрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдЪрдПрд▓рдПрд╕ рдмрдирд╛рд╡рдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИред рдореИрдВрдиреЗ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рд╣реИрдВ рдФрд░ рдЯрд┐рдХрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд▓реЛрдб рдХрд░реВрдВрдЧрд╛ред

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХреБрдЫ рд╡реЗрдмрд▓реЙрдЧ рдкрд░рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдЬрд┐рд╕реЗ рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдХреА рддрд░рд╣ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдареАрдХ рд╣реИ рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рд╡реЗрдмрдХрд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рджреЗрдЦрддрд╛ рд╣реВрдБред рд╡реЗ IOS рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред Mp4 рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ IOS 11 рдкрд░ рдЦреЛрдЬреЗ рдЧрдП рдСрдЯреЛрдкреНрд▓реЗ рдХреЛ рдСрдЯреЛрдкреНрд▓реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреЛрдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рд▓реЗрдХрд┐рди HLS рдЕрднреА рднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдкрд░реАрдХреНрд╖рдг рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдИрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛рдПрдВред рдпрд╣ рдмреБрд░рд╛ рд╕реЗ рдкрд░реЗ рд╣реИред

рдЯрд┐рдХрдЯ рдЬрдорд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЬреЛ рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдореЗрд░реЗ рдкрд╛рд╕ рд╣реИред

рдЬрд╣рд╛рдБ рддрдХ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдБред рд╡реЗрдмрдЬреАрдПрд▓ рд╡реЗрдмрдХрд┐рдЯ рдкрд░реАрдХреНрд╖рдг рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╣реИрдВред рд╡реЗ рд╡реЗрдмрдЧреНрд▓ рдХреИрдирд╡рд╛рд╕ рдЖрдЙрдЯрдкреБрдЯ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдмрд╣реБрдд рдЫреЛрдЯреЗ рдЖрдХрд╛рд░ рдореЗрдВ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдХреИрдирд╡рд╛рд╕ рдкрд░ рдЪрд┐рддреНрд░рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЙрдирдХреЗ рдкрд╛рд╕ рд╡реЗрдмрд▓реЙрдЧ рдХреИрдирд╡рд╛рд╕ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рдЫреЛрдЯрд╛ рдЖрдХрд╛рд░ рд╣реИ рдЗрд╕рд▓рд┐рдП рдЖрдк рдпрд╣ рднреА рдирд╣реАрдВ рджреЗрдЦ рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рдЗрд╕рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдореБрдЭреЗ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╡реЗ рдкрд╛рд╕ рдирд╣реАрдВ рд╣реБрдПред рдФрд░ рдЕрдм рдореИрдВрдиреЗ рд╡реЗрдмрдЧреНрд▓ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЖрдХрд╛рд░ рдмрдврд╝рд╛ рджрд┐рдпрд╛ рд╣реИ рдЬреЛ рдХрд╛рд▓рд╛ рд╣реИред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдкрд░реАрдХреНрд╖рдг рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдИрдУрдПрд╕ рдкрд░ рдЪрд▓рдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдХрднреА рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рд╣реИрдВред рдФрд░ рдЗрд╕рд▓рд┐рдП рдЗрд╕рдиреЗ рд╕рднреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрдмрд╛рд╣ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рд╣реЗрдпрд░ рдпреВ рдЧреЛред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Apple рдХреЗ рд╕рд╛рде рдЕрдкрдирд╛ рдзреИрд░реНрдп рдЦреЛ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЙрдирдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рддрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХрд╛рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

https://bugs.webkit.org/show_bug.cgi?id=179417

рджреЛ рджрд┐рди рдФрд░ рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреА рдХреЛрдИ рддрд╛рддреНрдХрд╛рд▓рд┐рдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрднреА рд╕рдВрдмреЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред CORS рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рд╡рд░реНрд╖реЛрдВ рд▓рдЧ рдЧрдП, рдФрд░ IOS рдХреЗ рдХрдИ рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдЕрдкрдЧреНрд░реЗрдб?

рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдмрдЬреАрдПрд▓ рдЭрдВрдбреЗ рдФрд░ рд╢реЗрдбрд░ рдХреЛрдб рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЦреЗрд▓реВрдВрдЧрд╛ рдХрд┐ рдХреБрдЫ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред

рдХреНрдпрд╛ рд▓реЛрдЧ рдХреГрдкрдпрд╛ рд╡рд╣рд╛рдВ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рд╢реЛрд░ рдордЪрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЕрднреА рддрдХ рджреЗрдЦрд╛ рднреА рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕реЗ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреА рдмрд┐рд▓реНрдХреБрд▓ рднреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

@jernoble рдХреНрдпрд╛ рдЖрдк https://bugs.webkit.org/show_bug.cgi?id=179417ред рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

рд╣рд╛рдп @radiantmediaplayerред @grog рдФрд░ рдореИрдВ рджреЛрдиреЛрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд▓реЛрдЧ рд╣реИрдВред рдореИрдВ рдЦреБрдж рдХреЛ рдЙрд╕ рд╡реЗрдмрдХрд┐рдЯ рдмрдЧ рдореЗрдВ рд╕реАрд╕реА рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕реЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рд░рдбрд╛рд░ рддреИрдпрд╛рд░ рдХрд░реВрдВрдЧрд╛ред

рд╣реЗ рд▓реЛрдЧреЛрдВред рдореИрдВ @sorob рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рдЕрд╕реНрдерд╛рдпреА рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдИрдУрдПрд╕ 11 рдХреЗ рд▓рд┐рдП рдирдореВрдирд╛ рд╣реВрдВ ред рдЖрдк рдЗрд╕реЗ http://redgetan.cc/demo/ios_11_hls_webgl_canvas_workaround/index.html рдореЗрдВ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ Three.js рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рд╕рд╛рджрд╛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред

рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ред рд╡рд╣ рд╣реИ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧред рдЙрддреНрдкрд╛рджрди рдХреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВред

рдореИрдВ рдЗрд╕ рдкрд░ @danrossi рдХреЗ рд╕рд╛рде

@danrossi рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдмрдВрдж рд╣реИред рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВрдЧреЗ?

рдПрдХрджрдо рдирдпрд╛ рдореБрджреНрджрд╛ рдпрд╣рд╛рдБ рд╣реИред рдпрд╣ Three.JS рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред

рдЖрд╡рд╢реНрдпрдХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХрд╛ рд╕реНрддрд░ рдкрд╛рдЧрд▓ рдерд╛ред IOS10 рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рддрд░рд╣ рдореЗрд░реА рдкреАрда рддреЛрдбрд╝ рджреАред рд╡рд╣рд╛рдБ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред

рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЕрдм рддрдХ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рдЕрдВрдд рдореЗрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рдирд╣реАрдВ рд╣реИред рдПрдЪрдПрд▓рдПрд╕ рджреЗрдЦрдиреЗ рд╡рд╛рд▓реА рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рдЭрд╛ рд╕рдВрджрд░реНрдн рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ Mp4 рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореИрдВ рдЗрдХрдЯреНрдард╛ рд╣реЛрддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордп рджреЗрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рддрд░рд╣ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ рд╣реВрдВред

рд▓реЗрдХрд┐рди рд╡реЗрдмрдХрд┐рдЯ рдХреЛрдб рдХреЛ рджреЗрдЦрдХрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдУрдПрд╕ 10 рдореЗрдВ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд╕рд╛рде рдЕрдЬреАрдм рд░рдВрдЧ рдХреЗ рдореБрджреНрджреЗ рдХреНрдпреЛрдВ рдереЗред рдпрд╣ рдХрд▓рд░рд╕реНрдкреЗрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЖрдИрдУрдПрд╕ 10/рд╕рдлрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЛрдиреЛрдВ рдореБрджреНрджреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбред

https://bugs.webkit.org/show_bug.cgi?id=179417

рдирдорд╕реНрддреЗред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЦреБрдж рдХреЛ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рдирд╛ рд╣реИ рдФрд░ IE11 рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╛рд╕ рд░реЗрдВрдбрд░рд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╡реЗрдмрдЬреАрдПрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫ рд░рд╣рд╛ рдерд╛ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ рджрд░ рдХреЛ рджреЗрдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЙрд╕реЗ рдареАрдХ рд╣реЛрдиреЗ рдореЗрдВ рд▓рдЧрднрдЧ 2 рд╕рд╛рд▓ рд▓рдЧ рд╕рдХрддреЗ рд╣реИрдВред

IOS 11 рдХреЛ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рд╡рд┐рдЪрд╛рд░ рд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╕реЗ рдкреАрдбрд╝рд┐рдд рд╣реЛрдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдмрд┐рди рдореЗрдВ рдкреВрд░реА рдЖрдИрдУрдПрд╕ рдЪреАрдЬ рд╡реАрдЖрд░ рдХреЗ рд▓рд┐рдП рд╣реИред рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред

@redgetan , рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рддреАрди.рдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП? рдореИрдВрдиреЗ CanvasRenderer рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореБрдЭреЗ рдмрдирд╛рд╡рдЯ рдХреЗ рдКрдкрд░ рдПрдХ рдЬрд╛рд▓реАрджрд╛рд░ рдлреНрд░реЗрдо рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдЧреЛрд▓рд╛рдХрд╛рд░ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдХреИрдирд╡рд╕ рдереНрд░реА рдбреЗрдореЛ рдХреЗрд╡рд▓ 2рдбреА рд╡реАрдбрд┐рдпреЛ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рддреЗ рд╣реБрдП рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдЖрдк рд╡реЗрдмрдЧреНрд▓ рд░реЗрдВрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдмрдирд╛рд╡рдЯ рдЫрд╡рд┐ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рджреЛрд╣рд░рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдмрдирд╛рд╡рдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрдирд╡рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдФрд░ рдШреБрдорд╛рддрд╛ рдирд╣реАрдВ рд╣реИред

рдареАрдХ рд╣реИ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдореБрдЭреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред

рд╡реЗрдмрдЬреАрдПрд▓ рд░реЗрдВрдбрд░рд░ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рд▓реЗрдХрд┐рди рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рд╡рдЯ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЖрдпрд╛рдо рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдкрдбрд╝реЗ

imageContext.drawImage( video, 0, 0, image.width, image.height );

рдпрд╣ рдЕрдм рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░ рд░рд╣рд╛ рд╣реИред IOS 11 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдПрдЧрд╛ред

@danrossi рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдпрд╣ iOS 11 рдкрд░ рдХреИрд╕реЗ рдЪрд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░ рдЙрд╕ рд╕рдбрд╝рдХ рд╕реЗ рдиреАрдЪреЗ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдареАрдХ рд╣реИ рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВред рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЬрд▓реНрдж рд╣реА рдПрдХ рдПрдлрдкреАрдПрд╕ рдЖрдВрдХрдбрд╝реЗ рдСрдирд▓рд╛рдЗрди рджреЗрдЦрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдкрд░реАрдХреНрд╖рдг рдЬреЛрдбрд╝реВрдВрдЧрд╛ред рдЗрд╕реЗ рдЕрднреА рдХреБрдЫ рднреА рдЪрд╛рд╣рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдИрдУрдПрд╕ рдкрд░ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рд╡рдЯ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдПрдХ рдмрдбрд╝рд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓рд╛ рд╡реАрдбрд┐рдпреЛ рдЗрд╕реЗ рдЧрд┐рд░рд╛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣ рдПрдЪрдПрд▓рдПрд╕ рдХрдо рдЧреБрдгрд╡рддреНрддрд╛ рд╡рд╛рд▓рд╛ рд╣реИ рдЗрд╕рд▓рд┐рдП 40 рдПрдлрдкреАрдПрд╕ рдкрд░ рд░рдЦ рд░рд╣рд╛ рд╣реИред рдПрдХ рдмрдбрд╝рд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди mp4 рд▓реЗрдХрд┐рди рдХрдо рдЧреБрдгрд╡рддреНрддрд╛ рднреА 30fps рдкрд░ рд░рд╣реАред

рдПрдХ рдЙрддреНрдкрд╛рджрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдлрд╝рд╛рдЗрд▓ рдЗрд╕рдореЗрдВ рд╕реЗ 10fps рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреА рд╣реИред рдпрд╣ рдПрдХ рдирдП рдЖрдИрдкреИрдб рдХреЗ рд▓рд┐рдП рд╣реИред

http://dev.electroteque.org/webgl/three-canvas.html

рдХреНрдпрд╛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЕрднреА рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реА рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдХреБрдЫ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ: https://digitalejulegaver.firebaseapp.com/#catarina

рдЗрд╕реЗ рдЕрдкрдиреЗ рд╕рдлрд╛рд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдореИрдХ, рдпрд╛ рдореИрдХреЛрдЬрд╝ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЦреЛрд▓реЗрдВред рдПрдХ рдЖрдИрдкреИрдб рдпрд╛ рдЖрдИрдлреЛрди рдЗрд╕ рдПрдХ рдкреЗрдЬ рдХреЛ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рднрд▓реЗ рд╣реА рд╡рд╣ рдХреНрд░реЛрдо рдмреНрд░рд╛рдЙрдЬрд░ рдпрд╛ рдореЛрдЬрд╝рд┐рд▓рд╛ рдореЗрдВ рд╣реА рдХреНрдпреЛрдВ рди рд╣реЛред

рдореБрдЭреЗ рдПрдХ рдХрд╛рд▓рд╛ рдкреГрд╖реНрда рдорд┐рд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдХ рдкрд░ рд╕рд╛рдорд╛рдиреНрдп рдХреНрд░реЛрдо рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

@vongohren рдЖрдкрдХреЛ рдореИрдХреЛрдЬрд╝ рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬреЗ рдЧрдП рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдХрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ рдФрд░ рдЗрд╕ рдЯрд┐рдХрдЯ рдореЗрдВ рд╣рдордиреЗ рдЬрд┐рд╕ рд╢реЗрдбрд░ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдЕрднреА рдЕрдкрдиреЗ рд╡реЗрдмрдХрд┐рдЯ рдЯрд┐рдХрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдЖрдпрд╛ рд╣реВрдБ рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ 10.13 рдХреЗ рд▓рд┐рдП FlipY рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ рд╣рд╛рдИ рд╕рд┐рдПрд░рд╛ рд╣реИред рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рдореМрдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреНрд▓рд╛рдЙрдб рдЖрдзрд╛рд░рд┐рдд рдореИрдХреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП 10.13 рдХреЗ рд▓рд┐рдП FlipY рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рддрдХ рдПрдХ рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг 13 рдХреЗ рдиреАрдЪреЗ рдХреА рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдмрдЧреЛрдВ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП macOS рдФрд░ IOS рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 4 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рд╣реИред IOS 11 рдЪреЗрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдЯреЗрдХреНрд╕рдЪрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реИ!

рдпрджрд┐ рдЖрдк 10.13 рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рдореЗрд░реЗ рд╕рднреА рдЯрд┐рдХрдЯреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

https://bugs.webkit.org/show_bug.cgi?id=179417#c8
https://bugs.webkit.org/show_bug.cgi?id=176491

https://bugs.webkit.org/show_bug.cgi?id=180863#c3

@danrossi Iv рдХреЛ 10.13 рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдХ рдбреЗрдореЛ рдорд┐рд▓рд╛ рдЬрд┐рд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЗрди рд╕реБрдзрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рдЕрднреА рдЬрд┐рд╕ рддреАрди.рдЬреЗрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рдирдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдХрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдореБрдЭреЗ data.flipY рдирд╛рдо рдХреА рдХреЛрдИ рдЪреАрдЬрд╝ рдорд┐рд▓реА, рдФрд░ рдЙрд╕реЗ рдЕрд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдРрдк рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдирд╣реАрдВ рдХрд┐рдпрд╛ред
screen shot 2017-12-25 at 13 26 42

рдореИрдВ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреАрди.рдЬреЗрдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ: https://github.com/iberezansky/flip-book-jquery

рдХреЙрд░реНрд╕ рд╕рдорд╕реНрдпрд╛?

рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИрдВ ?

http://dev.electroteque.org/webgl/three-hls.html

рдпрд╛ рдпрд╣

http://dev.electroteque.org/webgl/three-hls-flipy.html

рдкрд░реАрдХреНрд╖рдг рдлрд╛рдЗрд▓реЛрдВ рдХреА рдореЗрд░реА рд╡рд┐рд╢рд╛рд▓ рд╕реВрдЪреА рдЙрди рдЯрд┐рдХрдЯреЛрдВ рдореЗрдВ рд╣реИред

FlipY рдХреЛ рдмрдирд╛рд╡рдЯ рдкрд░ рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ

texture.flipY = false;

рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╣реИ рдЗрд╕рд▓рд┐рдП рди рджреЗрдЦреЗрдВ рдХрд┐ cors рдХреЛ рдХреНрдпреЛрдВ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рд╡реЗ рджреЛ рд▓рд┐рдВрдХ рдореИрдХ 10.13 . рдкрд░ рд╕рдлрд╛рд░реА рдФрд░ рдХреНрд░реЛрдо рджреЛрдиреЛрдВ рдкрд░ рд╕рд┐рд░реНрдл рдХрд╛рд▓рд╛ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ

рдФрд░ рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдлреАрдЪрд░, рддрд╕реНрд╡реАрд░ рдХреЛ рдШреБрдорд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдХрд╛рд▓рд╛ рдерд╛

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 10.13 рдореЗрдВ IOS 11 рдЬреИрд╕реА рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЬрд╣рд╛рдВ FlipY рдХрд╛ рдХрд╛рдо рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЕрдЪреНрдЫреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдмрдЧред рдпрд╣ рдЗрддрдирд╛ рдЧрдиреНрджрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореБрдЭреЗ рдкрд╛рдЧрд▓ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ рдЖрдИрдУрдПрд╕ рдЯрд┐рдХрдЯ рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░реВрдВрдЧрд╛ред 10.12 рдореЗрдВ FlipY рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдЯрд┐рдХрдЯ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рддреЛ рдЕрдм рдореЗрд░реЗ VR рдлреАрдЪрд░ рдХреА рддрд░рд╣ред рдЖрдкрдХреЛ рдЖрдИрдУрдПрд╕ 11 рдФрд░ 10.13 рдХреЗ рд▓рд┐рдП рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╡рд░реНрдЬрди рдЪреЗрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреИрдирд╡рд╛рд╕ рдЯреЗрдХреНрд╕рдЪрд░ рдореЛрдб рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрд╣рд╛рдБ рдХреБрдЫ рд╕реНрдерд┐рд░ рдмрд░реНрддрди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ рдлреАрдЪрд░ рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ cors рд╕рдорд░реНрдерди рдпрд╛ cors рдкреНрд░реЙрдХреНрд╕реА рд╕реНрд░реЛрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЬрд╛рд╣рд┐рд░ рд╣реИ рдЕрдм рдореБрдЭреЗ рдЖрдИрдУрдПрд╕ 11 рдЬреИрд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 13 рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред

static get supportsCORS() {
        let testVideo = document.createElement("video"),
            hasCORS = false,
            userAgent = navigator.userAgent;

        testVideo.crossOrigin = "anonymous";
        hasCORS = testVideo.hasAttribute("crossOrigin");
        testVideo = null;

        if (hasCORS) {

            //if (_isSafari = WebVRUtils.safariCheck(userAgent)) {
            if (_isSafari) {
                return WebVRUtils.isNewSafari(userAgent);
            }

            //cors support check for IE 11 support. 
            _corsSupported = true;

            return true;
        }

        return false;

    }
static isNewSafari(userAgent) {
        const osxVersion = /Mac OS X (10[\.\_\d]+)/.exec(userAgent);

        if (osxVersion) {

            //check for safari test to fix HLS problems.
           // _olderSafari = _browserVersion.match(/(\d+).(\d+).?(\d+)?/)[1] <= 10;

            const version = osxVersion[1].split("_")[1];
            return +version >= 12;
        }

        return WebVRUtils.isNewIOS(userAgent);
    }

    static isNewIOS(userAgent) {
        const version = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/)[1];
        _isLatestIOS = (+version >= 11);
        return _isLatestIOS;
    }

рдЖрдкрдиреЗ рдЗрд╕ рдкрд░ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЯрд┐рдХрдЯреЛрдВ рдХрд╛ рдирд┐рдкрдЯрд╛рд░рд╛ рдХрд░ рд▓реЗрдВрдЧреЗ :D

рдпрд╣рд╛рдБ рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рд╡рдЯ рдХрд╛рдо рдХрд░рддреА рд╣реИред Ive рдХреЛ рдЗрд╕реЗ IOS 11 рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдореБрдЭреЗ рдЙрд╕ macOS 13 рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП рднреА рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдХрд╛рдо 10.13 рдХреЗ рд▓рд┐рдП рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ? рдореБрдЭреЗ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рд╣реИред

рджреЛрд╕реНрдд, рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рдЗрд╕рд╕реЗ рдХреЛрдИ рд▓рд╛рдн рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рд╕реНрд╡-рд╡рд┐рддреНрдд рдкреЛрд╖рд┐рдд, рдРрдкреНрдкрд▓ рдУрдПрд╕ рдкрд░ рдореБрд╢реНрдХрд┐рд▓ рд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореЗрд░реЗ рдЕрдкрдиреЗ рдлреАрдЪрд░ рд╕рд╣рд┐рдд рд╣рд░ рдХрд┐рд╕реА рдХрд╛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ред

рдпрд╣рд╛рдБ рдЕрднреА рдореЗрд░рд╛ рдкреВрд░реНрдг рдПрдХреАрдХрд░рдг рд╣реИ, рдЗрд╕рдореЗрдВ рдРрдкреНрдкрд▓ рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдФрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕рд╣рд┐рдд рдХрд╛рд░реНрдп рд╣реИрдВред рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрдпреВрдмрдореИрдк рд╡реАрдбрд┐рдпреЛ рд╕рдкреЛрд░реНрдЯ рд╣реИред

https://flowplayer.electroteque.org/vr360/fp6

рдпрд╣ рддрдм рд╕реЗ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬрдм рдореИрдВрдиреЗ рдкрд╣рд▓реА рдмрд╛рд░ рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЗрд╕рдХреА рд╕реВрдЪрдирд╛ рджреА рдереА рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛!

рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИ ?

http://dev.electroteque.org/webgl/three-canvas.html

рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреИрдирд╡рд╛рд╕ рдХреА рдмрдирд╛рд╡рдЯ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ, рддреЛ рдЖрдк рдХрд┐рд╕ рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реИрдВ?

рд╡рд╣ рдлреНрд▓реЛрдкреНрд▓реЗрдпрд░ рдкреНрдпрд╛рд░рд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИ! рдХреНрдпрд╛ рдЗрд╕рдиреЗ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рджреЗрдЦрд╛ рд╣реИ?

рдореБрдЭреЗ рдЗрд╕ рд▓рд┐рдВрдХ рдореЗрдВ рдХреНрдпрд╛ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП: http://dev.electroteque.org/webgl/three-canvas.html?
рдЬрдм рдореИрдВ рдЗрд╕реЗ рдХреНрд░реЛрдо рдореЗрдВ рдЦреЛрд▓рддрд╛ рд╣реВрдВ - рд╕рдВрд╕реНрдХрд░рдг 63.0.3239.84 (рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдмрд┐рд▓реНрдб) (64-рдмрд┐рдЯ) - macOS 10.13.1 рдкрд░:
рдореБрдЭреЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдПрдХ FPS рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд╛рд▓реА рдкреГрд╖реНрдарднреВрдорд┐ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИ, рдФрд░ рдПрдХ рдмрдЯрди рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдордзреНрдп рддрд▓ рдореЗрдВ AR рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВ
рдЬрдм рдореИрдВ рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╕реЗрдЯрд┐рдВрдЧ рд╡реНрд╣реАрд▓ рдФрд░ рдмреИрдХ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкреНрд▓рд┐рдЯрд╕реНрдХреНрд░реАрди рдорд┐рд▓рддреА рд╣реИред рд▓реЗрдХрд┐рди рдХреИрдирд╡рд╛рд╕ рд╣реА рдХрд╛рд▓рд╛ рд╣реИред

рдЬрдм рдореИрдВ рдЗрд╕реЗ macOS 10.13.1 рдкрд░ рд╕рдлрд╛рд░реА рд╕рдВрд╕реНрдХрд░рдг 11.0.1 (13604.3.5) рдореЗрдВ рдЦреЛрд▓рддрд╛ рд╣реВрдВ:
рдореБрдЭреЗ рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдПрдХ FPS рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдЙрдбрд╝рддрд╛ рд╣реБрдЖ рд╡реАрдбрд┐рдпреЛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдПрдХ рдмрдЯрди рдХрд╣ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдмреАрдЪ рдореЗрдВ AR рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВред рдореИрдВ рдкреВрд░реЗ 360 рдЕрдиреБрднрд╡ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реНрдХреНрд░реЙрд▓ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдЬрдм рдореИрдВ рд╡реАрдЖрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╡реНрд╣реАрд▓ рдФрд░ рдмреИрдХ рдмрдЯрди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкреНрд▓рд┐рдЯрд╕реНрдХреНрд░реАрди рдорд┐рд▓рддреА рд╣реИред рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреИрдирд╡рд╛рд╕, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ gyro рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдореИрдВ рд╡реАрдЖрд░ рдореЛрдб рд╕реЗ рдмреИрдХ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реВрдВ, рддреЛ рд╡реАрдбрд┐рдпреЛ рд╡реАрдЖрд░ рдореЛрдб рдореЗрдВ рдлрдВрд╕ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореИрдВ рдЕрдм рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдФрд░ рдпрд╣ рд╡реАрдЖрд░ рдореЛрдб рдореЗрдВ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рджреГрд╢реНрдп рдкрд░ рдЕрдЯрдХрд╛ рд╣реБрдЖ рд╣реИред

рд╡рд╣ рдбреЗрдореЛ рд╕рдлрд╛рд░реА рдкрд░ рдПрдЪрдПрд▓рдПрд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╣реИред рдЕрдЧрд░ рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдлрд┐рдХреНрд╕ рдбреЗрдореЛ рд╕рдлрд╛рд░реА рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

http://dev.electroteque.org/webgl/three-hls-flipy.html

рдлрд┐рд░ 10.13 рдФрд░ рдЖрдИрдУрдПрд╕ 11 рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рд╡рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ?

http://dev.electroteque.org/webgl/three-canvas.html

рдореБрдЭреЗ рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдореЗрдВ рдмрддрд╛рдПрдВред рдореБрдЭреЗ рд░реЛрдЯреЗрд╢рди рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдХрд╛рд▓рд╛ рдлреНрд░реЗрдо рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред

рдпрд╣ 10.13 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдм рдпрд╣рд╛рдВ рд╕рдВрджрд░реНрднрд┐рдд IOS 11 рд╡реЗрдмрдХрд┐рдЯ рдЯрд┐рдХрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред рдЗрд╕реЗ "рд░рд┐рдЧреНрд░реЗрд╢рди" рдорд╛рдирддреЗ рд╣реБрдП рдЬрд┐рд╕рдиреЗ рдПрдЪрдПрд▓рдПрд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреЛрдбрд╝ рджрд┐рдпрд╛ред

@danrossi рджреЛрдиреЛрдВ рд╕рдлрд╛рд░реА рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдПрдЪрдПрд▓рдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдЙрдЪреНрдЪ рдЧреБрдгрд╡рддреНрддрд╛ред рдЕрдЧрд░ рдЖрдкрдиреЗ рд╕реЛрдЪрд╛ рддреЛ рд╡реЗ рджреЛрдиреЛрдВ рд╕рд╣реА рджрд┐рд╢рд╛ рд╣реИрдВред

рд▓реЗрдХрд┐рди рдХреНрд░реЛрдо рдкрд░ рдХрд┐рд╕реА рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рдареАрдХ рд╣реИред рдмрдврд╝рд┐рдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреА рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рддреЛ рдпрд╣ рдЕрднреА рднреА рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╕рд╣реА рд╣реИ?

http://dev.electroteque.org/webgl/three-hls.html

рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ macOS рдХреЗ рд▓рд┐рдП FlipY рдХрд╛рд░реНрдп рдХреЛ рдорд╛рдирдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдПрдЪрдПрд▓рдПрд╕ рдбреЗрдореЛ рджреЛрдиреЛрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдЪрдПрд▓рдПрд╕ рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдореАрдбрд┐рдпрд╛рд╕реЛрд░реНрд╕ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдкрд╛рд╕ рддрдм macOS рдХреЗ рд▓рд┐рдП FlipY рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рднреА рд╣реИред

https://flowplayer.electroteque.org/vr360/fp6

рдареАрдХ рдХрд╣ рд░рд╣реЗ рд╣реИрдВ рдЖрдк
http://dev.electroteque.org/webgl/three-hls.html
рдпрд╣ рдХреНрд░реЛрдо рдпрд╛ рд╕рдлрд╛рд░реА рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

рд▓рд┐рдВрдХ рдлрд╝реНрд▓реЛрдкреНрд▓реЗрдпрд░, рджреЛрдиреЛрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдзрдиреНрдпрд╡рд╛рдж рд╡рд┐рдЬреЗрддрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдЯрд┐рдХрдЯреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдереАред рдореИрдХреЛрдЬрд╝ рд╕рдлрд╛рд░реА рдореБрджреНрджрд╛ рдЖрдИрдУрдПрд╕ 11 рдПрдХ рд╕реЗ рдЕрд▓рдЧ рд╣реИред

рдЖрдкрдХреЛ IOS 11 рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рд╡рдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдФрд░ macOS рд╕рдлрд╛рд░реА рдХреЗ рд▓рд┐рдП FlipY рдХреЛ рдЯреЗрдХреНрд╕рдЪрд░ рдкрд░ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдореЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реЗрдбрд░ рдкрд░ Y рд╕реНрдерд┐рддрд┐ рдХреЛ рдЙрд▓реНрдЯрд╛ рдХрд░реЗрдВред рдЖрдкрдХреЛ рдЖрдИрдУрдПрд╕ 10 рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рднреА рдлреНрд░реИрдЧрдореЗрдВрдЯ рд╢реЗрдбрд░ рдкрд░ рдХрд▓рд░ рдЪреИрдирд▓ рдЗрдирд╡рд░реНрдЬрди рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рд╢реЗрдбрд░ рдХреЛрдб рдКрдкрд░ рд╣реИред

рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЖрдЬ рд╕реБрдмрд╣ рд▓рдЧрднрдЧ 1 рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде iOS 11 рдорд╛рдорд▓реЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдмреА рд╣рд╛рд╕рд┐рд▓ рдХреА (

рдЖрдИрдУрдПрд╕ 11.2.1 рдХреЗ рд╕рд╛рде рдЖрдИрдлреЛрди 6 рдкреНрд▓рд╕ рдкрд░ рдореБрдЭреЗ рдпрд╣реА рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ, рдПрдиреАрдореЗрд╢рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рд╛рджрд╛ рдмрджрд╕реВрд░рдд, рдкрд┐рдХреНрд╕реЗрд▓рдпреБрдХреНрдд, рдЙрдкрдирд╛рдо рд╣реИ ...
img_0969

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ (рдПрдВрдбреНрд░реЙрдЗрдб 8 рдФрд░ рдирд╡реАрдирддрдо рдХреНрд░реЛрдо рдХреЗ рд╕рд╛рде рдиреЗрдХреНрд╕рд╕ 5X - рдпрд╣ рдЙрдкрд░реЛрдХреНрдд рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред
screenshot_20180103-163108

рд╣рдорд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдПрдХ 360 HTML5 рдкреНрд▓реЗрдпрд░ рд╣реИ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЗ рдКрдкрд░ рдХреЗ рджреЛрдиреЛрдВ рдирдореВрдиреЛрдВ рдореЗрдВ рдПрдХ рд╣реА HLS рд╕рд┐рдВрдЧрд▓-рдмрд┐рдЯрд░реЗрдЯ рдлрд╝реАрдб рд╣реИ http://www.rmp-streaming.com :1935/vod/sea360.mp4/playlist.m3u8

рдЕрдЧрд░ рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб (рдореЗрд░реЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╡рд╣реА рдмрджрд╕реВрд░рдд рдкреНрд░рддрд┐рдкрд╛рджрди рдорд┐рд▓рддрд╛ рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕ рдирдП рдХрд╛рдордХрд╛рдЬ рдХреЗ рд╕рд╛рде рдорд┐рд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпрд╛ рдореБрдЭреЗ рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?
рдореИрдВрдиреЗ рдХреБрдЫ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

    // image 
    this.image360 = document.createElement('canvas');
    this.image360.width = this.width;
    this.image360.height = this.height;
    this.imageContext360 = this.image360.getContext('2d');
    this.imageContext360.fillStyle = '#000000';
    this.imageContext360.fillRect(0, 0, this.width, this.height);
    // texture 
    this.texture360 = new THREE.Texture(this.image360);
    this.texture360.format = THREE.RGBFormat;
    this.texture360.minFilter = THREE.LinearFilter;
    this.texture360.magFilter = THREE.LinearFilter;
    this.texture360.generateMipmaps = false;
    this.texture360.wrapS = THREE.ClampToEdgeWrapping;
    this.texture360.wrapT = THREE.ClampToEdgeWrapping;
    this.texture360.flipY = true;
    this.texture360.needsUpdate = true;
    // mesh
    let geometry = new THREE.SphereGeometry(500, 80, 50);
    geometry.scale(-1, 1, 1);
    let material = new THREE.MeshBasicMaterial({ map: this.texture360 });
    this.mesh360 = new THREE.Mesh(geometry, material);
    this.scene360.add(this.mesh360);
    // renderer
    this.renderer360 = new THREE.WebGLRenderer({ antialias: false });
    this.renderer360.setClearColor(0x101010);
    this.renderer360.setPixelRatio(window.devicePixelRatio);
    this.renderer360.setSize(this.width, this.height, true);

рдореИрдВ рдпрд╣ рдХрд░ рд░рд╣реА рд╣реВрдБред рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЖрдХрд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

video.addEventListener("loadeddata", function() {
                      video.width = THREE.Math.ceilPowerOfTwo(video.videoWidth);
                      video.height = THREE.Math.ceilPowerOfTwo(video.videoHeight);

                      image.width = video.width;
                      image.height = video.height;
                      //image.width = video.videoWidth;
                      //image.height = video.videoHeight;
                      //imageContext.fillRect( 0, 0, video.videoWidth, video.videoHeight);
                      imageContext.fillRect( 0, 0, image.width, image.height);


                      //console.log(video.videoWidth);
                });

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдереЛрдбрд╝рд╛ рдкреНрд░рд╣рд╛рд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рдкрдХрдбрд╝ рд▓рд┐рдпрд╛ред рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд┐рдЧ рдореЗрдВ рдСрдл-рдбреЛрдо рдХреИрдирд╡рд╛рд╕ рд╡рд░реНрддрдорд╛рди рдПрдЪрдПрд▓рдПрд╕ рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рд╕рдЯреАрдХ рдЖрдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдЗрд╕рд▓рд┐рдП рдПрдмреАрдЖрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд░ рдмрд╛рд░ рдкреНрд░рд╕реНрддреБрддреАрдХрд░рдг рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ)ред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрдИрдУрдПрд╕ 11 рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ (рдареАрдХ рд╣реИ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ)ред рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЫреЛрдбрд╝рдХрд░ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдФрд░ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рдБ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рд╡реАрдбрд┐рдпреЛ рдЪреМрдбрд╝рд╛рдИ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд▓реЛрдбрд╛рдЯрд╛ рдИрд╡реЗрдВрдЯ рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВред рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдордЭ рд▓рд┐рдпрд╛ рдерд╛ рдФрд░ рдЖрдкрдХреА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред

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

рдРрд╕реА рдХреЛрдИ рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рдЬреЛ рдХрд┐ рд╕рдлрд╛рд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдмреАрдЖрд░ рдПрдЪрдПрд▓рдПрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдкрд╛рджрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рд╕рд┐рд░реНрдл рдСрдл-рдбреЛрдо рдХреИрдирд╡рд╛рд╕ рдХреА рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рдХреЛ video.videoWidth рдФрд░ video.videoHeight рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдПрдирд┐рдореЗрд╢рдирдлреНрд░реЗрдо рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ (рдЬреЛ рд╢рд╛рдпрдж рдкреНрд░рджрд░реНрд╢рди рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЖрджрд░реНрд╢ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╕реНрддрд░ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╕рдордп рддрдХ рд╕рдордЭреМрддрд╛ рдХрд░реЗрдВрдЧреЗред рд╡рд┐рдХрд▓реНрдк рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)ред рд╣рдорд╛рд░реЗ рдкрд░реАрдХреНрд╖рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ video.videoWidth рдФрд░ video.videoHeight рдХреЛ рдЙрд╕реА рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рдХреЛрдИ рдирдпрд╛ рд░реЗрдВрдбрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред

рд╣рд╛рдБ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдХреНрдпрд╛ рд╣реИ рдпрд╣ рдХрд╛рдлреА рд╣реИрдХреА рд╣реИред рддреЛ рдРрд╕рд╛ рдХрд░рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдлреНрд░реЗрдо рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдХрдВрдбреАрд╢рди рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рд╣реИрдВред рдЕрднреА рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреБрдЫ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред

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

рдкреБрд░рд╛рдиреЗ рд╕рдлрд╛рд░реА рдмрдЧ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдУрдЖрд░рдПрд╕ рдкреНрд░реЙрдХреНрд╕реА, рдПрдЪрдПрд▓рдПрд╕ рдлреНрд▓рд┐рдкреА рдлрд┐рдХреНрд╕ рдФрд░ рдЕрдм рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЯрд┐рдХрдЯреЛрдВ рдореЗрдВ рдЕрднреА рддрдХ рдПрдХ рдЕрдЪреНрдЫреЗ рдорд╣реАрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

рдореИрдВ рдПрдХ рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрд╡рд┐рдЪ рдШрдЯрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ HTML5 рд╡реАрдбрд┐рдпреЛ рдпреБрдХреНрддрд┐ рдореЗрдВ рдХреБрдЫ рджреЗрдЦрдиреЗ рдХреЛ рдпрд╛рдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдРрдкреНрдкрд▓ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рд░рдЦрд╛ рдПрдЪрдПрд▓рдПрд╕ рд╕реНрдкреЗрдХ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд░реНрдгрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧреБрдгрд╡рддреНрддрд╛ рд╕реНрд╡рд┐рдЪ рд╣реЛрдиреЗ рдкрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рджреНрд╡рд╛рд░рд╛ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдЪрдПрд▓рдПрд╕.рдЬреЗрдПрд╕ рдЬреИрд╕реЗ рд▓рд┐рдмреНрд╕ рдиреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдлрд╛рд░реА рдореЗрдВ рдПрдЪрдПрд▓рдПрд╕ рд╕реЗ рджреЗрд╢реА рдПрдЪрдЯреАрдПрдордПрд▓ 5 рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдмрд╕ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдВрддрд░рд╛рд▓ рдкрд░ video.videoWidth рд╕реЗ рдкреВрдЫрддрд╛рдЫ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рд╣реИрдХ рдХреЛ "рдкреЙрд▓реАрдлрд┐рд▓" рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЬрдм рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред рдЗрд╕ рдкрд░ рдХрдо рдЯреИрдХреНрд╕ рд▓рдЧреЗрдЧрд╛ред рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕реЗ рдЕрдкрдиреЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдореЗрдВ рдмрд╛рдж рдХреЗ рдЪрд░рдг рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░реВрдВрдЧрд╛ред

@radiantmediaplayer рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд .videoWidth рдФрд░ .videoHeight рдЧреБрдгреЛрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ "рдЖрдХрд╛рд░ рдмрджрд▓реЗрдВ" рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╣рд╛рдп рджреЛрд╕реНрддреЛрдВ рдореЗрд░реА рдЯрд┐рдкреНрдкрдгреА рдпрд╣рд╛рдБ рджреЗрдЦреЗрдВред рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рдХреНрдпрд╛ рдкрд░реАрдХреНрд╖рд╛ рдереА рдЬреЛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реА рдереА, рдФрд░ рдЧрддрд┐рдпреЛрдВ рд╕реЗ рдЧреБрдЬрд░ рд░рд╣реА рдереАред рдХреЗрд╡рд▓ рдХреЛрдИ рдЙрдЪрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред рдореИрдВ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ! рдХреГрдкрдпрд╛ рдХреЛрдИ рдФрд░ рдкреНрд░рддрд┐рдЧрдорди рдирд╣реАрдВ !!

OSX 11.3 рдмреАрдЯрд╛ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдкрд┐рдЫрд▓реЗ OSX 11 рдХреЛ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, OSX 10 рдХреЛ рдлрд╝реНрд▓рд┐рдкреА рдФрд░ рд░рдВрдЧ рдлрд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рдЬрдЯрд┐рд▓ рд╕рдВрдЧрддрддрд╛ рдЧрдбрд╝рдмрдбрд╝реА рдФрд░ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

Safari macOS рдореЗрдВ рдЕрднреА рднреА FlipY рд╕рдорд╕реНрдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рд╡рд╣рд╛рдБ рднреА рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рдорд┐рд▓реА, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЯрд┐рдХрдЯ рдореЗрдВ рд╣реИред рдореИрдВ рд╡реИрд╕реЗ рднреА рдПрдЪрдПрд▓рдПрд╕ рдХрд╛ рдареАрдХ рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рдкреАрд╕реА рд╡рд░реНрдХрд╕реНрдЯреЗрд╢рди рдкрд░ рдореИрдХреЛрдЬрд╝ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред HLS рдХреЛ vmware рдореЗрдВ рдЪрд▓рд╛рдиреЗ рд╕реЗ рд░реЛрдХ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

https://bugs.webkit.org/show_bug.cgi?id=179417#c43

OSX 11.3 рдХреЗ рд▓рд┐рдП FlipY рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛ред

рдпрд╣рд╛рдБ рдореЗрд░реА рдкреВрд░реА IOS рдФрд░ Safari рд╕рдВрдЧрддрддрд╛ рдЬрд╛рдБрдЪ рд╣реИ рдЬреЛ рдЕрдм CORS рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣реА рд╣реИред

рджрд┐рдорд╛рдЧ рдЪрдХрд░рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд╛рд▓рд╛ рдкрд╛рдЧрд▓ рд╣реИред рдореБрдЭреЗ рднрд╡рд┐рд╖реНрдп рдХрд╛ рдкреНрд░рдорд╛рдг рднреА рджреЗрдирд╛ рдерд╛ рдФрд░ IOS 12 рд╕реЗ рдЖрдЧреЗ рдХреБрдЫ рднреА рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдерд╛ред

рдпрд╣ рдПрдХреАрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ! рдЕрднреА рдЬрд╛рдВрдЪ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ macOS рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред

static get supportsCORS() {
        let testVideo = document.createElement("video"),
            hasCORS = false,
            userAgent = navigator.userAgent;

        testVideo.crossOrigin = "anonymous";
        hasCORS = testVideo.hasAttribute("crossOrigin");
        testVideo = null;

        if (hasCORS) {

            //if (_isSafari = WebVRUtils.safariCheck(userAgent)) {
            //Safari still reports CORS support regardless a bug
            if (_isSafari) {
                return WebVRUtils.isNewSafari(userAgent);
            }

            //cors support check for IE 11 support. 
            _corsSupported = true;

            return true;
        }

        return false;

    }

static isNewSafari(userAgent) {
        const osxVersion = /Mac OS X (10[\.\_\d]+)/.exec(userAgent);

        if (osxVersion) {

            //check for safari test to fix HLS problems.
           // _olderSafari = _browserVersion.match(/(\d+).(\d+).?(\d+)?/)[1] <= 10;

            const version = osxVersion[1].split("_")[1];
            return +version >= 12;
        }

        return WebVRUtils.isNewIOS(userAgent);
    }

static isNewIOS(userAgent) {
        const platform = navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/),
        version = +platform[1];

        _isLatestIOS = version >= 11;

        //if greater than 11.3 or 12
        _iOSHlsSupported = (_isLatestIOS && +platform[2] >= 3 || version >= 12);

        return _isLatestIOS;
    }

рдкреНрд░рдпреЛрдЧ

 set hls(value) {

        //if had a HLS source and the current playlist source isn't clear scene and revert the material.
        if (this.hasHls && this.isSafari && !value) {
            this.clearScene();
            this.initScene(value);
        }

        //flipY fix
        this.hasHls = value && this.isSafari;
        //IOS10 colour inversion fix
        this.invertHLS = this.isIpad;

        //if we have hls and IOS 11 or greater
        if (this.hasHls && WebVRUtils.isLatestIOS) {

          //IOS 11.3 or greater disable flipY and colour inversion fixes
          if (WebVRUtils.iOSHlsSupported) {
              this.hasHls = false;
              this.invertHLS = false;
          } else {
            //anything below IOS 11.3 use software rendering
            this.config.software = true;
          }

        }
    }

рд╕реБрдзрд╛рд░ рдПрдХ рдЕрдВрддрд┐рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБред рдЖрдИрдУрдПрд╕ рдПрдЪрдПрд▓рдПрд╕ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╢реЙрд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рд╣реА рдорд╛рд░реНрдорд┐рдХ рд╣реИред рд▓реЛрдбреЗрдЯрд╛ рдХреЗ рдмрд╛рдж рдкреНрд░рддрд┐рдкрд╛рджрди рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬреИрд╕реЗ рд╣реА рдпрд╣ рдПрдХ teximage2d рддреНрд░реБрдЯрд┐ рдХреЛ рд╣рд┐рдЯ рдХрд░рддрд╛ рд╣реИ, рдХреЛрдИ рдФрд░ рдкреНрд░рддрд┐рдкрд╛рджрди рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдмрд╕ рдХрд╛рд▓рд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рд╣реЛрддрд╛ рд╣реИ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлрд┐рдХреНрд╕ рдХрднреА рдирд╣реАрдВ рд╣реБрдЖред

рдпрджрд┐ рд╡реАрдбрд┐рдпреЛ рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реА рдкреНрд░рддрд┐рдкрд╛рджрди рд╢реБрд░реВ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдареАрдХ рд╣реИред 11.3 рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ (рдмрд┐рдирд╛ рдЕрд╕реНрдерд╛рдпреА рдХреИрдирд╡рд╛рд╕ рд╕реБрдзрд╛рд░ рдХреЗ)ред рдирд╡реАрдирддрдо ios рд╕рдВрд╕реНрдХрд░рдг 11.3 рдХреЗ рд▓рд┐рдП рд╕рддреНрдпрд╛рдкрд┐рдд (iPhone 6s, 7 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛)ред

рд╣рд╛рдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ 15 рдлрд░рд╡рд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдерд╛ред 11.3 рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ред рдореБрдЭреЗ рдХрднреА рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╡рд╛рдкрд╕ рдЬрд╛рдВрдЪрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛!

рд╣рдордиреЗ iOS 11.3 (рдФрд░ рд╕рдордХрдХреНрд╖ macOS рд░рд┐рд▓реАрдЬрд╝) рдореЗрдВ рд╡реАрдбрд┐рдпреЛ -> рдмрдирд╛рд╡рдЯ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд┐рдпрд╛ рд╣реИред рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рд╣рдордиреЗ рдмрдЧреНрд╕ рдХреЛ рдмрдВрдж/рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИред

рдХреГрдкрдпрд╛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреЛ рдЕрднреА рднреА рд╕рдорд╕реНрдпрд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИрдВред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдбрд╛рдпрд░реЗрдХреНрдЯ рд╕реНрдЯреНрд░реАрдо (рдЬреИрд╕реЗ mp4) рдФрд░ HTTP рд▓рд╛рдЗрд╡ рд╕реНрдЯреНрд░реАрдо рджреЛрдиреЛрдВ рдХреЛ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдлреНрд▓рд┐рдкреА рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рд╕рдм рдлрд░рд╡рд░реА рд╕реЗ рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдХрднреА-рдХрднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ IOS рдмреАрдЯрд╛ рдХреЛ 11.3 рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕рдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ред рдПрдХрд╛рдзрд┐рдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рд╕рдВрдЧрддрддрд╛ рдЬрд╛рдВрдЪ рдХреЛрдб рдЖрд╡рд╢реНрдпрдХ рд╣реИред

IOS 10 рдХреЛ рдлреНрд▓рд┐рдкрд╡рд╛рдИ рдлрд┐рдХреНрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред IOS 11.0 - 11.2 рдХреЛ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред 11.3 > рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдХреЛрдИ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдордХрд╛рдЬреА рдирдореВрдирд╛ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ jsfiddle рдпрд╛ рддреЛ? рдореИрдВ рдЕрднреА рднреА IOS 11 рд╕рдлрд╛рд░реА рдореЗрдВ рдПрдХ рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред рдореИрдВ рдСрдбрд┐рдпреЛ рд╕реБрди рд╕рдХрддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдПрдЪрдПрд▓рдПрд╕ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╡реАрдбрд┐рдпреЛ рдирд╣реАрдВ рдерд╛

@рдзрдирд┐рд╢рдкрд╛ рдЖрдкрдХрд╛ рдЖрдИрдУрдПрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдпрд╣ 11.3+ рд╣реИ?

рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ (~ рдордИ 2018) рдореИрдВ рднреА рдПрдЪрдПрд▓рдПрд╕ (? <= 11.2) рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореБрджреНрджреЛрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рдерд╛:

  • рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕реЗрдЧрдореЗрдВрдЯ рдХрднреА-рдХрднреА рдкреНрд▓реЗрдмреИрдХ рдХреЗ рджреМрд░рд╛рди рджреЛрд╣рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ
  • рд╡реАрдбрд┐рдпреЛ рдХрднреА-рдХрднреА рд░реБрдХ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
  • рд╡реАрдбрд┐рдпреЛ рдмрдлрд░ рд▓реЗрдХрд┐рди рдСрдбрд┐рдпреЛ рдЬрд╛рд░реА рд╣реИ

Vimeo рдХреЗ рд╕рд╛рде рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж (рдореИрдВ рдЙрдирдХреА HLS рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ) рд╡реЗ Apple рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ рдФрд░ рдПрдХ рд╕рд╛рде рдорд┐рд▓рдХрд░ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗред

рд╣рдореЗрдВ рдЕрднреА-рдЕрднреА Apple рдХреА рд╡рд┐рдХрд╛рд╕ рдЯреАрдо рд╕реЗ рд╕реВрдЪрдирд╛ рдорд┐рд▓реА рд╣реИ рдХрд┐ iOS рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рдВрд╕реНрдХрд░рдг (11.3.1) рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЧрдИ рдкреНрд▓реЗрдмреИрдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИред рдлрд┐рдХреНрд╕ рдХреЛ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдХрд╛рд▓реА рд╕реНрдХреНрд░реАрди рдкрд░ рд░реБрдХрдиреЗ, рд╡реАрдбрд┐рдпреЛ рдХреЗ рдЦрдВрдбреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ, рдпрд╛ рдЕрдВрддрд╣реАрди рд▓реЛрдбрд┐рдВрдЧ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкрдХрдбрд╝реЗ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЬрдм рдореИрдВрдиреЗ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ H264 рдПрдиреНрдХреЛрдбреЗрдб MP4 рдХреА рдЖрдкреВрд░реНрддрд┐ рдХреА, рддреЛ iOS рд╕рдВрд╕реНрдХрд░рдг 11.3.1 рд╕реЗ рдХрдо рдкрд░ рдкреНрд▓реЗрдмреИрдХ рд╕рдорд╕реНрдпрд╛рдПрдБ рджреВрд░ рд╣реЛ рдЧрдИрдВред рдЕрдкрд▓реЛрдбрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рдЗрдирдкреБрдЯ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдХреНрд╡рд┐рдХрдЯрд╛рдЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд┐рдпрд╛ред

рдореИрдВрдиреЗ рдкреНрд░рддреНрдпреЗрдХ рд╡реАрдбрд┐рдпреЛ рдлрд╝рд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдЕрдВрддрд░ рджреЗрдЦрд╛ (рд╡реАрдбрд┐рдпреЛ рдХреЛрдбреЗрдХ рдЕрд░реНрдерд╛рддреН "avc1.64001E,mp4a.40.2" рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдо "hvc1.2.4.L63.90,mp4a.40.2" рдЧреИрд░-рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП )

рд╢рд╛рдпрдж рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИред

рдирдорд╕реНрддреЗ
рдореБрдЭреЗ рдЖрдИрдУрдПрд╕ рд╕рдлрд╛рд░реА рдкрд░ рдПрдЪрдПрд▓рдПрд╕ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдЖ рд░рд╣реА рд╣реИред
рдореИрдВ рдХреЙрд░реНрд╕ рдкреНрд░реЙрдХреНрд╕реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред рдореИрдВрдиреЗ рджреЗрд╢реА рдПрдЪрдПрд▓рдПрд╕ рдкреНрд▓реЗрдпрд░ рдФрд░ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдкреНрд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рд╕реАрдзреЗ рдЖрдИрдУрдПрд╕ рдореЗрдВ рдПрдо 3 рдпреВ 8 рд▓рд┐рдВрдХ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╕рдлрд╛рд░реА (рдбреЗрд╕реНрдХрдЯреЙрдк - рдореИрдХ), рдХреНрд░реЛрдо, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ рдЗрд╕рдХрд╛ рдХрд╛рдо рдЖрдИрдУрдПрд╕ (рдЖрдИрдлреЛрди) рдореЗрдВ рдирд╣реАрдВ рд╣реИред

рдЖрдИрдУрдПрд╕ 11.0.1 рдореЗрдВ cors рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВрдиреЗ рдЬрд┐рд╕ рджреВрд╕рд░реЗ рдмрдбрд╝реЗ рд╕реБрдзрд╛рд░ рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛ рд╡рд╣ 11.3.1 рдореЗрдВ рд╣реИред 11.3 рдЕрднреА рдмрд╛рд╣рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдкреНрд░реЙрдХреНрд╕реА рдХреЗрд╡рд▓ IOS 10 рдФрд░ 9 рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ тАНтЩВя╕П

рдпрд╣рд╛рдВ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдореИрдк рдХреА рдЧрдИ рдПрдЪрдПрд▓рдПрд╕ рд╕реНрдЯреНрд░реАрдо 360 рд╡реАрдбрд┐рдпреЛ рдкреНрд▓реЗрд╣рд╛рдЙрд╕-рд╡реАрдЖрд░ рджреНрд╡рд╛рд░рд╛ )ред

2018-08-01 16_56_37

MacOS v10.13.4 + Safari v11.1 рдФрд░ iOS 11.4.1 + Safari рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛

рдореБрдЭреЗ рдЕрдм iOS 14.0 Safari рдФрд░ iPadOS 14.0 Safari рдкрд░ рдПрдХ рдирдИ рдмреНрд▓реИрдХ рд╕реНрдХреНрд░реАрди рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣реА рд╣реИред рдареАрдХ рдпрд╣реА рдкреНрд▓реЗрдпрд░ iOS 13.7 Safari рдФрд░ iPadOS 13.7 Safari рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ three.js r120 (r116 рд╕реЗ) рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред macOS рд╕рдлрд╛рд░реА 14 рдареАрдХ рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рд╡рд╣реА рджреЗрдЦ рд░рд╣рд╛ рд╣реИ? IOS 14 рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓рд╛ рдХрджрдо рдХреНрдпрд╛ рд╣реИ, рдЗрд╕ рдкрд░ рдХреЛрдИ рд╕рдВрдХреЗрдд?

рд╣рд╛рдБ, iOS 14 рдкреНрд░рддрд┐рдЧрдорди рдХреЗ рд▓рд┐рдП https://bugs.webkit.org/show_bug.cgi?id=215908 рдФрд░ https://bugs.webkit.org/show_bug.cgi?id=216250 рджреЛрдиреЛрдВ рджреЗрдЦреЗрдВ ред рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЙрди рджреЛрдиреЛрдВ рдХреЛ рд╢реАрдШреНрд░рддрд╛ рд╕реЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред

рдпрд╣ рд╕рдлрд╛рд░реА рдХреЗ рд╕рд╛рде рдХрднреА рди рдЦрддреНрдо рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд▓рдбрд╝рд╛рдИ рд╣реИред рдореИрдВ рдЕрдкрдиреА 360 рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд╢рд┐рдХрд╛рдпрддреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реВрдВред рд╣рд░ рдмрд╛рд░ рдЗрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорд╣реАрдиреЛрдВ рд▓рдЧ рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдКрдкрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдореВрд▓ рдХрд╛рд░реНрдп рдорд┐рд▓рд╛ред рддреЛ рд╕рдордп рдФрд░ рдЙрдкрд╛рдп рдЦреЛрдЬрдиреЗ рдХрд╛ рд╣реИ !! рд╡реЗрдмрдХрд┐рдЯ рдПрдЪрдПрд▓рдПрд╕ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЙрдирдХреЗ рдкрд╛рд╕ рд╡реЗрдмрдЬреАрдПрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдПрдЪрдПрд▓рдПрд╕ рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рд╣реИ рдореБрдЭреЗ рдХреБрдЫ рд╕реНрд╡рдпрдВ рдмрдирд╛рдирд╛ рдерд╛ред

рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдлреАрдЪрд░ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ IOS рдХреЗ рд▓рд┐рдП рд╕рднреА рдмреНрд▓реЛрдЯреА рд╡рд░реНрдХ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ 11.0 рдХреЗ рд▓рд┐рдП рдХреИрдирд╡рд╛рд╕ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ ... рдореБрдЭреЗ рдЕрднреА рднреА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЪреЗрдХ рдХрд░рдирд╛ рд╣реИред IOS 13 рдХреЗ рд╕рд╛рде рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдм рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЪреЗрдХ рддреЛрдбрд╝ рджрд┐рдП рд╣реИрдВред рдореБрдЭреЗ рдЗрд╕реЗ рдХрд╛рд░реНрдбрдмреЛрд░реНрдб рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдареАрдХ рдХрд░рдирд╛ рдерд╛ред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ HLS рддреБрд░рдВрдд рд░реЗрдВрдбрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ IOS 13 рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓реЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ред

рдЙрдиреНрд╣реЗрдВ рдмрд╕ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рд╣реИред рдХреЛрдИ рд╡реЗрдмрдПрдХреНрд╕рдЖрд░ рдПрдкреАрдЖрдИ рдирд╣реАрдВ, рдПрдВрдбреНрд░реЙрдЗрдб рдХреА рддрд░рд╣ рдХреЛрдИ рд╡реИрдХрд▓реЙрдХ рдПрдкреАрдЖрдИ рдЕрднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред

рдореЗрд░реЗ рдХрд╛рдо рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореБрдЭреЗ рдкреНрд░рддрд┐рдкрд╛рджрди рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдХрдХреНрд╖рд╛ рдирд┐рдпрдВрддреНрд░рдг рдкрд░ рдЬрд╝реВрдо рдЕрдХреНрд╖рдо рдХрд░реЗрдВред рдпрд╣ IOS 13 рдореЗрдВ рдмреНрд▓реИрдХ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рд░реЛрдХрддрд╛ рд╣реИред IOS 14 рдХреЛ рдЪреЗрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

            video.addEventListener("resize", () => {
                vrVideo.update();
                vrVideo.fullScreenResize(false);
            });

рдореИрдВрдиреЗ 14.2 рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИред рдПрдЪрдПрд▓рдПрд╕ рдареАрдХ рд╣реИред рдКрдкрд░ рдлрд┐рдХреНрд╕ рдпрд╣ рдХрд░реЗрдЧрд╛ ...

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

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

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

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

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

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

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