Orario: 18-05-2013, 17:19 Benvenuto ospite! (Log inRegistrati)


Rispondi 
Cosa stai codando ADESSO?
Autore Messaggio
player931402
gg I won alone

Messaggi: 947
Registrato: Jul 2011
Offline Offline
#1351 RE: Cosa stai codando ADESSO?
0
(20-06-2012 11:56)carnefrisca ha scritto:  
(20-06-2012 11:52)player931402 ha scritto:  
(20-06-2012 11:45)MannyB ha scritto:  
(20-06-2012 11:39)player931402 ha scritto:  passo piu tempo per cercare di fare una buona grafica con la mia ragazza che sul puro coding

Ai miei tempi con le ragazze si cercava di fare altro...gioventu' bruciata Fermofumo

Diciamo che sotto quel punto di vista sto messo abbastanza bene dai Sorriso

Passare le ore al PC con ragazza?
bah...mica tanto...

Avete ragione, mi avete cambiato, mi PENTO.

Andrò a fare il contadino e tornerò a pregare DIO cosi che il mio IO terreno si appaghi!


..

Apparte gli scherzi forse mi son fatto intendere male, sono io che sto le ore al PC, quando sto con lei se accendo il pc piu di mezzora mi bastona asd. ( Dicevo insieme alla mia ragazza perchè lei appunto mi fà trovare tutti gli sprite disegnati ogni volta che la vedo ahahah )

Matteo Galeotti
20-06-2012 12:00
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Remmus
Senior Member

Messaggi: 402
Registrato: Apr 2012
Offline Offline
#1352 RE: Cosa stai codando ADESSO?
0
Ma poi saranno azzi suoi no ? xD /OT
20-06-2012 12:01
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
player931402
gg I won alone

Messaggi: 947
Registrato: Jul 2011
Offline Offline
#1353 RE: Cosa stai codando ADESSO?
0
(20-06-2012 12:01)Remmus ha scritto:  Ma poi saranno azzi suoi no ? xD /OT

trall'altro eh xD

Matteo Galeotti
20-06-2012 12:32
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
fzambetta
Senior Lecturer

Messaggi: 1,743
Registrato: Dec 2009
Offline Offline
#1354 RE: Cosa stai codando ADESSO?
0
Un simpatico scheletro di gioco/simulazione a turni che usa ICE per l'invocazione remota di metodi, servizi di publish-subscribe, persistenza di oggetti, ecc.

Fabio Zambetta
Senior Lecturer, School of CS&IT
RMIT University (Melbourne, AU)

Games & Graphics Programming degree Coordinator

My Kinect hand gestures debugger
22-06-2012 16:03
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,172
Registrato: Sep 2010
Offline Offline
#1355 RE: Cosa stai codando ADESSO?
0
..era un po' che volevo postare 8P

- Algoritmo di compressione dell'heightfield (una sorta di JPEG per canali a 16 bit)

