본문 바로가기

전체 글150

[컴퓨터구조] 컴퓨터 추상화와 기술 (Computer Abstractions and Technology) 애플리케이션 소프트웨어 - HLL(high-level language)로 작성 시스템 소프트웨어 - 컴파일러 : HLL -> 기계어 (machine code) - OS : 입출력 핸들링, 메모리 / 저장공간 관리, 태스크 스케쥴링, 자원 공유 하드웨어 - 프로세서, 메모리, I/O 컨트롤러 HLL : C언어 같은 것, 생산성 (자연어와 비슷함), 유연성 (어느 컴퓨터에서나 같음) -> compile 어셈블리어 : 명령어의 textual한 표현 -> assemble 기계어 : 하드웨어 표기법, 이진수(비트), 인코딩된 명령어와 데이터 * 어셈블리어와 기계어는 일대일 매핑 가능 (줄 수가 같음) 컴퓨터 구성요소 : (1) datapath (2) control (3) memory (4) input (5) ou.. 2020. 10. 22.
[Visualization Lab] 인공지능/머신러닝/딥러닝 이론, 기초 공부법 인공지능이 무엇인지조차 모르던 제가 딥러닝-그래픽스 연구에 참여하기 전 이론을 공부한 방법입니다. 저 같은 경우에는 이것 다음에 무엇을 공부해야할지 모르겠을 때 물어볼 수 있는 선배가 있었지만, 그렇지 않을 때에는 막막함이 느껴질 것 같아 준비해 보았습니다, 저의 기초 이론 공부 과정!! 공부 시작 전 알아둘 기초 상식 정확한 개념 정의는 아니지만 이해하기 쉽게 간단히 정리해보자면, 인공지능 : 기계들이 인간의 사고를 모방하는 것 머신러닝 : 컴퓨터가 스스로 학습하는 것 (규칙을 찾거나 예측) 딥러닝 : 인공신경망을 이용하여 학습하는 것, 학습데이터도 스스로 학습하여 데이터 제공이 필요 없음 정도로 얘기할 수 있겠네요. 더 직관적인 설명이 있다면, 댓글에 남겨주세요. 시각적인 수학 개념 학습은 Youtu.. 2020. 10. 15.
[그래픽스] 기초 수학 (3) - 벡터 * Computer Graphics Programming in OpenGL with C++ 책을 참고하였습니다. * 책을 번역한 것이 아닌, 제가 독학 후 책을 참고하여 설명하는 게시물입니다. 따라서 책에 없는 부연 설명이 있기도 하며, 의역 또는 오역, 오개념이 있을 수 있습니다. 피드백은 댓글을 남겨주세요. * 영어 용어를 최대한 한국어로 번역하지 않습니다. 처음부터 코드에서 사용되는, 또는 원서나 인터넷에서 사용되는 보편적 용어를 사용하여 개념을 잡는 것을 추천드립니다. ​ ​ 지난 포스트에 이어, 벡터의 기본 개념과 3D 응용 프로그램에서 벡터가 어떻게 활용되는지 간단하게 설명하도록 하겠습니다. ​ ​ 고등학교 이과 수학에서 등장하는 개념인 벡터는(요즘 교육과정은 어떤지 모르겠네요), magnit.. 2020. 10. 15.
[그래픽스] 기초 수학 (2) - Transformation Matrices (변환 행렬) * Computer Graphics Programming in OpenGL with C++ 책을 참고하였습니다. * 책을 번역한 것이 아닌, 제가 독학 후 책을 참고하여 설명하는 게시물입니다. 따라서 책에 없는 부연 설명이 있기도 하며, 의역 또는 오역, 오개념이 있을 수 있습니다. 피드백은 댓글을 남겨주세요. * 영어 용어를 최대한 한국어로 번역하지 않습니다. 처음부터 코드에서 사용되는, 또는 원서나 인터넷에서 사용되는 보편적 용어를 사용하여 개념을 잡는 것을 추천드립니다. ​ ​ 지난 포스트에 이어, 3D 그래픽스 프로그램에서 수학을 사용하는 방식에 대해 설명하겠습니다. ​ ​ 그래픽스에서는, 물체의 변환을 수행하기 위해 행렬들이 사용됩니다. Translation(이동), Rotation(회전), S.. 2020. 10. 15.
[그래픽스] 기초 수학 (1) - 좌표계, 점, 행렬 * Computer Graphics Programming in OpenGL with C++ 책을 참고하였습니다. * 책을 번역한 것이 아닌, 제가 독학 후 책을 참고하여 설명하는 게시물입니다. 따라서 책에 없는 부연 설명이 있기도 하며, 의역 또는 오역, 오개념이 있을 수 있습니다. 피드백은 댓글을 남겨주세요. * 영어 용어를 최대한 한국어로 번역하지 않습니다. 처음부터 코드에서 사용되는, 또는 원서나 인터넷에서 사용되는 보편적 용어를 사용하여 개념을 잡는 것을 추천드립니다. ​ ​ 책의 챕터 3은 그래픽에 유용하게 사용될 수학적 기초를 소개합니다. 선형대수학의 기본 지식들을 포함하여 그래픽스 프로그램에서 자주 사용하는 공식들이 대부분이죠. 저는 이번 게시글에서 아주 기본적인 수학 부분은 생략하고, 새로.. 2020. 10. 15.
[C 프로그래밍 실습] 연산자 / 조건문 (Lab 02) Program 1 : '/', '%' 연산자 / if, else 조건문 Program 2 : '%' 연산자 사용하여 자릿수별 출력 Program 3 : 비트 연산자 (>>) 사용하여 16진수 바이트 단위 출력 Program 4 : 비트 연산자 (> 8) & 0x000000FF); printf("byte 2 : %02x\n", (hexa >> 16) & 0x000000FF); printf("byte 3 : %02x\n", (hexa >> 24) & 0x000000FF); return 0; } Program 4 24비트 트루칼라를 나타내는 RGB 표기법은 red, green, blue에 각각 8비트를 사용하여 색상을 표현한다. RGB 색상은 32비트로 저장되는데, 최하위 바이트로부터 red, green, b.. 2020. 10. 14.
[C 프로그래밍 실습] 자료형과 변수 / 전처리와 입출력 (Lab 01) Program 1 : 8진수, 16진수, 10진수 아스키코드로 문자 출력 Program 2 : 매크로 상수 (#define) 전처리 Program 3 : 문자의 8진수, 16진수, 10진수 아스키코드 출력 Program 4 : 문자형 연산 (문자와 정수 연산) Program 5 : getchar(), putchar() / 문자의 8진수, 16진수, 10진수 아스키코드 출력 Program 6 : 헤더파일 (.h), 매크로 상수 Program 7 : 좌측 정렬 출력, 우측 정렬 출력 Program 8 : 정수 실수 형변환 (캐스팅casting) Program 1 다음 조건을 만족하는 프로그램을 작성하시오. 아스키코드 값이 8진수로 041에서 045까지인 문자 출력 아스키코드 값이 16진수로 0x41에서 0x.. 2020. 10. 13.
[그래픽스] 정점으로 개체 그리기, 애니메이팅, 모듈화 * Computer Graphics Programming in OpenGL with C++ 책을 참고하였습니다. * 책을 번역한 것이 아닌, 제가 독학 후 책을 참고하여 설명하는 게시물입니다. 따라서 책에 없는 부연 설명이 있기도 하며, 의역 또는 오역, 오개념이 있을 수 있습니다. 피드백은 댓글을 남겨주세요. * 영어 용어를 최대한 한국어로 번역하지 않습니다. 처음부터 코드에서 사용되는, 또는 원서나 인터넷에서 사용되는 보편적 용어를 사용하여 개념을 잡는 것을 추천드립니다. ​ ​ 궁극적으로 우리는 보통 하나 이상의 정점을 활용해 개체를 생성하는 것을 목표로 합니다. 따라서 우선은 3개의 정점으로 삼각형을 그리는 간단한 예제부터 실행해보도록 하죠. ​ 지난 [Program 2.2]를 약간만 수정하면 됩.. 2020. 6. 9.
[그래픽스] 파일에서 GLSL 소스코드 읽기 * Computer Graphics Programming in OpenGL with C++ 책을 참고하였습니다. * 책을 번역한 것이 아닌, 제가 독학 후 책을 참고하여 설명하는 게시물입니다. 따라서 책에 없는 부연 설명이 있기도 하며, 의역 또는 오역, 오개념이 있을 수 있습니다. 피드백은 댓글을 남겨주세요. * 영어 용어를 최대한 한국어로 번역하지 않습니다. 처음부터 코드에서 사용되는, 또는 원서나 인터넷에서 사용되는 보편적 용어를 사용하여 개념을 잡는 것을 추천드립니다. ​ ​ 지난 '쉐이더' 게시글(https://goeden.tistory.com/10)에서 살펴본 [Program 2.2]는 쉐이더 코드가 main.cpp 안에 문자열로 존재했습니다. 하지만 쉐이더 코드를 따로 파일로 저장하여, ma.. 2020. 6. 8.