상세 컨텐츠

본문 제목

컴퓨터그래픽스(OpenGL기반, 비주얼스튜디오 커뮤니티 2015교융용사용)_1

비주얼스튜디오

by 김일국 2018. 1. 30. 17:51

본문

비주얼 스튜디오 카테고리에 글을 남기는 것은 거의 5~6년 만이다.

이번에 컴퓨터그래픽스(OpenGL사용) 과목을 공부할 기회가 생겨서 교육환경으로 비주얼스튜디오 커뮤니티 2015를 사용하게 된 것이다.

이전 회사소속으로 개발할때는 VS2010버전(C#) 이하로 개발했었는데, 감회가 새롭다.

오랜만에 교육환경만들고, 신규 프로젝트 생성후 교육자료CPP파일을 불러와서 실행하는데도 버벅 거리면서 했다.^^

아래는 그 과정이다.

MICROSOFT VISUAL STUDIO COMMUNITY 2015 라이센스 확인
https://www.visualstudio.com/ko/license-terms/mt171547/?rr=https%3A%2F%2Fsocial.msdn.microsoft.com%2FForums%2Fko-KR%2Faea0324d-7cc6-4b2f-8c52-a61e55b30ce1%2F2015-community-%3Fforum%3Dvsko
라이센스핵심
조직 사용권. 조직인 경우 귀사의 사용자는 다음과 같이 소프트웨어를 사용할 수 있습니다.
1.귀사의 사용자는 사용자의 수와 상관없이 OSI(오픈 소스 이니셔티브)에서 승인한 오픈 소스 소프트웨어 사용권에 따라 출시된 응용 프로그램의 개발 및 테스트를 목적으로 소프트웨어를 사용할 수 있습니다.
2.사용자의 수에 관계없이 Xamarin Studio 또는 Visual Studio 확장 기능 및 Xamarin Component Store 또는 Visual Studio Marketplace 구성 요소의 개발 및 테스트를 목적으로 소프트웨어를 사용할 수 있습니다.
3.귀사의 사용자는 사용자의 수와 상관없이 강의실 교육(온라인 또는 직접)의 일환으로 응용 프로그램의 개발 및 테스트를 목적으로 또는 교육 연구 수행을 목적으로 소프트웨어를 사용할 수 있습니다.
4.위의 사항에 해당하지 않으며 귀사가 기업(아래에 정의됨)이 아닌 경우 최대 5명의 귀사의 개별 사용자가 응용 프로그램의 개발 및 테스트를 목적으로 동시에 소프트웨어를 사용할 수 있습니다.
5.기업인 경우 귀사의 직원 및 계약자는 응용 프로그램의 개발 또는 테스트를 목적으로 소프트웨어를 사용할 수 없습니다. 단, 상기 허용된 범위 내에서 오픈 소스 및 교육 목적은 제외됩니다. “기업”은 전체 (a) 250대 이상의 컴퓨터 또는 250명 이상의 사용자를 보유하고 있거나 (b) 미화 1백만 달러(또는 다른 통화 상당 금액) 이상의 연간 매출을 거두고 있는 조직 및 계열사이며 “계열사”는 해당 조직을 지배(대주주 소유를 통해)하거나 해당 조직의 지배를 받거나 해당 조직과 공동 지배를 받고 있는 실체를 의미합니다.
위 사항(특히5번)에 의해서, 방송대학생으로 컴퓨터그래픽스 C++프로젝트를 수강(교육)을 위한 목적으로 사용합니다.


1. MICROSOFT VISUAL STUDIO COMMUNITY 2015 다운로드
https://go.microsoft.com/fwlink/?LinkId=615448&clcid=0x409

설치시 위/아래 2가지 항목(위:Visual C++, 아래:NuGet-OpenGL관련 저장소에서 해당 패키지설치용)

설치시 Visual C++ 개발환경의 화면구성으로 적용(나중에 변경 가능)

새 프로젝트 생성중지, 잠깐 멈춤- 환경이 영문판을 한글판으로 변경하기로 함.

한국어언어팩: https://www.microsoft.com/ko-KR/download/details.aspx?id=48157

위 언어팬 설치 후 신규 프로젝트 생성(위 New 프로젝트생성 화면이 한글로 변경되어서 보입니다. 이후는 모두 한글화면임 )


첫번째 OpenGL프로그램 cpp파일 실행전 조치사항(아래)

Visual Studio 2015에서 GLEW 및 freeGLUT를 사용하는 것은 다음 방법으로 하면 됩니다.
① Visual Studio를 실행한 후 빈 프로젝트를 만듭니다.
② 메뉴에서 [도구]-[NuGet 패키지 관리자]-[솔루션용 NuGet 패키지 관리...] 선택
③ 솔루션 패키지 관리 창 상단의 '찾아보기' 클릭 후 검색 키워드 입력란에 'nupengl'을 넣고 검색
④ 'nupengl.core.redist'를 선택한 후 윈도 우측의 프로젝트 중 지금 만든 프로젝트를 선택한 후 [설치] 클릭
⑤ 'nupengl.core'를 선택한 후 동일하게 설치함
⑥ OpenGL, GLEW, freeGLUT를 사용하는 프로그램 소스를 작성한 후 빌드 및 실행
※ 교재의 프로그램에서 다음 두 문장은 제거하고 사용함
    #define FREEGLUT_STATIC
    #define GLEW_STATIC

왼쪽 [소스파일]에서 마우스 오른쪽 버튼 클릭 후 -> 학습교재의OpenGLSample.cpp파일 불러오기

3개의 버텍스(Vertex-꼭지점)과 1개의 프레그먼트(Fragment-면)로 구성된 삼각형을 그리게 됩니다.(아래)

개발화면 상단의 로컬디버거(녹색실행버튼)클릭 후 결과화면 출력됨

위에 프레그먼트(Fragment-면)은 안드로이드 앱 만들때도 같은용어가 나왔던 기억이 나네요^^(아래)

위 결과에서 삼각형면 출력을 삼각형선분 으로 변경하려면,

소스에서 RenderCB() 함수의 glDrawArrays 인자값을 수정해 주면 됩니다.

static void RenderCB()
{
    glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT); // 백색으로 화면 지움

    glEnableVertexAttribArray(0);
    glBindBuffer(GL_ARRAY_BUFFER, VBO[TRIANGLE]);
    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
    glDrawArrays(GL_LINE_LOOP, 0, 3);//삼각형면:GL_TRIANGLES, 꼭지점:GL_POINTS, 선분:GL_LINES(GL_LINE_STRIP,GL_LINE_LOOP)
    glDisableVertexAttribArray(0);
    glFinish();
}

수정결과확인(아래)

Ps.

한달정도 지나면, 라이센스 업데이트 하라는 창이 나옵니다.(전 kimilguk@knou.ac.kr 학교 이메일계정으로 로그인해서 아래화면오른쪽의 [업데이트 라이선스 확인] 링크클릭으로 사용연장을 했습니다..)


관련글 더보기

댓글 영역