본문 바로가기

OpenGL8

[SET_UP] 유니티 OpenGL/Vulkan 렌더러로 실행하기 기본적으로 윈도우 환경에서 유니티를 실행하면 DirectX로 실행된다. 윈도우 플랫폼만을 타겟으로 할 때는 전혀 문제 될 건 없지만 멀티 플랫폼으로 게임을 서비스 할 때는 소소한 차이점이 발생할 수 있다. (모바일은 OpenGLES 혹은 Vulkan 기반이 많다.) 그래서 아예 윈도우에서도 OpenGL 혹은 Vulkan 렌더러로 개발함으로써 안드로이드나 리눅스에서도 동일한 결과를 보장하는 방법이 있다. 문제는 유니티에서 이걸 따로 옵션으로 주는게 아니라서 실행명령어를 입력해서 강제로 설정해줘야 한다. Vulkan이나 OpenGL이나 명령어가 약간 다를 뿐 방법은 같으니 Vulkan으로 정리해둔다. 그런 다음 아래의 명령어를 입력하면 된다. ▼ Vulkan -force-vulkan ▼ OpenGL 4.5 .. 2021. 2. 23.
6. 삼각형 회전 시키기 GLM을 사용해서 삼각형을 회전시키는 것은 매우 간단하다. 회전 행렬에 원하는 각도만큼 넣기만 하면 끝이다. (물론 진짜 행렬 연산을 구현했다면 코드가 2배는 길어졌을 것이다.) 1 호도(Radian) 값 설정 회전을 한다는 것은 각도를 변경한다는 의미가 된다. 컴퓨터는 호도(Radian)으로 빠르게 연산하기 때문에 미리 1 호도값을 설정해서 사용하면 편리하다. ▼ 호도는 상수로 설정 해준다. const GLint WIDTH = 720, HEIGHT = 480; //--------------------------------------------- // 1 호도값 const float toRadians = 3.14159265f / 180.0f; //--------------------------------.. 2021. 1. 25.
5. GLM 라이브러리 적용하기 처음부터 수학 함수들을 직접 만들면서 OpenGL을 공부하는 것도 하나의 방법이지만 많은 사람들이 그래픽 프로그래밍을 제대로 맛보기도 전에 포기하는 경우가 더 많다고 한다. 외국 포럼에서도 직접 수함 함수를 구현하는 것보다도 그냥 빠르게 결과물을 보고 동작원리를 이해하는 것이 OpenGL에는 더 도움이 된다는 의견이 압도적으로 많다. 물론 OpenGL만 공부한다고 했을 때 경우를 가정했을 때라는 전제 조건이 붙는다. 그렇지 않다고 하더라도 나쁘지 않다는 의견도 많다. 결국 동작원리만 안다면 웬만한 코드들은 구현에 시간만 조금 들뿐이니까. 그러니 우리도 GLM을 사용해서 그래픽 프로그래밍을 좀 더 재밌고 편리하게 해 보자. GLM 이란? GLM(OpenGL Mathematics)는 이름 그대로 OpenGL.. 2021. 1. 19.
4. 삼각형 움직이기 이번엔 아주 간단한 애니메이션을 적용시켜본다. 쉐이더 역시 하나의 프로그램이기 때문에 외부에서 변수를 받아서 변환할 수 있는 것을 연습할 수 있다. 삼각형을 움직이는데 필요한 변수 선언 ▼ 코드 //--------------------------------------------- GLuint VAO, VBO, shader, uniformXMove; // 방향값(왼쪽, 오른쪽) bool direction = true; // 삼각형의 차이값 float triOffset = 0.0f; // 삼각형의 최대 차이값 float triMaxOffset = 1.0f; // 삼각형의 변화값 float triIncrement = 0.01f; //-------------------------------------------.. 2021. 1. 17.