Three.js: three.js์—์„œ 3D ๊ฐœ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ? ?

์— ๋งŒ๋“  2011๋…„ 12์›” 31์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mrdoob/three.js

three.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 3D ๋ชจ๋ธ๋ง ๋„๊ตฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๋ ค๊ณ ํ•ฉ๋‹ˆ๋‹ค ......

์™€์ด์–ด ํ”„๋ ˆ์ž„ ํ”Œ๋žซํผ์—์„œ 3D ๊ฐ์ฒด๋ฅผ ๋ Œ๋”๋งํ•˜๊ธฐ ์œ„ํ•ด ์˜ˆ์ œ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค!

์ด์ œ ๋งˆ์šฐ์Šค ๋“œ๋ž˜๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ 3D ๊ฐœ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜์—ฌ 3D ๊ฐœ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

๋‹น์‹ ์˜ ๋Œ€๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค!

Question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

Mesh ๊ฐœ์ฒด์—๋Š” scale ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. mesh.scale.x = 2 ๋˜๋Š” mesh.scale.set( 2, 1, 1 ) ๋ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  10 ๋Œ“๊ธ€

Mesh ๊ฐœ์ฒด์—๋Š” scale ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. mesh.scale.x = 2 ๋˜๋Š” mesh.scale.set( 2, 1, 1 ) ๋ฉ๋‹ˆ๋‹ค.

์ €๊ธฐ์žˆ๋Š” ์‚ฌ๋žŒ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค : http://stackoverflow.com/questions/19150120/scaling-an-object-in-three-js

์Šค์ผ€์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ˆœ๊ฐ„ ๋‚˜๋Š” ๋„˜์ณ๋‚ฉ๋‹ˆ๋‹ค.
"Matrix3.getInverse () : ํ–‰๋ ฌ์„ ๋ฐ˜์ „ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ–‰๋ ฌ์‹์ด 0์ž…๋‹ˆ๋‹ค."
three-r73.js : 4482 : 5

๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. THREE.CylinderGeometry ์‚ฌ์šฉ

@gunderson ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด stackoverflow๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”.

๊ฐœ์ฒด ๊ทธ๋ฃน์ด์žˆ๋Š” ๊ฒฝ์šฐ _rendering parent_๋กœ ๊ทธ๋ฃน์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋ถ€๋ชจ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

const renderingParent = new THREE.Group();
// ...
renderingParent.scale.set(2,1,1);
renderingParent.add(groupOfObjects);

๊ณ„์† ๋ณ€ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”? (์ €๋Š” ์ €์šธ์„ 10 ๋ฒˆ ๊ณ„์‚ฐํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค)
์‹ค์ œ๋กœ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?
์ตœ๊ณ , ๋ฃจ์ด์Šค

@luisArandas ๋„์›€๋ง ์š”์ฒญ์€ ํฌ๋Ÿผ ๋˜๋Š” stackoverflow๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

์ƒ์ž ๊ธฐํ•˜ํ•™์˜ ๊ฒฝ์šฐ ์ƒ์„ฑ์ž! == ์Šค์ผ€์ผ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์Šค์ผ€์ผ์„ x = 1๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ๋‚ด ๊ฐœ์ฒด๊ฐ€ BoxBufferGeometry (1,1,1); ๊ทธ๊ฒƒ์€ ๋‚ด ๋ฌผ๊ฑด์— ๋Œ€ํ•œ REEEEALY ๋‹ค๋ฅธ ๊ฒฌํ•ด๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ •์ƒ์ธ๊ฐ€์š”? = -1 ํฌ๊ธฐ๋กœ ์„ค์ • ํ•œ ํ›„ ๋‚ด ๊ฐœ์ฒด๊ฐ€ ๋” ์ปค์งˆ ๋•Œ ์ •๋ง ๋‚ด ๊ฒŒ์ž„์„ ๋ถ„์‡„ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ๋ช‡ ๊ฐ€์ง€ ์Šคํฌ๋ฆฐ ์ƒท์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ˜์†”์˜ ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž๋Š” ํ”Œ๋ ˆ์ด์–ด ํ๋ธŒ์˜ x, y, z ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค.
cubeSize.xyz = cubeSize.xyz-1;
cube.scale.set (cubeSize.xyz, cubeSize.xyz, cubeSize.xyz)
๋ชธ์ง‘์ด ์ž‘์•„ ์ ธ๋„ ๊ฐ™์€ ์‚ฌ์ด์ฆˆ๋ฅผ ์œ ์ง€ ํ•œ ๊ฒƒ ๊ฐ™์ง€๋งŒ Y ์ž์„ธ๋กœ ์•„๋ž˜๋กœ ๋งŒ๋“ค๊ณ 
cubeSize.xyz = cubeSize.xyz + 1;
cube.scale.set (cubeSize.xyz, cubeSize.xyz, cubeSize.xyz);
์ƒ์ž ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ์— ์˜ํ•ด ์„ค์ •๋œ ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋งŽ์ด ๋งŒ๋“ค์ง€ ๋งŒ ๋ณ€์ˆ˜๊ฐ€ ๋‹ค์‹œ 2๊ฐ€๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์™œ ๊ทธ๋Ÿฐ์ง€ ๋งํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ ๋‚˜์—๊ฒŒ๋Š” ์Šค์ผ€์ผ์ด ์ƒ์„ฑ์ž์™€ ๋‹ค๋ฅธ ํฌ๊ธฐ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์Šค์ผ€์ผ์ด ๋ฏธํ„ฐ์™€ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ํ”ผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ์€ ๋‚ด ๋ฌธ์ œ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด ์„ธ ๊ฐœ์˜ js ๋ฒ„์ „ 101์˜ ๊ฐ€๋ฐฉ์ž…๋‹ˆ๊นŒ? (100 ๊ฐœ๋Š” ์‹ค์ œ๋กœ ๋™์ผํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค)
image
image
image

์ ์ ˆํ•œ ๋‹ต๋ณ€์„ ์–ป๊ณ  ์‹ถ๋‹ค๋ฉด @dygy ์—๊ฒŒ ์งˆ๋ฌธ์„ ํฌ๋Ÿผ์œผ๋กœ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค : https://discourse.threejs.org/

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