- Shadow baking dell'heightfield.. abbastanza veloce da fare al loading.. su PC, ma temo non su mobile.

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
(Questo messaggio è stato modificato l'ultima volta il: 22-06-2012 21:23 da TheCrib.)
22-06-2012 17:17
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,356
Registrato: Oct 2010
Offline Offline
#1356 RE: Cosa stai codando ADESSO?
0
(22-06-2012 17:17)TheCrib ha scritto:  ..era un po' che volevo postare 8P

- Algoritmo di compressione dell'heightfield (una sorta di JPEG per canali a 16 bit)

- Shadow baking dell'heightfield.. abbastanza veloce da fare al loading.. su PC, ma temo non su mobile.

Ovviamente rilascerai tutto open Sorcio Asd.
Cmq app. gli scherzi sono arrivato alla conclusione delle funzioni di ricarico delle texture su android:
Codice:
#if  defined(__ANDROID__) || defined(__ANDROID_TEST__)
    struct TEXTURE_ID{
        void *node;
        TEXTURE_ID();
    };
    #else
    typedef GLuint    TEXTURE_ID;
#endif
//implementazione
Codice:
#if  defined(__ANDROID__) || defined(__ANDROID_TEST__)

TEXTURE_ID::TEXTURE_ID():node(0){};

struct TextureNode{
    GLuint id;
    BYTE* bytes;
    int type, width, height;
    bool linear,repeart;
    TextureNode *next;
    TextureNode *prev;
    //
    TextureNode():
    id(0),
    bytes(0),  type(0), width(0), height(0),
    next(0), prev(0),linear(false),repeart(false){}
    //
    void ClearTextureNode(){
        if(bytes)
            free(bytes);
    };
};
struct TexturePool{
    TextureNode* head;
    TextureNode* end;
    TexturePool():head(0),end(0){}
};
TextureNode* TexturePool_addNode(TexturePool *pool,
                                 int id,BYTE* bytes,
                                 int type,
                                 int width,int height,
                                 bool linear,bool repeart){
        ERROR_LOG("TexturePool_addNode")
        TextureNode *newnode=new TextureNode();
        newnode->id=id;
        int channel=0;
        if(bytes){
            if(type == TYPE_LUMINANCE_ALPHA) channel=2;
            if(type == TYPE_RGB) channel=3;
            if(type == TYPE_RGBA) channel=4;
            newnode->bytes=(BYTE*)malloc(width*height*sizeof(BYTE)*channel);
            memcpy(newnode->bytes,bytes,width*height*sizeof(BYTE)*channel);
        }
        newnode->type=type;
        newnode->width=width;
        newnode->height=height;
        newnode->linear=linear;
        newnode->repeart=height;
        ERROR_LOG("newnode->bytes[0]="<<(int)(newnode->bytes[0]))
        ERROR_LOG("newnode->bytes[1]="<<(int)(newnode->bytes[1]))
        ERROR_LOG("newnode->bytes[2]="<<(int)(newnode->bytes[2]))
        ERROR_LOG("I'm reload: newnode->width="<<newnode->width<< "\tnewnode->height=" << newnode->height);

        if(!pool->head){
                pool->end=pool->head=newnode;
                return newnode;
        }

        newnode->next=pool->head;
        pool->head->prev=newnode;
        pool->head=newnode;

        return newnode;
}
void TexturePool_deleteNode(TexturePool *pool,TextureNode *node){

        ERROR_LOG("TexturePool_deleteNode\npool->head="<<pool->head<<"\npool->end="<<pool->end)
        ERROR_LOG("node="<<node)

        if(pool->head==node)
            pool->head=node->next;
        if(pool->end==node)
            pool->end=node->prev;

        if(node->next)
                node->next->prev=node->prev;
        if(node->prev)
                node->prev->next=node->next;

        node->ClearTextureNode();
        delete node;

}
//
TexturePool _globalTexturePool;
#define TEXTUREPOOL (&_globalTexturePool)
//call from CFILE: window_os_android.c
extern "C" void _Android_TextureReload(){

        ///////////////////////////////////////////
        glEnable(GL_TEXTURE_2D);
        ///////////////////////////////////////////
        ERROR_LOG("_Android_TextureReload")

            for(TextureNode* p=_globalTexturePool.end;p;p=p->prev){
                //if(!glIsTexture(p->id)){
                    p->id=0;
                    glGenTextures(1,&(p->id));
                    glBindTexture(GL_TEXTURE_2D,p->id);

                    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
                    glTexImage2D(GL_TEXTURE_2D,0,
                                 p->type,
                                 p->width,
                                 p->height,0,
                                 p->type,
                                 GL_UNSIGNED_BYTE,
                                 p->bytes);

                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, p->linear ? GL_LINEAR : GL_NEAREST);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, p->linear ? GL_LINEAR : GL_NEAREST);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, p->repeart ? GL_REPEAT : GL_CLAMP_TO_EDGE);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, p->repeart ? GL_REPEAT : GL_CLAMP_TO_EDGE);


                    ERROR_LOG("p->bytes[0]="<<(int)(p->bytes[0]))
                    ERROR_LOG("p->bytes[1]="<<(int)(p->bytes[1]))
                    ERROR_LOG("p->bytes[2]="<<(int)(p->bytes[2]))
                    ERROR_LOG("I'm reload: p->width="<<p->width<< "\tp->height=" << p->height);
               // }
            }
}
extern "C" void _Android_TextureClear(){

        ///////////////////////////////////////////
        glEnable(GL_TEXTURE_2D);
        ///////////////////////////////////////////
        ERROR_LOG("_Android_TextureClear")

            for(TextureNode* p=_globalTexturePool.end;p;p=p->prev){
                glDeleteTextures(1,&(p->id));
            }
}
#endif

