SORU
5 ŞUBAT 2012, Pazar


Doku Sıkıştırma Android OpenGL

Android için Doku Sıkıştırma nasıl kullanılır bilgi (ya da örnek) bulmak için yardıma ihtiyacım var biraz. PNG. şimdi bir sürü var ve onlar bellek miktarını azaltmak gerekir. Hepsinden iyisi, sıkıştırma bakıyordum ama yapamıyorum OpenGL içinde bunu kullanmak için nasıl anlamaya

Bazı doğru yönde bana gelin ya da bir şey bulamıyorum bazı örnekler sunabilir

Teşekkürler

CEVAP
1 Mart 2012, PERŞEMBE


Başlıca dört Doku Sıkıştırma türleri Android desteklenen:

  • ETC1 (Ericcson Doku Sıkıştırma). Bu biçim, tüm Android telefonları tarafından desteklenir. Ama bir alfa kanal desteği yok, bu yüzden yalnızca opak doku için kullanılabilir.
  • PVRTC (Ki Doku Sıkıştırma). Ki GPU ile cihazlar (Nexus, Kindle fire... S) tarafından desteklenen.
  • ATİTC (ATI Doku Sıkıştırma).Qualcomm Adreno GPU (Nexus One...) ile cihazlarda kullanılan.
  • S3TC (S3 Doku Sıkıştırma). Bu Doku Sıkıştırma GPU yonga entegre cihazlar (Motorola Xoom...) kullanılır

Daha detaylı bilgi here here.

Eğer dokular alfa yok eğer doğru değilse Kısacası, ETC1 kullanabilirsiniz. Eğer tüm cihazlar için mi istiyorsun yoksa senin dokular diğer üç tip sıkıştırılmış ve cihaza göre onları yüklemeniz gerekir.

Nasıl kullanmak için:

  1. Png dosyaları için bir araçETC-Pack, PVRTexTool, , * ATI Compressonator*9 doku tipine göre gibi kullanabilirsiniz) sıkıştırmak ve proje varlıkları için ekleyin.

  2. Eğer ETC1 kullanıyorsanız değil cihazın mevcut olduğunu belirlemek,:

    public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    
         String s = gl.glGetString(GL10.GL_EXTENSIONS);
    
         if (s.contains("GL_IMG_texture_compression_pvrtc")){
              //Use PVR compressed textures         
         }else if (s.contains("GL_AMD_compressed_ATC_texture") ||
                  s.contains("GL_ATI_texture_compression_atitc")){
              //Load ATI Textures           
         }else if (s.contains("GL_OES_texture_compression_S3TC") ||
                    s.contains("GL_EXT_texture_compression_s3tc")){
             //Use DTX Textures
         }else{
             //Handle no texture compression founded.               
         }
    
    }           
    
  3. Ham veri olarak sıkıştırılmış doku yük.

  4. Kullanmak yerine glCompressedTexİmage2D gltexımage2d:

    public void onDrawFrame(GL10 gl) {
    
       ....
    
       gl.glCompressedTexImage2D(GL10.GL_TEXTURE_2D, level, internalformat, width, 
                                 height, border, imageSize, data);
    
    }
    

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • HTC

    HTC

    12 Ocak 2006
  • Official Clouds

    Official Clo

    1 HAZİRAN 2011