์๋ ํ์ญ๋๊น,
์ ๋ Pix๋ฅผ ์ฌ์ฉํ์ฌ GLSL ์ ฐ์ด๋๋ฅผ ์์ ์ค์ด๋ฉฐ ์ผ๋ถ ์์ต์์์ ๋ณผ ์ ์๋ฏ์ด Javascript HTML ์์์ ์ ฐ์ด๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ข์ง ์๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ํ์ผ์ ์์ฑํ๊ณ Javascript๋ก ๋ด์ฉ์ ๋ก๋ํ์ฌ Pixi ํํฐ์์ ์ฌ์ฉํ๊ณ ์ถ์ต๋๋ค. ๋ชจ๋.
์ด ์ฝ๋๋ฅผ ๊ณ ๋ คํ๋ฉด:
const frag_shader = document.getElementById( 'frag_shader' ).innerHTML; //Replacing this by reading the GLSL file
const filter = new PIXI.Filter('', frag_shader);
์ฝํ
์ธ ๋ฅผ PIXI.Filter
์ ์ ๋ฌํ๊ธฐ ์ํด Pixi.js๊ฐ ์ธ๋ถ GLSL ํ์ผ์ ๋ก๋ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
๊ทธ๋ ์ง ์๋ค๋ฉด ๊ณํ๋ ๊ธฐ๋ฅ์
๋๊น ์๋๋ฉด glslify
npm ํจํค์ง์ ๊ฐ์ ์ธ๋ถ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๊ทธ๋ ๊ฒ ํฉ๋๊น(https://github.com/stackgl/glslify)?
Pixi v4๊ฐ GLSL ํ์ผ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๊ฐ ๋ง์ง ์๊ณ SO์ ๋ต์ด ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๊ทธ๋์ ์ด๊ฒ์ด ์ฌ๋ฌ๋ถ์ด ์๊ฐํด๋ผ ์ ์๋ ๊ฒ์ธ์ง ์์๋ณด๊ธฐ ์ํด ์ด ๋ฌธ์ ๋ฅผ ์ฝ๋๋ค.
๋ต๋ณํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
์, PIXI์๋ glslify๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ก๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
PIXI.loader.add(["vert.txt","frag,txt"]);
PIXI.loader.load(finshed);
function finished()
{
var vert = PIXI.loader.resources["vert.txt"].data;
var frag = PIXI.loader.resources["frag.txt"].data
var myfilter = new PIXI.Filter(vert, frag);
}
๊ฐ์ฌ ํด์ ! ๊ทธ๊ฒ์ด ๋ด๊ฐ ํ์ํ๋ ๊ฒ์ ๋๋ค.
์ด ์ค๋ ๋๋ ๋ซํ ํ ์ต๊ทผ ํ๋์ด ์์๊ธฐ ๋๋ฌธ์ ์๋์ผ๋ก ์ ๊ฒผ์ต๋๋ค. ๊ด๋ จ ๋ฒ๊ทธ์ ๋ํ ์ ๋ฌธ์ ๋ฅผ ์ฌ์ญ์์ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์, PIXI์๋ glslify๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋ก๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.