Graphics
-
Blur 알고리즘Graphics/OpenGL ES 2.0 2021. 7. 6. 22:54
Blur is the expensive "post processing". 블러이펙트는 full screen scene이나 특정 사이즈를 blur효과를 주는 것이다. Texture를 렌더링한 장면에서 2d image를 연산하는 것을 “post processing“이라고 부른다. "Post processing"은 꽤 expensive한 연산으로 shader 프로그램에 상당한 optimization을 해야한다. The blur effect is used for blurring the full screen scene or blurring individual objects in that scene. Whenever we perform 2D image operations on a scene that has been..
-
OpenGL ES 3.0 - in/out 한정자Graphics/OpenGL ES 3.0 2020. 6. 1. 15:35
이 글은 OpenGL ES 3.0 Programming Guide (2nd ed.) [Ginsburg & Purnomo 2014-03-10] 를 나름 번역한 글입니다. GLSL 1.x에 있던 attribute, varying 한정자는 deprecated되었다. vertex shader의 input으로 들어오던 vertex attribute들과 fragment shader로 보낼 texture 좌표는 GLSL ES 3.0에서 어떻게 표시되는지 보자. 사라진 이유 - https://stackoverflow.com/questions/34627576/why-did-glsl-change-varying-to-in-out 공식https://www.khronos.org/opengl/wiki/Type_Qualifier_..
-
OpenGL ES 3.0 - Hello Triangle ExampleGraphics/OpenGL ES 3.0 2020. 5. 25. 12:08
이 글은 OpenGL ES 3.0 Programming Guide (2nd ed.) [Ginsburg & Purnomo 2014-03-10] 를 나름 번역한 글입니다. OpenGL 3.0을 시작하기에 앞서 간단한 예제를 작성해보려고 한다. 이 챕터에서는 삼각형을 하나 그려보려고 한다. Program 은 가장 간단한 삼각형을 그리는 프로그램을 작성할 것이다. 다음 스텝을 따라할 것이다. - 화면에 나타낼 수 있도록 EGL을 이용해 surface를 만들 것이다. - vertex, fragment shader를 로드할 것이다. - 프로그램 객체를 생성하고 vertex, fragment shader를 연결하는 program을 생성할 것이다. - viewport를 셋팅할 것이다. - color buffer를 cl..
-
OpenGL 끄적임 - FrameBufferGraphics/OpenGL ES 2.0 2019. 7. 7. 19:20
Graphics Fundamantals Modeling → Rendering Modeling What to Draw modeling is the process of developing a mathematical representation an inanimate or living object. ex) where is the position of the triangle. Rendering How to Draw rendering is about taking the actual box and displaying it realistically or placing it into a realistic setting. ex) where is the light, where is the position of the cam..
-
OpenGL 끄적임 - Image CropGraphics/OpenGL ES 2.0 2019. 5. 17. 18:19
Requirement crop the texture into the rect. How to change the texture vertices. change the projection matrix. change the glsl. Texture vertices It is quick and the easy way. Load Texture -> Mapping Texture. Load Texture -> Mapping Texture with stretched vertecies. Issues But when add the other textures, also change those vertices. The direction of the texture coordinate is different to what I th..
-
OpenGL 끄적임 - 4. Adding color and ShaderGraphics/OpenGL ES 2.0 2018. 6. 17. 20:04
챕터4. 색상과 명암 추가 실제 생활에서 물체는 다양한 색상과 명암을 가지고 있다. 집에서 벽만 보더라도 햇빛이 어디를 비추냐에따라 명암이 달라진다. 우리의 두뇌는 이 명암과 색상 차이를 우리가 뭘 보고 있는지 이해하는데 이용한다. 이는 예술가들이 이용했던 기법이다. 우리는 이전 챕터에서 hockey table를 그리는데 점, 선 만 이용을 했는데 색과 명암도 스크린에 칠해보자. 이는 다른 예제에도 재활용할 수 있는 아주 쉬운 프레임워크이다. 물체에 단일컬러를 설정하기 보다는 여러가지 색상을 조합하는 법도 알아본다. 그라데이션 넣기 (smooth shading) 삼각형에 그라데이션을 넣으려면 어떻게 그려야할까? 하나의 삼각형 안에 수 백만개 삼각형으로 색을 표현한다고 한다면 오버헤드가 심할 것이다. 이 ..
-
GLSL - Attribute, UniformGraphics/GLSL 2018. 6. 17. 19:32
Qualifier - attributeattribute는 vertex shader에서 OpenGL에 전달되는 변수이다. 이 용도의 변수를 attribute가 아닌 타입으로 지정하면 에러가 발생한다. vertex shader가 연결되어있는 동안에는 read-only이다. 항상 function body 윗 부분에 선언한다. Qualifier - uniform read-only global 변수타입이다. https://www.khronos.org/registry/OpenGL/specs/gl/GLSLangSpec.1.10.pdf
-
OpenGL 끄적임 - 5. Screen Aspect RatioGraphics/OpenGL ES 2.0 2018. 5. 31. 19:09
Adjusting to the screen’s aspect ratio 가로모드일 때, 우리가 그린 table이 찌그러지는건 OpenGL에 좌표를 바로 보내서 그렇다. 원하는 화면은 아래다. 점만 찍어서 되는게 있고 matrix넘겨야되는게 있고 차이가 뭔지? 모든 디바이스와 화면 방향을 고려할 수는 없다.-선형대수와 matrix, vector를 배워본다.-matrix로 투영을 해본다. screen크기가 단말마다 다른데 테이블이 screen에 어떻게 투영을 결정하는지? 정답은 우리가 그릴 물체를 정사각형 안에 들게 그리면 된다. 이를 orthographic projection (직교투영) 이라고 한다. 720x1280의 device에 물체를 그린다고 하자. 720의 작은 범위를 1이라고 하고, 1280의 큰..