R112 рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ MeshStandardMaterial (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рддрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм glTF рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рднреА) рдХреБрдЫ GPU рдкрд░ рдмреИрдВрдбрд┐рдВрдЧ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓рдмреБрдХ рдФрд░ рдкрд┐рдХреНрд╕реЗрд▓ рдлреЛрди рдХреА рд╣рд░ рдкреАрдврд╝реА рдкрд░ рджреЗрдЦрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдПрдирд╡реАрдбрд┐рдпрд╛ рдбреЗрд╕реНрдХрдЯреЙрдк рдЬреАрдкреАрдпреВ рдкрд░ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рди рд╣реА рдУрдХреБрд▓рд╕ рдЧреЛ рдпрд╛ рдУрдХреБрд▓рд╕ рдХреНрд╡реЗрд╕реНрдЯ рдкрд░ред
рдпрд╣ рднреА рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореИрдВрдиреЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рдирдП рд╢реЗрдбрд░ рдХреЛ рджреЗрдЦрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╡рд┐рднрд┐рдиреНрди рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдореЗрд░реЗ рд╡рд┐рд╢реЗрд╖ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП r111 рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдкреНрд░рджрд░реНрд╢рди рдорд╛рд░рд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ (рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓рдмреБрдХ рдкрд░ рддреАрди .js r112 рдХреЗ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрдд)
рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ (рдПрдХ рд╣реА рдкрд┐рдХреНрд╕реЗрд▓рдмреБрдХ рдкрд░ рддреАрди.js r111 рдХреЗ рд╕рд╛рде рд░реЗрдВрдбрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛)
рд▓рд╛рдЗрд╡ рд▓рд┐рдВрдХ, рд╡рд░реНрддрдорд╛рди рдореЗрдВ r112 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░: https://xrdinosaurs.com
рдЙрд╕ рдкреГрд╖реНрда рдХреЗ рд╕рднреА рдбрд╛рдпрдирд╛рд╕реЛрд░ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлреНрд▓реИрдЯ рдпрд╛ рдЪрд┐рдХрдиреЗ рд░рдВрдЧ рдХреЗ рдмрдбрд╝реЗ рдХреНрд╖реЗрддреНрд░реЛрдВ (рдЬреИрд╕реЗ рдХрд┐ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдкреЗрдЯ) рд╡рд╛рд▓реЗ рд▓реЛрдЧ рдЕрдзрд┐рдХ рдмрд╛рд╣рд░ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВред
рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА (рдиреАрдЪреЗ рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдЪрд┐рдкрдХрд╛рдИ рдЧрдИ) glTF рдПрдХреНрд╕рдЯреЗрдВрд╢рди "KHR_materials_pbrSpecularGlossiness" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рдПрдХ рдлреИрд▓рд╛рдирд╛, рд╕рд╛рдорд╛рдиреНрдп, рдФрд░ рд╕реНрдкреЗрдХреНрдпреБрд▓рд░ / рдЧреНрд▓реЛрд╕рдиреЗрд╕ рдмрдирд╛рд╡рдЯ рд╣реИред
{
"doubleSided": true,
"emissiveFactor": [
0,
0,
0
],
"extensions": {
"KHR_materials_pbrSpecularGlossiness": {
"diffuseFactor": [
0.46512957319999998,
0.46512957319999998,
0.46512957319999998,
1
],
"diffuseTexture": {
"index": 4,
"texCoord": 0
},
"glossinessFactor": 0.27610518290000002,
"specularFactor": [
0.92244664629999995,
0.92244664629999995,
0.92244664629999995
],
"specularGlossinessTexture": {
"index": 6,
"texCoord": 0
}
}
},
"name": "TRex",
"normalTexture": {
"index": 5,
"scale": 1,
"texCoord": 0
}
}
рдореИрдВ рдЕрдкрдиреЗ рдкрд┐рдХреНрд╕реЗрд▓ (1) рдкрд░ рдЧреНрд▓рд┐рдЪ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдБ рддрдм рд▓рдЧрддреА рд╣реИрдВ рдЬрдм KHR_materials_pbrSpecularGlossiness
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
GLTFLoader
, lights_physical_fragment
shader рдХреЗ рдХреЛрдб рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИ:@toji рдХреНрдпрд╛ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рдХреЛ рдмрджрд▓рдХрд░ рдЕрдкрдиреЗ рдРрдк рдХреЗ GLTFLoader
рдХреЙрдкреА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var lightPhysicalFragmentChunk = [
'PhysicalMaterial material;',
'material.diffuseColor = diffuseColor.rgb;',
'vec3 dxy = max( abs( dFdx( geometryNormal ) ), abs( dFdy( geometryNormal ) ) );',
'float geometryRoughness = max( max( dxy.x, dxy.y ), dxy.z );',
'material.specularRoughness = max( 1.0 - glossinessFactor, 0.0525 );// 0.0525 corresponds to the base mip of a 256 cubemap.',
'material.specularRoughness += geometryRoughness;',
'material.specularRoughness = min( material.specularRoughness, 1.0 );',
'material.specularColor = specularFactor.rgb;',
].join( '\n' );
@ рд▓рд┐рд▓рд┐рд╢ рднрд▓реЗ рд╣реА рдпрд╣ рдкреИрдЪ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ GLTFLoader
рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?
@ рдореБрдЧреЗрдВ87 рд╣рд╛рдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗред рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЕрдкрдиреЗ Pixel 3 рдкрд░ рднреА рд░рд┐рдкреНрд░реЛ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
@toji рдореИрдВ рдПрдВрдбреНрд░реЙрдЗрдб 10 рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдкрд┐рдХреНрд╕реЗрд▓ 3 рдкрд░ рд╕рднреА рдкрд┐рдХреНрд╕реЗрд▓ рдирд╣реАрдВ рд╣реИ ...
рдбреНрд░рд╛рдЗрд╡рд░ рдмрдЧ? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рд▓рд╛рдЗрди рдЗрд╕реЗ рдЯреНрд░рд┐рдЧрд░ рдХрд░ рд░рд╣реА рд╣реИред рдЬрд┐рдпреЛрдореЗрдЯреНрд░рд┐рдХ рдПрдВрдЯреА-рдЕрд▓рд┐рдпрд╛рд╕рд┐рдВрдЧ рдХреА рдореМрдЬреВрджрдЧреА / рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрдирд╛ рдкрд╛рдПрдЧреА, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИред
@toji рдореИрдВ рднреА рд╕рд┐рд░реНрдл рдЕрдкрдиреЗ рд╕рдорд░реНрдкрд┐рдд рдЧрдВрджреЗ рдкрд░реАрдХреНрд╖рдХ рдлреЛрди рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдПрдХ рдЕрд▓реНрдХрд╛рдЯреЗрд▓ рдЬреЛ рд▓рдХреНрд╖реНрдп рд╕реЗ $ 30 рд╣реИ)ред рдореБрдЭреЗ рдмреИрдВрдбрд┐рдВрдЧ рдХрд▓рд╛рдХреГрддрд┐рдпрд╛рдВ рдирд╣реАрдВ рдорд┐рд▓реАрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЖрд╕рдорд╛рди рдХрд╛рд▓рд╛ рд╣реИред рдЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ: рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдордХреНрдЦрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдХрд┐ 3 рдбреА рджреГрд╢реНрдп рдЗрд╕ рдлреЛрди рдкрд░ 2 рдбреА рдХреАрдмреЛрд░реНрдб рдпреВрдЖрдИ рд╕реЗ рдмреЗрд╣рддрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИред рдЬрд╛рдУ рдкрддрд╛ рд▓рдЧрд╛рдУред
рдЙрд╣, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд▓реЗ рдЖрдХрд╛рд╢ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкреАрдПрдордЖрд░рдИрдПрдо рдкреАрдврд╝реА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдлрд▓ рд░рд╣реА рд╣реИ, рдФрд░ рдпрд╣ рдЗрд╕ рдЕрдЬреАрдм рдмрдЧ рдФрд░ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдХрд╛рд░рдг рд╣реИ: рд╣рдордиреЗ рдкрд╛рдпрд╛: https://github.com/GoogleWebCompords/model-viewer/pull/920ред рдореИрдВ рдЗрд╕реЗ r112 рдореЗрдВ рд▓рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдлрд┐рд╕рд▓ рдЧрдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдУрдкреА рдХреЗ рдмрдЧ рд╕реЗ рдЕрд╕рдВрдмрджреНрдз рд╣реИред
рдореИрдВрдиреЗ Chrome рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рджреЛрдиреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ OnePlus 5T рдкрд░ рдУрдкреА рдХреА рддреНрд░реБрдЯрд┐ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ред
рдзрдиреНрдпрд╡рд╛рдж! рдкреИрдЪ рдХреЛ GLTFLoader
рдФрд░ рджреЗрдЦрд╛ рдХрд┐ рдмреИрдВрдбрд┐рдВрдЧ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
рдкреИрдЪ рд╕реЗ рдкрд╣рд▓реЗ:
рдЯреБрдХрдбрд╝реЗ рдХреЗ рдмрд╛рдж:
рдореВрд▓ рд░реВрдк рд╕реЗ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмреИрдВрдб рдХреЛ рддрдп рдХрд░рддрд╛ рд╣реИред :
рдпрджрд┐ рдЖрдк рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдкрд░рд┐рд╡рд░реНрддрди рдореЗрдВ рдЦреБрд╢ рд╣реЛрдирд╛, рдпрд╛ рдЖрдк рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк https://github.com/toji/xr-dinosaurs рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред (рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдШрдЯрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред)
рдЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ: рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рдордХреНрдЦрди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмреБрд░рд╛ рдирд╣реАрдВ рд╣реИред
рдзрдиреНрдпрд╡рд╛рджред Performance рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреА рдЧрдИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ r112 рдХреЗ рдЕрджреНрдпрддрди рдХреЗ рджреМрд░рд╛рди рдореИрдВрдиреЗ рдкреВрд░реНрдг рдкреНрд░рддрд┐рдЧрдорди рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдФрд░ @mrdoob рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрдЫрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдирдпрд╛, рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рдорд╛рдирдХ рд╢реЗрдбрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП MeshLambertMaterial
рд╕рд╛рде рдХреБрдЫ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреА рдЕрджрд▓рд╛-рдмрджрд▓реА рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ред рдЪреВрдВрдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЙрдбрд▓ рдиреЗ рдкреАрдмреАрдЖрд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд╡реИрд╕реЗ рднреА рдореИрдВ рдЗрд╕реЗ рд▓реИрдореНрдмрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдиреЗ рдХрд┐рд╕реА рднреА рдкреВрд░реНрдг рдкреНрд░рддрд┐рдЧрдорди рдХреЛ рд╡рд╛рдкрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдФрд░ рдлрд┐рд░ рдХреБрдЫ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡реНрдпреВрдкреЛрд░реНрдЯ рдХрд╛ рдПрдХ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓реЗрддрд╛ рд╣реИред) рдбрд╛рдпрдирд╛рд╕реЛрд░ рдХреЗ рд╕рд╛рде рдЫреЛрдбрд╝ рджрд┐рдпрд╛ред рдорд╛рдирдХ рд╕рд╛рдордЧреНрд░реА рдЪреВрдВрдХрд┐ рд╡реЗ "рд╣реАрд░реЛ" рд╕рдВрдкрддреНрддрд┐ рд╣реИрдВред
рд╕рд┐рдбреЗрдиреЛрдЯ: Scene.environment
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм GLTFLoader
рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ, рдЬрдм рд╕реЗ MeshStandardMaterial
рд▓рд┐рдП рд░реЗрдВрдбрд░рд░ рдЪреЗрдХ рдХреЗ рдмрд╛рдж рд╕реЗ рд╕рдЯреНрдЯреЗрдмрд╛рдЬреЛрдВ / рдЪрдордХ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, GLTFLoader
рдкреНрд░рддреНрдпреЗрдХ рд╕рдЯреНрдЯреЗрдмрд╛рдЬ / рдЪрдордХ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП ShaderMaterial
рдмрдирд╛рддрд╛ рд╣реИред рдЯреА-рд░реЗрдХреНрд╕ рдореЙрдбрд▓ ^ ^ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЖрдЬ рдпрд╣ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖред рдЦреИрд░, # 14099 рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рдХрд╛рд░рдгред
рдЬрдм рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдмреИрдВрдбрд┐рдВрдЧ рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХреА рддрд░рд╣ рд╕рдм рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ (1) рдкрд░рд┐рд╡реЗрд╢ рдФрд░ рдмрд┐рдВрджреБ рдкреНрд░рдХрд╛рд╢ рдХреА рддрд░рд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рдХрд╛рд╢ рд╡реНрдпрд╡рд╕реНрдерд╛ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рд╛рдеред
рдЙрдо, рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рдирдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреМрддрд┐рдХ рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХ рд╕рдорд╕реНрдпрд╛рдПрдБ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИрдВред рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ 1, рдПрдВрдбреНрд░реЙрдЗрдб 10 рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдХреИрд╕реЗ рджреЗрдЦреЗрдВред
https://threejs.org/examples/webgl_materials_envmaps_exr
https://threejs.org/examples/webgl_materials_physical_clearcoat
https://threejs.org/examples/webgl_materials_envmaps_hdr
рдореИрдВ рдЕрдкрдиреЗ iMac рдкрд░ рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдкреБрди: рдкреЗрд╢ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред
рдореЗрд░реА рдорд╢реАрди рдкрд░ рдХреБрдЫ рдмрд╣реБрдд рдЕрдЬреАрдм рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореИрдВ рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВ рдЬреЛ рдирдП PMREMGenerator
ред рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдкрд░; рдЙрдиреНрд╣реЗрдВ рдСрдирд▓рд╛рдЗрди рджреЗрдЦрдиреЗ рдкрд░ (рддреАрдиjs.org рдкреЗрдЬ рд╕реЗ) рд╡реЗ рд╕рднреА рд╕рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
рдореИрдВрдиреЗ рдХрднреА рдЗрд╕ рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХреЗ рдХрд╛рд░рдгреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЦреЛ рдЧрдпрд╛ рд╣реВрдВред
рдореИрдВ GeForce GTX 750 TI рдХреЗ рд╕рд╛рде рд╡рд┐рдВрдбреЛрдЬ 10 рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рдбрд┐рд╡рд╛рдЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореБрджреНрджрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдкрд░; рдЙрдиреНрд╣реЗрдВ рдСрдирд▓рд╛рдЗрди рджреЗрдЦрдиреЗ рдкрд░ (рддреАрдиjs.org рдкреЗрдЬ рд╕реЗ) рд╡реЗ рд╕рднреА рд╕рд╣реА рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред
рдЬреНрдЮрд╛рдд рд╣реЛ рдХрд┐ dev
рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП рд╣реИрдВ рдЬреЛ рдЕрднреА рддрдХ prod
рдирд╣реАрдВ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рд╡рд░реНрддрдорд╛рди master
рд╢рд╛рдЦрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ рдПрдХ рд╕реНрдерд╛рдиреАрдп рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдкрд╣рд▓реА рдмрд╛рдд рдореИрдВрдиреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдиреЛрдЯрд┐рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рд╡рд╣реА рдкрд░рд┐рдгрд╛рдоред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрддреНрд╕реБрдХред
рдХреНрдпрд╛ рдЖрдк рдЧреБрдкреНрдд рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХрднреА-рдХрднреА рд╕рд╛рдорд╛рди рдХреИрд╢реНрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ
рдЧреБрдкреНрдд, рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдХреА рдХреЛрд╢рд┐рд╢ рдХреА :(
рдореБрдЭреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмреИрдВрдбрд┐рдВрдЧ рдерд┐рдпреЛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣реА рд╣реИред
рдПрдордЖрдИрдкреА рдкреАрдврд╝реА рдХреЗ рджреМрд░рд╛рди, рдореЗрд░рд╛ рд╕реНрдерд╛рдиреАрдп (рдЧрд▓рдд) рд╕рдВрд╕реНрдХрд░рдг рдПрдХ рдмреНрд▓реИрдХ рдмреИрдВрдб рдмрдирд╛ рд░рд╣рд╛ рд╣реИ рдЬреЛ рд▓рд╛рдЗрд╡ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред
рдпрд╣ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рддрдХ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдХреБрдЫ рдЧрд▓рдд рд╕рдордиреНрд╡рдпрди рдирдореВрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдореИрдВрдиреЗ рдЕрдирд┐рд╕реЛрдЯреНрд░реЛрдкрд┐рдХ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдкрд┐рди-рдкреЙрдЗрдВрдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЕрдкрдиреЗ рд╕рд┐рд░ рдХреЛ рдЪрд╛рд░реЛрдВ рдУрд░ рд▓рдкреЗрдЯ рдирд╣реАрдВ рд╕рдХрддрд╛, рдХреНрдпреЛрдВ рдпрд╣ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред
@ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг PMREMGenerator
devicePixelRatio
рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИред
рдирд╛рдордорд╛рддреНрд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ pixelRatio
рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣рдо рдЙрддреНрдкрдиреНрди рдмрдирд╛рд╡рдЯ рдкрд░ "рдЦрд░рд╛рдм" mipmap рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддреЛ рдЫреЛрдЯреЗ рдЕрдВрддрд░рд╛рд▓ рдФрд░ рдЕрддрд┐рд╡реНрдпрд╛рдкреА рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдЧрд░ рдореЗрд░реА рдорд╢реАрди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ (0.899 ..) рдпрд╛ рдСрдирд▓рд╛рдЗрди (1) рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд░рд╣реА рд╣реИ рддреЛ devicePixelRatios
рдФрд░ рдЗрд╕реАрд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рдерд╛ред
рдореИрдВрдиреЗ setPixelRatio
рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛ рд╣реИ, рддреЛ PMREMGenerator
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИ, рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред
@toji @ plut0nist рдорди рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ?
@sciecode рдореВрд▓ рдХрд╛рд░рдг рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдХрд┐рд╕реА рд╕рдорд╛рдзрд╛рди рдХрд╛ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
@ рд╕рд┐рд╕реНрдХреЛрдЯ : рдореЗрд░реЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╕рддреНрдпрд╛рдкрд┐рддред DEV рдЙрджрд╛рд╣рд░рдг рдкрд░реАрдХреНрд╖рдг рдкрд░реНрдпрд╛рд╡рд░рдг рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╕реНрдкрд╖реНрдЯ рдХрд╛рд▓реА рд░реЗрдЦрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрдмрдХрд┐ TEST рдЙрджрд╛рд╣рд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рдбрд┐рдмрдЧрд┐рдВрдЧ, рдзрдиреНрдпрд╡рд╛рдж!
рдореИрдВ рдмреЗрд╣рдж рдЙрддреНрд╕реБрдХ рдерд╛ рдХрд┐ PMREMGenerator
рдЖрд╡рд╢реНрдпрдХрддрд╛ devicePixelRatio
рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдХреНрдпреЛрдВ рди рд╣реЛ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЦреЛрджрддрд╛ рдЪрд▓рд╛ рдЧрдпрд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ renderer.setViewport()
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдореВрд▓реНрдп рдореЗрдВ рдбреАрдкреАрдЖрд░ рдХрд╛ рдХрд╛рд░рдХ рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдпрд╣ рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлреНрд░реЗрдордмрдлрд╝рд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЕрдиреНрдп рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдЬреЛ рд╕рдЯреАрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдкрд┐рдХреНрд╕реЗрд▓ рдЕрдиреБрдкрд╛рдд рдХреЗ рд▓рд┐рдП рдЦрд╛рддрд╛ рдмрд┐рд▓реНрдХреБрд▓ред рдореИрдВ рдпрд╣рд╛рдВ "рд╕рд╣реА" рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрдЭрд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ rendere.setViewport()
рдХрд╛ рдЙрдкрдпреЛрдЧ getTargetPixelRatio()
rendere.setViewport()
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ 1
рд░рд┐рдЯрд░реНрди рджреЗрддрд╛ рд╣реИ рдЬрдм рд╕рдХреНрд░рд┐рдп рд░реЗрдВрдбрд░ рдЯрд╛рд░рдЧреЗрдЯ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдХреИрд╕реЗ рдкреАрдЫреЗ рдХреА рдУрд░ рдХрдореНрдкреАрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдореБрджреНрджреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@ рдХрдИ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдкрд░ рдХреБрдЫ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░рдг
PMREMGenerator
devicePixelRatio
рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИредрдирд╛рдордорд╛рддреНрд░ рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ
pixelRatio
рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рд╣рдо рдЙрддреНрдкрдиреНрди рдмрдирд╛рд╡рдЯ рдкрд░ "рдЦрд░рд╛рдм" mipmap рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рддреЛ рдЫреЛрдЯреЗ рдЕрдВрддрд░рд╛рд▓ рдФрд░ рдЕрддрд┐рд╡реНрдпрд╛рдкреА рдХреНрд╖реЗрддреНрд░ рд╣реИрдВред рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЕрдЧрд░ рдореЗрд░реА рдорд╢реАрди рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ (0.899 ..) рдпрд╛ рдСрдирд▓рд╛рдЗрди (1) рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд░рд╣реА рд╣реИ рддреЛdevicePixelRatios
рдФрд░ рдЗрд╕реАрд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рд░рд╣рд╛ рдерд╛редрдореИрдВрдиреЗ
setPixelRatio
рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкрд░реАрдХреНрд╖рдг рд╕реЗрдЯрдЕрдк рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рджреВрд╕рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдорд▓рд╛ рд╣реИ, рддреЛPMREMGenerator
рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓ рд░рд╣рд╛ рд╣реИ, рдЙрд╕реЗ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред@toji @ plut0nist рдорди рдЗрди рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ?
DEV рдЙрджрд╛рд╣рд░рдг
рдЯреЗрд╕реНрдЯ рдЙрджрд╛рд╣рд░рдг