분류 전체보기
-
리눅스로 제작한 미니게임 (C언어) - 2 (getch, kbhit, sleep)과제 결과물 2018. 6. 8. 11:16
2018-06-02(제작 소요 시간 : 4시간) **** Window 환경 -> 리눅스 환경 - 키보드 입력을 읽어오는 getch() 에 해당하는 함수가 gcc library 에는 존재하지 않는다. - PC 환경이 아닌 임베디드 환경에서 작업 할 시에는 kbhit()에 해당하는 함수가 존재하지 않는다. 1. 리눅스에서 사용한 주요 함수 (_kbhit, _getch) #include #include int linux_kbhit(void){struct termios oldt, newt;int ch; tcgetattr(STDIN_FILENO, &oldt);newt = oldt; newt.c_lflag &= ~(ICANON | ECHO);tcsetattr(STDIN_FILENO, TCSANOW, &newt); ..
-
Chapter 9.2 Normal Mapping3차원 그래픽스/Mapping 2018. 6. 7. 23:01
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.2 Normal mapping 0. 정의 - 눈속임의 기술인 노멀 맵핑은 법선 벡터의 값을 사용하여 입체감 및 질감을 구현하는 방법. 노멀맵은 RGB 색상 대신 노멀 벡터를 저장하고 있는 텍스처를 말한다. 1. 노멀맵 - 노멀을 계산하기 위해서는 편미분 식이 필요한데, (x, y)에 인접한 네 개의 좌표{(x + 1, y), (x - 1, y), (x, y + 1), (x, y - 1)} 의 높이 값을 이용해 계산한다. 계산된 노멀은 하이트 필드 표면의 바깥쪽을 가리킨다.각 텍셀에 색상 대신 노멀이 저장된 노멀맵의 개념, 일반적으로 노멀맵은 하이트맵과 동일한 해상도를 갖는다. RGB 각 채널을 8..
-
Chapter 9.1 Height field3차원 그래픽스/Mapping 2018. 6. 6. 17:44
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.1 Height field 0. 정의 - 높이로만 표현되는 맵 - 2차원 좌표 (x, y)가 주어졌을 때 높이 혹은 z값을 반환. 1. 사용하는 이유 - 일정 영역을 제한해서 보여주기 때문에 속도 향상에 이점이 있다. - 해당 좌표에 따라 타일의 높이를 알 수 있기 때문에 빠르게 충돌 체크를 수행 할 수 있다. - 범프 매핑의 특징인 데이터의 크기가 작다. 2. 범프 매핑 기법 3가지 (하이트맵의 처리 차이) 2.1 노멀 매핑 : 전처리 단계에서 하이트맵을 사용하여 노멀맵(normal map)을 생성 2.2 패럴랙스 매핑 : 런타임에 하이트맵에 대해 간단한 광성 추적 알고리즘을 수행하여 노멀 매핑..
-
Chapter 9.0 Bump mapping3차원 그래픽스/Mapping 2018. 6. 6. 17:08
이 문서는 개인 공부용으로 쓰였습니다.- 게임 프로그래밍을 위한 3차원 그래픽스 (한정현) Chapter 9.0 Bump mapping 0. 정의 - 저해상도 메쉬를 채택하되, 고해상도 메쉬의 특징을 텍스처에 저장하여 이를 런타임에 이용하는데, 이러한 기법에서 저해상도 메쉬는 매크로구조(macrostructure)라고 부르며, 이는 렌더링 과정에서 텍스처와 결합되어 오돌토돌한 특징을 보이게 된다. 이러한 텍스처링 기법을 범프 매핑이라 부른다. 1. 사용하는 이유 - 고해상도의 폴리곤 메쉬를 이용하면 렌더링 결과는 매우 사실적으로 표현 될 수 있다. 하지만 인덱스/정점 버퍼의 크기가 커지고 정점 처리에 많은 시간이 소요되는 문제점을 갖고있다. 그렇기에 텍스처링 기법을 이용하여 유사한 렌더링 결과를 가질 수..
-
아두이노 우노 알람시계과제 결과물 2018. 6. 6. 15:47
2018-06-06(제작 소요 시간 : 3일) 1. 개발목표와 특징 - 기본적 블루투스 연동 및 시간에 맞는 정확한 알람 시스템 - 지정된 알람 시간을 기준으로 사용자가 원하는 시간에 맞춰 음악을 재생 - 요일과 시간을 맞추기 위한 앱 제작 및 블루투스 연동 (실패) 2. H/W 설계 - 센서 및 부품: LCD, 부저, DF player mini (MP3), Bluetooth - S/W에서 생성 된 정보를 받아들여 LCD에 출력하고 부저에 소리를 출력한다. - LCD : 시간과 알람을 알려줄 용도 - Bluetooth : 현재 시간 저장과 알람 시간 설정 - DF player mini : 중심 센서로 mp3 파일을 저장 3. 구현 소감 - 확실한 개발 과정을 준비해두고 어떤 식으로 진행이 될 것이라는 것..
-
리눅스로 제작한 미니게임 (C언어)과제 결과물 2018. 6. 6. 15:39
2018-06-02(제작 소요 시간 : 4시간) 1. 작품의 개요 * 리눅스로 제작한 간단한 퍼즐 게임 * 애니팡에 푹 빠진 어머님의 모습을 보고 제작을 시작 * 추후 Unity 엔진을 이용하여 버전 업그레이드 및 프로젝트 구성 중 2. 시스템 구성도(설계도) * system.h, system.c (저장 및 로드 관련) - Load(void), Save(int Score) : 최고 점수를 읽어들이고 현재 점수를 저장하는 함수 * input.h, input.c (입력 값에 관한 함수 및 헤더파일 관리) - unistd.h, sys/select.h, termios.h, string.h, stdlib.h, stdio.h - InputKey(void), MoveCursor(int dir) : 이동 및 선택 관련..