본문 바로가기

그래픽

안드로이드 OpenGL 끄적이는중.. 최근들어서 개인프로젝트를 진행하고 싶은데, 결과물을 내지못하고 왜 매일 같은 것만 반복할까 고민 해봤을 때, 너무 기본을 이해하려는 습관때문에 진도가 나가지지 않고, 제자리에서 머물다가 흥미가 사라져서 결과물을 만들지 못했던것, 예를 들면 OpenGL로 게임을 만들고 싶었는데, 초반 진입장벽이 높아 삼각형만 그려보고 이해하려다가 다시 시도하기를 3번째 반복하다가. 처음 내가 프로그래밍에 접했던것처럼, 코드의 결과, 동작만 대충 보고 원리까진 고민하지 않기로하고 무언가 만들어보기위해서 시도한 결과다. 안드로이드에서 OpenGL를 사용해서 각 색이다른 큐브 3개를 만들고 그냥 빙빙돌게했다. 튜토리얼 다 보고는 충돌처리나 중력같은거 적용해보고 게임스러운거(?) 만들어봐야지..ㅋㅋ
Vector - 벡터 개념 정리 Vector(벡터) 란 - 방향과 크기를 가지고있는 물리적 개념에서의 양 벡터의 길이 - 크기와 방향을 가지는 Vector는 3개의 성분(x, y, z) 로 그려지는데 이를 피타고라스의 정리를 사용해서 벡터의 길이를 구할 수 있다 V라는 Vector의 길이를 3개의 성분(x, y, z)를 통해 그린다고 하면 ||V|| = sqrt(x^2, y^2, z^2) 계산 식을 통해 그릴 수 있다. Vector Normalize(벡터 정규화) 란 - 벡터의 크기를 1로 만들어 Unit Vector(단위 벡터)로 만드는 것 - 정규화된 벡터는 방향은 그대로이지만 단위는 1이 됨 - 벡터는 기하학적으로는 같은 방향과 길이를 가지고 있을 때 동일하다고 보지만 대수적으로는 동일한 차원이고 대응되는 성분이 같을 경우에만 동..
OpenGL MVP Matrix OpenGL을 구성하는 기본적인 Matrix는 Model Matrix, View Matrix, Projection Matrix가 있음 - Model Matrix : 그리려는 Model을 OpenGL 세계의 어디간에 배치할 때 사용 - View Matrix : 카메라 (보는 관점, 시점) - Projection Matrix : 평면인 스크린에 투영과 3D의 관점을 얻기위한(설정을 위한) 변형
OpenGL - mix() 함수 OpenGL에서 자주 vec4 p1 = mix(gl_in[0].gl_Position, gl_in[1].gl_Position, gl_TessCoord.x); 이런식의 코드를 자주 접했을 수 있다. 여기서 mix는 Reference문서를 보면 mix — linearly interpolate between two values 이렇게 나와있다. 뜻은 두 값을 선형보간한다. 선형 보간이란 끝점의 값이 주어졌을 때 그 사이에 위치한 값을 추정하기 위하여 직선 거리에 따라 선형적으로 계산하는 방법 이다. 그니까 저 코드는 gl_in[0].gl_Position과 gl_in[1].gl_Position사이의 gl_TessCoord.x의 위치를 추정한 뒤 p1이라는 백터에 넣은 것이다. 위치를 추정하기 위한 계산법은 x X..