내 응용 프로그램 (대부분 C++)에서 3D 관련 요소에 대해 주로 float 또는 int를 사용할지 여부를 결정하려고합니다. 대부분의 ARM 기반 장치에는 하드웨어 부동 소수점 지원이 없다는 것을 이해합니다. 따라서 부동 소수점을 사용한 무거운 리프트는 눈에 띄게 느립니다.Android NDK OpenGL 앱의 부동 소수점 또는 고정 소수점?
그러나 대부분의 경우 모든 데이터를 준비해야합니다 (적용 할 수있는 경우 꼭지점 버퍼를 사용하고 많은 변경하지 않는 행렬을 사용하여 변환). 따라서 OpenGL의 목구멍에 데이터를 채우고 있습니다. 이것이 GPU에 다소 이상하다고 생각할 수 있습니까? (Btw, 최소 요구 사항은 OpenGL ES 2.0이므로 이전의 1.x 기반 전화기는 제외 할 수 있습니다.)
또한 int와 float을 섞어서 일치시킬 때 패널티는 어떻게됩니까? 내 모든 지오메트리가 단지 미리 빌드 된 플로트 버퍼라고 가정하지만 매트릭스 곱셈과 같은 값 비싼 연산이 필요하기 때문에 매트릭스에 int를 사용합니다. 여기에 얼마나 많은 분노가 생길까요?
덧붙여서, 나는 기대치를 낮게 유지해야한다는 것을 알고 있습니다. (CPU의 부동 소수점을 요구하는 소리가 너무 많습니다.) 128 비트 VMX 레지스터 같은 것이 있습니까?
(그리고 비밀리에 fadden이 질문을 읽고 멋진 대답을 가지고 것을 바라고 있어요.)이 G1과 MyTouch의 같은
나는 우경에 이것에 대한 답이 있음을 알았다. 내가 두 번 이상 투표 할 수 있기를 바란다. 이미 OpenGL ES 2.0으로 제한하고 있으므로 정점 및 조각 쉐이더를 작성할 수 있으므로 모든 방향으로 갈 수 있으며 ARMv7이 필요할 수도있다. 손). 차라리 대중에게 쓰레기를 던지기보다는 멋진 사용자로 더 많은 사용자를 끌어 들이고 싶습니다. 그들은 대부분 PlayStation 1 용 게임 제작을 대부분 중단했습니다. – EboMike
ARMv7에서 float을 수행해야합니다. OpenGL ES 2.0과는 관련이 없지만 가깝습니다. – ognian
대부분의 새 휴대폰에는 OpenGL ES 2.0이있는 것으로 보입니다. 그러나 AnTuTu 벤치 마크와 같은 벤치 마크 점수를 살펴보면 저렴한 가격의 많은 모델이 FPU가없는 것으로 나타났습니다. –