์ฌ๊ธฐ InterleavedBuffer ํด๋์ค์์๋ stride์ ๊ธฐ๋ณธ๊ฐ์ 0์ผ๋ก ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ฌ์ฉ์๊ฐ stride๋ฅผ ์ง์ ํ๋ ๊ฒ์ ์์ผ๋ฉด this.stride
๊ฐ์ด undefined
๊ฐ ๋๊ณ var stride = data.stride;
_gl.vertexAttribPointer
๋ก ์ด์ด์ ธ ์ ์๋์ง ์์ webgl ๋์์ด ๋ฐ์ํฉ๋๋ค.
์ธ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ค๋ ๊ฒ์ ๊ฐ์ ์ ํ ์ง์ ํ์ง ์์๋ ๊ด์ฐฎ๋ค๋ ์๋ฏธ์ ๋๋ค. ๋จ, ์ด ๊ฒฝ์ฐ ๊ฐ์ ์ค์ ํด์ผ ํฉ๋๋ค.
๋ํ 0์ด ๊ธฐ๋ณธ๊ฐ์ธ ๊ฒฝ์ฐ ๋ค์ ์ค์ 0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
three.js๋ ์ผ๋ฐ์ ์ผ๋ก ๋งค๊ฐ๋ณ์ ๊ฐ์ ํ์ธํ์ง ์์ต๋๋ค.
๋ถํํ๋ ์ฌ์ฉ์๊ฐ ํด๋น ๊ฐ์ ์ค์ ํ๋๋ก ๊ฐ์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. C++์ ๋ฌ๋ฆฌ ์ปดํ์ผ ์๊ฐ์ ๊ฐ์ง๋ฉ๋๋ค. ์ค์ ํด์ผ ํ๋ ๊ฒฝ์ฐ ์๋์ผ๋ก ์ ๋ฌ๋์ด ์ด์ํ ๊ทธ๋ํฝ ๋์์ ๋ฐํํ๋ ๋์ ์ค์ ๋์ง ์์ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? three.js์ ์๋ก์ด ์ฌ์ฉ์๋ก์ ๋๋ ๋ฌธ์ ๋ฅผ ์ฐพ๋ ๋ฐ ๊ฝค ๋ง์ ์๊ฐ์ ํ๋นํ๊ณ , ์ด ํจ์ ์ ๋น ์ง๊ฒ ๋ ์ฌ๋์ ๋ ํผ์๊ฐ ์๋ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ stride
์ 0์ ํ ๋นํ๋ ๊ฒ์ ๋ง์ ์ ์๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด @WestLangley ๊ฐ ๋ฐฉ๊ธ ์ธ๊ธํ 0์ผ๋ก ๋๋๊ธฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฌ๊ธฐ API ๋ฌธ์๋ stride
๊ฐ ๋ฌด์์ ์๋ฏธํ๋์ง์ ๋ํ ๋ช
ํํ ์ค๋ช
์ ์ ๊ณตํ์ง ์์ต๋๋ค. OpenGL/WebGL API์ ๋ํ ๋ด ๊ฒฝํ์ ๋ฐ๋ฅด๋ฉด stride
๋ ์ ์ ์์ฑ์ ๋ํ float ๋๋ int์ ๊ธฐ๋ณธ ์์ ์์
๋๋ค. ๋ฐ๋ผ์ count
๋ ์์ฑ์ด ์ฒซ ๋ฒ์งธ ์ธ์ array
์ ์ ์๋ ๊ผญ์ง์ ์ ์์ธ ๊ฒ ๊ฐ์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ํ๋ ธ๋ค๋ฉด ์ ์ ํด ์ฃผ์ญ์์ค. this.count
๋ ์ ์ฒด WebGLRender ๋ฅผ ํตํด ์ด๋ค ์ฌ์ฉ๋ฒ๋ ์ฐพ์ง ๋ชปํ ๋ฐ๋ฉด stride
๋ ์ค์ํ GL ํธ์ถ _gl.vertexAttribPointer
์์ ์ฌ์ฉ๋์์ต๋๋ค. stride
0์ ํ ๋นํ ํ ์ ํํ ์ ํํ์ง ์๊ณ this.count
๊ฐ ์ด์ Infinity
์ธ ์ด์ ๋ฅผ ์ค๋ช
ํฉ๋๋ค. ํ๋ ์์ํฌ์ ์ด๋์.
๋ฐ๋ผ์ stride
๊ฐ์ ํ์ธํ๊ณ undefined
๋๋ 0
์ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ํ๋กฌํํธ๋ฅผ ํ์ํ๋๋ก ์์ ์ฅ์น๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์, ์ด๊ฒ์ JavaScript์ด๋ฉฐ ์ด์ ์ ์ด๋ฌํ ๋ ผ์๊ฐ ์์์ต๋๋ค.
๋ฐ๋ฉด์ ๋ฌธ์๊ฐ ๋ถ์ ์ ํ๊ฑฐ๋ ์ฌ๋ฐ๋ฅด์ง ์๋ค๊ณ ์๊ฐ๋๋ฉด ์ด๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ข์ ์๊ฐ์ด ๋ ๊ฒ์ ๋๋ค. :)
์ฐธ์กฐํ ์ฝ๋์์ count
๋ ์ ์ ์ ์์
๋๋ค. ์์ฑ์ ๋ ๋๋ฌ์์ ์ฌ์ฉํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์์ ์ ์์ง๋ง ํ์ํ ๊ฒฝ์ฐ ์์ฉ ํ๋ก๊ทธ๋จ ๊ณ์ธต์์ ์ฌ์ฉํ ์ ์๋ ์์ฑ์
๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ธ์์ ๊ธฐ๋ณธ๊ฐ์ ์ค์ ํ๋ค๋ ๊ฒ์ ๊ฐ์ ์ ํ ์ง์ ํ์ง ์์๋ ๊ด์ฐฎ๋ค๋ ์๋ฏธ์ ๋๋ค. ๋จ, ์ด ๊ฒฝ์ฐ ๊ฐ์ ์ค์ ํด์ผ ํฉ๋๋ค.
๋ํ 0์ด ๊ธฐ๋ณธ๊ฐ์ธ ๊ฒฝ์ฐ ๋ค์ ์ค์ 0์ผ๋ก ๋๋ ์ ์์ต๋๋ค.
three.js๋ ์ผ๋ฐ์ ์ผ๋ก ๋งค๊ฐ๋ณ์ ๊ฐ์ ํ์ธํ์ง ์์ต๋๋ค.