일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- SVM
- neural network
- C++
- Unsupervised learning
- 인공지능
- 추천 시스템
- CPP
- 컴퓨터 비전
- logistic regression
- 딥러닝
- 로지스틱 회귀
- 머신러닝
- pre-trained
- recommender system
- Vision
- SGD
- petal to metal
- 신경망
- Regularization
- 그래픽스
- cs231n
- OpenGL
- Computer Vision
- 비용함수
- 컴퓨터 그래픽스
- 파이썬
- CNN
- Kaggle
- 백준
- Support Vector Machine
- Today
- Total
목록graphics VR AR (18)
kwan's note
순서: Phong lighting, light sources, fragment shader 구현 Phong Lighting 라이팅을 위해서는 물체와 광원의 상호작용(BRDF)에 대한 정확한 계산을 필요로 하는데 이를 rasterization graphics에서 정확하게 표현하는것에는 한계가 있다. 이에 따라 여러가지 lighting 모델들이 존재하는데 그중에서 극단적으로 단순화 시키면서도 최소한의 퀄리티를 보이는 lighting model이 바로 phong 모델이다. phong model은 물체를 표현하는 색상을 네가지로 나누어 계산하는데 1. ambient light 2. diffuse light 3. specular light 이다. 여기에 빛을 발산하는 경우에 더해지는 4. emissive ligh..
opengl super bible 6판을 읽고 작성하였습니다. opengl에서 uniform은 vertex별로 다른 값을 갖는 attribute와 다르게 전체 primitive에게 동일하게 적용되는 속성을 말한다. shader에서는 이러한 변수 선언시 uniform변수를 넣는것으로 선언이 가능하다. vertex shader에서 uniform의 값을 바꾸는것은 불가능하지만 선언은 할 수 있다. 그렇다면 이런 uniform은 언제 사용될까? 가장 일반적인 사용처는 변환행렬이 될 것이다. 하나의 모델에게 공통적으로 적용되는 값이기 때문이다. 즉 model view projection matrix가 이러한 uniform으로 선언된 변수를 통해 전달된다. c++프로그램 내에서 uniform은 glUniform*을..
opengl 데이터는 버퍼를 통해서 저장을 한다. 그중에서도 vertex에 대한 정보 저장을 이해하기 위해서는 vao와 vbo가 어떻게 만들어지고 사용하는지 이해해야 한다. 이런 데이터는 cpu가 아닌 gpu의 vram에 저장되어 병렬처리하므로 빠르게 화면에 랜더링할 수 있다. VAO (Vertex array object),VBO(vertex buffer object)에 대해서 살펴보면 VBO는 그래픽카드의 vram에 저장되는 데이터로 하나의 vertex들에 대한 정보들이 들어간다. 예를들어 vertex의 위치, vertex의 색상, vertex의 normal정보등이 이러한 vbo에 해당한다. VAO는 여러개의 VBO를 담을 수 있다. 즉, 어떠한 오브젝트에 대한 정보를 저장하는데 사용된다. VBO에 저..
출처: The Cherno https://www.youtube.com/playlist?list=PLlrATfBNZ98foTJPJ_Ev03o2oq3-GGOS2 OpenGL www.youtube.com OpenGL은 그래픽스 표준 API 규격으로 90년대초에 시작된 2차원, 3차원 그래픽 프로그래밍중 가장 일반적이면서 간단한 표준입니다. 현재 4.6버전이 가장 최신 버전으로 짧게는 수개월에서 몇년에 한번 출시를 합니다. OpenGL은 라이브러리나 엔진, 프레임워크가 아닌 표준 API의 규격(specification)입니다. 즉, opengl은 어떠한 코드들이 아닙니다. opengl를 이용한 구현은 각 graphics processing unit의 제조사의 드라이버에 구현이 되어 있습니다. 예를들어 rtx 2..
본 학습노트는 2021년 1학기 고려대학교 한정현 교수님의 컴퓨터 그래픽스 강의를 수강하고 이 내용을 기반으로작성하였습니다. 이전노트:https://reminder-by-kwan.tistory.com/142 이번 시간에는 global 조명 모델과 texturing에 대해 추가적으로 다루어 보겠습니다. 지금까지 다룬 simple phong model에서는 다른 물체들과의 상호작용에 대해서는 다루지 않았다. a는 가려져있음에도 빛이 오는것 처럼 보인다. b는 s3로부터 반사되는 빛이 무시되었다. c가 실제 와 유사하다고 볼 수 있다. 따라서 c와같은 빛 표현을 하기 위해서는 global illumination 표현이 필요하다. 이러한 global illumination 모델중 대표적인 모델이 ray trac..
본 학습노트는 2021년 1학기 고려대학교 한정현 교수님의 컴퓨터 그래픽스 강의를 수강하고 이 내용을 기반으로작성하였습니다. 이전노트: https://reminder-by-kwan.tistory.com/141 이번 시간에는 물체의 표면을 표현하는 방식에 대해 알아보도록 하겠습니다. 실제 물체는 표면이 완전히 매끄러울 수 없기 때문에 아무리 매끄러운 표면에 울퉁불퉁한 이미지를 입혀봤자 실제와 같은 표현이 어렵습니다. 저는 건축공학을 공부했었는데 설계 수업에서 스케치업으로 모델링을하고 표면에 콘크리트 텍스쳐를 아무리 그럴듯하게 입혀도 랜더링 결과가 마음에 들지 않았습니다. 지금 생각해보면 실제 표면이 울퉁불퉁하지 않음에서 오는 한계가 아니었을까 합니다. 이제 본문으로 들어가자면 표면이 매끄러운 경우 아무리 ..
본 학습노트는 2021년 1학기 고려대학교 한정현 교수님의 컴퓨터 그래픽스 강의를 수강하고 이 내용을 기반으로작성하였습니다. 이전시간: https://reminder-by-kwan.tistory.com/140 실시간 애니메이션에서 캐릭터는 골격을 이용하여 움직인다. 따라서 이 골격을 정의하고 움직이는것은 중요한 요소이다. 서론에서 설명한 바와 같이 그래픽 디자이너는 모델링을 통해 캐릭터를 제작한다. 제작된 캐릭터는 dress pose로 정의되고 이 포즈에 리깅을 통해 골격이 합쳐진 모델이 된다. 3ds Max에서는 사람 캐릭터 모델링을 위해 bipad라는 골격이 제공된다. 모든 골격에는 tree 형태의 hierarchy가 존재한다. 위 그림은 bipad의 hierarchy이다. 이러한 상하관계가 필요한 ..
본 학습노트는 2021년 1학기 고려대학교 한정현 교수님의 컴퓨터 그래픽스 강의를 수강하고 이 내용을 기반으로작성하였습니다. 이전시간: https://reminder-by-kwan.tistory.com/139 이제 스크린에서 물체를 선택하는 방식과 회전하는것에 대해 알아보고자 합니다. 우리가 스크린을 조작하여 물체를 선택할 때 어떤 물체가 선택되는지, 손가락으로 물체를 슬라이드하면 어떻게 돌아가는지등에 대해 알아봅시다. 먼저 물체를 선택하는것은 간단하게 본다면 screen 에서 z값이 가장 작은 ( 카메라와 가장 가까운) 물체를 선택하게 됩니다. 이는 매우 간단한 작업처럼 보이지만 여기에는 생각보다 고려해야할 점들이 많습니다. 가장 가까운 물체를 선택하는 방식은 레이저를 쏴서 가장 먼저 맞는 물체를 선택..