Software Development 378

OpenGL Super Bible 그래픽스 공부하기 - 1. OpenGL 기본개념이해

공부를 시작하며... 새해엔 미루고 미루던 그래픽스, OpenGL 공부를 시작하려한다... 그동한 GL은 이것저것 하느라 구현은 해봤지만, 항상 제대로 알고 있진 않다고 생각했다. 제대로 공부를 안했었기 때문인거 같은데 2018년부터 'OpenGL Super Bible'을 통해 공부해보려 한다. 이 책은 몇번씩 앞장은 봐보긴 했다. 그렇게 앞장만 몇번씩 봤다... 일단 두꺼운 책 두께 때문에 꾸준히 공부하긴 힘들었다. 이번에 시작할 땐, 한번에 많은 양을 나가기보단 블로그에 조금씩 정리해나가면서 천천히라도 진도를 나가는 걸 목표로 해야겠다.첫 장은 OpenGL에 대한 기본적인 설명부터, Part 1. OpenGL 기초 - 파이프라인이란? - OpenGL의 역사와 현재 - 개념 정리 OpenGL이란? - ..

우분투 환경에서 C언어로 배우는리눅스 프로그래밍-2. C 언어 빌드

1. 컴파일과 링크와 실행 파일 만들기 - C프로그램 소스를 컴파일러로 컴파일. - gcc는 '컴파일러 드라이버'라고 불리며, 소스 코드의 빌드 과정을 순차적으로 실행하는 명령이다. - 아래와 같은 과정 수행 1) 프리프로세서(전처리기)에 의한 파일 포함과 매크로 처리 2) 어셈블리 코드로 컴파일하고 어셈블 과정을 거쳐 오브젝트 파일로 변환 3) 오브젝트 파일 결합과 라이브러리 링크 *프리프로세서(Preprocessor)의 처리 - 원시코드를 컴파일러에 인도하기 전에 특정한 변수를 그것에 대응하는 정의된 문자열로 치환하는 등의 일을 하는 프로그램 1) 매크로 정의(Macro Definition) - #define 매크로명 치환문자열, 매크로 명이 기록된 곳을 모두 치환문자열로 변환하는 기능 2) 매크로 ..

우분투 환경에서 C언어로 배우는리눅스 프로그래밍-1. 개념정리

1. 컴퓨터 동작원리 (1) 폰 노이만 구조 - 현대 컴퓨터의 주류는 노이만형 컴퓨터 - 실제 프로그램과 데이터를 모두 메모리에 두고 순차적으로 메모리에서 꺼내실행 1) 프로그램 카운터가 가리키는 메모리 영역에서 명령을 읽고, (Program Counter, PC: CPU 내부에 있는 레지스터 다음에 실행될 명령어의 주소를 갖고 실행할 기계어 코드의 위치 지정, 명령어 포인터라고도 한다.) 2) 읽어들인 명령의 길이만큼 프로그램 카운터를 갱신 3) 명령을 따라 연산을 수행 (2) 고급언어/ 저급언어 - 프로그래밍 언어의 우열이 아닌 추상도가 높은 기술을 지향하는지, 기계어에 가까운 기술을 지향하는지를 뜻함 - 기계어는 CPU가 직접 해석하는 코드열, 이렇게 하드웨어에 의존적인 프로그래밍 언어를 저급언어라..

기워디(기어 워치 디자이너) 시작하기

기어 워치 디자이너(Gear Watch Designer) - 기워디 삼성에서 제공하고 있는 웨어러블 기기 Gear 시리즈의 워치 페이스( Watch Face )를 코딩없이 손쉽게 제작할 수 있는 툴 현재 나와있는 기어 시리즈로는 Gear S, Gear Fit2, Gear S2 그리고 최근 나온 Gear S3가 있으며 모두 개발 가능하다고 합니다. 기워디 영상을 보려면 아래링크 클릭 https://youtu.be/5S6fHJJTGKI 아직은 베타 테스트 중이지만 타이젠 커뮤니티에선 만든 워치페이스도 공유도 활발하게 이루어지고 있는데요, 한번 기워디를 사용해보도록 하겠습니다. 먼저 하단 링크에서 기워디 베타버전을 다운로드합니다. http://developer.samsung.com/gear/design/wat..

비트연산 기초

-비트연산 : 한개 혹은 두개 이진수에서 비트단위로 적용되는 연산 1. AND(&) - 두 값의 각 자릿수를 비교해, 두 값 모두에 1이 있을 때에만 1을, 나머지 경우에는 0을 계산한다. : 0100 & 1100 = 01002. OR(|) - 두 값의 각 자릿수를 비교해, 둘 중 하나라도 1이 있다면 1을, 아니면 0을 계산한다. : 0101 | 0011 = 01113. XOR(^) - 두 값의 각 자릿수를 비교해, 값이 같으면 0, 다르면 1을 계산한다. : 0001 ^ 1111 = 11104. NOT(~) - 각 자릿수의 값을 반대로 바꾸는 연산이다. : ~1(0001) = 1110 비트연산의 활용1. Flag처리 : 비트를 이용하여 상태처리, 4Byte = 32Bit, 32개의 상태 처리 가능왜 ..

[DP] 연쇄행렬 최소곱셈 알고리즘

연쇄행렬 최소곱셈 알고리즘 두 개 이상의 행렬을 곱할 때, 최소 곱셈 횟수를 구하는 문제-> 행렬의 곱셈은 아래와 같이 결합법칩이 성립한다. A*(B*C) = (A*B)*C 그러나, 행렬을 곱하는 순서에 따라 곱하는 횟수가 달라진다.예를들어 설명하면, 행렬 A,B,C,D 4개가 존재한다. 각각 행렬의 차수는 20x1, 1x30, 30x10, 10x10이라고 한다. 4개의 행렬은 여러가지 방법으로 곱할 수 있지만, 다음 4개의 경우에 대하여 생각해볼때, 곱셈 횟수를 비교하면 아래와 같다.((A*B)*C)*D) = (20*1*30) + (20*30*10) + (20*10*10) = 8,600 A*(B*(C*D)) = (30*10*10) + (1*30*10) + (20*1*10) = 3,500 (A*B)*(C..

타이젠 소스코드 빌드하기

타이젠 패키지 빌드해보기!! (상세한 설명은 생략!-) 1. 환경설정1) 패키지 저장소에 Tizen 저장소 추가1$ sudo vim /etc/apt/source.list.d/tizen.listcs 명령어 입력 후, 아래 내용 기입1deb [trusted=yes] http://download.tizen.org/tools/latest-release/Ubuntu_16.04 /cs*Ubuntu_16.04 -> 자신의 Ubuntu 환경에 맞는 경로 설정 ex) Ubuntu_14.04 : 1deb http://download.tizen.org/tools/latest-release/Ubuntu_14.04 /cs 2) 추가리스트 동기화1$sudo apt-get updatecs 3) gbs, mic 설치 * gbs : ..