본문 바로가기

metal4

무게 중심 좌표계, Barycentric coordinates Barycentric coordinate system - WikipediaFrom Wikipedia, the free encyclopedia Coordinate system that is defined by points instead of vectors Barycentric coordinates ( λ 1 , λ 2 , λ 3 ) {\displaystyle (\lambda _{1},\lambda _{2},\lambda _{3})} on an equilateral triangle and on a right triangle.en.wikipedia.org삼각형 색상 보간삼각형의 각 꼭짓점에 3원색을 선언하고 삼각형 내부의 색상은 내삽을 이용해서 처리하기Interpolation하나의 직선 위에 Interpola.. 2024. 4. 30.
Perspective Projection & Phong Shading Perspective Projection필요 데이터 구조눈 위치 벡터 (원근 투영을 구현하기 위함)화면을 바라보는 시점의 좌표(World)를 설정한다.화면을 바라보는 시점에 각 화면의 픽셀을 보는 방향 벡터를 구한다.Ray의 방향 벡터를 위의 벡터로 설정해 투영한다.final class Raytracer{... let eye: vector_float3 = .init(0, 0, -1) func render()->[Vertex]{ var vertices:[Vertex] = Array(repeating: .init(position: .zero, color: .zero), count: height * width) for j in (0..Phong Shading Phong sh.. 2024. 4. 22.
Raytracing으로 구 그리기 ⛔ Metal Shader를 사용한 방법이 아니라 CPU를 사용해서 픽셀마다 색상을 직접 지정해 그리내는 렌더링 방법, GPU를 사용해서 나타낸 것은 아니다.필요 데이터 구조 Ray - 광선 광선의 시작점 광선의 방향 Hit - 충돌시 유의미한 데이터 광선과 충돌 지점까지 거리 (d) 충돌한 위치 (position) 충돌한 위치의 법선 백터 (normalize) Sphere - 구 구의 중심 좌표 구의 반지름 구의 재질(색상) Raytracer - 광 추적기 스크린의 사이즈 물체 (구 정보를 여기에 포함시킨다.) ⇒ 화면상에 픽셀들에서 광선을 내보내서 충돌하는 물체의 빛, 재질의 정보를 얻어오는 역할이다. 필요 메서드 구 intersectRayCollision 특정 Ray가 본인에게 충돌하는지 확인하는 .. 2024. 3. 31.
블룸 효과 만들기 with Metal 커널 Kernel (image processing) - Wikipedia From Wikipedia, the free encyclopedia Matrix used in image processing to alter an image In image processing, a kernel, convolution matrix, or mask is a small matrix used for blurring, sharpening, embossing, edge detection, and more. This is accomplished by en.wikipedia.org Box Blur → 흐리게 만들어준다. Gaussian Blur → 흐리게 만들어준다. Weights: [0.0545f, 0.2442f, 0.4026.. 2024. 3. 11.