본문 바로가기

OpenGL8

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.
0. OpenGL 개발환경 설정하기 뭘 공부하던 언제나 개발환경을 설정하는 것이 제일 힘들다. GLEW 내려받기 GLEW는 The OpenGL Extenstion Wrangler Library의 약자로 OpenGL의 새로운 기능을 제공하는 헤더 파일이다. GLEW 공식 홈페이지에서 내려받을 수 있다. 사이트가 영어로 되어있지만 상단의 Downloads에서 최근 버전을 내려받을 수 있다. ▼ Downloads의 최신 버전을 내려받으면 된다. GLFW 내려받기 GLFW는 Graphics Library Framework의 약자로 윈도에서 OpenGL을 쉽게 구현할 수 있도록 도와준다. 원래라면 WinAPI를 이용하여 윈도 생성부터 해야하지만 GLFW는 이걸 간편하게 처리해주기 때문에 개발자 OpenGL 자체에만 집중하여 작업할 수 있다. 마찬가.. 2021. 1. 9.