játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5444
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2519

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2188
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1625
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] > 9 < [10] [15]
DMG - Szerkesztő | 3172 hsz       Online status #169156   2011.11.21 20:08 GMT+1 óra  
Idézet
LugaidVandroiy :
Szia!

Én mind a logikát, mind a rendert statekre osztom.

Kód:
private final int STATE_MENU = 0;
private final int STATE_GAME = 1;
private final int STATE_GAMEOVER = 2;
private int gState = STATE_MENU;


És innentől meg a játék logikánál meg a renderernél is ezt csinálom:
Kód:
switch ( gState ){
case STATE_MENU:
  DrawMenu( );
  break;
case STATE_GAME:
  DrawGame( );
  break;
}


Én így csináltam meg, a célját ellátja, bár azt nem tudom, hogy mennyire hatékony minden frameban előbb végrehajtani egy elágazást, majd rajzolni. DMG több activitys módszerével hatékonyabban menne a dolog. De több munka is



Na valami ilyesmi az enyém is
-----------------------------------------
Dont Listen to the Naysayers
   
matthew3r - Tag | 14 hsz       Online status #169151   2011.11.21 19:47 GMT+1 óra  
Na, azért hasonlóan gondolkodunk
Lényegében most nekem is state-ekkel van megcsinálva az egész, csak ugye a gond a textúrák betöltése onSurfaceCreated-nél, mivel, ha ezt onDrawFrame-ben akarnám, akkor ugye mindig betöltené, viszont, amit DMG írt, hogy a 0. frame-ben betölteni minden state-nél a textúrákat, és többet már nem. Nem gondoltam rá, de egész jó megoldásnak tűnik.
A több activity-s tényleg szintén nem rossz, csak valahogy attól tartózkodom, nekem elég egy activity is
Köszönöm, akkor most így ez alapján megpróbálkozom a 0. frame-es dologgal, aztán megírom, hogy hogyan sikerült, esetleg később mellékelem screeneket is, csak, hogy látszódjon miről van szó

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #169144   2011.11.21 19:36 GMT+1 óra  
Szia!

Én mind a logikát, mind a rendert statekre osztom.

Kód:
private final int STATE_MENU = 0;
private final int STATE_GAME = 1;
private final int STATE_GAMEOVER = 2;
private int gState = STATE_MENU;


És innentől meg a játék logikánál meg a renderernél is ezt csinálom:
Kód:
switch ( gState ){
case STATE_MENU:
  DrawMenu( );
  break;
case STATE_GAME:
  DrawGame( );
  break;
}


Én így csináltam meg, a célját ellátja, bár azt nem tudom, hogy mennyire hatékony minden frameban előbb végrehajtani egy elágazást, majd rajzolni. DMG több activitys módszerével hatékonyabban menne a dolog. De több munka is

   
DMG - Szerkesztő | 3172 hsz       Online status #169130   2011.11.21 18:54 GMT+1 óra  
Hát szerintem több féle módon is megoldható, lehet activity-k között váltani, minden activity-nek lehet saját rendere, vagy az egyik activity-ben megoldod Java-val a menüt, és csak maga a játék lenne OGL. Már én is gondolkodom, hog yhogy lenne célszerűbb én PC-n annak idején úgy oldottam meg, hogy a rendert elágazásokra oszottam, az elágazában voltak megvalósítva a különböző képernyők. Menü, pályák stb... az egyes képernyők textúráit meg a 0. frame ben töltöttem be, aztán ha megvan a betöltés, akkor mehetett a render.

Persze nem feltétlen ez a legjobb megoldás, én ilyen házibarkács fejlesztő vagyok.

De várom a jobb megoldásokat én is.
-----------------------------------------
Dont Listen to the Naysayers
   
matthew3r - Tag | 14 hsz       Online status #169125   2011.11.21 16:53 GMT+1 óra  
Üdv mindenkinek!

Mivel a Stackoverflow úgy látszik halott Androidos OpenGL témában így hozzátok fordulnék segítségért
Fejlesztek egy játékot (egyetemre, tehát az, hogy 1.0 meg hasonlók az amiatt van, bár ez utóbbi annyira nem is fontos), először úgy voltam vele, hogy a menüt megcsinálom textview-okkal, xml-lel, de ez annyira nem tetszett így gondoltam váltok és az is GL lesz.
A programom jelenleg úgy néz ki, hogy van induláskor az osztály, az onCreate-ben a setContentView-nak az az osztály van megadva amiben az érintés és billentyű lenyomást kezelem, és ebben állítom be setRenderer-nek azt az osztályt amiben a tényleges grafika van. Ebben benne van jelenleg a menü, de én úgy szeretném, hogy a kiválasztott menügomb megnyomására elinduljon a játék viszont egy másik osztályban, tehát mondjuk a setRenderernek más értéket adni (ez ugye elvileg nem lehetséges) - gondoltam arra is, hogy a menüt, játékot mindent ebben az osztályban, viszont akkor az onSurfaceCreated-ben minden textúrát be kéne olvasnom, ami 3 pályával, Skybox-szal nem fél másodperc lenne.
A kérdésem tehát, hogy ezt hogyan lehetne valahogy áthidalni, mert ez sokkal jobb megoldás lenne, mint mindent egyszerre.
Esetleg olvastam, hogy talán Handler meg ilyenek, de őszintén szólva azzal például egy percet sem foglalkoztam még, fogalmam sincs, hogy eszik-e, vagy isszák, és, hogy egyáltalán megoldás lehetne-e a problémámra.

