Graphics 87

OpenGL 기초 - 점, 선, 삼각, 사각, 다각형

모든 디지털 그래픽의 기본은 점입니다.선이나, 면도 아시다시피 모두 점의 집합입니다.하지만, 3차원 그래픽의 가장 원시적인 요소는 정점(Vertex)입니다. 정점 : 위치정보만 갖는다.점 : 위치 + 색깔 + 크기 등 정점은 다음 두 블록 사이에 정의됩니다. void glBegin(GLenum mode);void glEnd(void); 아시죠잉? 정점을 찍어내는 함수는glVertex[2,3,4][s,i,f,d][v](x,y,z,w); 블록내의 정점들로 무엇을 어떻게 그려낼까는 glBegin으로 전달되는 모드값에 따라 달라집니다. 모드                                설명GL_POINTS                              독립적인 점GL_LINE_STRIP     ..

Graphics/OpenGL 2014.05.17

OpenGL 기초 - 상태머신, 버전조사

상태머신 그래픽 출력에는 좌표뿐만 아니라 여러 요소가 개입됩니다.색상굵기모양조명등등그리기 함수들은 이 요소들을 참조하지만, 모든 인자로 이 수많은 요소들을 컨트롤 할 수 없습니다.인자 목록이 한없이 길어질 것이며 잘 바뀌지도 않는 값을 매번 전달하는건 아주 비효율적이겠지요? 그래서 OpenGL은 이런 여러가지 정보를 상태머신에 저장합니다.상태머신이란 상태를 저장하는 장소이며, 그리기에 영향을 미치는 여러 변수값들의 집합입니다. 모든 그리기 함수들은 전달받은 인자 외의 정보는 상태머신을 참조합니다.상태변수들은 적당한 디폴트로 설정되어있는데, 이 값을 바꾸어주고싶을 때는 변경 함수로 값을 바꿔줍니다, 이 바뀐 값은 다시한번 바꾸기 전 까지 계속 유지됩니다.상태머신은 전역적입니다. void DoDisplay(..

Graphics/OpenGL 2014.05.16

OpenGL 기초 - 색상변경

색상변경 void glClearColor (GLClampf red, GLClampf green, GLClampf blue, GLClampf alpha);이것이 무엇인지 감이 오십니까?배경색 정의 함수입니다  - 타입명이 clamp가 들어가면 0~1사이의 값만이 들어갈 수 있음  - 알파값은 투명도  - 기본은 아무것도 지정하지 않기 때문에 까만색 각 인자의 강도는 0~1사이의 실수값, 0이면 하나도 없고, 1이면 최대밝기입니다.그래서 (1,1,1,1)은 하얀색, (0,0,0,0)은 까만색 입니다. 그런데 요 함수는 배경으로 사용할 색상을 지정하기만 할 뿐, 실제 배경을 지우진 않습니다.그래서 실제 배경을 쓸때는 void glColor(GLbitfield mask);요고를 사용합니다.인수로 어떤 버퍼를 지..

Graphics/OpenGL 2014.05.16

OpenGL 기초 - 기본타입, 함수형식

기본 변수 타입 OpenGL자체는 C언어로 제작되었지만, 함수 수준의 라이브러리라서 특정 언어에서만 사용가능하다거나, 그런 제약은 없습니다. OpenGL타입                         C타입                         접두어GLByte                                 signed char                  bGLShort                                short                           sGLint, GLSizei                       int, long                       iGLFloat, GLclampf                  float    ..

Graphics/OpenGL 2014.05.16

OpenGL 기초 - 삼각형 출력하기

삼각형을 띄워보겠습니다 여러가지 방법이 있지만,,콘솔과 윈도우창에서 사용하는 방법만 간단하게 해보도록 하겠습니다 1. 콘솔 새 프로젝트를 만드는 방법 정도야 아실것이구요, 콘솔 클릭하시고 솔루션 이름을 정합니다.    역시 빈파일 하나 만드는 정도는 읽으시는 분에 대한 예의가 아니므로 패스   코드를 작성해보겠습니다  #include  void DoDisplay(){glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES);    // 그리기 시작!glVertex2f(0.0, 0.5);glVertex2f(-0.5, -0.5);glVertex2f(0.5, -0.5);           // 정점정의 : 아래서 따로 설명드리겠습니다glEnd();                ..

Graphics/OpenGL 2014.05.16

OpenGL과 OpenGL ES

OpenGL을 공부하지 않고서야 AR을 할 수 없습니다. 안드로이드에서 3D객체를 그려내기 위해서는 OpenGL ES가 사용됩니다. OpenGL Embedded System의 약자로, 모바일에서의 3D를 지원하기 위해 나온 플랫폼입니다. OpenGL ES1. 지원하는 변수 타입의 수가 적다,2. 즉시모드를 지원하지 않는다. - glBegin() -> glEnd()블록 안에서 그리기 함수 호출 불가, 정점배열만 사용가능)3. 사각형을 그리는 glRect함수 제외4. 색상 인덱스 모드는 지원하지 않는다.5. 폴리곤모드, 피드백, 선택기능, 누적버퍼, 출력목록, 속성저장 기능을 지원하지 않는다.6. 텍스쳐 맵핑은 2D만 지원한다.7. 조명은 앞뒷면이 반드시 동일하여야 한다. - 재질은 GL_AMBIENT_DI..

Graphics/OpenGL 2014.05.16