반응형

분류 전체보기 179

[OpenGL] 쉐이더(shader)/ 쉐이딩 구현 하기

쉐이더 란? 쉐이더는 색상, 명암, 색조 등을 조절 해준다는 뜻을 가지고 있다. teapot, wireCube, sphere 등은 쉐이더 구현이 안되므로 직접 model 데이터를 제작해서 rgb 값을 할당 후 쉐이딩을 해줘야 한다. 쉐이딩 기법 순서 1. 삼각형을 그리기 위해서 3개의 vertex를 찍어 준다. 2. vertex 마다 다르게 색상을 준다. 3. GL_FLAT 나 GL_SMOOTH를 사용해서 RGB를 filling 해준다. 4. 결과가 나온다. GL_SMOOTH 로 쉐이딩 해주기 삼각형을 그리고 GL_SMOOTH 모드로 쉐이딩 해주는 코드. #include #include void draw(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); glClear(GL..

OpenGL 2024.02.19

[OpenGL] 줌 인, 줌 아웃 구현하기

사진 찍을 때 확대, 축소 하는 것 처럼 OpenGL도 구현이 가능하다. 줌 아웃 애니메이션 만들기 #include #include void draw(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(1.0, 1.0, 1.0, 1.0); // 배경 색상 glColor4f(0.0, 0.0, 1.0, 1.0); //그림 색상 float ws = 0; for (int i = 0; i < 10; i++) { glColor4f(1.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); printf("%f\n", ws); ws +..

OpenGL 2024.02.18

[OpenGL] 도형 애니메이션 만들기

애니메이션 도형이나 물체가 알아서 움직이는 것을 애니메이션, 비디오라고 불린다. sphere가 움직이는 애니메이션 만들기 sphere가 우측으로 5번, 좌측으로 5번 움직이는 코드다. #include #include void draw(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClearColor(1.0, 1.0, 1.0, 1.0); // 배경 색상 glColor4f(0.0, 0.0, 1.0, 1.0); //그림 색상 float Tx; for (int i = 0; i < 10; i++) { glClear(GL_COLOR_BUFFER_BIT); // 그림 초기화 if (i ..

OpenGL 2024.02.17

[OpenGL] 주전자(Teapot) 그리기, 도형 회전 시키기, 도형 이동 시키기

주전자(Teapot) 그리기 glutWireTeapot() 함수를 사용 해 주전자를 그려준다. #include void draw(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f);//배경 색 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glColor4f(0.0f, 0.0f, 1.0f, 1.0f);//사물 색 설정 glutWireTeapot(0.5);//주전자 그리기, 사이즈 glFlush(); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA | GLUT_DEPTH); glutInitWindow..

OpenGL 2024.02.16

[OpenGL] 점(point) 그리기

점 4개 그리기 glPointSize() 함수로 점의 크기를 선언해 주지 않으면 점이 안 보인다. #include void draw(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); //배경 색상 설정(흰색) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 화면 초기화 glColor3f(0.0f, 1.0f, 0.0f); // glPointSize(10.0f); // 점 사이즈 glBegin(GL_POINTS); // 점 그리기 모드 glVertex2f(-0.5f, 0.5f); glVertex2f(-0.5f, -0.5f); glVertex2f(0.5f, 0.5f); glVertex2f(0.5f, -0.5f); glEnd();..

OpenGL 2024.02.15

[OpenGL] 선 그리기

선을 그리는 방식 중 아래 3가지를 많이 사용한다. GL_LINES GL_LINE_STRIP GL_LINE_LOOP 직접 사용해 보면서 차이점을 알아보면 된다. 선 1개 그리기 GL_LINES로 가로 선 그리기 #include void draw(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); //배경 색상 설정(흰색) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 화면 초기화 glColor3f(1.0f, 0.0f, 0.0f); //빨간색 //glBegin() ~ glEnd() 사이에 코드 구현. glBegin(GL_LINES); //도형 선택. glVertex2f(-0.5f, 0.0f); glVertex2f(0.5f, ..

OpenGL 2024.02.14

[OpenGL] 사각형, 삼각형 그리기

사각형, 삼각형 그리는 방법에 대한 예제다. 사각형 그리기 lgVertex2f 함수로 꼭짓점을 4개 찍어서 사각형을 그렸다. #include void draw(void) { glClearColor(1.0f, 1.0f, 1.0f, 1.0f); //배경 색상 설정(흰색) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 화면 초기화 glColor3f(0.0f, 0.0f, 1.0f); //그림 색상 r,g,b(파란색) //glBegin() ~ glEnd() 사이에 코드 구현. glBegin(GL_POLYGON); //도형 그리. glVertex2f(-0.5f, -0.5f); // 꼭짓점 위치 선택 glVertex2f(0.5f, -0.5f); glVertex2f(..

OpenGL 2024.02.13

인공지능 모델 Gemini(제미나이) 사용법과 후기 / chatGPT, CLOVA X 비교

오늘 구글 드갔는데 Gemini 한번 써보라고 뜨길래 사용 해봤다. Gemini도 chatGPT 같은 대화형 인공지능이다. Gemini 접속 링크 https://gemini.google.com/app ‎Gemini - 대화를 통해 아이디어를 강화하세요 Bard가 Gemini로 바뀌었습니다. Google AI의 도움을 받아 글을 쓰고, 계획하고, 학습해 보세요. gemini.google.com 질문 내용 역시 Gemini는 딥러닝 모델이다. Gemini 개발 할 때 어떤 라이브러리를 썼는지 아주 자세히 알려준다. 코딩도 아주 잘한다. 학습일도 최근이다. 계속 업데이트를 하는 듯 하다. 후기 chatGPT VS Gemini 사용해 보니 chatGPT 랑 성능이 비슷한거 같다. 로딩이 조금 걸리지만 ChatG..

기타 2024.02.13

[OpenGL] OpenGL(오픈지엘)이란?

OpenGL 무엇이며 왜 나왔을까? OpenGL(Open Graphics Library)은 2차원, 3차원 그래픽스를 그리기 위해 사용되는 라이브러리다. 직접 코딩해서 선 하나만 그릴려고 해도 엄청난 고역인데, 그래픽스 작업을 직접 코드로 구현 하려면 시간이 엄청나게 든다. 그러므로 라이브러리로 제공되는 OpenGL의 API 사용해서 그래픽스 작업을 한다. 과거 OpenGL은 업계에서 표준으로 가장 많이 사용 되었다. 물론 요즘에는 유니티 같은 툴로 그래픽이 필요한 게임, 애니메이션을 만든다. 하지만 여전히 OpenGL을 사용하는 업계가 있다. OpenGL 사용 가능한 언어 C, C++, Java, Visual Basic, JavaScript OpenGL 사용 가능한 운영체제 Mac OS, Unix, L..

OpenGL 2024.02.12
반응형