๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป DEV/์—ฐ๊ตฌ๋ชฉ๋ก

[WebGL - regl] (1) regl ์ด๋ž€?

by Rising Oneโ˜… 2024. 8. 8.
728x90
๋ฐ˜์‘ํ˜•
SMALL

 

โ—ผ๏ธŽ regl (npm) ์ด๋ž€?

→ WebGL์˜ ์ถ”์ƒํ™” ๋ ˆ์ด์–ด, WebGL์„ ๋” ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ๊ฒฝ๋Ÿ‰ํ™”๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : ๊ฐ„๋‹จํ•œ ๋ช…๋ น

WebGL์˜ ๋ณต์žกํ•œ API๋ฅผ ๋‹จ์ˆœํ™”

์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์Šคํƒ€์ผ ์ง€์› : ๊ณ ์„ฑ๋Šฅ ๊ทธ๋ž˜ํ”ฝ ๋ Œ๋”๋ง์„ ๋ณด๋‹ค ์ง๊ด€์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์คŒ

 

โ—ผ๏ธŽ regl ํŠน์ง•

→ ๊ฐ„๋‹จํ•œ API : ๋ณต์žกํ•œ WebGL ์„ค์ •์„ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์œผ๋กœ ๋Œ€์ฒด

→ ์„ฑ๋Šฅ ์ตœ์ ํ™” : ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๋ช…๋ น ํ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์„ฑ๋Šฅ ๊ทน๋Œ€ํ™”

→ ๋ชจ๋“ˆํ™” : ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ Œ๋”๋ง ๋ช…๋ น์„ ๋ชจ๋“ˆํ™”ํ•ด์„œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

โ—ผ๏ธŽ regl ์„ค์น˜

npm install (--save) reql
# (์ค„์—ฌ์„œ) npm i -S reql
# ์ตœ์‹  npm์—๋Š” --save ์˜ต์…˜์ด ๊ธฐ๋ณธ ๋™์ž‘์œผ๋กœ ํฌํ•จ๋ผ ์žˆ๊ธฐ์— ์ƒ๋žตํ•ด๋„ ๋จ

 

โ—ผ๏ธŽ regl ๊ธฐ๋ณธ ์˜ˆ์‹œ

import regl from 'regl';

const draw = regl({
  frag: `
    precision mediump float;
    void main() {
      gl_FragColor = vec4(1, 0, 0, 1); // ๋นจ๊ฐ„์ƒ‰
    }
  `,
  vert: `
    attribute vec2 position;
    void main() {
      gl_Position = vec4(position, 0, 1);
    }
  `,
  attributes: {
    position: [
      [-1, -1],
      [ 1, -1],
      [ 0,  1]
    ]
  },
  count: 3
});

const canvas = document.getElementById('canvas');
const reglInstance = regl({ canvas });

reglInstance(() => {
  reglInstance.clear({ color: [0, 0, 0, 1] });
  draw();
});
728x90
๋ฐ˜์‘ํ˜•
LIST

๋Œ“๊ธ€