r112๋ถํฐ ๊ธฐ๋ณธ MeshStandardMaterial (์ด ๊ฒฝ์ฐ ํนํ glTF ํ์ผ์๋ก๋ ํ ๋ ์ฌ์ฉ๋์ง๋ง ๋ค๋ฅธ ์๋๋ฆฌ์ค์์๋ ์ฌ์ฉ๋จ)์ ์ผ๋ถ GPU์์ ๋ฐด๋ฉ ์ํฐํฉํธ๋ฅผ ๋ํ๋ ๋๋ค. ํนํ Pixelbook๊ณผ ๋ชจ๋ ์ธ๋์ Pixel ํด๋ ์ ํ์์์ด ๋ฌธ์ ๋ฅผ ํ์ธํ์ต๋๋ค. ์ด ๋ฌธ์ ๋ ๋ด๊ฐ ์๋ํ Nvidia ๋ฐ์คํฌํฑ GPU, Oculus Go ๋๋ Oculus Quest์์ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ํ ๋จธํฐ๋ฆฌ์ผ์ ์ ์ ฐ์ด๋๊ฐ ๋ ๋๋ง ์ํฐํฉํธ๋ฅผ ํ์ํ์ง ์๋ ๋ชจ๋ฐ์ผ ์ฅ์น๋ฅผ ํฌํจํ์ฌ ๋ค์ํ ๋ชจ๋ฐ์ผ ์ฅ์น์์ ๋ด ํน์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ํด r111์ ๋นํด ๋์ ๋๋ ์ฑ๋ฅ ์ ํ๋ฅผ ์ด๋ํ๋ ๊ฒ์ ๊ด์ฐฐํ์ต๋๋ค.
์ํฐํฉํธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค (Pixelbook์์ Three.js r112๋ก ๋ ๋๋ง ๋จ).
์์ ์ถ๋ ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค (๋์ผํ Pixelbook์์ Three.js r111๋ก ๋ ๋๋ง ๋จ).
ํ์ฌ r112๋ฅผ ์ฌ์ฉํ๋ ๋ผ์ด๋ธ ๋งํฌ : https://xrdinosaurs.com
ํด๋น ํ์ด์ง์ ๋ชจ๋ ๊ณต๋ฃก์ด ๋ฌธ์ ๋ฅผ ๋ํ๋ด์ง ๋ง, ํํํ๊ฑฐ๋ ๋ถ๋๋ฌ์ด ์์์ ๋์ ์์ญ (์ : TRex์ ๋ฐฐ)์ด ๋ ๋๋๋ฌ์ง๋ ๊ฒฝํฅ์ด ์์ต๋๋ค.
์คํฌ๋ฆฐ ์ท์ ์ฌ์ง (์๋์ ์ ์ฒด ๋ถ์ฌ ๋ฃ๊ธฐ)์ 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
}
}
๋ด Pixel (1)์์ ๊ธ๋ฆฌ์น๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ํฐํฉํธ๋ KHR_materials_pbrSpecularGlossiness
๊ฐ ์ฌ์ฉ๋ ๋๋ง ๋ฐ์ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
GLTFLoader
๋ lights_physical_fragment
์
ฐ์ด๋ ์ฒญํฌ์ ์ฝ๋๋ฅผ ๋ค์์ผ๋ก ๋ฐ๊ฟ๋๋ค.@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' );
@elalish ์ด ํจ์น๋ก ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์๋๋ผ๋ GLTFLoader
์ ์ถ๊ฐํด์ผ ํ์ฃ ?
@ Mugen87 ๋ค, ๋ฌผ๋ก ์ ๋๋ค. Pixel 3์์๋ ์ฌํ ํ ์ ์๋์ง ์ดํด ๋ณด๊ฒ ์ต๋๋ค.
@toji ๋๋ Android 10์ด ๋ชจ๋ Pixel์ด ์๋๋๋ค ...
๋๋ผ์ด๋ฒ ๋ฒ๊ทธ? ๊ทธ๋๋ ์ด๋ค ๋ผ์ธ์ด ํธ๋ฆฌ๊ฑฐํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๊ธฐํํ์ ์คํฐ ์จ๋ฆฌ์ด์ฑ์ ์กด์ฌ / ๋ถ์ฌ๋ ์ด์จ๋ ๊ทธ๋ฐ ์ ํ์ ์ธ๊ณต๋ฌผ์ ๋ง๋ค์ง ์์ ๊ฒ์ ๋๋ค.
@toji ๋๋ ๋ํ ๋ด
๊ฒ์ ํ๋์ ์ค์ ๋ก PMREM ์์ฑ์ด ์์ ํ ์คํจํ์์ ์๋ฏธํ๋ฉฐ, ์ด๋ ์ฐ๋ฆฌ๊ฐ ๋ฐ๊ฒฌ ํ ์ด์ํ ๋ฒ๊ทธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ( https://github.com/GoogleWebComponents/model-viewer/pull/920) ๋๋ฌธ์ ๋๋ค. ๋๋ ์ด๊ฒ์ r112์ ๋ฃ์ผ๋ ค๊ณ ํ์ง๋ง ๋์ ์ํด ๋ฏธ๋๋ฌ์ก๋ค. ๊ทธ๋๋ OP์ ๋ฒ๊ทธ์ ๊ด๋ จ์ด ์์ ๊ฐ๋ฅ์ฑ์ด ์์ต๋๋ค.
Chrome๊ณผ Firefox ๋ชจ๋์์ OnePlus 5T์ OP ์ค๋ฅ๋ฅผ ์ฌํํ์ต๋๋ค.
๊ฐ์ฌ! ํจ์น๋ฅผ GLTFLoader
ํ๊ณ ๋ฐด๋ฉ ์ํฐํฉํธ๊ฐ ๊ฐ์ํ์ง๋ง ์ ๊ฑฐ๋์ง ์์ ์์ ํ์ธํ์ต๋๋ค.
ํจ์น ์ :
ํจ์น ํ :
๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐด๋ ์ค ํ๋๋ฅผ ๊ณ ์ ํ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค. :) (Pixelbook์์ ์ฐ์ ์คํฌ๋ฆฐ ์ท์ด์ง๋ง Pixel 4 XL์์๋ ๊ด์ฐฐ๋์์ต๋๋ค. ํ์ฌ ๋ค๋ฅธ ํ ์คํธ ๊ธฐ๊ธฐ๋ ์ฌ์ฉํ์ง ๋ง์ธ์.)
ํ ์คํธํ๋ ค๋ ๋ค๋ฅธ ๋ณ๊ฒฝ ์ฌํญ์ ํจ์น๋ฅผ ์ ์ฉํ๊ฑฐ๋ ๋ก์ปฌ์์ ํ ์คํธํ๋ ค๋ฉด https://github.com/toji/xr-dinosaurs๋ฅผ ํ์ธํ์ญ์์ค. (์๋ฒ ๊ตฌ์ฑ ์์๊ฐ ํ์ํ์ง ์์ต๋๋ค.)
์ฑ๋ฅ์ ๊ดํด์๋ : ์ ํํ ๋ฒํฐ ๊ฐ์ ๊ฒ์ ์๋์ง๋ง ๋์์ง๋ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค. ๐ ์ด์ฌํ ์ผํ์ต๋๋ค. ์ด ๊ฒฝ์ฐ r112๋ก ์
๋ฐ์ดํธํ๋ ๋์ ์ฑ๋ฅ ํ๊ท๋ฅผ ๋ฐ๊ฒฌํ๊ณ @mrdoob ์๊ฒ ๊ทธ๊ฒ์ ๋ํด ๋ฌผ์์ต๋๋ค. ๊ทธ๋ ๊ทธ๊ฒ์ด ์๋กญ๊ณ ๋ ์ ํํ ํ์ค ์
ฐ์ด๋ ์ผ ์ ์๋ค๊ณ ์ ์ํ๊ณ ํ์ธ์ ์ํด ์ผ๋ถ ์ฌ์ง์ MeshLambertMaterial
๋ก ๊ต์ฒด ํ ๊ฒ์ ์ ์ํ์ต๋๋ค. ์ด์ฐจํผ ํ๊ฒฝ ๋ชจ๋ธ์ด PBR ์ฌ์ง์ ์ ์ ํ๊ฒ ๊ตฌ์ฑํ์ง ์์๊ธฐ ๋๋ฌธ์ ๋๋ ๊ทธ๊ฒ์ Lambert์ ๊ฐ์ ๋ก๋๊ณ ๊ฑฐ๊ธฐ์ ๋จ๊ฒจ ๋์์ต๋๋ค. ์ด๊ฒ์ ์ฑ๋ฅ ํ๊ท๋ฅผ ๋์ฐพ์ ๋ค์ ์ผ๋ถ (๋ทฐํฌํธ์ ํฐ ๋ฉ์ด๋ฆฌ๋ฅผ ์ฐจ์งํ๊ธฐ ๋๋ฌธ์
๋๋ค.) ํ์ค ์ฌ๋ฃ๋ "์์
"์์ฐ์ด๊ธฐ ๋๋ฌธ์
๋๋ค.
์ฐธ๊ณ : ๋ ๋๋ฌ๊ฐ MeshStandardMaterial
ํ์ธํ๊ธฐ ๋๋ฌธ์ GLTFLoader
๋ฐ์ฌ / ๊ดํ ์ฌ์ง์ ์ฌ์ฉํ์ฌ ๋ฉ์๋ฅผ๋ก๋ ํ ๋ Scene.environment
๋ ํ์ฌ ์๋ํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ GLTFLoader
ShaderMaterial
๋ ๊ฐ ๋ฐ์ฌ / ๊ดํ ์ฌ์ง์ ๋ํด
ํ๊ฒฝ ๋งต์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ๋ฐด๋ฉ ์ํฐํฉํธ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. ์ฃผ๋ณ ์กฐ๋ช ๋ฐ ํฌ์ธํธ ์กฐ๋ช ๊ณผ ๊ฐ์ ๊ฐ๋จํ ์กฐ๋ช ์ค์ ์ผ๋ก Pixel (1)์์ ๋ชจ๋ ๊ฒ์ด ์ ๋ณด์ ๋๋ค.
์, ํ๊ฒฝ ๋งต์ ์ฌ์ฉํ๋ ๋ฌผ๋ฆฌ์ ์ฌ๋ฃ์๋ ๋ ๋ง์ ๋ฌธ์ ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ ์์ ๊ฐ Pixel 1, Android 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
๋ฅผ ํ์ฉํ๋ ๋ชจ๋ ์์ ์์ ์ด๋ฌํ ์ํฐํฉํธ๋ฅผ ์ฌํ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ก์ปฌ์์ ์คํํ ๋๋ง; ์จ๋ผ์ธ์ผ๋ก ๋ณผ ๋ (threejs.org ํ์ด์ง์์) ๋ชจ๋ ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋ฉ๋๋ค.
๋๋ ๊ทธ๋ฐ ๋ฌธ์ ๋ฅผ ๊ฒฝํ ํ ์ ์ด ์์ผ๋ฉฐ ๊ทธ ์์ธ์ ๋ํด ์์ ํ ์์ด ๋ฒ๋ ธ์ต๋๋ค.
GeForce GTX 750 TI์ ํจ๊ป Windows 10์ ์คํํ๊ณ ์์ผ๋ฏ๋ก ์ด๊ฒ์ด ์ฅ์น ๊ด๋ จ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ก์ปฌ์์ ์คํํ ๋๋ง; ์จ๋ผ์ธ์ผ๋ก ๋ณผ ๋ (threejs.org ํ์ด์ง์์) ๋ชจ๋ ์ฌ๋ฐ๋ฅด๊ฒ ํ์๋ฉ๋๋ค.
dev
๋ฒ์ ์๋ ์์ง prod
์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ต๋๋ค. ํ์ฌ master
์ง์ ์ ํ์ธํ ๋ค์ ๋ก์ปฌ ํ
์คํธ๋ฅผ ์ํ ํ ์ ์์ต๋๊น?
ํ์ฌ ๋ง์คํฐ ๋ธ๋์น๋ฅผ ์ฒดํฌ ์์ ํ ๋ค์ ๋ก์ปฌ ํ ์คํธ๋ฅผ ์ํ ํ ์ ์์ต๋๊น?
์ด ๋์์ ์์ ์ฐจ๋ฆฐ ํ ๊ฐ์ฅ ๋จผ์ ์๋ํ ๊ฒ์ ๋์ผํ ๊ฒฐ๊ณผ์ ๋๋ค. ์ ๋ง ๊ถ๊ธํฉ๋๋ค.
์ํฌ๋ฆฟ ์ฐฝ์ผ๋ก ํ ์คํธ ํด ์ฃผ ์๊ฒ ์ด์? ๋๋๋ก ํญ๋ชฉ์ด ์บ์๋๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ํ์ฅ์ด ๋ฐฉํด๋ฅผ ๋ฐ์ ์ ๋ง ํผ๋ ์ค๋ฌ์ธ ์ ์์ต๋๋ค.
์ํฌ๋ฆฟ์ผ๋ก ์๋ํ๋๋ฐ ๋์ผํ ๊ฒฐ๊ณผ :(
์ด ๋ฐด๋ฉ์ด ๋ฐ์ํ๋ ์ด์ ๋ฅผ ์๊ณ ์๋ค๊ณ ๋ฏฟ์ต๋๋ค.
๋ฐ ์์ฑ ์ค์ ๋ด ๋ก์ปฌ (์๋ชป๋) ๋ฒ์ ์ด ๋ผ์ด๋ธ ๋ฒ์ ์์๋ ๊ฒ์ ์ ๋ฐด๋๋ฅผ ์์ฑํฉ๋๋ค.
์ด๊ฒ์ ๋ฎ์ mip ๋ ๋ฒจ์๋ ๋ณต์ ๋ฉ๋๋ค.
์ด๊ฒ์ ์๋ชป๋ ์ขํ ์ํ๋ง์ผ๋ก ์ธํด ๋ฐ์ํ ์ ์์ผ๋ฉฐ ์ด๋ฐฉ์ฑ ํํฐ๋ง์ ์๋์ผ๋ก ๋นํ์ฑํํ๋ ์คํ์ ํด ๋ณด์์ง๋ง ๋ฌธ์ ๋ ๋จ์ ์์ต๋๋ค. ์ ํํ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง ์ ํํ ์ง์ ํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ํนํ ๊ฐ์ ๊ธฐ๊ณ์์ ๋ ๊ฐ์ง ๋ค๋ฅธ ํ๋์ ๋ณด์ด๋ ์ด์ ๋ฅผ ๋จธ๋ฆฌ๋ก ๊ฐ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
@elalish ์ฌ๋ฌ ์์ ์์ ๋ช ๊ฐ์ง ํ
์คํธ๋ฅผ ์คํ ํ ํ ์ด๋ฌํ ์ํฐํฉํธ์ ์ค์ ์์ธ์ ์ ํํ ์ฐพ์ ๋ผ ์์์์ต๋๋ค. ์ด์ ๊ฒ์๋ฌผ์์ ๋งํ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ์๋ชป๋ ์ขํ ์ํ๋ง๊ณผ ๊ด๋ จ์ด ์์ง๋ง PMREMGenerator
์ด devicePixelRatio
์ฒ๋ฆฌํ๋ ๋ฐฉ์๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.
๊ณต์นญ ๋ถ๋ ์์์ pixelRatio
์์ ์์ฑ ๋ ํ
์ค์ฒ์ "์๋ชป๋"๋ฐ๋งต ์ขํ๊ฐ ํ์๋ฉ๋๋ค. ๋ฐ๋ผ์ ์์ ๊ฐ๊ฒฉ๊ณผ ๊ฒน์น๋ ์์ญ์ด ์์ต๋๋ค. ๋ํ ๋ก์ปฌ (0.899 ..) ๋๋ ์จ๋ผ์ธ (1) ์์ ๋ฅผ๋ณด๊ณ ์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ด ์ปดํจํฐ๊ฐ devicePixelRatios
๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ผ๋ฉฐ, ์ด๊ฒ์ด ๋ฐ๋ก ์ด๋ฌํ ์ํฐํฉํธ๋ฅผ ๋ก์ปฌ์์๋ง ๊ฒฝํ ํ ์ด์ ์
๋๋ค.
setPixelRatio
๋ฅผ ๋นํ์ฑํํ์ฌ ๊ฐ๋จํ ํ
์คํธ๋ฅผ ์ค์ ํ๋๋ฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋์ ๊ฒฝ์ฐ๋ผ๋ฉด PMREMGenerator
๊ฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๋ฆฌํฉํฐ๋งํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.
@toji @ plut0nist ๋ ์ด๋ฌํ ์ํฐํฉํธ๋ฅผ ์ ์ ํ ์ฅ์น์์ ๋ค์ ์์ ๋ฅผ ํ์ธํ๊ณ ์์ต๋๊น?
@sciecode ๊ทผ๋ณธ ์์ธ์
@sciecode : ๋ด ๊ธฐ๊ธฐ์์ ํ์ธ๋์์ต๋๋ค. DEV ์์ ํ ์คํธ๋ ํ๊ฒฝ ๋งต์์ ๋งค์ฐ ๋ถ๋ช ํ ๊ฒ์ ์ ์ ์ ํ์ํ์ง๋ง TEST ์์ ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ๋ฉ์ง ๋๋ฒ๊น , ๊ฐ์ฌํฉ๋๋ค!
์ PMREMGenerator
๊ฐ devicePixelRatio
๋ฅผ ๊ณ์ฐํด์ผํ๋์ง ๋งค์ฐ ๊ถ๊ธํด์ ํํค ์ณค์ต๋๋ค. renderer.setViewport()
๋ DPR์ ์ ์กํ๋ ๋ชจ๋ ๊ฐ์ผ๋ก ์๋์ผ๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ์
๋๋ค. ์ด๋ ๊ธฐ๋ณธ ํ๋ ์ ๋ฒํผ๊ฐ ์๋ ๋ ๋ ํ๊ฒ์ ๋ํด ๋ถ๋ช
ํ ์๋ชป๋ ๋์ ์ธ ๊ฒ์ฒ๋ผ ๋๊ปด์ง๋ฉฐ, ๊ทธ๋ ์ง ์์ ์ ํํ ํฝ์
๊ฐ์ผ๋ก ํ ๋น๋ฉ๋๋ค. ํฝ์
๋น์จ์ ์ ํ ์ค๋ช
ํ์ง ์์ต๋๋ค. ์ฌ๊ธฐ์ "์ฌ๋ฐ๋ฅธ"๋์์ ๋ด๋ถ์ ์ผ๋ก rendere.setViewport()
์ด getTargetPixelRatio()
์ฌ์ฉํด์ผํ๋ค๋ ๊ฒ์
๋๋ค. ๊ทธ๋ฌ๋ฉด ํ์ฑ ๋ ๋๋ง ๋์์ด ๊ธฐ๋ณธ๊ฐ์ด ์๋ ๊ฒฝ์ฐ 1
๋ฅผ ๋ฐํํฉ๋๋ค. ๊ทธ๋๋ ์ด์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์ด๋ป๊ฒ ๋ฐ์ํ ์ ์๋์ง ํ์คํ ์ ์ ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@elalish ์ฌ๋ฌ ์์ ์์ ๋ช ๊ฐ์ง ํ ์คํธ๋ฅผ ์คํ ํ ํ ์ด๋ฌํ ์ํฐํฉํธ์ ์ค์ ์์ธ์ ์ ํํ ์ฐพ์ ๋ผ ์์์์ต๋๋ค. ์ด์ ๊ฒ์๋ฌผ์์ ๋งํ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ๋ฌธ์ ์ ๊ทผ๋ณธ ์์ธ์ ์๋ชป๋ ์ขํ ์ํ๋ง๊ณผ ๊ด๋ จ์ด ์์ง๋ง
PMREMGenerator
์ดdevicePixelRatio
์ฒ๋ฆฌํ๋ ๋ฐฉ์๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค.๊ณต์นญ ๋ถ๋ ์์์
pixelRatio
์์ ์์ฑ ๋ ํ ์ค์ฒ์ "์๋ชป๋"๋ฐ๋งต ์ขํ๊ฐ ํ์๋ฉ๋๋ค. ๋ฐ๋ผ์ ์์ ๊ฐ๊ฒฉ๊ณผ ๊ฒน์น๋ ์์ญ์ด ์์ต๋๋ค. ๋ํ ๋ก์ปฌ (0.899 ..) ๋๋ ์จ๋ผ์ธ (1) ์์ ๋ฅผ๋ณด๊ณ ์๋์ง ์ฌ๋ถ์ ๋ฐ๋ผ ๋ด ์ปดํจํฐ๊ฐdevicePixelRatios
๊ฐ ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ์ผ๋ฉฐ, ์ด๊ฒ์ด ๋ฐ๋ก ์ด๋ฌํ ์ํฐํฉํธ๋ฅผ ๋ก์ปฌ์์๋ง ๊ฒฝํ ํ ์ด์ ์ ๋๋ค.setPixelRatio
๋ฅผ ๋นํ์ฑํํ์ฌ ๊ฐ๋จํ ํ ์คํธ๋ฅผ ์ค์ ํ๋๋ฐ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ฅธ ์ฌ๋์ ๊ฒฝ์ฐ๋ผ๋ฉดPMREMGenerator
๊ฐ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๋ฆฌํฉํฐ๋งํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ต๋๋ค.@toji @ plut0nist ๋ ์ด๋ฌํ ์ํฐํฉํธ๋ฅผ ์ ์ ํ ์ฅ์น์์ ๋ค์ ์์ ๋ฅผ ํ์ธํ๊ณ ์์ต๋๊น?
DEV ์
ํ ์คํธ ์