aframe ๊ตฌ์ฑ ์์์ ์ง์ troika ๋น๋ ๋ฐ ์์ ๋ก ์ด๊ฒ์ ํ ์คํธํ์ต๋๋ค.
https://troika-examples.netlify.com/#text
๊ตฌ๊ธ ํฌ๋กฌ | 78.0.3904.87(Offizieller ๋น๋)(64๋นํธ)
๋ฆฌ๋
์ค
์๋ฐ์คํฌ๋ฆฝํธ | V8 7.8.279.19
๊ณต๊ธ์ ์ฒด = 0x1002 [X.Org], ์ฅ์น = 0x67ef [AMD Radeon(TM) RX 460 ๊ทธ๋ํฝ(POLARIS11, DRM 3.33.0, 5.3.7-301.fc31.x86_64, LLVM 9.0.0)] ํ์ฑ
๋๋ ์ด๊ฒ์ด ์๋ํ๋ ๊ฒ์ ์ฒ์ ๋ฐ๊ฒฌํ๋ค๋ฉด ๊ธฐ์ตํ๋ค
๊ทธ๋์ ๋๋ ์ด์ ๋ฒ์ ์ ์๋ํฉ๋๋ค! ์, e600d2cd v0.12.0์์ ์๋ํฉ๋๋ค.
ํ์ธ ๋ง์ง๋ง ์์
๋ฒ์ ์
f4fcbb8d v0.12.1
v0.13.0์ ๋ ๋๋ง์ ์ค๋จํฉ๋๋ค.
์ข์! ์ด ๋ฌธ์ ๋ฅผ ๋ณด๊ณ ํ๊ณ ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ํํ ๋ฒ์ ์ ๋ฒ์๋ฅผ ์ขํ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๋ช ๋ฐฑํ ์ฌํญ์ด ์๋์ง ํด๋น ์ปค๋ฐ์ ์ดํด๋ณด๊ฒ ์ง๋ง Linux ๋ฐฐํฌํ์ด๋ GPU ๋๋ผ์ด๋ฒ์ ๊ด๋ จ๋ ๋ฌธ์ ์ธ ๊ฒฝ์ฐ ์์ ์ฌํญ์ ํ์ธํ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์ง๊ฐ์ผ์... ๋ธ๋ผ์ฐ์ ์ ๋ ์๋ค๋๋ ์คํ๊ฒํฐ๊ฐ ๋ณด์ด์๋์? https://troika-examples.netlify.com/#bezier3d
๊ทธ๋ ๊ด์ฐฎ์ ๋ณด์ธ๋ค
๋ฌธ์ ์ ๋ํ ์์ ๋น๋์ค๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ ๋๊ฐ SDF(์์ ํฌ๊ธฐ)๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์๋ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค.
oculus go์์๋ ์ ์๋ํฉ๋๋ค.
์ ์ฅ, ๋ด ์๊ฐ์ด ๋ฌด๋์ก๋ค.
๊ทธ ์์์ ๋งคํน์ ์ด๋ค. ๋์์ด ๋ฐ์ํ ์ ์๋ ๋ช ๊ฐ์ง ์ด์ ๋ฅผ ์๊ฐํ ์ ์์ง๋ง 0.12.1์์๋ ์คํจํ์ด์ผ ํฉ๋๋ค. ๊ณ์ ์ฐพ์ ๊ฒ์ ๋๋ค ...
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ์ฌ๋ฌ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ์ง ์๋๋ก ๋ค์ ๋น๋๊ฐ ๋ชจ๋ ๋์ผํ ๋ฐฉ์์ผ๋ก ์คํจํ๋์ง ํ์ธํ ์ ์์ต๋๊น?
์ ๋ชจ๋ ๋์ผํ๊ฒ ์คํจํฉ๋๋ค.
๊ธ์, ์ ์ ๋์ ๋๋ ์ด๊ฒ์ ๋นํฉํ๋ค. https://github.com/protectwise/troika/compare/v0.12.1...v0.13.0 diff๋ฅผ ์ดํด๋ณด๋ฉด ์ด ๋์์ ์ ๋ฐํ๋ ์ฐจ์ด์ ์ด ๋ณด์ด์ง ์์ต๋๋ค. ํ
์คํธ ๋ ๋๋ง์ ์ํฅ์ ๋ฏธ์น๋ ์ ์ผํ ๋ณ๊ฒฝ ์ฌํญ์ ์
ฐ์ด๋ ์กฐ์์ ์ํ createDerivedShader
์ถ์ํ๋ก์ ์ ํ์
๋๋ค. ๋๋ ๊ทธ ๋ ๊ฐ์ง ๋ฒ์ ์ ์
ฐ์ด๋ ์ถ๋ ฅ์ ํ ์ค์ฉ ๋น๊ตํ์ผ๋ฉฐ ๋ด๊ฐ ๋ณผ ์์๋ ์ฃผ์
๋ ๋
ผ๋ฆฌ์๋ ์ฐจ์ด๊ฐ ์์ผ๋ฉฐ ๋ฐ์ ์์น์์ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค (์ : void main์ด ์๋ glsl ํจ์ ๋ด์์ ๋๋ ์ฝ๊ฐ ๋ค๋ฅธ ์์๋ก) .) ์ ์ด๊ฒ์ด ์ด ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋์ง ์ ์ ์์ง๋ง ํธ๋ฆฌ๊ฑฐํ ์ ์๋ ํน์ OpenGL ๋๋ผ์ด๋ฒ์ ๋ฒ๊ทธ/ํน์ด์ ์ด ์์ ๊ฐ๋ฅ์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ง๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ช ๊ฐ์ง ๋ณ๊ฒฝ ์ฌํญ์ ์๋ํ๊ณ ํ ์คํธํ๋ ๊ฒ ์ธ์๋ ์ฌ๊ธฐ์์ ์ด๋๋ก ๊ฐ์ผํ ์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ์ด๊ฒ์ ์ฝ๊ฒ ์ฌํํ ์ ์๋ค๋ ๊ฒ์ ๊ณ ํต์ ๋๋ค.
์๊ฒ ์ต๋๋ค. ์ดํดํฉ๋๋ค. ์ ๋ ์ด๊ฒ์ด ๋ ๋ง์ OpenGL ๋๋ผ์ด๋ฒ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํฉ๋๋ค./ ํ ๊ฐ์ง ๋ฐ๊ฒฌ์ ์ ๊ฐ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ๋ ๊ธ๊ผด ๋น๋์ค๋ฅผ ๋ณด๋ ๊ฒ์
๋๋ค ->
์ฌ๊ธฐ์์ ์ฐธ์กฐ๋ฅผ ์ํด OpenGL ๋ฒ์
GL_VENDOR X.Org GL_RENDERER AMD Radeon(TM) RX 460 ๊ทธ๋ํฝ(POLARIS11, DRM 3.33.0, 5.3.8-300.fc31.x86_64, LLVM 9.0.0) GL_VERSION 4.5(์ฝ์ด9 ํ๋กํ) Mesa21
LOL ์ผ์ข ์ ๊น๋ํ ํจ๊ณผ์ ๋๋ค! ๐คฃ
๋ด๊ฐ ๋ฌด์์ ํ ์คํธํ ์ ์๋์ง ์๊ฐํด?
@lojjic ์ฐํ! ๋ด๊ฐ ์๋ํ๋ ์ฅ๋ฉด์ ์๊ฐ๋ฅผ ์ถ๊ฐํ๋ฉด ํฅ๋ฏธ๋ก์ด ๊ฒ์ ๋ฐ๊ฒฌํ์ต๋๋ค!
sceneEl.setAttribute("fog", "type: linear; far:300;color: 0xefd1b5");
๋ ๊ถ๊ธํ๊ณ ๋ ๊ถ๊ธํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด troika ์์ ํ์ด์ง์ "์๊ฐ" ํ์ธ๋๋ ์๋ํฉ๋๊น?
ํ ์๋์ค ์ด๊ฒ์ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค
ํ ์ MeshBasicMaterial์ ์ค์ ํ๊ณ ์๊ฐ๋ฅผ ์ ํํ๋ฉด ์๋ํฉ๋๋ค!
๋ค ๊ฐ์ฌํฉ๋๋ค. ๋ ์กฐ์ฌํ ๋จ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
์ค๋ ๋์ค์ ์ ์ ์๊ฐ์ ๋ด์ด ๊ฒฉ๋ฆฌ๋ ๋ณ๊ฒฝ์ ์๋ํ๋ฉด์ ๋ถ๊ธฐ๋ฅผ ํธ์ํ๊ณ ๊ทธ๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ด ๋์์ด ๋๋์ง ํ์ธํ๋ ค๊ณ ํฉ๋๋ค.
์ฌ๊ธฐ ์ฒซ ๋ฒ์งธ ์๋๊ฐ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ด ์๊ฑฐ๋ ๋ณ๊ฒฝ๋์์ง๋ง ์ฌ์ ํ ๋ฒ๊ทธ๊ฐ ์๊ฑฐ๋ ์์ ๋ โโ๊ฒฝ์ฐ ์๋ ค์ฃผ์ญ์์ค. https://5dc9dc90ab55b5000a1db32c--troika-examples.netlify.com/#text
์์ฃผ ์ข์ ์ท ๊ฐ์ต๋๋ค! :>
MeshStandard ๋ฐ MeshBasic Material์ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ด ๊ณ ์ ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์ปค์คํ
์
ฐ์ด๋ ๋จธํฐ๋ฆฌ์ผ์ด ์๋ ๊ฒฝ์ฐ์๋ง ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค.
์ด ๋ณ๊ฒฝ์ผ๋ก ํด๊ฒฐ๋์์ต๋๋ค. https://github.com/protectwise/troika/commit/85c71d6af2c1e09966c5e588745008dc4b923ae2
๋๋จํด! ์ฐ๋ฆฌ๋ ์ด๋๊ฐ์ ๋์ฐฉํ๊ณ ์์ต๋๋ค.
์ง๊ธ ์ด๊ฒ์ ์๋ํ ์ ์์ต๋๊น? https://5dc9e7dcea3f6e00084d01a6--troika-examples.netlify.com/#text
๋๋ ์ด๊ฒ์ผ๋ก ๋ ๊ฐ์ง ์ ์ฌ์ ์ธ ๊ทผ๋ณธ ์์ธ ์ค ํ๋๋ฅผ ๋ถ๋ฆฌํ๋ ค๊ณ ํฉ๋๋ค.
ok ์ด๊ฒ์ MeshBasicMaterial ๋ฐ Fog๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํฉ๋๋ค.
๊ทธ๋์ ์คํ ์์๊ฐ ์ข ์ด์ํฉ๋๋ค. ๋ง์ง๋ง 2๊ฐ์ ํ
์คํธ ๊ฐ์ ์ ์ผํ ์ฐจ์ด์ ์ ์ฌ์ฉ์ ์ ์ ํ
์คํธ ์
ฐ์ด๋ ๋
ผ๋ฆฌ ์ ํ์ ๋ฐ์ํ๋ ID ํ ๋น( gl_FragColor = functionThatReturnsArg(gl_FragColor);
)์ ํด๋นํ๋ ๊ฒ์
๋๋ค. ์๋ํ ํ์ ์ค๊ณ ๊ทธ ์ ์ ์ค๋ฉด ์คํจํฉ๋๋ค(ํฌ๊ทธ๊ฐ ํ์ฑํ๋์ด ์์ง ์์ผ๋ฉด ํ
์คํธ ๋
ผ๋ฆฌ ์์ gl_FragColor.rgb = ...
๋ฅผ ์ถ๊ฐํ๊ณ ๊ทธ๊ฒ๋ ์๋ํ์ง๋ง MeshBasicMaterial.igh ์์๋ง ์๋ํฉ๋๋ค.
๋ค์์ gl_FragColor = gl_FragColor;
๋ฅผ ๋์ ์ถ๊ฐํ๋ฉด ํจ๊ณผ๊ฐ ์๋์ง ํ์ธํ๋ ๋์ฐํ ํดํน์
๋๋ค. https://5dc9f0d8e82cdf00089f6b6c--troika-examples.netlify.com/#text
ok ๋ง์ง๋ง๊ณผ ๋์ผํฉ๋๋ค. BasicMaterial ๋ฐ Fog์์๋ง ์๋ํฉ๋๋ค ...
๋ค, ๋ช ๋ฒ ๋ ์๋ํด๋ณด์ธ์...
1) https://5dcadbdfa8565d0008ff1af5--troika-examples.netlify.com/#text
2) https://5dcadfaac107620008043289--troika-examples.netlify.com/#text
3) https://5dcae02c8de52400077b3a8b--troika-examples.netlify.com/#text
์ธ ๊ฐ์ง ๋ชจ๋ BasicMaterial ๋ฐ Fog๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ๋์ผํ๊ฒ ์๋ํฉ๋๋ค.
์ด. ๋ด ๋ชจ๋ ์ถ์ธก์ ํ ์คํธํ๋ ๋ฐ ์ธ๋ด์ฌ์ ๊ฐ์ ธ ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ์ด๊ฒ์ ์ฌ์ ํ โโ๋์๊ฒ ์๋ฏธ๊ฐ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ๊ฐ์ค ํ ์คํธ: https://5dcaea1c9bbf6e00074b3c7a--troika-examples.netlify.com/#text
np, ์ด๊ฒ์ ํญ์ ์๊ฐ๊ฐ ์ผ์ง๊ณ ๋ชจ๋ ์ฌ๋ฃ์ ํจ๊ป ์ค๋จ๋ฉ๋๋ค.
์ ์ ์๊ฐ์ด ๋์๋ฉด ๋ค๋ฅธ ์์์์ ์คํฌ๋ฆฐ์ท์ ๋ช ์ฅ ๋ ๊ฐ์ ธ๋ค ์ฃผ์๊ฒ ์ต๋๊น?
1) "Double-Derived" ์
ฐ์ด๋๊ฐ ์ ํ๋ https://troika-examples.netlify.com/#arcs
2) https://troika-examples.netlify.com/#ui
3) "๋์" ์ต์
์ ๋ํด 0์ด ์๋ ๊ฐ์ด ์๋ https://troika-examples.netlify.com/#bezier3d
์ด ์์ ๋ ํ ์คํธ ์กฐ๊ฐ ์ ฐ์ด๋์ ์ ์ฌํ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฏ๋ก ๋์์ ๊ณตํต์ ์ด ์๋์ง ํ์ธํ๊ณ ์ถ์ต๋๋ค.
์คํฌ๋ฆฐ์ท ๊ฐ์ฌํฉ๋๋ค. ๋๋ ๊ทธ๋ค ์ค ์ ์ด๋ ํ๋๊ฐ ํ๋๊ทธ๋จผํธ ์ ฐ์ด๋๋ฅผ ์์ ํ๋ ๋ฐ ์ ํํ ๋์ผํ ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ ์คํธ์ ๋น์ทํ ๋ฐฉ์์ผ๋ก ์คํจํ ๊ฒ์ผ๋ก ์์ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ค ์ค ๋๊ตฌ๋ ์คํจํ์ง ์์ต๋๋ค. ๊ทธ๋์ ์๋ง๋ ๊ทธ๊ฒ์ ํ ์คํธ glsl์ ํน์ ํ ๊ฒ์ ๋๋ค. ํ ์คํธ glsl์์ ํ๋์ฉ ์ ๊ฑฐ/์กฐ์ ์ ์์ํ๊ณ ์ ํํ ํธ๋ฆฌ๊ฑฐ ๋ฒ์๋ฅผ ์ขํ ์ ์๋์ง ํ์ธํ๊ฒ ์ต๋๋ค.
๋ช ๋ฒ์ ์๋:
1) https://5dcc2b581b644200098d5e75--troika-examples.netlify.com/#text
2) https://5dcc302d78835c00089437e2--troika-examples.netlify.com/#text
3) https://5dcc31b70765f2000991ad0f--troika-examples.netlify.com/#text
ok all 1. 2. ๋ฐ 3. ๋ชจ๋ ์ฌ๋ฃ์ ์๊ฐ ์ ๋ฌด์ ๊ด๊ณ์์ด ์๋ํฉ๋๋ค!
๐ฎ ๋๋๋ค!
๋ง์ง๋ง์ผ๋ก ํ ๊ฐ์ง ํ์ธํ๊ณ ์ต์ข
์์ ์ ๋ํ ์ ๋ณด๊ฐ ์ถฉ๋ถํด์ผ ํฉ๋๋ค.
https://5dcc47d956b59f00070bea55--troika-examples.netlify.com/#text
๊ทธ๋ฆฌ๊ณ Shadows ํ์ธ๋๋ ์๋ํ๋์ง ํ์ธํ ์ ์์ต๋๊น?
ํ ์๋ํ์ง ์์ต๋๋ค ... ์ด์ํฉ๋๋ค :>
๊ทธ๊ฒ์ ์ค์ ๋ก ์ข์ ์์์ ๋๋ค! ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ๋งค์ฐ ๊ตฌ์ฒด์ ์ธ ์กฐ๊ฑด์ ๊ฐ๋ฆฌํต๋๋ค.
if (uTroikaSDFDebug) {
gl_FragColor *= 0.5;
} else {
discard;
}
์กฐ๊ฑด๋ฌธ์ discard
๋ก ๋ฐ๊พธ๋ฉด ์๋ํ๊ธฐ ์์ํ ๊ฒ ๊ฐ์ต๋๋ค. uTroikaSDFDebug
๋ ์ ๋ํผ์ด๋ฏ๋ก ํญ์ else
๋ก ๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ด์ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ค ์ด์ ์์์ธ์ง ๊ทํ์ ์์คํ
์ ๊ทธ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค.
๋ฐ๋ผ์ ์กฐ๊ฑด๋ฌธ์ ์ ๊ฑฐํ๊ฒ ์ต๋๋ค. DEFINE์ด๋ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋ค์ ๊ณต์ํํ๋ ค๊ณ ์๋ํ ์ ์์ง๋ง ์ด์จ๋ ๊ทธ๋ค์ง ์ ์ฉํ์ง๋ ์์ต๋๋ค.
๋ง์คํฐ์ ๋ํ ์ต์ข ์์ ์ฌํญ์ผ๋ก ์ด ์์ ์ ์ํํ๊ณ ํ ๋ฒ ๋ ํ์ธํ ๋ค์ ์ ๋ฒ์ ์ ๊ฒ์ํ๊ณ aframe ๊ตฌ์ฑ ์์์์ ์ ๋ฐ์ดํธํฉ๋๋ค. ํ๋ฃจ๋ ์ดํ์ด ๊ฑธ๋ฆด ์ ์์ต๋๋ค.
๊ธฐํ๊ฐ ์์ ๋ ํ ์คํธํ ๋ง์คํฐ ๋น๋: https://troika-examples.netlify.com/#text
๋ค, ์ด๊ฒ์ ๋ชจ๋ ๋จธํฐ๋ฆฌ์ผ๊ณผ ์๊ฐ ์ผ์ง/๊บผ์ง์์ ์๋ํฉ๋๋ค!
@arpu ์ด ๋ฌธ์ ๋ฅผ ์ถ์ ํ๋ ๋ฐ ๋์์ ์ฃผ์ ์๊ฐ๊ณผ ์ธ๋ด์ฌ์ ๋ค์ ํ ๋ฒ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ด ์์ ์ฌํญ์ 0.15.7์ ๊ฒ์๋์์ต๋๋ค.
๋ํ ๊ณ ์ ๋ฒ์ ์ ์ฌ์ฉํ๋ ๋ฒ์ 0.1.2๋ก aframe-troika-text
๋ฅผ ์ฌ๋ ธ์ต๋๋ค. ๋ํ ์ด์ ์ ์ธ๊ธํ ThreeJS r110์ ๋ํ ์์ ์ฌํญ๋ ํฌํจ๋์ด ์์ต๋๋ค.