Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[Android] AGSL에 대해 알아보자

Kong
January 19, 2024
220

[Android] AGSL에 대해 알아보자

AGSL에 대해 알아보자

Kong

January 19, 2024
Tweet

Transcript

  1. Android Graphic Shader Language? Android Graphics Shading Language (AGSL) is

    used by Android 13 and above to define the behavior of programmable RuntimeShader objects. AGSL shares much of its syntax with GLSL fragment shaders, but works within the Android graphics rendering system to both customize painting within Canvas and filter View content.
  2. Android Graphic Shader Language? AGSL은 안드로이드 13 이상에서 프로그래밍 가능한

    RuntimeShader 객체의 동작을 정의하는 데 사용됩니다. AGSL은 대부분의 구문을 GLSL 프래그먼트 셰이더와 공유하지만 Android graphics rendering system 내에서 작동하여 Canvas 내에서 페인팅을 커스터마이징하고 뷰 콘텐츠를 필터링합니다.
  3. Android Graphic Shader Language? AGSL은 안드로이드 13 이상에서 프로그래밍 가능한

    RuntimeShader 객체의 동작을 정의하는 데 사용됩니다. AGSL은 대부분의 구문을 GLSL 프래그먼트 셰이더 와 공유하지만 Android graphics rendering system 내에서 작동하여 Canvas 내에서 페인팅을 커스터마이징하고 뷰 콘텐츠를 필터링합니다.
  4. AGSL 쪼개보기 1. Shader 2. Android Graphic Rendering System 3.

    GLSL Fragment Shader 4. Canvas 5. Runtime Shader
  5. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    2. Android Graphic Rendering System 3. GLSL Fragment Shader 4. Canvas 내부에서 작동한다 5. Runtime Shader
  6. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3. GLSL Fragment Shader 4. Canvas 내부에서 작동한다 5. Runtime Shader
  7. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3. GLSL Fragment Shader 4. Canvas 내부에서 작동한다 5. Runtime Shader
  8. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3D의 물체를 2D로 변경하는 과정 3. GLSL Fragment Shader 4. Canvas 내부에서 작동한다 5. Runtime Shader
  9. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3D의 물체를 2D로 변경하는 과정 3. GLSL Fragment Shader 4. Canvas 내부에서 작동한다 5. Runtime Shader
  10. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3D의 물체를 2D로 변경하는 과정 3. GLSL Fragment Shader 모든 조각(Pixel)에서 실행되는 색깔 계산 프로그램 agsl = fragment shader 4. Canvas 내부에서 작동한다 5. Runtime Shader
  11. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3D의 물체를 2D로 변경하는 과정 3. GLSL Fragment Shader 모든 조각(Pixel)에서 실행되는 색깔 계산 프로그램 agsl = fragment shader 4. Canvas 내부에서 작동한다 5. Runtime Shader
  12. What is Skia? Skia = 다양한 하드웨어 및 소프트웨어 플랫폼에서

    작동하는 공통 API를 제공하는 오픈 소스 2D 그래픽 라이브러리 Android, Chrome, Flutter 등등
  13. What is Skia? Skia = 다양한 하드웨어 및 소프트웨어 플랫폼에서

    작동하는 공통 API를 제공하는 오픈 소스 2D 그래픽 라이브러리 Android, Chrome, Flutter 등등
  14. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3D의 물체를 2D로 변경하는 과정 3. GLSL Fragment Shader 모든 조각(Pixel)에서 실행되는 색깔 계산 프로그램 agsl = fragment shader 4. Canvas 내부에서 작동한다 AGSL은 SKSL이고 Skia 때문에 내부에서 동작할 수 있구나! 5. Runtime Shader
  15. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3D의 물체를 2D로 변경하는 과정 3. GLSL Fragment Shader 모든 조각(Pixel)에서 실행되는 색깔 계산 프로그램 agsl = fragment shader 4. Canvas 내부에서 작동한다 AGSL은 SKSL이고 Skia 때문에 내부에서 동작할 수 있구나! 5. Runtime Shader
  16. AGSL 쪼개보기 1. Shader = 정점위치나 픽셀 색깔을 계산하는 함수

    예쁜 것 2. Android Graphic Rendering System 3D의 물체를 2D로 변경하는 과정 3. GLSL Fragment Shader 모든 조각(Pixel)에서 실행되는 색깔 계산 프로그램 agsl = fragment shader 4. Canvas 내부에서 작동한다 AGSL은 SKSL이고 Skia 때문에 내부에서 동작할 수 있구나! 5. Runtime Shader 커스텀한 쉐이더코드를 넣을수있는 객체
  17. Android Graphic Shader Language? 3D에서 2D로 그려지는과정에 위치한 Fragment Shader(픽셀마다

    코드가 실행된다)를 커스터마이징하는 역할을 하며,RenderEffect를 통해서 적용할수 있고, 적용하면 이쁘다.
  18. AGSL 다뤄보기 – 색깔 변경 기본 함수 기본 함수의 필수파라미터

    (Position X, Position Y) Red, Green, Blue , Alpha Float들이 곱해진것
  19. AGSL 다뤄보기 – 그림 변경 엥 왜이러지.. ㅠㅠ 기존 사자의

    색깔을 잃어버렸다! 기존의 사자그림의 색깔과 합치는게 중요하다!
  20. 기존의 색깔을 셰이더에서 가져오는법 Bridge되어 해당 uniform 변수에 값이 들어간다.

    잘사용하는 예: Size, 드래그중인픽셀 eval(float2)를 넘기면 기존 그림의 픽셀색깔을 얻을수 있어요.
  21. AGSL 다뤄보기 – 애니메이션넣기 수동으로 조금씩 조정.. Fit이므로 어떤화면에서도 똑같이

    보인다. 피타고라스방정식으로 거리를 알수있다. 실제로 멀어진 거리가 된다.
  22. 적용하면서 공부해보자! 1. https://www.shadertoy.com에 접속 2. 원하는 효과 검색 3.

    GPT에게 수학공식 분석하기 4. Android 공식문서를 통해 변환해보기 (OpenGL -> SKSL)
  23. 적용하면서 공부해보자! 1. https://www.shadertoy.com에 접속 2. 원하는 효과 검색 3.

    GPT에게 수학공식 분석하기 4. Android 공식문서를 통해 변환해보기 (OpenGL -> SKSL) 5. https://shaders.skia.org/ 테스트