AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 OniDev Library - Game Engine C++

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : Précédent  1, 2, 3, 4, 5, 6  Suivant
AuteurMessage
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Dim 18 Déc 2011 - 21:29

J'ai fait une petite démo de ce qu'il est possible de faire très facilement avec les shaders.
mediafire.com ?t11w4vo16c9h519
Vous pouvez tester et me dire si ça marche bien chez tout le monde ?

Déjà grâce a Coco j'ai pu éliminer pas mal de soucis (niveau syntaxe GLSL).

Et pour les curieux vous pouvez vous amuser a modifier le script shader.frag :p

Edit:
Merde j'ai oublié de mettre les .0 pour les nombres flottants...
Sur certaines CG ça met un warning, mais sur d'autre un fatal error >.>
J'ai réup...

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 19 Déc 2011 - 7:33

Eh ouais, les .0 manquants, ça pardonne pas.
Les shaders c'est quand même surpuissant, on peut faire des effets super cools avec, sans se casser la tête.
T'as pas juste un fragment de code source pour savoir comment tu assignes la variable seuil via un uniform ?

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 19 Déc 2011 - 7:38

Oh ben c'est tout simple, tu fait
uint vardId = glGetUniformLocation(program, "seuil");
avant useProgram et ensuite tu peur modifier la valeur de seuil avec
glUniform1f(vardId, mouse_x / 640.0); pour l'exemple.

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Ven 23 Déc 2011 - 17:40

Juste une question,
où est ce que les fonctions glUniform1f et glGetUniformLocation sont définies ?
Qu'est ce qu'il faut inclure comme fichier ?

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Ven 23 Déc 2011 - 17:52

Bah c'est une extension, donc inclure un header ne suffit pas :/

J'enverrais une maj de la lib ce soir, au moins t'auras plus de soucis :p

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Ven 23 Déc 2011 - 17:57

Ok, je l'attends avec impatience :p

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 11:21

Désolé du retard : http://www.host-a.net/u/onilink_/onilib_r22.7z
Y a les surfaces et les uniform qui ont été ajoutés.

Sinon la je continue de bosser en interne, avec l'api win32 Oups!
Je doit dire que je fait des progrès, mais c'est pas encore tout a fait ça >.>

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 13:09

Les Uniform marchent super, mais les surfaces buggent au niveau du surfaceCreate(int,int), du moins sur le PC de ma sœur :p
Tu les a testées avant de publier la release, ou encore une fois c'est mon ordi qui est en tort ?