Így első körben talán ennyi, így is elég hosszúra sikeredett (Ha meg valamit kihagytam, akkor nyugodtan lehet kérdezni). Előre is köszönöm!

   
bit.0x8000 - Törzstag | 574 hsz       Online status #169090   2011.11.21 07:29 GMT+1 óra  
Idézet
bit.0x8000 :
Egy alternatív megoldás az emulátorra...


Egyébként másnál működik a hang?
   
DMG - Szerkesztő | 3172 hsz       Online status #169086   2011.11.21 07:05 GMT+1 óra  
Mára már a legtöbb szolgáltató 2.2-vel adja a telefonokat, vagy kiadták a hivatalos frissítést. Szóval ha 2.2-re fejlesztessz, max azok esnek ki a szórásból, akik nagyon rég vették a telefont és nem akarják/tudják buherálni.
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #169082   2011.11.20 22:46 GMT+1 óra  
Idézet
DMG :
Androidnál meg szerintem a 2.2 esetleg a 2.1 ami alá már felesleges lemenni.


Ok, de ha jól tudom, pont 2.2-nél jött be az OpenGL ES 2.0, szóval nem mindegy.
Igazából azért is kérdeztem, mert talán már utánanéztetek, hogy pl. a szolgáltatók milyen verziót adnak, milyen gyakran lehet frissíteni, ilyesmi...

Persze azért kösz a választ.
   
DMG - Szerkesztő | 3172 hsz       Online status #169080   2011.11.20 21:56 GMT+1 óra  
Én msot azon dolgozom, hogy a motor tudja ezt is, azt is, sosem lehet tudni, Vandroiy-nak pl nem megy a 2.0, ezért kezdtem átírni a motort. Nekem már egy ember is nagy kiesés.

Androidnál meg szerintem a 2.2 esetleg a 2.1 ami alá már felesleges lemenni.
-----------------------------------------
Dont Listen to the Naysayers
   
Asylum - Törzstag | 5444 hsz       Online status #169024   2011.11.20 10:52 GMT+1 óra  
OpenGL ES-böl nem sok lehetöséged van 2.0-ra érdemes.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #169023   2011.11.20 10:15 GMT+1 óra  
Tud valaki egy jó és aktuális tutorial-t androidos Java /OpenGL programozáshoz?
Illetve milyen Android és OpenGL verziókra érdemes fejleszteni (mint alsó határ) ?
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #168891   2011.11.18 10:51 GMT+1 óra  
Húúú, nagyon szépen köszönöm én is! Már telepítem is

   
DMG - Szerkesztő | 3172 hsz       Online status #168883   2011.11.18 09:27 GMT+1 óra  
Ez jó, ideje volt.

Na meg is nézem majd mit tud talán lehet vele rendes videót is csinálni az app-ról.

Kösz!
-----------------------------------------
Dont Listen to the Naysayers
   
bit.0x8000 - Törzstag | 574 hsz       Online status #168881   2011.11.18 09:04 GMT+1 óra  

Ezt a hozzászólást bit.0x8000 módosította (2011.11.21 07:29 GMT+1 óra, ---)
   
Joderida - Tag | 55 hsz       Online status #167943   2011.11.04 11:52 GMT+1 óra  
"Megoldva"
itt

   
Joderida - Tag | 55 hsz       Online status #167931   2011.11.04 10:52 GMT+1 óra  
Sziasztok!
Megakadtam egy Androidos játék fejlesztése során, röviden egy vektorban tárolom az objektumom részeit-egy-két adatot róla.
Ezt hívom meg:
Kód:
modell_vector.add(new Modell_part(modell_part_name, My_buffers, points, _nrOfIndices));

És itt a kód amivel gondom van:
Kód:
public Modell_part(String modell_part_name,
Loader_buffer_class My_buffers, Modell_points points,
int _nrOfIndices) {
this.modell_part_name = modell_part_name;
this.indexBuffer = My_buffers._indexBuffer;
this.normalBuffer = My_buffers._normalBuffer;
this.texturBuffer = My_buffers._texturBuffer;
this.vertexBuffer = My_buffers._vertexBuffer;
this.mshiarray = My_buffers._mshiarray;
this.mambarray = My_buffers._mambarray;
this.mdiffarray = My_buffers._mdiffarray;
this.mspecarray = My_buffers._mspecarray;
this._modell_part_center_point = points._modell_center_point;
this._modell_part_left_point = points._modell_left_point;
this._modell_part_right_point = points._modell_right_point;
this._modell_part_top_point = points._modell_top_point;
this._modell_part_bottom_point = points._modell_bottom_point;
this._modell_part_front_point = points._modell_front_point;
this._modell_part_back_point = points._modell_back_point;
this.nrOfIndices = _nrOfIndices;

(A points,My_buffers azok objektumok)
Mint lehet látni tárolom a vertexeket, indexeket, normálokat, textúra koordinátákat, a nevét a modellnek, és amivel gondom van a "nevezetes pontjait", amit egy algoritmussal számolok ki.

A problémám az az lenne, hogy, ha a modellem több részből áll, akkor fellülíródnak ezek a pontok, de a bufferek azok megmaradnak. Számomra érthetetlen módon, mivel mindegyiket egyformán kezelem, csak az a külömbség, hogy az egyik Buffer típusú a másik meg (egy dimenziós) tömb.
pl.:
Tehát, ha a vektor(i) modell résznek [0.0,0.0,0.0]-k voltak középpontjának a koordinátái, akkor a következő modell rész betöltése a vetkorba felülírja azt(vektor)(i+1)-nek adom a [10.0,10.0,10.0]-t:
vektor(i+1) modell rész [10.0,10.0,10.0]
(vissza nézve az i. elemet)
vektor(i) modell rész [10.0,10.0,10.0]

Ha ismét hozzáadok egy elemet pl.: [20.0,20.0,20.0]
akkor így alakulnak:
vektor(i) [20.0,20.0,20.0]
vektor(i+1) [20.0,20.0,20.0]
vektor(i+2) [20.0,20.0,20.0]
és így tovább...

Viszont a Buffereket nem írja felül, csak a pontokat.
Lehet már én nem látom a fát az erdő miatt, remélem tudtok segíteni, köszönöm előre is.
Küldtem egy képet a loggolásról is, köszönöm a válaszokat előre is.
2535-log.jpg

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #166645   2011.10.12 17:17 GMT+1 óra  
Pár közérdekű infó, ami mást is érinthet, aki tabletre optimalizál canvas-alapú játékot.
Nem nehéz dolog, csak időigényes belőni a megfelelő arányokat, amin jól is néz ki a játék, nem is esik darabokra a sprite, és a funkcionalitását is megőrzi. Mint mindig, most is erősen (illetve erősebben ezek után) tanácsolom, hogy a koordinátáknak ne fix értéket adjatok, hanem egy adott pontra relatívan hivatkozzatok. Lehet evidens, de nekem a legelején nem volt az; szerencsére félúton az egészet átírtam százalékos, illetve relatív rendszerre.
A tabletekben erősebb GPU van, tessék nyugodtan használni canvas esetében is. Anti-aliasing, és bitmap filter, és máris sokkal szebb, és élesebb képe van.
Ami a telefonon teljes képernyőn jól néz ki, az nem biztos, hogy jól fog kinézni a tableten is.

   
Joderida - Tag | 55 hsz       Online status #166576   2011.10.11 18:04 GMT+1 óra  
Megválaszolom a magam kérdést akkor .
A 2. kódomból
Kód:
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,
GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,
GL10.GL_NEAREST);

a fentebbi helyett ezt kell használni:
Kód:
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR_MIPMAP_NEAREST);
    gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR_MIPMAP_NEAREST);

És a tesztelése is nagyon egyszerű, egy nagyobb sima sakktáblát betöltesz a normál textúra betöltéssel, majd megnézed ugyanazt a textúrát mippmappeléssel. Nagyon is látszik a különbség. Csak idő kérdése és rájövök a dolgokra.

   
Joderida - Tag | 55 hsz       Online status #166423   2011.10.08 11:56 GMT+1 óra  
Kód:
public void loadtexture(GL10 gl, Context mContext, String map_source) {
try {
InputStream is = mContext.getAssets().open(map_source);
Bitmap bitmap2 = BitmapFactory.decodeStream(is);
is.close();
Matrix flip = new Matrix();
flip.postScale(1f, -1f);
Bitmap bitmap = Bitmap.createBitmap(bitmap2, 0, 0,
bitmap2.getWidth(), bitmap2.getHeight(), flip, true);
bitmap2.recycle();
gl.glGenTextures(1, textures, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_GENERATE_MIPMAP, GL11.GL_TRUE);//Ezt kell nézni
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
bitmap.recycle();
} catch (IOException e) {
// Should never happen
}
}

Lehet, hogy most butaságot csinálok/tam, de a kódom így néz ki a //Ezt kell nézni részt jól csináltam, vagy találtam egy másik kódot a neten, amit kicsit átírogattam, (for ciklusból break hm ki írta ezt, nah majd átírom én ezetet while-osra ? ):
Kód:
public void loadtexture(GL10 gl, Context mContext, String map_source) {
try {
InputStream is = mContext.getAssets().open(map_source);
Bitmap original_bitmap = BitmapFactory.decodeStream(is);
is.close();
Matrix flip = new Matrix();
flip.postScale(1f, -1f);


Bitmap bitmap = Bitmap.createBitmap(original_bitmap, 0, 0,
original_bitmap.getWidth(), original_bitmap.getHeight(), flip, true);
original_bitmap.recycle();

gl.glGenTextures(1, textures, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);

gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER,
GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER,
GL10.GL_NEAREST);

for(int level=0, height = bitmap.getHeight(), width = bitmap.getWidth(); true; level++) {
        GLUtils.texImage2D(GL10.GL_TEXTURE_2D, level, bitmap, 0);
       
        if(height==1 && width==1) break;
       
        width >>= 1; height >>= 1;
        if(width<1)  width = 1;
        if(height<1) height = 1;
       
        Bitmap bmp2 = Bitmap.createScaledBitmap(bitmap, width, height, true);
        bitmap.recycle();
        bitmap = bmp2;
    }
bitmap.recycle();
} catch (IOException e) {
// Should never happen
}
}

Még egy kérdésem van, honnan tudom azt, hogy valóban mipmapelve van a textúra, le lehet-e ezt ellenőrizni? Érdekelne, hogy mennyivel gyorsabb így, mint, ha csak a textúrát tölteném be.

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #166179   2011.10.04 19:18 GMT+1 óra  
Iiiistenem, rájöttem... akkora facepalm az egész, hogy kilométerekre elhalltaszik a csattanás..

Kód:
Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {

if (iScanBegin){
int width = camera.getParameters().getPreviewSize().width;
int height = camera.getParameters().getPreviewSize().height;

int[] argb8888 = decodeYUV420SP(data, width, height);

bCapturedFrame = Bitmap.createBitmap(argb8888, width, height, Config.ARGB_8888);

Toast.makeText(context, "", Toast.LENGTH_SHORT).show();
iScanBegin = false;
}
invalidate();
}
};


INVALIDATE!!!


Köszönöm a segítséget azért szálasítva lesz a konverzió, de az még ráér jelenleg. Így is fél másodperc alatt végigmegy rajta.

   
Joderida - Tag | 55 hsz       Online status #166178   2011.10.04 19:15 GMT+1 óra  
Lehet, hogy hülyeséget mondok, de próbáltad már szálkezeléssel. Egy próbát megér

   
DMG - Szerkesztő | 3172 hsz       Online status #166148   2011.10.04 17:04 GMT+1 óra  
Sajnos ezzel a kérdéskörrel még nem foglalkoztam.
-----------------------------------------
Dont Listen to the Naysayers
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #166137   2011.10.04 16:04 GMT+1 óra  
Valaki okos segíthetne, mert engem már az ideggörcs kerülget. Van egy alkalmazás, amin most ügyködünk, aminek a lényege az, hogy van egy kamera preview, meg néhány bitmap ráfektetve. ez eddig tökéletesen működik, nem is olyan nagy szám. Viszont az alkalmazás miatt ki kéne merevíteni a képet.

A kódom azt csinálja, hogy minden megjelenített framet dekódol, majd bitmapba tol. Ez idáig tök jó is, csak valamiért nem hívódik meg a callback, vagy én nem tudom mi a halál van. a progi indításakor ez látszódik:


10 percig néztem, a bitmap meg sem mozdult. Kikapcsoltam a kijelzőt, majd visszatérve ezt láttam:


Tehát működik is, meg nem is. a callback valamiért nem hívódik meg. Mit csinálhatok rosszul?
A kódom itt van egyébként:
Kód:
public void surfaceCreated(SurfaceHolder holder) {
        mCamera = Camera.open();
        mCamera.setPreviewCallback(previewCallback);
    }

Kód:
Camera.PreviewCallback previewCallback = new Camera.PreviewCallback() {
public void onPreviewFrame(byte[] data, Camera camera) {

int width = camera.getParameters().getPreviewSize().width;
int height = camera.getParameters().getPreviewSize().height;

int[] argb8888 = decodeYUV420SP(data, width, height);

bCapturedFrame = Bitmap.createBitmap(argb8888, width, height, Config.ARGB_8888);
}
};



Szerk: meghívódik, csak a bitmap valamiért nem változik... nem értem én ezt.

Ezt a hozzászólást LugaidVandroiy módosította (2011.10.04 16:40 GMT+1 óra, ---)

   
lezli01 - Tag | 190 hsz       Online status #165955   2011.10.02 21:46 GMT+1 óra  
én így csinom a textúrabetöltést, ez elkerüli, hogy a keresett resource esetén a bitmapom null legyen, holott a keresett resource megtalálható a mappák között

Kód:
int[] texture = new int[ 1 ];
gl.glGenTextures( 1, texture, 0 );

gl.glBindTexture( GL10.GL_TEXTURE_2D , texture[ 0 ] );

gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR );
gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR );

Bitmap image = ( ( BitmapDrawable ) context.getResources().getDrawable( ResourceId ) ).getBitmap();

GLUtils.texImage2D( GL10.GL_TEXTURE_2D, 0, image, 0 );

image.recycle();
   
DMG - Szerkesztő | 3172 hsz       Online status #165827   2011.10.01 17:51 GMT+1 óra  
Hát borulátás az van, látom.

Majd lesz nyílt béta, aztán lesznek itt remélem változatos vasak.
-----------------------------------------
Dont Listen to the Naysayers
   
Parallax - Tag | 579 hsz       Online status #165826   2011.10.01 17:23 GMT+1 óra  
Alacsonyabb kategóriás telefonok érzéketlenebbek a hibákra. A szimulátor, meg fene tudja mit ad vissza. Nálam a textúra 2 hatványa kell legyen című dolog hiánya valamin ment valamin nem. Ha legalább nincs egy alacsony-közepes-elit kombód, akkor esélytelen kitesztelni a hibákat, de még így is bele lehet futni. Kíváncsi vagyok mik a szívások végeredményei.

   
DMG - Szerkesztő | 3172 hsz       Online status #165805   2011.10.01 00:29 GMT+1 óra  
Na kérem, újabb egy napos szopás eredménye a következő bug, vagy fícsőr, még nem jöttem rá.


Szóval OpenGL ES1.x-ben amennyiben a MainFest.xml-ben be van állítva, egy

Kód:
<uses-sdk android:minSdkVersion="8" />


(elvileg 3-as API-tól felfelé csinálja)

Akkor a textúra betöltés nem üzemel a megszokott módon.

Kód:
this.mBitmap = BitmapFactory.decodeResource(res, R.drawable.crate);


Ha így töltjük be a textúrát, akkor fehér polygonokat fogunk kapni a textúra helyett.

A következő módszer tűnik használhatónak:

Kód:
InputStream is = c.getResources().openRawResource(R.drawable.crate);   
    this.mBitmap = null;
        try {
        this.mBitmap = BitmapFactory.decodeStream(is);
     
        } finally {
            //Always clear and close
            try {
                is.close();
                is = null;
            } catch (IOException e) {
            }
        }


És most megyek alszom, mert tele lett a hócipőm.


EDIT: Ja még annyi, a jelenség azért szemét dolog, mert az emu-ban nem jön elő, ott szépen megjelenik a textúra az eredeti kóddal is.
-----------------------------------------
Dont Listen to the Naysayers
   
syam - Törzstag | 1491 hsz       Online status #165690   2011.09.29 16:08 GMT+1 óra  
Azt hiszem ott a
Kód:
glTexParameteri (GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_TRUE);


él.

Semmi mást nem kell tenni, mint feltölteni a 0. mipmap szintet (szóval a szokásos) azt az egy sort beírni és beállítani a szűrést.
alias aalberik
   
Joderida - Tag | 55 hsz       Online status #165689   2011.09.29 16:05 GMT+1 óra  
Sajnos ES 1x-es még

   
syam - Törzstag | 1491 hsz       Online status #165688   2011.09.29 15:46 GMT+1 óra  
Idézet
Joderida :
A Mip map betöltése 2 módon lehetséges:mip_map_opengl
Ti melyiket ajánlanátok? Melyik jobb androidra, ha magától csinálja az opengl, vagy, ha én kényszerítem rá a tutit.



Ez ahogy nézem egy módszer: készítés és paraméterezés.

Sasold meg ezt:
http://sakura7.blog.hu/2010/07/15/mipmap_generalas_alsofokon

Kérdés még, h ES 1.x vagy ES 2.0 a cél.
alias aalberik
   
Joderida - Tag | 55 hsz       Online status #165687   2011.09.29 15:39 GMT+1 óra  
A Mip map betöltése 2 módon lehetséges:mip_map_opengl
Ti melyiket ajánlanátok? Melyik jobb androidra, ha magától csinálja az opengl, vagy, ha én kényszerítem rá a tutit.

   
DMG - Szerkesztő | 3172 hsz       Online status #165633   2011.09.28 22:02 GMT+1 óra  
Ja szóval akkor csak esztétika.

@colker:
Írtam egy alkalmazást ami elvben át tudja irányítani a hangokat fülesről hangszóróra, és vissza, de még nem kerek, szóval még próbálkozom, ha aktuális még.
-----------------------------------------
Dont Listen to the Naysayers
   
Joderida - Tag | 55 hsz       Online status #165623   2011.09.28 20:50 GMT+1 óra  
Itt modellenként olvasol be(# object után újrakezded), mert "0-tól" kezdődik megint a facek számozása: ("f -8/-4/-6 -7/-3/-6 -6/-2/-6 " mind a kettő helyen.
Kód:
#
# object Box001
#

v  -16.2740 0.0000 -4.9316
v  -16.2740 0.0000 -21.4530
v  11.0038 0.0000 -21.4530
v  11.0038 0.0000 -4.9316
v  -16.2740 10.4606 -4.9316
v  11.0038 10.4606 -4.9316
v  11.0038 10.4606 -21.4530
v  -16.2740 10.4606 -21.4530
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

g Box001
usemtl wire_088144225
f -8/-4/-6 -7/-3/-6 -6/-2/-6
f -6/-2/-6 -5/-1/-6 -8/-4/-6
f -4/-1/-5 -3/-4/-5 -2/-3/-5
f -2/-3/-5 -1/-2/-5 -4/-1/-5
f -8/-1/-4 -5/-4/-4 -3/-3/-4
f -3/-3/-4 -4/-2/-4 -8/-1/-4
f -5/-1/-3 -6/-4/-3 -2/-3/-3
f -2/-3/-3 -3/-2/-3 -5/-1/-3
f -6/-1/-2 -7/-4/-2 -1/-3/-2
f -1/-3/-2 -2/-2/-2 -6/-1/-2
f -7/-1/-1 -8/-4/-1 -4/-3/-1
f -4/-3/-1 -1/-2/-1 -7/-1/-1
# 12 faces

#
# object Box002
#

v  -21.4717 0.0000 17.5071
v  -21.4717 0.0000 1.1484
v  20.2596 0.0000 1.1484
v  20.2596 0.0000 17.5071
v  -21.4717 23.3582 17.5071
v  20.2596 23.3582 17.5071
v  20.2596 23.3582 1.1484
v  -21.4717 23.3582 1.1484
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

g Box002
usemtl wire_088177027
f -8/-4/-6 -7/-3/-6 -6/-2/-6
f -6/-2/-6 -5/-1/-6 -8/-4/-6
f -4/-1/-5 -3/-4/-5 -2/-3/-5
f -2/-3/-5 -1/-2/-5 -4/-1/-5
f -8/-1/-4 -5/-4/-4 -3/-3/-4
f -3/-3/-4 -4/-2/-4 -8/-1/-4
f -5/-1/-3 -6/-4/-3 -2/-3/-3
f -2/-3/-3 -3/-2/-3 -5/-1/-3
f -6/-1/-2 -7/-4/-2 -1/-3/-2
f -1/-3/-2 -2/-2/-2 -6/-1/-2
f -7/-1/-1 -8/-4/-1 -4/-3/-1
f -4/-3/-1 -1/-2/-1 -7/-1/-1
# 12 faces

Itt meg folytatódik a facek számozása ("f 9/5/7 10/6/7 11/7/7". (itt is szét lehetne választani, de az előző megoldás nekem jobban tetszett.)
Kód:
#
# object Box001
#

v  -16.2740 0.0000 -4.9316
v  -16.2740 0.0000 -21.4530
v  11.0038 0.0000 -21.4530
v  11.0038 0.0000 -4.9316
v  -16.2740 10.4606 -4.9316
v  11.0038 10.4606 -4.9316
v  11.0038 10.4606 -21.4530
v  -16.2740 10.4606 -21.4530
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

g Box001
usemtl wire_088144225
f 1/1/1 2/2/1 3/3/1
f 3/3/1 4/4/1 1/1/1
f 5/4/2 6/1/2 7/2/2
f 7/2/2 8/3/2 5/4/2
f 1/4/3 4/1/3 6/2/3
f 6/2/3 5/3/3 1/4/3
f 4/4/4 3/1/4 7/2/4
f 7/2/4 6/3/4 4/4/4
f 3/4/5 2/1/5 8/2/5
f 8/2/5 7/3/5 3/4/5
f 2/4/6 1/1/6 5/2/6
f 5/2/6 8/3/6 2/4/6
# 12 faces

#
# object Box002
#

v  -21.4717 0.0000 17.5071
v  -21.4717 0.0000 1.1484
v  20.2596 0.0000 1.1484
v  20.2596 0.0000 17.5071
v  -21.4717 23.3582 17.5071
v  20.2596 23.3582 17.5071
v  20.2596 23.3582 1.1484
v  -21.4717 23.3582 1.1484
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

g Box002
usemtl wire_088177027
f 9/5/7 10/6/7 11/7/7
f 11/7/7 12/8/7 9/5/7
f 13/8/8 14/5/8 15/6/8
f 15/6/8 16/7/8 13/8/8
f 9/8/9 12/5/9 14/6/9
f 14/6/9 13/7/9 9/8/9
f 12/8/10 11/5/10 15/6/10
f 15/6/10 14/7/10 12/8/10
f 11/8/11 10/5/11 16/6/11
f 16/6/11 15/7/11 11/8/11
f 10/8/12 9/5/12 13/6/12
f 13/6/12 16/7/12 10/8/12
# 12 faces

   
DMG - Szerkesztő | 3172 hsz       Online status #165607   2011.09.28 19:41 GMT+1 óra  
Hát egy recovery lehet helyre hozza, próbáld ki.

Keresgéltem, megpróbálok valamit...
-----------------------------------------
Dont Listen to the Naysayers
   
colker - Tag | 58 hsz       Online status #165600   2011.09.28 19:21 GMT+1 óra  
Szervizre nincs pénzem,amúgy is nem gyári oprendszer,oprendszer újratelepítés megvolt és úgy sem volt jó!(eddig semmi baj nem volt attól hogy nem gyári!) Gari már rég nincs!

Belenézve semmi baj nincs a füles csatival...Megpróbálok egy régebbi oprendszert feltenni hátha azzal jobb lesz a dolog,bár ezzel se volt gond eddig.
Köszönöm azért nektek!

   
DMG - Szerkesztő | 3172 hsz       Online status #165598   2011.09.28 19:09 GMT+1 óra  
colker, szerintem ha garis, akkor irány a szervíz, ha nem akkor esetleg egy főzött rom megoldja a problémát, nem tudok olyan lehetőségről, ami egyszerűen ki tudja iktatnia fülest, persze ettől még létezhet.


Joderida:

Az rendben is van, de ehhez miért kéne külön indexelés?
-----------------------------------------
Dont Listen to the Naysayers
   
Joderida - Tag | 55 hsz       Online status #165594   2011.09.28 18:33 GMT+1 óra  
Például ez azért jó DMG, hogy, ha logikailag egy modelledhez több dolog tartozik mint pl.: annak a ruhája, esetleg fegyver a kezébe, stb stb... Vagy van egy helikoptered, ami logikailag egy modell, ám ennek vannak forgó részei, azokat elég "csúnya" betölteni külön obj-ből, tehát akkor ezeket még tárolhatod egy obj-ben, nem kell külön szedni, nomeg sok modellnél kicsit gyorsabb, a beolvasásod.

Amúgy colker, szerintem vidd szervízbe . Vagy próbáld meg hard resetelni a telefont, vagy a beállításokbon bellül visszaállítani az alap konfigurációt. Aztán lehet, hogy kontakt hibás a történet, amin a szervíz segít.
Nem mindenre jó programot írni néha .

   
colker - Tag | 58 hsz       Online status #165589   2011.09.28 17:34 GMT+1 óra  
Sziasztok!Remélem jó helyre írok a problémámmal,és kérésemmel!
A gond:Az androidos telefonomon valamiért azt hiszi most az operációs rendszer hogy mindig fülhallgató vagy headset van bedugva és így nem tudok telefonálni rendesen,meg hangszórón hallgatni a zenét.Próbáltam a dugóját tisztítani hátha azért van a gond,próbáltam az oprendszerben álligatni minden féle beállítást de szerintem nem beállítás hibás a dolog!

Erre találtam ki azt a megoldást hogy tudna-e írni nekem valaki egy programot ami a fülhallgató módot letiltaná a telefonban?
Egy folyamatosan futó program kellene amiben be-ki lehetne kapcsolni hogy éppen azt érzékelje hogy bevan dugva a fülhallgató vagy hogy nincs!
Tudom hogy itt már fejlesztők beszélnek fejlesztőkel de remélem elfér itt ez a kérés.
A programért akár fizetnék is,nem tudom kilehetne-e vitelezni a program megírását,és hogy mennyire lenne ez nehéz feladat

Ha valaki kitudná ezt vitelezni kérem írjon ide,vagy akár privátban is beszélhetnénk róla!

Köszönöm!
Gábor

   
DMG - Szerkesztő | 3172 hsz       Online status #165528   2011.09.27 23:20 GMT+1 óra  
Hát ezzel a porblémával még nem találkoztam, igaz egyelőre még nem dolgozom olyan nagyon bonyolult modelekkel, igaz én 20.000 poly szám melett sem találkoztam vele annak idején PC-n.

Igaz én nem MAX-et használok, már jó ideje, el is szoktam tőle.

Annak meg amúgy mi az haszna, hogy egy obj-on belül több objektumot tárolsz, és mégis külön akarod őket kezelni ezért probléma az index folytonosság? Bocs, le vagyok tompulva..
-----------------------------------------
Dont Listen to the Naysayers
   
Joderida - Tag | 55 hsz       Online status #165525   2011.09.27 23:09 GMT+1 óra  
Itt egy kód max exportból, az f-nél a negatívok, ha jól taktikázom ki, akkor,így jönnek össze:
Kód:
#
# object Box001
#

v  -10.2444 0.0000 3.1794
v  -10.2444 0.0000 -15.4318
v  18.5974 0.0000 -15.4318
v  18.5974 0.0000 3.1794
v  -10.2444 19.9797 3.1794
v  18.5974 19.9797 3.1794
v  18.5974 19.9797 -15.4318
v  -10.2444 19.9797 -15.4318
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

g Box001
usemtl wire_153228153
f -8/-4/-6 -7/-3/-6 -6/-2/-6
f -6/-2/-6 -5/-1/-6 -8/-4/-6
f -4/-1/-5 -3/-4/-5 -2/-3/-5
f -2/-3/-5 -1/-2/-5 -4/-1/-5
f -8/-1/-4 -5/-4/-4 -3/-3/-4
f -3/-3/-4 -4/-2/-4 -8/-1/-4
f -5/-1/-3 -6/-4/-3 -2/-3/-3
f -2/-3/-3 -3/-2/-3 -5/-1/-3
f -6/-1/-2 -7/-4/-2 -1/-3/-2
f -1/-3/-2 -2/-2/-2 -6/-1/-2
f -7/-1/-1 -8/-4/-1 -4/-3/-1
f -4/-3/-1 -1/-2/-1 -7/-1/-1
# 12 faces

f -8/-4/-6 --->vertexeknél a (vert_count=# 8 vertices) --->vert_count -8 és megkapom a 0-t mint indexet, és innentől ugyanaz, ez azért jó, mert, ha több modellt, esetleg modell részt importálok be, akkor nem folytatja onnan a számozását ahol abbahagyta az előző modellnél. (példa):

Kód:
#
# object Box001
#

v  -10.2444 0.0000 3.1794
v  -10.2444 0.0000 -15.4318
v  18.5974 0.0000 -15.4318
v  18.5974 0.0000 3.1794
v  -10.2444 19.9797 3.1794
v  18.5974 19.9797 3.1794
v  18.5974 19.9797 -15.4318
v  -10.2444 19.9797 -15.4318
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

g Box001
usemtl wire_153228153
f 1/1/1 2/2/1 3/3/1
f 3/3/1 4/4/1 1/1/1
f 5/4/2 6/1/2 7/2/2
f 7/2/2 8/3/2 5/4/2
f 1/4/3 4/1/3 6/2/3
f 6/2/3 5/3/3 1/4/3
f 4/4/4 3/1/4 7/2/4
f 7/2/4 6/3/4 4/4/4
f 3/4/5 2/1/5 8/2/5
f 8/2/5 7/3/5 3/4/5
f 2/4/6 1/1/6 5/2/6
f 5/2/6 8/3/6 2/4/6
# 12 faces

#
# object Box002
#

v  -22.1893 0.0000 31.6990
v  -22.1893 0.0000 11.5088
v  18.1860 0.0000 11.5088
v  18.1860 0.0000 31.6990
v  -22.1893 29.9206 31.6990
v  18.1860 29.9206 31.6990
v  18.1860 29.9206 11.5088
v  -22.1893 29.9206 11.5088
# 8 vertices

vn 0.0000 -1.0000 -0.0000
vn 0.0000 1.0000 -0.0000
vn 0.0000 0.0000 1.0000
vn 1.0000 0.0000 -0.0000
vn 0.0000 0.0000 -1.0000
vn -1.0000 0.0000 -0.0000
# 6 vertex normals

vt 1.0000 0.0000 0.0000
vt 1.0000 1.0000 0.0000
vt 0.0000 1.0000 0.0000
vt 0.0000 0.0000 0.0000
# 4 texture coords

g Box002
usemtl wire_154154229
f 9/5/7 10/6/7 11/7/7
f 11/7/7 12/8/7 9/5/7
f 13/8/8 14/5/8 15/6/8
f 15/6/8 16/7/8 13/8/8
f 9/8/9 12/5/9 14/6/9
f 14/6/9 13/7/9 9/8/9
f 12/8/10 11/5/10 15/6/10
f 15/6/10 14/7/10 12/8/10
f 11/8/11 10/5/11 16/6/11
f 16/6/11 15/7/11 11/8/11
f 10/8/12 9/5/12 13/6/12
f 13/6/12 16/7/12 10/8/12
# 12 faces

Elnézést, ha hosszúra sikeredett, de remélem másnak segítettem ezzel. Nekem speciel 1 napomba telt mire ezt észrevettem, hogy folytatja onnan ahol abbahagyta a facesek számozását.

   
DMG - Szerkesztő | 3172 hsz       Online status #165517   2011.09.27 22:47 GMT+1 óra  
Nem igazán értem a problémát, mit akarsz kezdeni a negatív face-ekkel amikor a face az indexet ír le, 1-től indexelve.
-----------------------------------------
Dont Listen to the Naysayers
   
Joderida - Tag | 55 hsz       Online status #165513   2011.09.27 22:28 GMT+1 óra  
Egy kérdésem lenne.
Ha af 1/1/1 2/2/1 3/3/1 facesek helyett negatívokat használok(max export-relative numbers), tehát ezeket: f -160/-298/-170 -159/-297/-170 -158/-296/-170 Akkor hogyan kellene gondolkodnom a beolvasás átírásán? Gondolom ti is belefutottatok már hasonló problémába.

   
LugaidVandroiy - Törzstag | 504 hsz       Online status #165457   2011.09.27 13:17 GMT+1 óra  
Azóta még nem volt időm nézegetni az OpenGL-t, de lekaptam a netről egy lowpoly modelt, és azzal nem csinálta. Mondjuk textúrát nem húztam rá, azzal lenne érdemes megnézni.

A BA egyik új funkciója (amiről még Krees sem tud) elveszi az időm 90%-át, de ha az kész, akkor újult erővel taposom az OGLES-t.

   
DMG - Szerkesztő | 3172 hsz       Online status #165436   2011.09.27 07:42 GMT+1 óra  
Majd lehet elkezdek én is tutorokat írni, bár ehhez már osztódni kéne. Vagy ha azt nem is, akkor írok valami "jegyzeteim OGLES fejlesztésről" cikk sorozatot.

A te OGL-es hibáddal mi lett, megoldódott?
-----------------------------------------
Dont Listen to the Naysayers
   
LugaidVandroiy - Törzstag | 504 hsz       Online status #165434   2011.09.27 05:26 GMT+1 óra  
Az ilyeneket érdemes lenne összegyűjteni egy helyre, mert nagyon hasznosak! Meg jól is haladsz, hajrá

   
DMG - Szerkesztő | 3172 hsz       Online status #165430   2011.09.27 00:29 GMT+1 óra  
Na megint beblogolok,majd jól le leszek cseszve, de hasznos lehet másoknak.


Szóval dolgozom a lefelé kompatibilitáson, vagyis az Engine mégis csak támogatni fogja az OpenGLES1.x-et is. A legnagyobb gondom ezzel az volt, hogy a dinapikus textúra atlasz kezelés (ha lehet ezt így nevezni) nem olyan egyszerű mint 2.0 esetén ahol írok rá egy frappáns shadert azt el van intézve. Két helyen jelentkezik most ez, a GUI felületnél, és az animált spritoknál.

Kerülő megoldás, ha minden képkockát (GUI elemet) külön textúrába rakok, de az elég sok Bindingal jár, szóval elvetettem, meg aztán ott van az is, hogy a textúra koordinátákat tároló buffert macerálom futásidőben, na az sem szép.

harmadik megoldásnak a más területen használt data interleaved módszert (valami ilyesmi neki a neve) találtam, ezt ügye alapból arra használják, hog egy bufferben tárolják a vertex összes adatát (vertexkoord, textkoord, normal), na ez nekem pont jó is lesz, hogy eltérő textúra koordinátákat tároljak benne.

A kód valahogy így fest jelenleg.

maga a tömb, amiből aztán buffer lesz.

Kód:
private static float textures_array[] = {
      0.00f, 0.00f, 0.25f, 0.00f, 0.50f, 0.00f, 0.75f, 0.00f, // 0, Top Left
      0.00f, 0.25f, 0.25f, 0.25f, 0.50f, 0.25f, 0.75f, 0.25f, // 1, Bottom Left
      0.25f, 0.00f, 0.50f, 0.00f, 0.75f, 0.00f, 1.00f, 0.00f, // 2, Top Right
      0.25f, 0.25f, 0.50f, 0.25f, 0.75f, 0.25f, 1.00f, 0.25f  // 3, Bottom Right
};



És a használata.

Kód:
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

gl.glVertexPointer(3, GL10.GL_FLOAT, 0,  GR4X4Sprite.getVertices());

FloatBuffer textureData = GR4X4Sprite.getTextures().duplicate();
textureData.position((frame-1)*2);

gl.glTexCoordPointer(2, GL10.GL_FLOAT, 32, textureData);

GLES20.glDrawArrays(GLES20.GL_TRIANGLE_STRIP, 0, 4);


Nem tudom még ez meggora performancia csökkenést okoz, majd meglátjuk. De legalább teljesértékű ES1.x-es támogatást tudok vele nyújtani.

A text GUI meg így fest, most az emuben ES1.x alatt, a minőség a jpeg sara.

-----------------------------------------
Dont Listen to the Naysayers
   
Joderida - Tag | 55 hsz       Online status #165368   2011.09.26 14:44 GMT+1 óra  
Valóban az emulátor csinálja rosszul a dolgokat, a Blade-n úgy hasít(és nem látszik át), mint az álom.

   
DMG - Szerkesztő | 3172 hsz       Online status #165159   2011.09.24 18:54 GMT+1 óra  
Hát sajnos így semmi, ha gondolod dobd átt a forrást, belenézek.
-----------------------------------------
Dont Listen to the Naysayers
   
Joderida - Tag | 55 hsz       Online status #165155   2011.09.24 18:43 GMT+1 óra  
Kikapcsoltam, nem ez a bűnös ... Azért az ötleteket várom, esetleges tapasztalatokat .

   
DMG - Szerkesztő | 3172 hsz       Online status #165154   2011.09.24 18:35 GMT+1 óra  
Hát most hírtelen nincs ötletem, a depth buffer felülírása gondolom nincs kikapcsolva sehol.

Telefonon van lehetőséged kipróbálni? Lehet hogy az emu szórakozik. Ami bug-ról tudok, hog ya light és az alpha test nem szeretik egymást emun, lehet ennek is az a baja, esetleg a light-ot kapcsold le, néz meg úgy.
-----------------------------------------
Dont Listen to the Naysayers
   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] > 9 < [10] [15]