OpenGL 8

OpenGL IBO를 사용한 큐브 그리기

먼저 아래를 먼저 이해 1. OpenGL VBO로 큐브그리기 2. OpenGL IBO를 이용한 직사각형 그리기 git : cube_ibo (https://github.com/huiyueun/GraphicsStudy/tree/master/5_sdl_cube_indexed)사실 IBO를 이용하여 직사각형을 그렸다면, 그걸 이용하여 6면체를 모두 IBO를 통해 그려주면 된다. 먼저 DrawCall을 아래와 같이 변경한다.기존 임의로 Index의 갯수를 6개 지정했던 코드를 사이즈를 통해 갯수를 알아와서 그리도록 수정했다.12//glDrawElements(GL_TRAINGLES, 6, GL_UNSIGNED_INT, 0);glDrawElements(GL_TRIANGLES, (sizeof(cube_elements)..

OpenGL VBO로 큐브 그리기

SDL을 이용한 OpenGL 샘플로 기본적인 SDL 세팅 및 코드 사용법은 아래를 참고하세요. (SDL 코드 설명 및 shader 생성 및 사용에 대한 설명) *여기SDL+Cube 샘플은 아래에서 받을 수 있다. *샘플코드 VBO(Vetex Buffer Object)- 버텍스(정점)에 대한 정보를 저장해두는 정점들의 집합 버퍼 - 데이터의 위치정보, 색 정보, normal 정보 등등... - 버텍스 정보가 저장된 버퍼를 GPU memory에 올려두고 사용 *일반적인 3D 오브젝트는 3D 공간상의 (x,y,z)좌표로 이루어져 있다. 이 정보를 메모리에 올려두고 gl을 통해 그리도록 명령한다. 이 샘플에선, 색 정보(rgb)와 위치 정보(xyz)를 다루는 버퍼를 생성 후 데이터 저장, 그리는 과정을 설명한다..

OpenGL Super Bible 그래픽스 공부하기 - 2.3 처음 그리는 삼각형

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램 Part 2.3 처음 그리는 삼각형삼각형 예제는 지난번 점을 찍는 예제에서 간단한 수정만 있음 수정이 가능하다. 1234567891011121314 //vertext shader source code static const GLchar * vertex_shader_source[] = { "#version 430 core \n" " \n" "void main(void) \n" "{ \n" " const vec4 vertices[3] = vec4[3](vec4(0.25, -0.25, 0.5, 1.0)," " vec4(-0.25, -0...

우분투 환경에서 SDL2 + GL 설정하고 빌드해보기

OpenGL컴퓨터 그래픽스를 화면에 나타낼때는 보통 그래픽 라이브러리 OpenGL이나 DirectX를 이용하게 되며, 이러한 라이브러리는 어플리케이션이 그 하부에서 동작하는 장치의 그래픽스 서브시스템에 접근하고 제어하기 위해 사용하는 인터페이스 OpenGL(Open Graphics Library) 는 실리콘 그래픽스사에서 만든 2차원/3차원 그래픽스 표준 API 규격으로, 프로그래밍 언어 간 플랫폼 간의 교차 프로그래밍을 지원SDL(Simple Directmedia Layer)SDL은 C로 짜여진 크로스플랫폼 멀티미디어 라이브러리입니다. 비디오,오디오,사용자 입력등을 추상화하여 API로 제공하며 리눅스, 윈도우, 안드로이드, iOS, 타이젠에서 사용가능하게 지원 1. OpenGL 설치 sudo apt-g..

OpenGL Super Bible 그래픽스 공부하기 - 2. 첫번째 OpenGL 프로그램

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해 Part2. 첫번째 OpenGL 프로그램 - 쉐이더 코드 생성 / 컴파일 - OpenGL로 그리기 - AppFw이용, 프로그램 초기화 정리2.1 간단한 애플리케이션 ->(SDL+GL 사용한 샘플, 간단하게 glClearBuffv를 사용하고 있다.) - 모든 OpenGL 함수는 gl로 시작, 일부 인자 타입을 함수 이름 끝에 접미사로 줄여쓰는 등 여러 네이밍 컨벤션을 따름12void glClearBufferfv(GLenum buffer, GLint drawBuffer, const GLfloat *value)//접미사, f(floating point) + v(vector)Colored by Color Scriptercs -..

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해

공부를 시작하며... 새해엔 미루고 미루던 그래픽스, OpenGL 공부를 시작하려한다... 그동한 GL은 이것저것 하느라 구현은 해봤지만, 항상 제대로 알고 있진 않다고 생각했다. 제대로 공부를 안했었기 때문인거 같은데 2018년부터 'OpenGL Super Bible'을 통해 공부해보려 한다. 이 책은 몇번씩 앞장은 봐보긴 했다. 그렇게 앞장만 몇번씩 봤다... 일단 두꺼운 책 두께 때문에 꾸준히 공부하긴 힘들었다. 이번에 시작할 땐, 한번에 많은 양을 나가기보단 블로그에 조금씩 정리해나가면서 천천히라도 진도를 나가는 걸 목표로 해야겠다.첫 장은 OpenGL에 대한 기본적인 설명부터, Part 1. OpenGL 기초 - 파이프라인이란? - OpenGL의 역사와 현재 - 개념 정리 OpenGL이란? - ..

[프로젝트 정리] 증강현실을 이용한 메시지 제작툴

처음 단기 프로젝트로 OpenGL을 한달간 경험한 뒤, OpenGL을 조금더 제대로 공부할 수 있었던 프로젝트 그래픽스의 어려움을 제대로 느낄 수 있었던 프로젝트입니다. 3D Parser 구현부터 움직이는 3D 데이터 표현하는 일이 이렇게나 어려운 일이구나를 느꼈었죠.. 상용화된 3D툴과 비교했을 때는 너무나도 부족한게 많지만 작은 기능을 처음부터 구현할 수 있어서 많이 공부가 되었던 프로젝트입니다.- 개발 목적 : 자신의 캐릭터를 이용해 AR 메시지 툴 제작 - 개발기간 : 2013.07.01~2013.09.30(3개월) - 개발인원 : 3명 - 개발환경 : MFC, OpenGL, OpenCV, Android, Vuforia - 시나리오 : MFC로 개발한 툴에서 간단한 3D 모델링, 맵핑, 애니메이션..

[프로젝트 정리] 프로그래밍 원리를 배우는 알고리즘 게임, 깨알

멤버십에서 한달간 단기를 하면서 만들었던 첫번째 프로젝트.멤버십 들어가기 전에는 안드로이드를 이용해 앱만 만들어 보다가 처음으로 OpenGL을 이용해 그래픽스 프로그래밍을 해봤던 프로젝트입니다. 전부 처음해보는 것 밖에 없어 간단한 동작임에도 구현하기 힘들었었지만, 처음으로 OpenGL을 공부할 수 있었고, 안드로이드 외에 다른 환경의 프로젝트를 해봤다는 거에 의미있는 프로젝트였습니다.게임 자체는 모델링 데이터를 로드하지 않고, 박스형태로만 구현하였으며 3D 환경 컨트롤, 텍스쳐 맵핑 등 3D 그래픽의 기초 개념을 알 수 있었습니다. 처음 팀원소개의 민망한 1분이 지나가고 프로젝트 소개가 나옵니다..ㅎㅎ- 개발 목적 : 특정 언어를 모르는 사람도 간단한 스크립트를 통해 알고리즘 사고를 키울 수 있는 게임..