lecture3
lab0
lab0-moglclassShaderTriangle-src
lab0-moglclassShaderTriangle-Uniform-src
Shader class – readShaderSource, loadShader, deleteShader, isLoaded, getShaderID
Program class – createProgram, deleteProgram, attachShaderToProgram, linkProgram, useProgram, getProgramID, setUniform
VertexBufferObject class – createVBO, releaseVBO, mapBufferToMemory, unmapBuffer, bindVBO, uploadDataToGPU, addData, getDataPointer, getBuffer
OPENGL PROGRAMMABLE PIPELINE
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Chapter-1:-The-Graphics-Pipeline.html
Modern OpenGL (OpenGL 3.x) 프로그래밍은 다음과 같은 단계로 진행한다.
1.Shader 프로그램을 만든다.
2.Vertex 자료를 Vertex Buffer Object (VBO)와 Vertex Array Object (VAO)를 만들고 이 자료를 쉐이더에 로딩한다.
3.이 자료의 위치와 쉐이더의 변수와 “연결(Connect)” 한다.
4.렌더링을 수행한다.
http://headerphile.com/sdl2/opengl-part-3-shaders-and-the-rendering-pipeline/
lecture2
OPENGLGLUT-GETTING-STARTED
Windows10 운영체제에서 Visual Studio 2019과 OpenGL 3.x 이상을 지원하는 그래픽카드 드라이버가 설치되어 있어야 합니다.
1. freeglut는 아래 파일을 다운 받아 unzip해 주어야 합니다.
http://freeglut.sourceforge.net/
압축을 풀어보면 include, lib, system32 세 개의 폴더가 있습니다.
C:\………\freeglut-MSVC-3.0.0-2.mp\freeglut\include\GL
freeglut.h freeglut_ext.h freeglut_std.h glut.h
C:\………\freeglut-MSVC-3.0.0-2.mp\freeglut\lib
freeglut.lib
C:\………\freeglut-MSVC-3.0.0-2.mp\freeglut\bin
freeglut.dll
2. glew는 아래 파일을 다운 받아 unzip해 주어야 합니다.
http://glew.sourceforge.net/
압축을 풀어보면 include, lib, system32 세 개의 폴더가 있습니다.
C:\………\glew-2.1.0-win32\glew-2.1.0\include\GL
eglew.h glew.h glxew.h wglew.h
C:\………\glew-2.1.0-win32\glew-2.1.0\lib\Release\Win32
glew32.lib glew32s.lib
C:\………\glew-2.1.0-win32\glew-2.1.0\bin\Release\Win32
glew32.dll
3. glm는 아래 파일을 다운 받아 unzip해 주어야 합니다.
https://github.com/g-truc/glm/releases
C:\………..\glm-0.9.9.6\glm 안에 glm 디렉토리 전체를 복사
4. Microsoft SDKs가 있는 디렉토리의 Include와 Lib 폴더에 *.h와 *.lib을 넣는다.
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\gl 폴더에 glew.h glxew.h wglew.h를 넣습니다.
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include 폴더에 glm 폴더 전체를 복사해 넣습니다.C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib폴더에 freeglut.lib를 넣습니다.
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Lib폴더에 glew32.lib glew32mx.lib glew32mxs.lib glew32s.lib를 넣습니다.
5. Windows\system32 폴더에 *.dll을 넣는다.
C:\Windows\system32 폴더에 glew32.dll를 넣습니다.
C:\Windows\SysWOW64 폴더에도 freeglut.dll를 넣습니다.
C:\Windows\SysWOW64 폴더에도 glew32.dll를 넣습니다.
6. 세팅이 모두 끝나면, 프로젝트를 Win32 Console로 생성(File->New->Project, 템플렛에서 Win32->Win32 Console Application을 선택하고 <your project name>을 넣는다)하고, 아래의 소스를 넣어 컴파일, 실행해 봅니다.
/* minimal program to open & clear a window */
#include <stdlib.h>
#include <GL/glew.h>
#include <GL/freeglut.h>
#include <GL/freeglut_ext.h>
void init()
{
}
void display( void )
{
glClearColor( 1.0, 1.0, 1.0, 1.0 ); // white background
glClear( GL_COLOR_BUFFER_BIT ); // clear the window
glFlush();
}
void keyboard( unsigned char key, int x, int y )
{
switch ( key )
{
case 27: exit( EXIT_SUCCESS ); break;
}
}
int main( int argc, char **argv )
{
glutInit(&argc, argv);
glutInitDisplayMode( GLUT_RGBA );
glutInitWindowSize( 512, 512 );
glutCreateWindow("Your First OpenGL");
glewInit();
init();
glutDisplayFunc( display );
glutKeyboardFunc( keyboard );
glutMainLoop();
return 0;
}
7. 이때, opengl32.lib glu32.lib glut32.lib 라이브러리 링크를 걸어줍니다.
Project->Properties(ALT+F7)->Configuration Properties탭->Linker탭->Input탭에 Additional Dependencies에 “glew32.lib;freeglut.lib”를 넣는다.
8. 컴파일/링크(Build)(F7)후 실행(Debug)(F5)시켜서 하얀색화면의 윈도우가 뜨면 완성된 것입니다.
Project Groups
1. 안효나
2. 한병휘, 박지환
3. 남호철, 문성현
4. 장원준, 현지웅
5. 김준우, 차인규
6. 손의성, 양채은
7. 서덕화, 김의성
Project Schedule
09/16 – Project Group Formation
09/30 – Project Idea Presentation
10/14 – Project Proposal Presentation
11/11 – Project Midterm Presentation
12/09 – Project Final Presentation