이 글은 Visual Studio 2015에서 OpenGL을 개발하기 위한 환경을 구축하는 것이 목표입니다.


그래픽을 개발하기 위한 라이브러리로 OpenGL과 DirectX가 있습니다. 

그 중 OpenGL은 다양한 플랫폼을 지원하는 라이브러리라는 장점을 가지고 있습니다.

OpenGL은 그래픽카드 드라이버를 잡으면 자동으로 설치가 됩니다.

OpenGL이 설치가 되었으니 모든 것이 끝났다고 생각할지 모르겠습니다.

하지만 이렇게 된다고 모든 것이 해결된 것은 아닙니다.

OpenGL은 단순히 그래픽 연산을 위한 라이브러리이기 때문에 실행을 하면 그래픽 처리는 하지만 우리는 아무 변화도 느낄 수 없습니다.

따라서 OpenGL에서 처리한 그래픽을 우리가 확인할 수 있도록 도와주는 라이브러리를 설치해야 합니다.

여러가지가 있는데 그 중에서 GLUT가 있습니다.

GLUT는 OpenGL을 가지고 윈도우 응용프로그램을 쉽게 설정하여 만들 수 있도록 해줍니다.

이 방법은 인터넷에 찾아보면 많이 있으므로 다른 방법으로 설정해 보고자 합니다.


다른 방법들 중 GLFW를 이용해 OpenGL 개발 환경을 구축해 보도록 하겠습니다.

GLFW는 오픈소스로 일반 PC에서 OpenGL, OpenGL ES, Vulkan을 개발하기 위한 라이브러리 입니다.

GLFW도 GLUT처럼 window를 만들고 사용자 입력과 이벤트를 받는 것들을 쉽게 만들 수 있도록 해줍니다.

GLFW는 C로 작성되었기 때문에 Windows, OS X, Unix 같은 곳에서도 잘 돌아갑니다.


이제 본격적으로 Visual Studio 2015에서 OpenGL을 개발하기 위한 기본적인 환경을 구축해보도록 하겠습니다.



1. GLFW 다운받기


GLFW는 구글에 검색해서 다운로드 페이지에 들어가시거나 이 링크를 통해서 들어가시면 다음과 같은 화면이 뜹니다.


오른쪽 주황색 버튼 중에서 윈도우 버전으로 미리 컴파일 되어 있는 32-bit Windows binaries를 클릭하여 다운 받도록 하겠습니다.



2. 프로젝트 만들기


다음으로 Visual Studio 2015를 실행시키고 OpenGL을 개발할 새로운 프로젝트를 만들어줍니다. 

[File] -> [New] -> Project...

(프로젝트 이름은 아무거나 상관없지만 여기서는 편의상 OpenGL로 만들겠습니다.)



3. 프로젝트에 라이브러리 위치 추가하기


프로젝트 폴더 위치에 위에서 다운받은 glfw 파일을 옮겨줍니다.


- [Project] -> [Properties] 선택 또는 Alt + F7 를 누르기


- [C/C++] -> General -> Additional Include Directories 에 헤더 파일 위치 추가하기

(..\OpenGL\glfw-3.2.1.bin.WIN32\include)


- [Linker] -> General -> Additional Library Directories 에 라이브러리 파일 위치 추가하기

(..\OpenGL\glfw-3.2.1.bin.WIN32\lib-vc2015)


- [Linker] -> Input -> Additional Dependencies 에 라이브러리 파일 추가하기

(glfw3.lib; opengl32.lib;)


4. 실행하기

- 다음의 주소에서 소스코드를 다운받아 실행을 하시면 다음과 같은 화면을 보실 수 있습니다.