TEXTURE_ID APIRender::MakeTexture2D (BYTE* bytes,
                                      int type,
                                      int width,int height,
                                      bool linear,bool repeart){

                TEXTURE_ID outTexture;
                ///////////////////////////////////////////
                glEnable(GL_TEXTURE_2D);
                ///////////////////////////////////////////

#if  defined(__ANDROID__) || defined(__ANDROID_TEST__)
                GLuint id;
                glGenTextures(1,&id);
                glBindTexture(GL_TEXTURE_2D, id);
                outTexture.node=(void*)TexturePool_addNode(TEXTUREPOOL,
                                                           id,
                                                           bytes,
                                                           type,
                                                           width,
                                                           height,
                                                           linear,
                                                           repeart);
                #else
                glGenTextures(1,&outTexture);
                glBindTexture(GL_TEXTURE_2D, outTexture);
#endif
                glPixelStorei(GL_UNPACK_ALIGNMENT, 1);

                glTexImage2D(GL_TEXTURE_2D,0,
                             type,
                             width,
                             height,0,
                             type,
                             GL_UNSIGNED_BYTE,
                             bytes);

                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, linear ? GL_LINEAR : GL_NEAREST);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, linear ? GL_LINEAR : GL_NEAREST);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, repeart ? GL_REPEAT : GL_CLAMP_TO_EDGE);
                glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, repeart ? GL_REPEAT : GL_CLAMP_TO_EDGE);

                ///////////////////////////////////////////
                return outTexture;

}
void        APIRender::SetTexture    (TEXTURE_ID   id,int i){
#if  defined(__ANDROID__) || defined(__ANDROID_TEST__)
     glEnable(GL_TEXTURE_2D);
     glActiveTexture(GL_TEXTURE0+i);
     glBindTexture(GL_TEXTURE_2D,((TextureNode*)(id.node))->id);
#else
     glEnable(GL_TEXTURE_2D);
     glActiveTexture(GL_TEXTURE0+i);
     glBindTexture(GL_TEXTURE_2D,id);
#endif
}
void       APIRender::DisableTexture    (int  n){
          glActiveTexture(GL_TEXTURE0+n);
          glDisable(GL_TEXTURE_2D);
          glActiveTexture(GL_TEXTURE0);
}
void       APIRender::TextureRepeart(bool r){
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, r ? GL_REPEAT : GL_CLAMP_TO_EDGE);
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, r ? GL_REPEAT : GL_CLAMP_TO_EDGE);
}
void       APIRender::TextureLinear(bool l){
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, l ? GL_LINEAR : GL_NEAREST);
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, l ? GL_LINEAR : GL_NEAREST);

}
void       APIRender::DeleteOneTexture2D(TEXTURE_ID   id){
#if  defined(__ANDROID__) || defined(__ANDROID_TEST__)
            glDeleteTextures(1,&(((TextureNode*)(id.node))->id));
            TexturePool_deleteNode(TEXTUREPOOL,(TextureNode*)(id.node));
            #else
            glDeleteTextures(1,&id);
#endif
}
void       APIRender::DeleteTextures2D(TEXTURE_ID   *id,int n){
#if  defined(__ANDROID__) || defined(__ANDROID_TEST__)
            for(int i=0;i<n;++i){
                glDeleteTextures(1,&(((TextureNode*)(id[i].node))->id));
                TexturePool_deleteNode(TEXTUREPOOL,(TextureNode*)(id[i].node));
            }
            #else
            glDeleteTextures(n,id);
#endif
}
//TEXTURE////////////////////////////////////////////////////////////////////////////////////////

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 22-06-2012 22:34 da Gabriele.)
22-06-2012 22:30
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,356
Registrato: Oct 2010
Offline Offline
#1357 RE: Cosa stai codando ADESSO?
0
Fatta la stessa cosa con le VBO : (quindi dopo Shader, texture e VBO mancano solo le FBO):

http://pastebin.com/eHY9bXYd

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
23-06-2012 9:21
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,172
Registrato: Sep 2010
Offline Offline
#1358 RE: Cosa stai codando ADESSO?
0
(23-06-2012 9:21)Gabriele ha scritto:  Fatta la stessa cosa con le VBO : (quindi dopo Shader, texture e VBO mancano solo le FBO):

http://pastebin.com/eHY9bXYd

Che sbattimento.. io perso che Fractal Combat lo faremo solo da 2.3 in su.. evitando questa storia del reloading.

(22-06-2012 22:30)Gabriele ha scritto:  
(22-06-2012 17:17)TheCrib ha scritto:  ..era un po' che volevo postare 8P

- Algoritmo di compressione dell'heightfield (una sorta di JPEG per canali a 16 bit)

- Shadow baking dell'heightfield.. abbastanza veloce da fare al loading.. su PC, ma temo non su mobile.

Ovviamente rilascerai tutto open Sorcio Asd.

Lo farei.. ma non ha tutto questo gran valore.. e soprattutto e' codice che ha diverse dipendenze.. cose che potrei rilasciare, ma poi diventa un pezzo di framework che il prossimo dovrebbe trascinarsi dietro per un mero file format.

