Software Development 378

OpenGL IBO를 사용한 직사각형 그리기

이전 VBO를 이용한 큐브 그리기 포스팅을 통해, 화면에 그리는 오브젝트는 vertex (정점)의 집합을 통해 이루어져 있어 Vertex Buffer를 이용하여 그릴 수 있었다.버텍스 버퍼만을 사용하여 그리는 오브젝트를 다시 살펴보면, 아래와 같이 하나의 사각형은 두개의 삼각형이 필요하고 그에 따라 6개의 정점이 필요했다. 6개의 직사각형이 필요한 큐브 샘플은 6x6, 36개의 정점 배열이 필요했다. 여기에 색상, 노멀벡터 등이 추가 된다면 메모리 사용량은 계속 커지게 된다. (버텍스를 많이 사용하는 복잡한 오브젝트일 수록 메모리량은 증가) 여기서 버텍스 버퍼만을 이용했을 때 단점을 알 수 있다. 위의 그림과 같이 오브젝트를 그릴 때 공유하는(겹치는) 정점이 있게 된다. 이 때 IBO(Index Buff..

OpenGL VBO로 큐브 그리기

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

호도법(Radian)

일반적인 각도를 표시하는 단위로 '도'를 사용하는 각도법(Degree)을 사용한다. 각도를 표현하는 데 매우 익숙한 단위이나 컴퓨터에서는 각도를 인식시킬 때는 각도법을 사용하지 않고 호도법을 사용한다.각도법(60분법)과 호도법 각도법(60분법) 호도법 정의 직각을 90등분한 것 반지름과 호의 길이의 비율 어떤 분석에 유용하나? (평면) 도형 분석 회전 운동 분석 호도법(Radian)- 회전 각도를 나타내는 표현으로, 각도를 표현할 때 원의 호의 길이로 각도를 표현하는 방법 -> 원의 크기와는 관계없이 호의 길이와 반지름의 길이의 비가 일정하다는 원리를 이용하여, 이 비를 통해 각의 크기를 나타내는 방법 우선 원주의 길이를 구하는 식을 보면,원주의 길이 = 2x(원주율)x(반지름)이 된다.*원주율 : 원주..

[프로젝트 정리] SmartTV UI Demo

스마트TV에 사용될 UI 기능을 WPF상으로 구현 후 기능 테스트를 목적으로 하는 데모 샘플 프로젝트, 기능별 UI 구현이 과제의 주된 목적이었다.UI 테스트 기능- 사용자등록 및 사용자 관리 - 메뉴 관리 - 스크린샷 -> 페이스북 업로드 - 가상 키보드 입력 - TV on/off - 인터넷 검색 사용 - 환경설정개발 환경 : C# WPF개발 기간 : 2개월

[프로젝트 정리] 스마트폰을 이용한 로봇청소기 지정 위치 이동 앱

스마트폰을 이용한 로봇청소기 지정 위치 이동 앱프로젝트 인원 : 2명 맡은 부분 : 안드로이드 앱 개발 & OpenCV를 이용한 영상처리개발 목표 1. 카메라를 이용한 마커 인식 2. 모바일 화면의 지정위치를 이용하여 실제 위치공간 획득 3. 로봇청소기 - 안드로이드 블루투스 통신을 이용한 로봇청소기 이동개발 기간 : 2개월System Architecture App UI 마커인식 구현과정 테스트영상개발환경 - OS : Windows 7, Android - IDE : Eclipse ADT Bundle, Visual Studio 2010 - Device : Samsung Galaxy player 5.8 - Library : Android SDK 4.0, OpenCV - Language : JAVA, C/C+..

컴퓨터 그래픽스 이론 정리 - 삼각함수 기초

삼각함수 기초 - 삼각형의 세 각 중 하나가 수직인 삼각형을 직각삼각형이라고 하는데, 삼각함수는 직각삼각형일 때만 성립힌다. sin = y(대변) / l(빗변) cos = x(밑변) / l(빗변) tan = y(대변) / x(밑변) sin과 cos- 0도와 90도일 경우, 삼각형이라기보다 직선이 된다. 이 경우에도 삼각함수는 적용될 수 있다.- 0도일 경우, 대변이 0이고 밑변과 빗변이 같다. sin0' = (대변) / (빗변) = 0 / (빗변) = 0 cos0' = (밑변) / (빗변) = 1 / 1 = 1- 90도일 경우, 밑변이 0이 되고 대변과 빗변이 같다. sin90' = 대변 / 빗변 = 1 / 1 = 1 cos90' = 밑변 / 빗변 = 0 / 빗변 = 0-> 0 또는 1인 결과가 나온다...

gluLookAt() 함수 구현 설명

gluLookAt() : view transform matrix를 정의 - 시점 좌표계를 정의하는 함수로, (eyeX, eyeY, eyeZ)에 있는 카메라가 (centerX, centerY, cneterZ)에 있는 초점을 바라보는 것이다. - (upX, upY, upZ)는 카메라 상향 벡터이다.123456789101112void gluLookAt( GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ); cs Parameters - eyeX, eyeY, eyeZ : 눈의 위치(카메라의 위치) - centerX,..

컴퓨터 그래픽스 이론 정리 - 후면제거, 표면과 이면

후면제거1. 후면제거- 위 그림에서 화살표 방향은 원구 표면에서 다각형의 법선 벡터를 의미한다. - 시점은 왼쪽에 위치, 원구를 반으로 잘랐을 경우 오른쪽 B에 있는 면들은 실제로 보이지 않게 된다.위와 같이 보이지 않는 면을 후면(Back-Facing Polygon), 법선 벡터가 시점을 향한 면을 전면(Front-Facing Polygon)이라 한다.*후면제거(Backface Culling, Backface Removal) : 후면을 판단하고 제거하는 과정, 후면은 단지 시점의 위치와 해당 면이 서있는 방향만으로 판단. - V1 : 면 A의 시점 벡터 - N1 : 면 A의 법선 벡터 - V2 : 면 B의 시점벡터 - N2 : 면 B의 법선 벡터--> 후면 여부는 법선 벡터와 시점 벡터의 내적에 의해 ..