(PS : le fullscreen n'est pas défini dans window.h)

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 13:22

Normalement les surfaces fonctionnent.
En tout cas chez moi j'ai fait un petit programme de dessin qui fonctionne parfaitement.
T'as des erreurs en debug mode ?

Sinon pour le fullscreen il est implémenté mais j'ai pas encore donné l'accès.
J'ai encore quelques trucs a vérifier en interne avant :p

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 13:29

Je suis en Release (toujours).

Je viens de tester en Debug pour voir si le problème vient de là, ça me fait la même.
Il me dit "Surfaces.exe a cessé de fonctionner" dès que je fais appel à surfaceCreate.

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 13:38

Ok, va falloir que je trouve ou j'ai oublié de faire les vérifications d'erreurs alors.

Sinon tu as bien utilisé la fonction initExtentions() avant l'utilisation de surfaces ?
As-tu des erreurs lors de son utilisation ?

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 13:51

Ah non, c'est moi qui suis un boulet Oups!

J'avais oublié le initExtensions()
En même temps c'est précisé nulle part qu'il faut l'utiliser, comme je n'ai lu que ce qu'il y avait marqué dans man/surfaces.html

(ça marche now)

Par contre pour le coup ça rend des trucs bizarres :p

J'ai juste mis en gros

Code:
uint surf = surfaceCreate(640,480);

drawSurface(surf,0,0);

/*  ...  */

mainWin.display();


surfaceFree(surf);

Et en gros au cours du display (dans une boucle while), ça m'affiche un rectangle blanc qui clignote (apparaît 1 frame sur 2) et qui couvre 1/4 de l'écran (supérieur droit), ce qui je suppose, n'est pas censé se passer.

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 14:55

Ah ben ouai la documentation est pas finis du tout >.>

Sinon voila le code de mon mini paint :
Code:
#include "onidev.h"

int main(int , char **)
{
    MWindow mainWin(VideoMode(640, 480, 16), "Super fenetre de la mort qui tue");
   
    // Set opengl options
    glEnable(GL_TEXTURE_2D);
    glEnable(GL_BLEND);
    glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
    initExtentions();

    // Projection 2D
    RoomView currentView;
    currentView.setView(0, 640, 0, 480, 640, 480);
   
    // Création de FBO
    int surf = surfaceCreate(640, 480);
    drawSetColor(c_lime);
   
    while(mainWin.isOpen())
    {
        mainWin.getEvents();

        if(keyPressed(vk_escape))
            gameEnd();
        drawClear(0);
       
        // draw
        static int ox=mouse_x, oy=mouse_y;
       
        surfaceSetTarget(surf);
        if(mouseCheck(mb_left))
            drawLine(ox, oy, mouse_x, mouse_y);
        if(keyPressed(vk_space))
            drawClear(0);
        ox = mouse_x;
        oy = mouse_y;
        surfaceResetTarget();
       
        drawSurface(surf, 0, 0);
       
        mainWin.display();
    }
   
    surfaceFree(surf);

    mainWin.close();
    return 0;
}

Si ça fonctionne pas bah c'est surement une histoire de compatibilité hardware :/

(ou de tes drivers qui doivent être mis a jour, qui sais :p)

Edit:
Et pour la suite, je mettrais toutes les fonctions d'initialisation et de paramétrage d'openGL en même temps que la création de la fenêtre au moins ça feras des trucs en moins a écrire (et des oublis en moins :p)

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 15:17

Bon, je suis encore une fois un boulet.
J'avais bêtement oublié les initialisations OpenGL (glOrtho et tout ça). Ça m'apprendra à coder trop vite sans faire gaffe. Désolé :p

En tout cas ton mini paint marche nickel.

Et la surface, c'est une texture ?
Pour l'afficher, on peut faire ça avec glBindTexture ou non ?
Ça peut être intéressant à savoir pour les shaders.

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 26 Déc 2011 - 15:21

En fait une surface c'est une texture attachée a un framebuffer object.
Donc oui, tu peut récupérer l'id de la texture pour faire des trucs avec.
Le truc c'est que j'ai pas encore codé cette fonction x) (petit oubli, ça prend que quelques lignes a vrai dire :p)

De toute façon la version que je t'ai donné c'était un build fait a la va vite.
Le prochain devrais être plus complet :p

_________________
                 
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Sam 7 Jan 2012 - 20:16

La gestion du texte est casi terminée.
Pour l'instant il est possible de charger des polices bitmap, et d'utiliser
a peu près toutes les fonctions GM like :p


Reste a faire un décodeur truetype leger.
Normalement j'en ai un de coté, faut juste que j'arrive a l'intégrer avec le reste :p

La prochaine version ne saurais tarder Smile

edit: Ah oui et actuellement, une exe contenant absolument toute la lib pèse 155ko (et 50ko en 7z).

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: OniDev Library - Game Engine C++   Sam 7 Jan 2012 - 20:26

La version Linux avance?
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Sam 7 Jan 2012 - 20:41

Pas trop. J'ai un bug indéterminé et je n'ai pas accès a mon pc avec linux :/
De plus je doit aussi bidouiller les entrées sorties.
Mais bon une fois que ce seras fait il devrais plus y avoir de problèmes, étant donné que tout ce que je code est portable :p

_________________
                 
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1608
Localisation : Montpellier

MessageSujet: Re: OniDev Library - Game Engine C++   Sam 7 Jan 2012 - 21:55

La vache.

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: OniDev Library - Game Engine C++   Dim 8 Jan 2012 - 18:39

Yep ça reste un projet énorme, vivement que tout ça fonctionne sous Linux, j'ai plus qu'à attendre gentillement en m'améliorant à coder en C++
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Dim 8 Jan 2012 - 19:13

Thx Smile
Pour ce qui est du port sous linux, je vous fait pas de promesses mais normalement après les exams je pourrais m'y mettre sérieusement, et donc ça devrais être plutôt rapide.
Je pense libérer les source assez vite aussi, pour ceux qui veulent les voir, mais je ne les donnerais que par mp.

Sinon je viens aussi de finir les systèmes de colorations.
En tout y a :
int makeColorHsl(double hue, double saturation, double luminance);
int makeColorRgb(double r, double g, double b);
int makeColor(double r, double g, double b);
int makeColorWhite(double w);
int makeColorCmy(double c, double m, double y);
int makeColorCmyk(double c, double m, double y, double k);

