[Android] Systrace를 사용하여 SurfaceFlinger 동작 원리 확인하기

Android System Trace (Systrace (출처1))를 사용하여 GPU가 Rendering 한 결과 이미지를 SurfaceFlinger을 통해서 Display 되는 순서를 확인하는 방법에 대해서 정리하였다. Systrace를 사용하여 순서를 확인하기 전에 Android에서 Producer, Consumer, BufferQueue에 대한 이해가 필요하다. 솔직히 완전히 이해하진 못하지만, 간단히 이해한 내용을 정리하였다. 다음에 알게 되는 내용을 추가하거나,  또는 잘못된 내용을 찾게 되면 수정할 계획이다. 그림 1: Producer/Buffer … Read more

[RT in One Weekend Series 5] Adding a Sphere (번역)

목차: Series 1: Index and Overview (Link) 이전 글: Series 4: Rays, a Simple Camara, and Background (Link) 다음 글: Series 6: Surface Normals and Multiple Objects (Link) Ray Tracer 예제에서 구(sphere)를 사용하는 경우가 많다고 한다. 가장 큰 이유는 Ray가 Travel을 할 때 구에 Hit을 했는지 여부를 판단하는 데 있어서 계산식이 아주 직관적이기 때문이다. 예를 들어서 특정 포지션 (cx, cy, cz)에 구가 … Read more

[RT in One Weekend Series 4] Rays, a Simple Camara, and Background (번역)

목차: Series 1: Index and Overview (Link) 이전 글: Series 3: The “vec3” Class (Link) 다음 글: Series 5: Adding a Sphere (Link) Ray Tracer의 가장 기본은 Ray이다. 보통 모든 Ray Tracer은 Ray Class를 가진다. Ray Class는 Ray가 도달하는 위치의 최종 색상 값을 계산한다. 출처 1의 기사(Article)에서는 Ray를 p(t) = A + t*B 함수로 정의하였다. p는 3D Position(위치)을 의미하며, t는 Float Number를 … Read more