컴퓨터 그래픽스 3장: 모델링
·
✏️ Study/🕹️ 컴퓨터 그래픽스
📍Polygon Mesh모델링: 렌더링할 물체를 만들어 내는 것- 어떤 구체를 모델링한다고 할 때, 반지름과 원점을 이용해 구의 부피를 구하는 방정식을 사용할 수도 있지만,- GPU는 polygon mesh를 사용하는 방법에 더 최적화되어 있음- 즉, 구체를 이루는 정점 몇개를 샘플링해서 이들을 연결하는 방식 triangle mesh- polygon mesh 중에서 가장 널리 사용되는 방법- OpenGL은 triangle mesh만 처리함- 정점 갯수의 대략 2배 만큼 삼각형 메쉬가 있다 vs 사각형 메쉬- 모델링 시 사각형 메쉬가 유리할 때도 있다- 사각형 메쉬 -> 삼각형 메쉬 변환 간단 (2로 나누면 됨) 해상도- 정점의 갯수(resolution)- LOD(Level of Detail)라고도 함-..
컴퓨터 그래픽스 2장: 수학 기초
·
✏️ Study/🕹️ 컴퓨터 그래픽스
📍행렬과 벡터m * n 행렬 형태- m: 행(row)- n: 열(column)- 벡터도 행렬이다 (예 1 * 2 행렬, 1 * 3 행렬) row vector- 2D 벡터: (x, y)- 3D 벡터: (x, y, z) column vector(xyz) - vector의 곱셈은 행렬의 곱셈과 같다 행렬 전치(transpose)행렬 곱셈 M * v 는 vt * Mt 와 같다- 조건- 곱셈 결과OpenGL의 곱셈 방식- column vector 사용하므로, 행렬벡터 곱셈 시, 벡터가 행렬 뒤에서 곱해짐- 참고로 Direct 3D는 row vector 사용하므로 반대 단위 행렬과 특징행렬곱셈의 역행렬과 전치행렬 벡터의 크기(길이)- 원점에서의 거리- 벡터를 벡터의 길이로 나누는 과정을 정규화(normalizat..
컴퓨터 그래픽스 1장: 서론
·
✏️ Study/🕹️ 컴퓨터 그래픽스
📍3D Computer Graphics- 3차원으로 표현된 오브젝트를 입력으로 받아 2차원 이미지들(프레임이라고 부름)로 출력해내기 위해 다양한 계산을 수행하는 것📍실시간 그래픽(real-time graphics)- 비실시간 그래픽(느리게 프레임 만듬, 예 - 영화 특수효과)과 대비되는 개념- 프레임이 온라인에서 출력되고,- 최소 30 fps(frames per second)이 넘을 때- 예) 게임, VR, AR 등📍Computer Graphics Production 과정off-line tasks (by artists)____________________________modeling -> rigging -> animation -> rendering -> post-processing          ..
ch3. 명령어
·
✏️ Study/💾 컴퓨터 구조
1. 소스 코드와 명령어📍고급 언어와 저급 언어고급 언어(일반적인 프로그래밍 언어)로 작성된 소스 코드가 실행되려면 반드시 저급 언어(컴퓨터만 이해할 수 있는 명령어)로 변환되어야 한다 저급언어 종류- 기계어- 어셈블리어 기계어- 0, 1(이진수)로 이루어진 명령어 모음- 가독성을 위해 십육진수로 표현하기도 함 어셈블리어- 기계어를 사람이 어느정도 이해할 수 있게 번역- 하드웨어와 밀접한 분야에서는 실제로 사용 (임베디드, 보안 등)- 예시 📍컴파일 언어와 인터프리터 언어고급 언어가 저급 언어로 변환되는 방식에 따라 언어를 2가지로 나눌 수 있음- 컴파일 언어- 인터프리터 언어 컴파일 언어- 컴파일러에 의해 소스코드 전체가 저급 언어(결과물 - 목적 코드)로 변환되어 실행됨- 소스 코드에 오류가 있다..
ch2. 데이터
·
✏️ Study/💾 컴퓨터 구조
1. 0과 1로 숫자를 표현하는 방법📍정보 단위컴퓨터는 0과 1밖에 이해하지 못함- 비트(bit): 0과 1을 나타내는 가장 작은 정보단위- n비트는 2^n 개의 정보 표현 가능 바이트(byte)- 1바이트 = 8비트- 1KB = 1000바이트 (1KiB = 1024바이트)- 1MB = 1000KB (1MiB = 1024KB) 워드(word)- CPU가 한 번에 처리할 수 있는 데이터 크기- 예) 인텔 x86 CPU: 32비트 워드- 예) x64 CPU: 64비트 워드 📍이진법이진수 표기- 10이 이진수인지 십진수인지 아무 표기가 없으면 혼동을 줄 수 있다- 수학적으로 표현: 10(2)- 코드 상에서 표현: 0b10 => binary를 의미 이진수의 음수 표현- 컴퓨터는 0과 1만 이해하기 때문에 음..
ch1. 컴퓨터 구조 시작하기
·
✏️ Study/💾 컴퓨터 구조
1. 컴퓨터 구조를 알아야 하는 이유📍1) 문제 해결 향상내가 짠 코드의 문제가 아니라 컴퓨터의 문제라면? 📍2) 성능, 용량, 비용 최적화개발한 프로그램을 위한 최적의 컴퓨터 환경은? 2. 컴퓨터 구조의 큰 그림📍컴퓨터 구조의 2가지 핵심 개념1) 컴퓨터가 이해하는 정보- 데이터- 명령어2) 컴퓨터의 4가지 핵심 부품- 중앙처리장치(CPU)- 주기억장치(메모리)- 보조기억장치- 입출력장치 📍1) 컴퓨터가 이해하는 정보컴퓨터는 명령을 처리하는 기계- 컴퓨터는 데이터로 이루어진 명령어를 처리- 컴퓨터는 0, 1로 표현된 정보만 이해 📍2) 컴퓨터의 4가지 핵심 부품메모리- 현재 실행되는 프로그램의 명령어와 데이터를 저장- 메모리 주소: 저장된 명령어와 데이터의 위치를 식별하고, 쉽게 접근하기 위해..
Webstorm 단축키 for Mac
·
✏️ Study/🪜 Dev Infra
같은 파일을 우측에서 열기 (설정에서 split right 검색 후 새로 설정해줘야 함)cmd + opt + \
<읽기 쉬운 코드> 책 리뷰
·
📚 Books/⚽️ 소프트웨어 공학
📍책 정보- 제목: 읽기 쉬운 코드- 작가: 마크 시먼- 출간연도: 2024- 출판사: 길벗 📍프로그래머에서 소프트웨어 엔지니어로 거듭나기이 책의 핵심 주제는 '프로그래머에서 소프트웨어 엔지니어로 거듭나기' 라고 할 수 있다. 이 둘의 비교부터, 소프트웨어 공학의 태동과 발전, 현대의 소프트웨어 개발에 적용할 수 있는 코드 작성 규칙 등을 세세하게 담고 있다. 지금까지 소프트웨어 공학이 뭔지 잘 모르고 있었다. 소프트웨어 개발을 왜 공학 관점에서 접근해야 하는지, 그리고 어떻게 접근할 수 있는지 모르고 있었는데, 이 책에서는 다른 산업군의 엔지니어들이 일하는 방식에서 차용한, 개발자가 시도할만한 몇 가지 방법들을 추천해준다. 📍레스토랑 예약 앱을 만들며 프로젝트 개발의 A to Z 익히기이 책에서 ..