Aller au menu - Aller au contenu
Inscris-toi au e-camp "Héberge ton jeu Facebook sur Azure" de Microsoft vendredi 25 mai à 13h30 !

[Moteur 3D] sf3d

C++ / SFML / OpenGL / GLSL

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Auteur Message
1 visiteur sur ce sujet (1 Anonyme)
Page 1 
Hors ligne Lokk # Posté le 20/08/2010 à 04:32:32
Bétadine project
Avatar
Flux RSS

Bonjour à tous, je viens présenter un début de moteur 3D en début de développement.

Présentation du projet :


sf3d est un moteur 3D développé en C++, qui tire parti des modules principaux de la SFML 2.0 (graphics, window, system) pour créer un contexte d'affichage simple et efficace.
Il s'agit en quelque sorte d'une surcouche pour effectuer des rendus 3D facilement.

Voici quelques features en vrac pour les impatients :
  • Meshes non animés : .obj
  • Meshes animés (par keyframe): .md2
  • Chargement de scènes au format XML (exporter Blender disponible)
  • Gestion des lumières OpenGL, des matériaux et des textures
  • Support des vertex et pixel shaders GLSL
  • Génération de terrain avec heightmaps
  • Affichage des meshes par VBO (et IBO indicés sur 32bits)
  • Utilisation des FBO pour le rendu multipass.


Pour ce qui est des prochaines mises à jour :

  • View frustum culling (sphères englobantes)
  • Lightmapping
  • Binding LUA
  • Documentation Doxygen


Un p'tit exemple ?


Programme chargeant et affichant un modèle obj


Code : C++
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <SFML/Graphics.hpp>
#include <sf3d.hpp>

int main(int ac, char **av)
{
    sf::RenderWindow win(sf::VideoMode(800, 600), "sf3d - SFML 3D rendering");
    win.SetFramerateLimit(60);

    sf3d::Init();

    sf3d::Renderer& renderer = sf3d::Renderer::GetSingleton();
    renderer.Init(win);

    sf3d::FpsCamera cam;
    cam.SetPosition(sf::Vector3f(0, 0, -4));

    sf3d::OBJMeshLoader loader;
    sf3d::MeshNode node(loader.Load("cube.obj"));

    sf3d::Scene scene;
    scene.SetCamera(&cam);
    scene.Add(&node);

    sf3d::Light light;
    light.SetPosition(sf::Vector3f(15, 15, 15));
    scene.AddLight(&light);

    renderer.SetScene(&scene);

    while (win.IsOpened())
    {
        sf::Event event;
        while (win.GetEvent(event))
        {
            if (event.Type == sf::Event::Closed || (event.Type == sf::Event::KeyPressed && event.Key.Code == sf::Key::Escape))
                win.Close();

            if (event.Type == sf::Event::Resized)
                renderer.Resize();
        }

        win.Clear();

        renderer.Display();

        win.Display();
    }
    return 0;
}


Vous trouverez plus d'informations (screens, sources, et téléchargements) sur le site officiel.
Si quelqu'un est interessé pour participer de quelque manière, ce sera avec joie =)
Édité le 20/08/2010 à 14:31:11 par Lokk
 
Publicité # Posté le 20/08/2010 à 04:32:32

Hors ligne 1vrai0 # Posté le 11/11/2010 à 03:33:19
Avatar

Salut.. je trouve ton moteur 3d très intéressant.. Mais je roule sur Linux et je n'ai pas trouver de Makefile dans les sources :(
J'aimerais bien compiler sur Linux parce que ton moteur est exactement le genre que je cherchais!

Je te redonne des nouvelles!
EDIT : Salut.. Quand je fait un checkout sur le svn.. il me manque le fichier WaterNode.hpp

Voilà l'erreur que j'obtient en essayant de compiler :
../include/sf3d/Scene.hpp:8: fatal error: sf3d/WaterNode.hpp: Aucun fichier ou dossier de ce type
Si tu pourrait me donner ce fichier, je pourrait compiler sur Linux... ;)

EDIT 2 : Salut.. j'ai réussi à compiler en désactivant le waternode.. mais il y a une ligne qui ne compile pas.. c'est la ligne 213 du fichier Node.cpp : std::sort(lights.begin(), lights.end(), SortLights);

Voici l'erreur que j'obtient :

EDIT 3 : Finalement je n'obtient plus d'erreur j'ai changé quelque ligne... Mais voici comment s'affiche mon ak-47 :( :( :
http://www.4shared.com/get/YaotNsGJ/2-2.html

À+
Édité le 11/11/2010 à 17:23:22 par 1vrai0

Image utilisateur
 
Hors ligne polomasun # Posté le 11/11/2010 à 11:34:16
Carte blanche
Avatar

Bon travail ;)
Par contre niveau rendu.... Ce n'est pas celui-ci que je prendrai ^^.
Espérons une amélioration pour les prochains versions :) ?
Édité le 11/11/2010 à 11:35:00 par polomasun

Nom de domaine gratuit(.com,.fr,.eu etc...) c'est ici : www.gratuit-domaine.eu

Gheberg.eu, l'hébergeur le plus généreux du web : www.gheberg.eu

Image utilisateur
 
Hors ligne hilnius # Posté le 11/11/2010 à 14:11:54
Avatar

c'est plutôt bien ;)
par contre +1 polomasun, le rendu est pas top...

Création d'un RTS v1.0 :
- Editeur: |____________________| : 17% | Bugs connus
- Jeu 3D : |____________________| : 00% | restants : trop
Le site de mes projets, Mes open-sources.
Image utilisateur
Image utilisateur
 

Retour au forum "Présentation de vos projets" ou à la liste des forums

Pour accéder à cette section
Connectez-vous !
connexion_rpx