본문 바로가기
WebGL

WebGL - (5) 사각형 그리기

by 똑똑한 영장류 2013. 5. 23.

앞서 삼각형을 그릴 때의 vertex 와 index 는 아래와 같았습니다.


------

var vertices = [ -1.0, -1.0, 0,
                    1.0, -1.0, 0,
                    0, 1.0, 0
                        ];
var indices = [ 0, 1, 2 ];

------





삼각형의 3 꼭지점 좌표와 삼각형을 이루는 꼭지점 3개의 인덱스.


-1.0, -1.0, 0 -> 0번
1.0, -1.0, 0 -> 1번
0, 1.0, 0 ->2번


삼각형은 0번, 1번, 2번으로 이루어 진다고 알려주는 index.


var indices = [ 0, 1, 2 ];


그릴때는 indices 에서 3개씩 꺼집어 내서 삼각형을 그리는 거죠.


그럼, 사각형은 어떻게 그릴 수 있을까요?




위의 4개의 점(0,1,2,3) 으로 이루어진 사각형은 (0,1,2)로 이루어진 삼각형 하나와 (0,2,3)으로 이루어진 삼각형을 합치면 되겠습니다.



앞서 작업했던 것 중에... vertices 와 indices 를 아래와 같이 수정해서 한 번 봅시다.

-----

var vertices = [ -1.0, -1.0, 0,
                    1.0, -1.0, 0,
                    1.0, 1.0, 0,
                    -1.0, 1.0, 0
                        ];
var indices = [ 0, 1, 2, 0, 2, 3 ];

-----


vertex 정보와 index 정보를 수정했더니 아래와 같이 나타나는군요.




흠...이건 삼각형 두개지 사각형이 아니군요. ㅋㅋ


모든 것은 삼각형으로 구성된다~~~~~~


마지막 줄에 drawElements() 함수에 인자로 들어가는 gl.LINE_LOOP 를 바꿔봅시다.


gl.drawElements(gl.TRIANGLE_STRIP, indices.length, gl.UNSIGNED_SHORT,0);

or

gl.drawElements(gl.TRIANGLES, indices.length, gl.UNSIGNED_SHORT,0);


이제 두개의 삼각형이 같은 색상으로 칠해져서 사각형으로 보입니다.






다음엔 drawElements() 함수의 인자에 대해서 살펴봐야겠군요.













'WebGL' 카테고리의 다른 글

WebGL - (6) 여러가지 Matrix 에 대한 설명  (0) 2013.05.25
WebGL - (4) 삼각형 그려보기  (0) 2013.05.22
WebGL - (3) Context 가져오는 좀 더 나은 방법  (1) 2013.05.22
WebGL - (2) 작업영역 지우기  (0) 2013.05.21
WebGL - (1)  (0) 2013.05.21

댓글