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

  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • Techmoan

    Techmoan

    31 Mayıs 2009
  • WhtButterflyLiz

    WhtButterfly

    14 NİSAN 2008