opengl

CS/HCI 윈도우즈프로그래밍

[OpenGL] 16. Transformation (4) - 셰이더에 행렬 변환 적용하기

이번 글에서는 셰이더에 행렬 변환을 적용해보려고 한다. 이 예제로 한번 사람의 팔과 비슷하게 동작하는 프로그램을 작성해보려고 한다. 키보드를 눌러 각도를 조작하면 팔이 회전할 수 있다. 팔의 회전은 상박따로, 하박 따로 회전한다. 기본 코드 틀 #include #include #include "Shader.h" #define STB_IMAGE_IMPLEMENTATION #include "stb_image.h" #include #include #include float vertice[] { -0.3, -0.2, 1.0, // left - bottom +0.3, -0.2, 1.0, // right - bottom -0.3, +0.0, 1.0, // left - top +0.3, +0.0, 1.0, // ri..

CS/HCI 윈도우즈프로그래밍

[OpenGL] 7. Shader (3) - EBO (Element Buffer Object)

지난 글에서는 VBO 와 VAO 를 사용하여 삼각형을 그리는 방법에 대해 정리하였다. 이번 글에서는 EBO를 사용하여 정점 데이터를 중복으로 사용하지 않도록 하는 과정을 정리한다. 먼저 지난 예제를 토대로 사각형을 그리는 예제를 아래와 같이 작성하였다. #include #include unsigned int createAndCompileShader(GLenum shaderEnum, const char* shaderSourceCode); unsigned int createShaderProgramWithShaders(unsigned int vertexShader, unsigned int fragmentShader); const char* VertexShaderSourceCode = "#version 330 ..

CS/HCI 윈도우즈프로그래밍

[OpenGL] 4. Graphics Pipeline

오늘은 GL 에서 중요한 기본 개념인 Graphics pipeline에 대해 정리하고자 한다. 지난 글에서 프레임 버퍼를 설명할 때, 그래픽 프로그램이 적절히 처리한 데이터를 프레임 버퍼에 저장하면, 프레임 버퍼에 저장된 데이터를 비디오 컨트롤러가 가져다가 화면에 출력할 수 있는 데이터로 변환해준다고 했다. 이제 구체적으로 그래픽 프로그램이 어떻게 '적절히 처리' 하는지 과정을 살펴보자. 먼저 프레임 버퍼에 데이터를 저장하기까지 처리하는 큰 흐름은 위와 같다. 이 흐름을 따라가려면 먼저 Vertex 에 대한 이야기를 해야한다. 이를 위해 OpenGL 의 기본 용어 4가지를 정리해보자. Open GL 기본 용어 Primitive : 원시적인 이라는 뜻 그대로, 렌더링의 기반이 되는 기본 단위(점, 선, 삼..

에버듀
'opengl' 태그의 글 목록