Je pense pas mettre la coloration hsv, comme dans GM, car au final elle est moins utilisée car moins pratique.
Et ça m'obligerais a faire des doublons de colorGetHue, etc.

Si vous avez des requêtes aussi n'hésitez pas :p

_________________
                 
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
avatar

Messages : 1608
Localisation : Montpellier

MessageSujet: Re: OniDev Library - Game Engine C++   Dim 8 Jan 2012 - 20:01

int mergeColor(int c1, int c2, double ratio) Wink

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Dim 8 Jan 2012 - 20:07

Awi je l'avais oublié celle la x)
Le pire c'est que je l'ai déjà codée >.>

_________________
                 
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Ven 13 Jan 2012 - 21:26

Nouvelle version, avec gestion du texte et des couleurs en plus, et corrections de quelques petits trucs dans les plus profondes strates Yum!
http://www.host-a.net/u/onilink_/OniLib.7z (r25)

_________________
                 
Revenir en haut Aller en bas
Morwenn
Très bonne participation
avatar

Messages : 151
Projet Actuel : Icare

MessageSujet: Re: OniDev Library - Game Engine C++   Ven 13 Jan 2012 - 22:49

onilink_ a écrit:

Je pense pas mettre la coloration hsv, comme dans GM, car au final elle est moins utilisée car moins pratique.
Et ça m'obligerais a faire des doublons de colorGetHue, etc.

Je ne crois pas me tromper en disant que le calcul pour le colorGetHue soit le même pour les systèmes HSV et HSL (je l'avais déjà fait une fois). Du coup, tu n'as qu'une fois la fonction, sans avoir à faire de doublon.

_________________

Dur Dabla, pour qui voudrait écouter un brin de metal celtique.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Ven 13 Jan 2012 - 22:54

Pour la hue oui, mais pas la saturation normalement.
Au pire si un jour quelqu'un a besoin du système hsv je lui coderais, mais bon a mon avis ce seras pas de si tôt :b

_________________
                 
Revenir en haut Aller en bas
-Coco-
Utilisateur confirmé: Rang ***
avatar

Messages : 545
Localisation : Grenoble - Montpellier
Projet Actuel : Orion VII - 0%

MessageSujet: Re: OniDev Library - Game Engine C++   Sam 14 Jan 2012 - 12:29

Ça marche super bien !

Et le générateur de font ? Yum!

_________________
Oh, snap.
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Sam 14 Jan 2012 - 12:39

Perso pour générer des font je fait un truc du style sous GM:
Code:
w = 32
h = w

draw_set_font(font0)
draw_set_color(c_white)
for(i=0; i<16; i+=1)
for(j=0; j<16; j+=1)
draw_text(mouse_x + i*w, mouse_y + j*h, chr(i+16*j))

if(keyboard_check_pressed(vk_space))
screen_save_part("out.bmp", 0, 0, 256*2, 256*2)
else
{
    for(i=0; i<16; i+=1) {
    draw_line(i*w, 0, i*w, 16*w)
    draw_line(0, i*h, 16*h, i*h)
    }
}

Je ferais ptetre un vrai programme plus tard, fin bon c'est pas vraiment le plus important quoi.

_________________
                 
Revenir en haut Aller en bas
Oculus
Utilisateur confirmé: Rang *****


Messages : 1688

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 20 Fév 2012 - 21:55

Je l'a prend pour virer cette bouse de SDL.
Nan parce que 50 mille dll pour charger une texture et l'afficher avec openGL crossa
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: OniDev Library - Game Engine C++   Lun 20 Fév 2012 - 22:07

Ahah cool :p
J'avoue qu'a la base je l'ai faite a cause de SDL x)

Fin faut pas non plus être trop méchant avec SDL, c'est juste qu'elle est pas adaptée a nos types de projets :p

D'ailleurs faudrait que je pense a ajouter des features ... parce que ça fait un moment que j'y ai pas touché x)

_________________
                 
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: OniDev Library - Game Engine C++   

Revenir en haut Aller en bas
 
OniDev Library - Game Engine C++
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 2 sur 6Aller à la page : Précédent  1, 2, 3, 4, 5, 6  Suivant
 Sujets similaires
-
» The Lying Game
» Escape the Library : un autre "room escape"
» Game of Thrones
» Créer une cartographie devient vraiment facile avec Google Maps Engine Lite
» EPOXIA ORAGIS, projet jeu de combat Game Maker

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Informations :: Projets-
Sauter vers: