본문 바로가기

<LIBRARY>/OPENGL7

6. 삼각형 회전 시키기 GLM을 사용해서 삼각형을 회전시키는 것은 매우 간단하다. 회전 행렬에 원하는 각도만큼 넣기만 하면 끝이다. (물론 진짜 행렬 연산을 구현했다면 코드가 2배는 길어졌을 것이다.) 1 호도(Radian) 값 설정 회전을 한다는 것은 각도를 변경한다는 의미가 된다. 컴퓨터는 호도(Radian)으로 빠르게 연산하기 때문에 미리 1 호도값을 설정해서 사용하면 편리하다. ▼ 호도는 상수로 설정 해준다. const GLint WIDTH = 720, HEIGHT = 480; //--------------------------------------------- // 1 호도값 const float toRadians = 3.14159265f / 180.0f; //--------------------------------.. 2021. 1. 25.
5. GLM 라이브러리 적용하기 처음부터 수학 함수들을 직접 만들면서 OpenGL을 공부하는 것도 하나의 방법이지만 많은 사람들이 그래픽 프로그래밍을 제대로 맛보기도 전에 포기하는 경우가 더 많다고 한다. 외국 포럼에서도 직접 수함 함수를 구현하는 것보다도 그냥 빠르게 결과물을 보고 동작원리를 이해하는 것이 OpenGL에는 더 도움이 된다는 의견이 압도적으로 많다. 물론 OpenGL만 공부한다고 했을 때 경우를 가정했을 때라는 전제 조건이 붙는다. 그렇지 않다고 하더라도 나쁘지 않다는 의견도 많다. 결국 동작원리만 안다면 웬만한 코드들은 구현에 시간만 조금 들뿐이니까. 그러니 우리도 GLM을 사용해서 그래픽 프로그래밍을 좀 더 재밌고 편리하게 해 보자. GLM 이란? GLM(OpenGL Mathematics)는 이름 그대로 OpenGL.. 2021. 1. 19.
4. 삼각형 움직이기 이번엔 아주 간단한 애니메이션을 적용시켜본다. 쉐이더 역시 하나의 프로그램이기 때문에 외부에서 변수를 받아서 변환할 수 있는 것을 연습할 수 있다. 삼각형을 움직이는데 필요한 변수 선언 ▼ 코드 //--------------------------------------------- GLuint VAO, VBO, shader, uniformXMove; // 방향값(왼쪽, 오른쪽) bool direction = true; // 삼각형의 차이값 float triOffset = 0.0f; // 삼각형의 최대 차이값 float triMaxOffset = 1.0f; // 삼각형의 변화값 float triIncrement = 0.01f; //-------------------------------------------.. 2021. 1. 17.
3. 삼각형 그리기(2) 지난 정리에 이어 이제 쉐이더 프로그램을 만들어보기 전에 이전 코드를 정리한다. 특정 기능을 하는 코드들을 되도록이면 묶어서 함수로 만드는 것이 좋은 것도 있지만 쉐이더의 코드 역시 꽤 길기 때문이다. CreateTriangle 함수 ▼ 삼각형 정점 좌표, VAO, VBO를 모두 함수로 빼낸다. GLuint VAO, VBO; void CreateTriangle() { GLfloat vertices[] = { -1.0f, -1.0f, 0.0f, 1.0f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f }; // OpenGL 정점 배열 생성기를 사용해서 VAO를 생성 glGenVertexArrays(1, &VAO); // 우리가 생성한 VAO를 현재 수정 가능하도록 연결한다. glBindVertexA.. 2021. 1. 17.