본문 바로가기

<LIBRARY>9

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.
2. 삼각형 그리기 (1) 배경을 그릴 수 있게 되었으니 이제 아주 간단한 삼각형을 그려볼 차례다. 미리 말하지만 쉽지 않고 하드코딩으로 되어있다. 코드 정리는 모든 코드가 완성되고 난 뒤에 코드 리뷰를 진행하면서 할 예정이다. ▼ //----와 //----로 묶인 영역들이 오늘 우리가 할 작업이다. // GLEW의 모든 기능 활성화 glewExperimental = GL_TRUE; if (glewInit() != GLEW_OK) { wprintf(L"GLEW 초기화가 실패했습니다.\n"); // mainWindow 삭제 glfwDestroyWindow(mainWindow); glfwTerminate(); return (1); } //--------------------------------------------- // 위치 1).. 2021. 1. 14.
1. 기본 코드 작성하기 // 버퍼 가로, 버퍼 세로 선언 int bufferWidth, bufferHeight; // mainWindow로부터 버퍼 가로 크기와 버퍼 세로 크기를 받아온다. glfwGetFramebufferSize(mainWindow, &bufferWidth, &bufferHeight); // OpenGL Context 설정 glfwMakeContextCurrent(mainWindow); return (0); 기본 시작 코드 자, 이번엔 실제로 GLFW 코드를 작성해보자. 기본 시작 코드는 아래와 같다. ▼ 기본 시작 코드 #include #include #include #include int main() { _wsetlocale(LC_ALL, "Korean"); return (0); } 가장 먼저 해야 하는 .. 2021. 1. 11.