L'alternativa in questi casi e' fare un mega paste in un .h e .cpp unico.. ma sarebbe un po' una porcata 8P

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
(Questo messaggio è stato modificato l'ultima volta il: 23-06-2012 11:55 da TheCrib.)
23-06-2012 11:52
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
panzone
Senior Member

Messaggi: 251
Registrato: Sep 2010
Offline Offline
#1359 RE: Cosa stai codando ADESSO?
0
Ho speso la mia domenica pomeriggio per fare un' implementazione naive e senza alcun tipo di ottimizzazione del simplesso ( cosi intanto ho ripassato per l' esame di ricerca operativa Asd )

Devo DAVVERO imparare OpenCL ( scheda AMD ) perchè mi sarebbe stato infinitamente utile per la mia implementazione.

Andrea Francesco Iuorio

-Studente di Scienze Informatiche presso L' Università degli Studi di Milano.

"The C Programming Language - A language which combines the flexibility of assembly language with the power of assembly language."
(Questo messaggio è stato modificato l'ultima volta il: 24-06-2012 16:00 da panzone.)
24-06-2012 15:54
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
_tommo_
Mod nerdcore

Messaggi: 5,867
Registrato: Nov 2008
Offline Offline
#1360 RE: Cosa stai codando ADESSO?
0
(24-06-2012 15:54)panzone ha scritto:  simplesso

[Immagine: 1338079055696.jpg]

Tommaso Checchi
< devlog | twitter | Dojo, a C++ game framework >
24-06-2012 15:56
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
panzone
Senior Member

Messaggi: 251
Registrato: Sep 2010
Offline Offline
#1361 RE: Cosa stai codando ADESSO?
0
(24-06-2012 15:56)_tommo_ ha scritto:  
(24-06-2012 15:54)panzone ha scritto:  simplesso

[Immagine: 1338079055696.jpg]

Asd Qual' è il problema ?

Andrea Francesco Iuorio

-Studente di Scienze Informatiche presso L' Università degli Studi di Milano.

"The C Programming Language - A language which combines the flexibility of assembly language with the power of assembly language."
24-06-2012 16:03
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
TheCrib
Indie Pellerossa

Messaggi: 5,172
Registrato: Sep 2010
Offline Offline
#1362 RE: Cosa stai codando ADESSO?
0
..quell'immagine rispecchia anche la mia situazione.. dopo aver passato un paio di ore ad implementare e tunare un bel fake HDR (@_@)

Davide Pasca
http://v5.kazzuya.com - @109mae
http://oyatsukai.com - @oyatsukai
"O frechete !" - M.Magnotta
24-06-2012 16:48
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
morgoth90
game over

Messaggi: 1,460
Registrato: Nov 2008
Offline Offline
#1363 RE: Cosa stai codando ADESSO?
0
(24-06-2012 16:48)TheCrib ha scritto:  ..quell'immagine rispecchia anche la mia situazione.. dopo aver passato un paio di ore ad implementare e tunare un bel fake HDR (@_@)

e la mia dopo aver giocato tutto il giorno con l'engine fisico di unity...

Luca Salmin
[Immagine: premioeasteregg.png]
skype: morgoth990 twitter: morgoth990
24-06-2012 17:07
Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,356
Registrato: Oct 2010
Offline Offline
#1364 RE: Cosa stai codando ADESSO?
0
(24-06-2012 17:07)morgoth90 ha scritto:  
(24-06-2012 16:48)TheCrib ha scritto:  ..quell'immagine rispecchia anche la mia situazione.. dopo aver passato un paio di ore ad implementare e tunare un bel fake HDR (@_@)

e la mia dopo aver giocato tutto il giorno con l'engine fisico di unity...

E la mia dopo aver scoperto come funzione onResume su android Asd.

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
24-06-2012 17:15
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Gabriele
Posting Freak

Messaggi: 4,356
Registrato: Oct 2010
Offline Offline
#1365 RE: Cosa stai codando ADESSO?
0
Cmq:
Aggiunto il ricaricamento delle FBO (rander to texture).
Aggiunto gestione eventi diti (10 max).
Aggiunto gestione accelerometro...

Gabriele Di Bari
Account G+
Account bitbucket
Account GITHUB
E ricordate: ((VMJava*)(NULL))->~VMJava();
(Questo messaggio è stato modificato l'ultima volta il: 25-06-2012 10:12 da Gabriele.)
25-06-2012 10:11
Visita il sito web di questo utente Trova tutti i messaggi di questo utente Cita questo messaggio nella tua risposta
Rispondi 


Vai al forum: