Jumping Bytes and Hopping Bits
the church of tech
Menu

opengl es 예제 August 2, 2019

예제로 지정된 정점 셰이더에는 uMVPMatrix와 vPosition 사이에 곱셈이 있습니다. vPosition는 언급된 에일리어좌표를 포함하는 행렬입니다. uMVPMatrix는 안드로이드 프레임워크에서 매트릭스 클래스에서 제공하는 유틸리티 메서드 덕분에 형성된 매트릭스입니다. GLSL은 매트릭스 곱셈을 곱하고 간단하고 효과적으로 처리할 수 있습니다. 또 다른 뉘앙스, 나는 “vTextureCoordinate.xy”를 사용했다. 이렇게 하면 vTextureCoordinate인 크기 4 벡터의 첫 번째 및 두 번째 값을 포함하는 크기 2 벡터가 만들어집니다. “vTextureCoordinate.xx”를 사용하여 두 값 모두에 대해 vTextureCoordinate의 첫 번째 값이있는 크기 2 벡터를 만들 수 있었습니다. 안드로이드 장치에서 사용할 수있는 OpenGL ES의 여러 버전이 있습니다. 매니페스트에 응용 프로그램에 필요한 API의 최소 버전을 지정할 수 있지만 동시에 최신 API의 기능을 활용할 수도 있습니다. 예를 들어 OpenGL ES 3.0 API는 2.0 버전의 API와 이전 버전과 호환되므로 OpenGL ES 3.0 기능을 사용하지만 3.0 API를 사용할 수 없는 경우 2.0 API로 다시 사용할 수 있도록 응용 프로그램을 작성할 수 있습니다.

또는, 더 나은 아직, 안드로이드 개발자의 웹 사이트에 놀라운 튜토리얼 : https://developer.android.com/training/graphics/opengl/index.html 플랫폼 버전이 AEP를 지원하는지 확인하려면, hasSystemFeature (문자열) 방법을 사용하여, FEATURE_ 오픈글레스_익스텐션_팩을 인수로 합니다. 다음 코드 조각은 이렇게 하는 방법의 예를 보여 줍니다: 텍스처 압축 메모리 요구 사항을 줄이고 메모리 대역폭을 보다 효율적으로 사용 하 여 OpenGL 응용 프로그램의 성능을 크게 향상 시킬 수 있습니다. 안드로이드 프레임 워크는 ETC1Util 유틸리티 클래스와 etc1tool 압축 도구 ( / 도구 / 안드로이드 SDK에 위치)를 포함하여 표준 기능으로 ETC1 압축 형식에 대한 지원을 제공합니다. 텍스처 압축을 사용하는 Android 응용 프로그램의 예는 Android SDK의 압축텍스처액액 코드 샘플(/샘플//ApiDemos/Src/com/example/android/apis/graphics/)를 참조하십시오. 다음 섹션에서는 구현 세부 사항에 들어가지 않고 몇 가지 중요한 사항과 “gotchas”를 소개합니다. 모든 것이 어떻게 함께 진행되는지 알아두려면이 기사를 따라가는 예제 프로젝트를 확인하십시오 : https://bitbucket.org/Xzan/opengl-example . 모든 읽기를 완화하기 위해 의도적으로 하나의 파일에 넣어왔다 유의하시기 바랍니다. 주: 위의 예제에서는 결합된 프로젝션 매트릭스와 카메라 뷰 매트릭스를 적용하는 정점 샤이더의 단일 변환 행렬 멤버를 정의합니다. 응용 프로그램 요구 사항에 따라 정점 세이더에서 별도의 프로젝션 매트릭스 및 카메라 보기 매트릭스 멤버를 정의하여 독립적으로 변경할 수 있습니다. 그렇기 때문에 비율 및 기타 종류의 정보를 정점 샤더에 전달하는 것이 중요합니다.

이것이 예제 프로젝트에서 이 줄의 유용성입니다. 내가 발견 한 가지 문제는 당신이 SDL_GL_SetAttribute (SDL_GL_DEPTH_SIZE, 24)를 호출하는 경우입니다); 전에 SDL_CreateWindow 안드로이드에 그것은 당신이 당신의 창이 초점을 잃을 때 OpenGL ES 컨텍스트를 잃게됩니다. 그런 다음 앱으로 돌아가면 유효한 컨텍스트가 없기 때문에 모든 opengl 호출이 실패하므로 화면에 아무 것도 그려지지 않습니다. (적어도 SDL_CreateWindow 전에 해당 호출을 이동하거나 SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24) 줄을 제거할 때까지 장치에서 일어난 일입니다. 다음 예제 코드에서는 EGLContext를 만들고 결과를 확인하여 사용 가능한 OpenGL ES 버전을 확인하는 방법을 보여 줍니다.

Categories: Uncategorized