내 버텍스 쉐이더가 왜 내 휴대 전화 (Casio Commando, Android 2.3.3)에서 동작하는지 알아 내려고했지만 내 타블렛 (Motorola Xoom, Android 3.2.4)에서 테스트 한 이유는 무엇입니까? t 작업 ...안드로이드에서 GLSL의 배열
버텍스 쉐이더 :
uniform mat4 uMVPMatrix;
uniform mat4[4] uBoneMatrix;
attribute vec4 vPosition;
attribute vec4 vBoneIndex;
attribute vec4 vBoneWeight;
void main() {
gl_Position = uMVPMatrix * ((vBoneWeight.x * uBoneMatrix[int(vBoneIndex.x)]) +
(vBoneWeight.y * uBoneMatrix[int(vBoneIndex.y)]) +
(vBoneWeight.z * uBoneMatrix[int(vBoneIndex.z)]) +
(vBoneWeight.w * uBoneMatrix[int(vBoneIndex.w)])) * vPosition;
}
내 태블릿 인쇄에 glGetShaderInfoLog()
:
(2) : error C7551: OpenGL first class arrays require #version 120
프로젝트 목표 8 안드로이드, 나는 setEGLContextClientVersion(2)
를 호출하고 있습니다. 태블릿 GL_VERSION
은 OpenGL ES 2.0
이고 전화 번호는 OpenGL ES 2.0.1566933
입니다. 두 기기의 GL_SHADING_LANGUAGE_VERSION
은 OpenGL ES GLSL 1.00
입니다.
(2) : error C0201: unsupported version 120
(3) : error C7532: global type mat4 requires "#version 100" or later
(4) : error C7551: OpenGL first class arrays require #version 120
(5) : error C7532: global type vec4 requires "#version 100" or later
(10) : error C7532: global variable gl_Position requires "#version 100" or later
(10) : error C7532: global type int requires "#version 100" or later
그래서 나는 그것이 드라이버 사이에 단지 차이 같아요 : 그럼 내가 더 오류를 얻을 내 쉐이더에 #version 120
라인을 앞에 추가 할 때
심지어 낯선 사람은? 내가 태블릿의 운전 기사가 #version 120
을 추가하는 것에 대해 알고 있고, 내가 그것을 추가 할 때 불평하는 것은 나에게 이상하게 보인다.
(대신 vBoneIndex를 ivec4로 설정하고 W의 무게를 너무 늘리고 싶습니까?) – Will
@Will : 그는 OpenGL ES를 사용하고 있습니다. 그들은'ivec4'를 아직 가지고 있지 않습니다. 또는 적어도, 그들은 진짜 정수가 아직 없다. 그들은 여전히 내부적으로 떠있을 것입니다. –