ν μ€μ²λ‘λ‘λνλ ν° μ΄λ―Έμ§κ° νλ μμ΅λλ€. κ·Έλ° λ€μμ΄ ν μ€μ²λ₯Ό μ μ©νλ €λ νλΈκ° μ¬λ¬ κ° μμ΅λλ€. λ¬Έμ λ ν μ€μ²κ° μ μ©λ λ μ΄λ―Έμ§λ₯Ό νλΈμ λλΉμ λμ΄μ λ§κ² μ‘°μ νλ€λ κ²μ λλ€. λ΄κ° μνλ κ²μ μ€μΌμΌλ§μ΄ μΌμ΄λμ§ μλλ‘νλ κ²μ λλ€. κ·Έλ° λ€μ ν μ€μ²μ "μ€νμ "μ μ΄λνμ¬ νμ ν λΆλΆμ μ νν μ μμ΅λλ€.
λꡬλ μ§ μ¬λ°λ₯Έ λ°©ν₯μΌλ‘ λλ₯Ό κ°λ¦¬ν¬ μ μμ΅λκΉ?
μλ₯Ό λ€μ΄, λ΄ ν μ€μ²κ° 800x2000μ΄λ©΄. κ·Έλ¦¬κ³ μ λ 100x100 νλΈλ₯Ό κ°μ§κ³ μκ³ , 300x400κ³Ό κ°μ μ€νμ μΌλ‘ ν° ν μ€μ²μ 100x100 λΆλΆμ 보μ¬μ£Όκ³ μΆμ΅λλ€. κ·Έλμ λ€μκ³Ό κ°μ΅λλ€.
tex = THREE.ImageUtils.loadTexture('texture.png');
tex.left = 300
tex.top = 400
var pictureMaterial = new THREE.MeshBasicMaterial({map: tex});
μ΄λ₯Ό μν΄ μΊλ²μ€ ν μ€μ²λ₯Ό νμ©ν΄μΌν©λκΉ?
μ’μ, κ±°κΈ°μ λμ°©νμ§λ§ μ€νμ λ° λ°λ³΅ λ§€κ° λ³μλ₯Ό μ¬μ©νλ λ°©λ²μ λν λ¬Έμλ₯Ό μ°ΎμμΌν©λλ€. 0κ³Ό 1 μ¬μ΄μ μμ΄μΌνλ©° ν½μ λ‘ λ³νλλ κ°μ μ»λ λ°©λ²μ λͺ¨λ₯΄κ² μ΅λλ€.
tex = THREE.ImageUtils.loadTexture('texture.png');
tex.offset.x = ?
tex.offset.y = ?
tex.repeat.x = ?
tex.repeat.y = ?
λ€λ₯Έ μ¬λμκ² λμμ΄λλ κ²½μ° λ΄ μ루μ μ κ²μν©λλ€. ν μ€μ²μ μΊλ²μ€λ₯Ό μ¬μ©νκ³ λμ μ΄λ―Έμ§λ₯Όλ‘λ / μλ₯΄κΈ°νμ΅λλ€. μ§κΈκΉμ§ μ μλνλ κ² κ°μ΅λλ€.
canvas = document.createElement('canvas');
canvas.height=200;
canvas.width=200;
ctx = canvas.getContext('2d');
ctx.fillStyle = '#FFFFFF';
ctx.fillRect(0, 0, 200, val.200);
//this is where we set the "offset"
offx = -1 * 200;
offy = -1 * 200;
//img is a standard loaded image object
ctx.drawImage(img,offx,offy);
tex = new THREE.Texture(canvas);
μ΄κ²μ΄ λ°©λ²μ΄μ§λ§ GPUλ₯Ό μ¬μ©νλ €λ©΄ λ€μκ³Ό κ°μ΄ ν μ μμ΅λλ€.
tex.scale.x = 800 / 100;
tex.scale.y = 2000 / 100;
tex.offset.x = ( 300 / 100 ) * tex.scale.x;
tex.offset.y = ( 400 / 100 ) * tex.scale.y;
λλ λΌμΈμ λ°λΌ λκ° :)
λ©μλ! νμ μ‘°μΉμ κ°μ¬λ립λλ€
GPUμμμ΄ μμ μ μννλ κ²μ΄ νμ€ν λ μ±λ₯μ΄ μ’μ΅λλ€. κ·Έλ¬λ ν μ€μ²μ scale.x μμ±μ μ€μ νλ €κ³ νλ©΄ "cannot set property of x"μ€λ₯κ° κ³μ λ°μν©λλ€. μ΄λ€ μμ΄λμ΄? λμΌν κ²°κ³Όλ‘ tex.scale.set (w, h) λ©μλλ₯Ό μ¬μ©νμ¬ μλνμ΅λλ€.
tex = THREE.ImageUtils.loadTexture(img.src);
scalex = img.width / 100;
scaley = img.height / 100;
tex.scale.x = scalex;
tex.scale.y = scaley;
tex = THREE.ImageUtils.loadTexture(img.src);
μ΄μνκ²λ μ΄λ―Έμ§μ μ΄λ―Έ srcκ° μμΌλ©΄ μ΄λ―Έλ‘λ λ κ²μ λλ€. λ€μλ‘λνλ μ΄μ λ 무μμ λκΉ?
λμ μ΄κ²μ μνλ€κ³ μκ°ν©λλ€.
tex = new THREE.Texture( img );
κ°μ¬ν©λλ€. img κ°μ²΄μ THREE.Texture ()λ₯Ό μ§μ μ¬μ©νλ©΄ μλκ° λΉ¨λΌμ§ κ² κ°μ΅λλ€. κ·Έλλ tex.scale μμ μ μ€λ₯κ° λ°μν©λλ€. μ΄μ¨λ tex.repeatλ₯Ό μ¬μ©νμ¬ μ€μΌμΌλ§μ λ²μνλ €λ©΄? λλ κ·Έ κ°μ μ무 λ¬Έμ μμ΄ μ‘°μ ν μ μμ΅λλ€.
μ, λ§λ€. Texture
μλ .scale
Texture
μ΄ μμΌλ©° .repeat
μμ΅λλ€. μ΄ μλ:
tex.repeat.x = 100 / 800;
tex.repeat.y = 100 / 2000;
tex.offset.x = ( 300 / 100 ) * tex.repeat.x;
tex.offset.y = ( 400 / 100 ) * tex.repeat.y;
λ°λ³΅ λ° μ€νμ μμ±μ λν΄μλ§ λ°°μ°κΈ° μν΄ ν μ€μ² ν¬κΈ°λ₯Ό μ‘°μ νλ λ°©λ²μ μμ보기 μν΄ μ¬κΈ°μ μμ΅λλ€.νμ§λ§ μ΄λ»κ² ν¬κΈ°λ₯Ό μ‘°μ ν μ μμ΅λκΉ?
@nightlifelover μ§μΉ¨μ λͺ μλ λ°μ κ°μ΄ λμλ§ μμ²μ stackoverflowλ‘ μ λ¬ λμ΄μΌν©λλ€.
κ°μ₯ μ μ©ν λκΈ
μ, λ§λ€.
Texture
μλ.scale
Texture
μ΄ μμΌλ©°.repeat
μμ΅λλ€. μ΄ μλ: