본문 바로가기

Graphics/webgl

[webgl] 기초

이젠 WebGL 하면 대부분 WebGL2 말하는거임

WebGL은 GPU로 돌림(내장GPU 또는 외장 GPU) 

WebGL은 GPU에서 GLSL 타입으로 두개의 함수를 돌리면서 작동함

  • vertex shader: 점, 선, 원시형태(primitives)를 그림(rasterize)
  • fragment shader: 픽셀에 색상을 칠함(계산함)

GPU에서 GLSL로 작성된 어떤 함수를 호출하여 저 위에 두개의 함수(합쳐서 프로그램이라고 함)를 호출

gl.drawArrays() {
	run vertex shader ()
    	run fragment shader ()
}

뭐 대충 이런느낌인듯

GPU에서 실행하니깐 이 함수들의 자원(데이터, 변수) 들도 GPU에 있어야함

GPU에 데이터를 제공하는 법 == 쉐이더(함수)가 데이터를 받는 법 은 4가지가 있다고 한다 

  • Atrributes, Buffers, Vertex Arrays
  • Uniforms
  • Textures
  • Varyings

자세히 알려하지 말고 일단 기본적 Atrributes, Buffers, Vertex Arrays만 알고 넘어간다.

  • Buffers: GPU 에 올라가있는 배열 (데이터가 구분없이 나열되어있음)
  • Attributes: 버퍼에서 값을 가져올때 사용, 3개의 32비트 데이터를 가져온다며, 32비트씩 + 해줘서 인덱스를 계산하고 그런역할을함 (c에서 배열을 포인트로 다루는것처럼, 시작 offset도 알아야함)
  • Vertex Array Object (VAO) : ???

'Graphics > webgl' 카테고리의 다른 글

[webgl] Hello World  (0) 2019.12.29
[webgl] 기초  (0) 2019.12.02