์๋ ํ์ธ์
THREE.js๋ฅผ ์ฌ์ฉํ์ฌ 3D ์ฅ๋ฉด์์ HUD ๋ ์ด์ด (2d ์คํ๋ผ์ดํธ, UI)๋ฅผ ๋ง๋๋ ์ฌ๋ฐ๋ฅธ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง ์๋ ์ฌ๋์ด ์์ต๋๊น? ๋ง์ฐ์ค ์ปค์๋ฅผ ์๋ฎฌ๋ ์ดํธํ๊ณ ์ฅ๋ฉด์ ์ด๋ฏธ์ง๋ฅผ ๋ ๋๋งํ๊ณ ์ถ์ต๋๋ค. ๋ด ์๊ฐ์ ์ ์ฌ ์นด๋ฉ๋ผ๋ฅผ ๋ง๋ค๊ณ ์คํ๋ผ์ดํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ํ์ง๋ง์ด ๋ ๋๋ง์ ์ฃผ ๋ ๋๋ง ์์ ์ด๋ป๊ฒ ๋ ์ด์ด๋ง ํ ์ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์์ ์์ "์ฌํ ์ฒ๋ฆฌ"๋ฅผ ์ฐพ์์ง๋ง ์ด๊ฒ์ด ๊ฐ ๊ธธ์ด๋ผ๊ณ ์๊ฐํ์ง ์์ต๋๋ค.
๊ฐ์ฌ
๋ ๋ชจ
HTML ์ฌ์ฉ
HTML์ ๊ฒฝ์ฐ +1. UI ์ฉ _designed_ ํ๋ซํผ์ ๊ฐ๋ฐ ์ค์ ๋๋ค. ๊ทธ๊ฒ์ ํ์ฉํ์ญ์์ค. :)
์ฌ์ค ๋๋ ์ ๋น์ ์ด HTML์ ์ฌ์ฉํ์ง ๋ง์์ผํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค! +1
๋ค, 3D ์ฅ๋ฉด์ ํตํฉ ํ ํ์๊ฐ ์๋ค๋ฉด ์บ๋ฒ์ค ์์ HTML์ ์ฌ์ฉํฉ๋๋ค.
๊ฐ์ฌ.
mrdoob, ๋ค, 3D ์ฅ๋ฉด์ ํตํฉํ๊ณ ์ถ์ต๋๋ค. ์ผ๋ถ 2D ๊ทธ๋ํฝ์ WebGL์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ THREE.js๋ก ์ด๊ฒ์ ์ํํ๋ ์์
์ํ์ ๋ณด์ง ๋ชปํ์ต๋๋ค.
"3D ์ฅ๋ฉด์ ํตํฉ"์ด๋ผ๊ณ ๋งํ๋ฉด UI๊ฐ 3D ์์ ์ค๋ฒ๋ ์ด๋ก ํ์๋๋ ๊ฒ์ ์ํ์ง ์์ต๋๊น?
Loupax, ์ ๋ชฉ์ ์ฝ๊ฐ ๋ณ๊ฒฝํ์ต๋๋ค. :) ์๋จ์ ์์ง๋ง WebGL์ด ๋ ๋๋ง๋์์ต๋๋ค. ๋๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
http://www.smokycogs.com/blog/o3d-tutorial-4-the-beginnings-of-a-hud/
http://code.google.com/p/o3d/source/browse/trunk/samples_webgl/o3d-webgl-samples/hud-2d-overlay.html?spec=svn218&r=218
๋๋ ๋จ์ํ GUI์ HTML์ ์ฌ์ฉํ๋ฏ๋ก <canvas> ์์ ์์ ๋จ์ํ <div> ๋ฑ์ด ์์ต๋๋ค.
์ค์ ์ฅ๋ฉด ์์ Three.js๋ก GUI๋ฅผ ๋ ๋๋งํ๋ ค๋ฉด ๋ ๊ฐ์ ์บ๋ฒ์ค ์์๋ฅผ ์๋ก ์์ ์ฌ์ฉํฉ๋๋ค. ํ๋๋ ๊ฒ์ / ์ฅ๋ฉด / ๋ฌด์์ด๋ , ๋ค๋ฅธ ํ๋๋ GUI ์ฉ์ ๋๋ค. GUI ์์ ์ฌ์ด์์ ๋งจ ์๊ฐ ํฌ๋ช ํ์ง ํ์ธํด์ผํ์ง๋ง Three.js์์ ๊ฐ๋ฅํ์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค ...
์, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ HTML์ ์ฌ์ฉํ๋ฉด ํจ์ฌ ๊ฐ๋จํฉ๋๋ค.
ํ๋ คํ๊ณ WebGL๋ก HUD๋ฅผ ๋ ๋๋งํ๊ณ ์ถ๋ค๋ฉด (์ : ์ ๋๋ฉ์ด์ 3D ๋๋ ์ผ๋ถ ์ ฐ์ด๋ ํจ๊ณผ) ๋ค์๊ณผ ๊ฐ์ด ํ ์ ์์ต๋๋ค.
http://mrdoob.github.com/three.js/examples/webgl_rtt.html
(์ต์ํ 2d ์ค๋ฒ๋ ์ด์ ๊ฒฝ์ฐ ๊น์ด ์ฐ๊ธฐ / ์ฝ๊ธฐ / ๋ง์คํน์ผ๋ก FBO์์ด ์ฌ์ํ๋ ๋ฐฉ๋ฒ์ด์์ ๊ฒ์ ๋๋ค)
alteredq,์ด ๋งํฌ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ๋๋ ํ์ฌ "์ฌ์"๋ฐฉ๋ฒ์ ์ฐพ์ง ๋ชปํ์ต๋๋ค. ๊ทธ๋ฌ๋ WebGLRenderer์์ ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ๋ค์๊ณผ ๊ฐ์ ๊ฒ์ ์ฌ์ฉํ ์ ์์์ ์์์ต๋๋ค.
var sprite = new THREE.Sprite ({map : tex, useScreenCoordinates : true});
scene.addChild (sprite);
์๋ํฉ๋๋ค.
๊ทธ๋ฌ๋ ๋๋ ์ฌ์ ํ ์ด์ค ๋ ๋๋ง๊ณผ ์ด๊ฒ์ ํผํฉํ๋ ๋ฐฉ๋ฒ์ ๊ด์ฌ์ด ์์ต๋๋ค.
๋๋ WebVR ํ๋ก์ ํธ์์ ์ผํ๊ณ ์์๊ณ DOM ์๋ฃจ์ ์ ์ต์ ์ด ์๋ ์์ต๋๋ค. ๋๋ ์์ํ Three.js๋ก HUD๋ฅผ ๋๋๋ค. ๋ณ๋์ ์ฅ๋ฉด์ ๋ง๋ค๊ณ ์๋ ์ฅ๋ฉด ์์ ๋ ๋๋งํ์ต๋๋ค.
์ฌ๊ธฐ์์ ๋ผ์ด๋ธ ์์ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
http://codepen.io/jaamo/pen/MaOGZV
์๋ฃจ์
์ ๋ํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
http://www.evermade.fi/pure-three-js-hud/
์ค์ ๋ก webVR ์ฉ HUD ๋๊ตฌ๋ฅผ ์์
์ค์
๋๋ค.
three.js ์์ ์์ ์ฐพ์ ์์๋ StereoEffect.js๋ฅผ ๊ธฐ๋ฐ์ผ๋กํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ์ฅ๋ฉด์ ๋ ๋ถ๋ถ์ ๋ ๋๋ง ํ ๋ค์ ์ค๋ฒ๋ ์ด์ HUD ์ฅ๋ฉด์ ๋ ๋ถ๋ถ์ ๋ชจ๋ PerspectiveCamera ์ธ StereoEffectCamera๋ก ๋ ๋๋งํฉ๋๋ค.
์ญ์์ ์ด์๋ ๋ฐ๋ชจ์ ์ฅ๋ฉด์ ์ผ๋ถ ์์์์ ์ํธ ์์ฉ์ด ์์ต๋๋ค.
https://github.com/trinketmage/three.js-vr-hud/
์ ๋ ํ์ฌ HUD ์ฅ๋ฉด์ ์ ๋์ฒด ๋ด์์ "๋ผ๋ฒจ"๊ธฐ๋ฅ์ ์์
ํ๊ณ ์์ต๋๋ค. ์ด๋ค ํ์ด๋ ๋์์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
๊ฐ์ฌ
๋๊ตฐ๊ฐ๊ฐ ์๊ทผ๋ฒ ์์ Ortho ์ฅ๋ฉด์ ๋ ๋๋งํ๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ ์๋ค๋ฉด (๊ฐ์ฒด๋ฅผ ์์ชฝ / ์ผ์ชฝ / ์ค๋ฅธ์ชฝ / ์๋์ชฝ ํ ๋๋ฆฌ์ ์ ๋ ฌํ๊ฑฐ๋ ํฝ์ ๋จ์๋ก ํฌ๊ธฐ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค) ๊ฑฐ๊ธฐ ์
@cecilemuller- ๊ทํ์ ํ๋ก์ ํธ๋ ๋ด๊ฐ ์ด์๋ฅผ ์ด ์ ์๋๋ก ํ์ฉํ๋ฏ๋ก ์ฌ๊ธฐ์ ๋๊ธ์ ๋ฌ๊ณ ์์ต๋๋ค. ์๋ํฉ๋๊น? http://jsbin.com/sisutopede/edit?html , js, output ( let const
์ var
๋ก ๋์ฒดํ์ต๋๋ค) ํ๋์ ๊ตฌ๋ง ๋ณผ ์ ์์ง๋ง ์๋ฌด๊ฒ๋ ๋ณด์ด์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค UI ์์?
@trinketmage- ํ์์ ์ธ ๋ฐ๋ชจ / ํ๋ฌ๊ทธ์ธ์ ๋ง๋ค๊ณ ๋ฌธ์ 1 ์ ์ค๋ช ํ๋ ๋ฐ ์๊ฐ์ ๋ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ง๊ธ์ ๋ฌธ์ 2 ๋ฅผ ํ์ ํ๋ ค๊ณ ํฉ๋๋ค : https://github.com/trinketmage/three.js-vr-hud/issues/ 2- ํค๋ณด๋๋ฅผ ์ฌ์ฉํ ๋ ์๋ฒฝํ๊ฒ ์๋ํฉ๋๋ค. ๋ชจ๋ฐ์ผ ์ฅ์น / Chrome Dev Tools๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๊ณ ์ ํํ๋ ๋ฐฉํฅ์ ์๋ฎฌ๋ ์ด์ ํ๋ ์๊ฐ ...
์ฌ์ด๋ ๋ ธํธ์์-์ถฉ๋ถํ ๋ณต์ฌ ๋ฐ ๋ถ์ฌ ๋ฃ๊ธฐ-์ด๋ ์์ ์์์ด ์ค๋ ๋์ ๋ํ ๋ชจ๋ ์ง์์ ๊ฐ์ํ ๋ ๋ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด์ผํฉ๋๋ค.
@ stefek99 ํ๋์ ๊ตฌ์ฒด ์์ ์ปฌ๋ฌ ์ฌ๊ฐํ์ด ํ์๋์ด์ผํฉ๋๋ค. ํฌ๋กฌ๊ณผ ํ์ด์ด ํญ์ค์์ jsbin์ ์๋ํด ๋ณด์์ต๋๋ค. ์ฌ๊ธฐ ์คํฌ๋ฆฐ ์ท์ด ์์ต๋๋ค.
์, ์ฝ๋์ ์ผ๋ถ es6 ๊ธฐ๋ฅ์ด ์์ผ๋ฏ๋ก ์คํ ์ค์ด ์๋ ๊ฒฝ์ฐ Babel REPL ์ ์ฌ์ฉํ์ฌ es5๋ก ๋ณํ ํ ์ ์์ต๋๋ค.
2020 ๋ ์ ๋๋ค. ํ์ด๋ธ๋ฆฌ๋ ๋๋ ์ด์ํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ง ์๊ณ ThreeJS ๋ด์์ 2D HUD ์ค๋ฒ๋ ์ด๋ฅผ ๋ง๋๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น? ThreeJS ๋ด๋ถ์์ PixiJS์ ๊ฐ์ ๊ฒ์ ์ก์ธ์คํ๋ ๊ฒ์ด ์ด์์ ์ ๋๊น?
@sylwesterdigital ๋์์ด ํ์ํ๋ฉด three.js ํฌ๋ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ ... ๊ฑฐ๊ธฐ์ ์์๋๋ฐ ๊ณ์ ์ด ๋ณด๋ฅ ์ค์ด ์ด์ ๋๊ธ์ ๋ฌ๊ฑฐ๋ ๋ต๊ธ์ ๋ฌ๊ฑฐ๋ ์ ์ฃผ์ ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ThreeJS ์ปค๋ฎค๋ํฐ๋ ์๋ฌด๋ฐ๋ ๊ฐ ์ ์์ผ๋ฉฐ ๋ชจ๋๊ฐ ์๋ณ ์ง๋ถ์ ์ํด f * React๋ฅผ ์ฝ๋ฉํ๊ณ ์์ต๋๊น?
์๋ ๊ฐ์ ์์ ๋์ WebGL์์ hud๋ฅผ ์ํํ๋ ์ ๋์ ์ธ ๋ฐฉ๋ฒ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ์ ์ผ๋ก ํ๋ก์ ํธ์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ์ ์๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก, ์ ์๊ฐ์๋ HUD ์๊ฐ์ ๊ตฌ์ฑ ์์๋ ๊ฐ๋นํ ์์๋ ์ฑ๋ฅ ๋น์ฉ์ ๋ฐ๋ผ ๋ฌ๋ผ์ ธ์ผํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ WebVR ํ๋ก์ ํธ์์ ์ผํ๊ณ ์์๊ณ DOM ์๋ฃจ์ ์ ์ต์ ์ด ์๋ ์์ต๋๋ค. ๋๋ ์์ํ Three.js๋ก HUD๋ฅผ ๋๋๋ค. ๋ณ๋์ ์ฅ๋ฉด์ ๋ง๋ค๊ณ ์๋ ์ฅ๋ฉด ์์ ๋ ๋๋งํ์ต๋๋ค.
์ฌ๊ธฐ์์ ๋ผ์ด๋ธ ์์ ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
http://codepen.io/jaamo/pen/MaOGZV
์๋ฃจ์ ์ ๋ํ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
http://www.evermade.fi/pure-three-js-hud/