(https://github.com/upglay/practices/blob/master/helloglfw/helloglfw/Source.cpp)


이 분야는 컴퓨터 상에 존재하던 물체를 3D 프린터로 출력할 때 발생하는 문제들을 컴퓨터 그래픽으로 해결합니다.


Computational Thermoforming

기술은 열을 이용해서 실제 3D 물체에 texturing 하는 것입니다.

( texturing 컴퓨터 그래픽스의 용어로 3차원의 물체의 표면에 세부적인 질감의 묘사를 하거나 색을 칠하는 것을 의미합니다 )

과정은 다음과 같습니다.

먼저, 컴퓨터 상에서 digital 3d 모델에 texture 하는 것을 시뮬레이션하고 결과를 플라스틱 sheet 옮깁니다.

그리고 3D 프린터 등으로 제작된 digital 3D 모델의 복제품에 플라스틱 sheet 입히면 됩니다.

앞의 영상에서 보셨듯이 복잡한 문양을 아주 간단하게 3D 물체에 입히는 것을 있습니다.

만약 기술이 보급화 된다면 미술에 아무런 재능이 없는 저도 3D 모델에 복잡한 문양을 넣는 일을 있을 같네요.


Procedural Voronoi Foams for Additive Manufacturing

기술은 물체를 가볍게 만들면서 유연하게 만드는 것입니다.

최근 Additive manufacturing 발달로 비용으로도 미세구조를 만들 있게 되었습니다.

그래서 기술은 미세 구조를 이용해서 가벼우면서 유연한 물체를 만드는 방법을 만든 입니다.

기술의 특징은 미세 구조를 통해 부분마다 유연성의 정도를 조정할 있다는 점입니다.

이러한 장점으로 Additive manufacturing 단순한 플라스틱 제품을 넘어 유연한 제품에도 사용이 같습니다.


CofiFab: Coarse-to-Fine Fabrication of Large 3D Objects

기술은 3D 프린팅과 2D 레이저 커팅을 혼합하여 비용으로 빠르게 물체를 생성합니다.

내부는 2D 레이저 커팅으로 만들어 조립을 하고 위에 3D 프린터로 얇게 출력한 결과물을 덧붙임으로써 3D 물체를 완성합니다.

기존에 거대한 3D 물체를 만들려면 엄청 3D 프린터와 결과물이 출력이 되기 까지 오랜 시간을 기다려야 했습니다.

기술을 이용한다면 거대한 물체도 3D 프린터로 만드는 날이 금방 다가올 같습니다.

컴퓨터 그래픽은 컴퓨터를 이용해 영상을 만들어내는 기술로 시각과 밀접한 관련이 있습니다.


시각이란 무엇을 의미할까요?


단순히 눈으로 보는 것을 말하는 것일까요?


미국 검안협회는 시각을 다음과 같이 정의했습니다.


"시각이란 눈을 통해서 들어온 정보를 해석하고 통합하고 의미를 부여하는 과정이다"


미국 검안협회의 내용과 컴퓨터 그래픽을 종합해 보면


시각과 밀접한 연관성을 가진 컴퓨터 그래픽은 인간의 사고에 엄청난 영향을 주는 분야라고 볼 수 있습니다.


이번에 삼성전자에서 VR을 이용해서 대인기피증과 고소공포증을 치료하는 목적으로 사용하기도 했다고 합니다.


그렇다면 과연 컴퓨터 그래픽으로 무엇을 할 수 있을까요?


인간과 컴퓨터와의 대화에 중요한 역할을 하는 컴퓨터 그래픽이 미래에는 많은 곳에서 사용될 것라고 확신합니다.


그래서 앞으로 미래에 사용될 최신 기술들에 초점을 맞춰서 포스팅을 하겠습니다.


그 내용은 2016년 SIGGRAPH에 발표된 최신 컴퓨터 그래픽 기술들로 채우겠습니다.


이 포스팅의 목표는 컴퓨터 그래픽으로 할 수 있는 일을 단정짓는 것이 아니라 여러분에게 상상에 날개를 달아주는 것입니다.


그리고 여러분의 상상의 날개로 더 많은 분야에서 컴퓨터 그래픽이 사용되기를 희망합니다.


포스팅 전에 미리 보고 싶은신 분은 http://kesen.realtimerendering.com/sig2016.html 이 곳에 가셔서 보셔도 됩니다.


다음은 컴퓨터 그래픽 기술들을 분류한 것으로 앞으로 포스팅할 주제들 입니다.


1. COMPUTATIONAL CAMERAS

2. RIGGING & SKINNING

3. GEOMETRY

4. EFFICIENT SAMPLING & RENDERING

5. FABRICATING STRUCTURE & APPEARANCE

6. SHAPE ANALYSIS

7. CLOTH

8. PERCEPTION OF SHAPES AND PEOPLE

9. RENDERING OF COMPLEX MICROSTRUCTURE

10. COMPUTATIONAL DISPLAY

11. CAMERA CONTROL & VR

12. METERIALS

13. DISPLAY SOFTWARE

14. CORRESPONDENCE & MAPPING

15. FLUIDS SIMULATION

16. MOTION CONTROL

17. OPTIMIZING IMAGE PROCESSING

18. COMPUTATIONAL DESIGN OF STRUCTURES, SHAPES, AND SOUND

19. DEFORMABLE SURFACE DESIGN

20. IMAGE & SHAPE MANIPULATION

21. SOUND, FLUIDS & BOUNDARIES

22. CURVE & STRUT NETWORKS FOR FABRICATION

23. INTRINSIC IMAGES

24. PHYSICAL PHENOMENA

25. MAPPINGS

26. RENDERING & SIMULATION WITH GPUS

27. CAPTURING HUMANS

28. SKETCHING & WRITING

29. MESHES

30. FACES & PORTRAITS

31. PROCEDURAL MODELING

32. MESHES & FIELDS

33. SHAPE SIGNATURE

34. PLANTS & HUMANS

35. TEXTURE

36. USER INTERFACES

37. EXPRESSIVE ANIMATION

38. PHOTO ORGANIZATION & MANIPULATION






'컴퓨터 그래픽스' 카테고리의 다른 글

FABRICATING STRUCTURE & APPEARANCE  (0) 2016.09.12

+ Recent posts