본문 바로가기

전체 글86

Ray Tracing (2) - 조명 연산(Phong Shader) 이 포스팅은 기본 백색광(light) 와 Ray 좌표 (0,0,1) 를 기준으로 합니다. Ambient + Diffuse + Specalur = Phong reflectionhttps://en.wikipedia.org/wiki/Phong_reflection_model Phong reflection model - WikipediaFrom Wikipedia, the free encyclopedia Shading algorithm in computer graphics The Phong reflection model (also called Phong illumination or Phong lighting) is an empirical model of the local illumination of points o.. 2024. 6. 29.
Ray Tracing (1) - 구와 직선 충돌의 원리 안녕하세요.오늘은 Ray Tracing을 이용한 구와 직선 충돌의 원리에 대해 알아보겠습니다. 여기에 우리가 보는 모니터 즉, 눈이 있다고 가정하겠습니다.역방향 광 추적에서는 각각 픽셀로부터 역방향 광선(Ray)을 쏴줍니다.(한 픽셀에서 여러 개의 광선을 쏘는 방법도 있습니다.) Ray가 가다가 구에 부딪힙니다.부딪힌 지점을 계산할 수 있습니다. 광선이 쭉 다가 물체에 부딪혔다고 가정해봅니다.충돌된 부분을 계산해 물체의 색을 가져옵니다.이 색으로 픽셀의 색을 결정합니다. 그래서 이 눈으로 픽셀을 볼 때 모든 픽셀들의 색을 결정하면이 위치에 물체가 그려졌구나 하는 것을 알 수 있습니다.  눈이 있고 2차원의 x, y 좌표가 있는 모니터가 있습니다.이 안에 x,y,z 3차원의 가상의 공간과 가상의 물체를 정.. 2024. 6. 29.
Vector(3) - 내적과 외적 벡터에서 스칼라값이라는 것을 많이 이용합니다.이름만 들어보면, 아.. 또 용어 나왔다. 라고 싶을텐데 사실 별 거 없습니다.하나의 숫자로만 표시되는 양 즉, 단지 크기만 있는 물리량, 즉 숫자(1, 2, 3.14) 입니다.이렇게 벡터와 스칼라를 비교할 수 있습니다. Scalar(3.14f)  Vector(1.11f, 2.8f, 3.14.f, 1.0f) 내적a · b : Dot product, scalar product외적a x b : Cross product, vector product a · b  를 계산하는 법a = (1,2), b = (3,4) 라고 할 때  내적 값a · b = (x1 * x2) + (y1 * y2) = 1 * 3 + 2 * 4 = 11; 두 벡터 사이의 각도가 크면 두 벡터의 D.. 2024. 6. 26.
Vector(2) - 벡터의 방향과 거리 벡터의 기본적인 것들을 알아보겠습니다.일단 벡터(vector)는 크기(또는 길이)와 방향을 가지는 양입니다.수학적으로 벡터는 공간에서 크기와 방향을 가지는 양을 나타내며,주로 화살표나 굵은 글씨로 표현됩니다. 아래에는 그림에 대한 예시입니다.그림에서는 교수가 조교를 바라보고(방향) 있고 좀 멀리있네요?(크기, 길이) ㅎㅎ일단 주어진 좌표로는    교수  = vec2(1.2, 1.0)   조교 =  vec2(5.0, 6.0) 인데요. 이때 Target(조교) - Boss(교수)를 한다면 거리에 대한 x, y 좌표를 구할 수 있습니다. 그럼 거리 vec -> vec2(3.8, 5)입니다. 그럼 교수님과 조교님과의 거리는 얼마나 될까요?b - a 를 이용해 삼각형을 구하고 피타고라스 정리를 이용해 거리( 벡터.. 2024. 6. 26.
Vector(1) - 컴퓨터 그래픽스의 핵심 (Ray Tracing) 여기서는 간단한 Ray Tracing의 개념만 설명하겠습니다. 우리의 눈은 어떤 물체를 보려면 빛이 있어야합니다.당장 불을 끄고  책을 읽으라고 하면 글씨가 안 보일 것입니다. 백색광인 태양이 물체 표면에 반사가 될 때 일부 색상은 흡수되고반사가 되는 색깔만 우리의 눈에 볼 수 있습니다. Ray Tracing의 기본 개념은 아주 간단합니다.한 스크린이 있고 여러 픽셀들의 색깔 값을 결정하는 것입니다. 우리가 사용하는 역방향 광추적 알고리즘은우리의 눈이 어떤 픽셀을 바라보는 방향을 계산합니다.이 때 벡터가 사용됩니다. 방향 벡터를 픽셀로부터 연장을 해 가상의 세계의 광선을 발사합니다.광선을 발사하다가 어떤 물체에 부딪힙니다. 나무는 초록색, 하늘은 파란색 등등  물체 자체에 표면의 성질이 있을 것입니다.그.. 2024. 6. 26.
Box Blur vs Gaussian Blur(2) - 컨볼루전 계산 방식의 차이 · 출처https://en.wikipedia.org/wiki/Kernel_(image_processing)위키피디아의 image processing을 설명한 이미지 중 하나입니다.Identity가 원본임을 확인할 수 있습니다. (행렬에선 항등행렬로 많이 쓰이는 용어입니다.)Ridge or edge detection 은 외곽선을 통해 딥러닝 초해상도 등 다양한 연구로 많이 활용되었습니다.등등 많은 processing 기능이 있지만 우리는 Gaussian blur 와 Box blur를 볼 것입니다. · 출처https://medium.com/@bdhuma/6-basic-things-to-know-about-convolution-daef5e1bc411 6 basic things to know about Conv.. 2024. 6. 26.