Bienvenue sur le site officiel du SCEngine

Le SCEngine est un moteur 3D programmé, comme son nom l'indique, en langage C. Il est libre, open-source, et distribué sous licence GNU GPL. Il utilise exclusivement l'API OpenGL pour le rendu.

Particles engine, screenshot à l'appui !

Par Yno le 02/09/2009 à 08:14 – édité par Ban le 03/09/2009 à 02:16

Lors de ma dernière semaine passée chez Ban, du 19 au 26 août, je n'ai pas chômé : après trois jours consacrés au déboguage du moteur suite aux nouvelles fonctionnalités et aux grosses modifications majeures (geometry, vertex arrays & VAO, sphere & box, etc.) j'ai utilisé les jours qu'il me restait à concocter un petit gestionnaire de particules.

Bref maintenant que ma vie est racontée et que j'ai précisé implicitement que le développement du moteur de particules ne m'a pris que quatre jours (oups voilà qui est fait explicitement), je peux passer aux descriptions techniques.

First particles test, looks awesome!J'exploite donc le nouveau module de géométrie du moteur afin de stocker les particules d'un système. Je propose de définir une taille maximale, c-à-d un nombre limite de particules que le moteur se charge ensuite de remplir à sa guise suivant le débit choisi, etc. Il est possible de demander l'allocation d'espace supplémentaire en mémoire pour chaque particule et ainsi y stocker des données bonus. Enfin la spécification du mouvement et du comportement des particules est entièrement personnalisable par la création de "modifiers" qu'il est possible de combiner. Une fois la géométrie gérée comme bon nous semble, il suffit de créer un mesh avec cette géométrie et lui assigner des matériaux ou des textures comme bon nous semble. Un résultat basique ci-contre, avec blending additif évidemment. Le screenshot a été pris sur mon misérable ordinateur portable, donc je ne peux rien dire à propos des performances ; il faut dire qu'un Poulsbo sous Linux n'est absolument pas représentatif des performances pouvant être atteintes (ou pas) par un rendu 3D. Il faudra demander à Ban de faire des petits tests, ou même à vous si vous êtes intéressés, rien ne vous empêche de me contacter.

En note de fin, je souhaiterais souligner que je me suis beaucoup inspiré de SPARK pour l'architecture du gestionnaire de particules, si vous ne connaissez pas encore ce projet je vous suggère de le découvrir !

À la prochaine !

P.S. Votre serviteur étant encore en vie, il vous propose plus de médias en rapport avec les particules et vous les laisse découvrir.

Catalyst 9.8 : enfin des geometry shaders !

Par Yno le 17/08/2009 à 10:15

Comme espéré dans la dernière news, l'ajout des geometry shaders aux dernières spécifications d'OpenGL inciterait sûrement ATI à les implémenter dans leurs drivers, et c'est chose faite !

Les Catalyst 9.8 ajoutent également le support des uniform buffers et de quelques autres extensions.

Malheureusement, toujours aucun support des noyaux Linux 2.6.29+ ne semble présent. Je me demande s'ils ont un « mail des réclamations ».

OpenGL 3.2 : et on enchaîne

Par Yno le 04/08/2009 à 12:40 – édité par Yno le 04/08/2009 à 12:49

Vous avez bien lu, peu de temps après OpenGL 3.1 c'est la version 3.2 qui fait son apparition.

Visiblement ils n'ont pas traîné chez Khronos, et autant dire que ça ne nous dérange pas outre mesure à la vue du menu :

  • Geometry shaders (enfin) ;
  • GLSL 1.50 ;
  • Et des trucs trop inutiles genre draw_element_base_vertex ou vertex_array_bgra.

Bref, les tant regrettés geometry shaders dans OpenGL 3.1 ont été ajoutés dans cette version 3.2, et ça nous fait bien plaisir car ATI va maintenant se sentir obligé de les implémenter (enfin espérons-le).

Liens et références

Dernière version

La version 0.0.9a est disponible !

Développement

28/01/2010 à 20h10

Nouveau système de nodes opérationnel : consommation mémoire réduite, mise à jour plus rapide, partage des données pour le multithreading.

05/11/2009 à 08h06

Système de nodes transitoire.

25/10/2009 à 19h26

Surcouche des instances d'entités au sein du gestionnaire de modèles.

25/10/2009 à 06h37

Branche de test des particules réinjectée dans la main line dev.

23/09/2009 à 16h55

Quelques bugs corrigés (là on note que j'suis prêt à dire n'importe quoi juste pour remplir cette liste inutile).

07/09/2009 à 05h03

Corrections de bugs dans le model manager (à l'origine de quelques problèmes dans spaceracer) et implémentation d'un itérateur dans les entités pour les ajouter à la scène.

01/09/2009 à 14h22

Implémentation d'un gestionnaire de particules (basique mais je pense évolutif).

22/08/2009 à 09h33

Bugs des dernières grosses mises à jour corrigés. Les quelques tests effectués semblent fonctionner correctement.

18/08/2009 à 20h05

SCEMesh scindé : SCEGeometry (géométrie seulement) et SCEMesh (renderable mesh).

08/08/2009 à 10h16

Nouveaux modules : SCEBoxGeometry, SCESphereGeometry.

05/08/2009 à 00h11

Nouveaux modules : SCEBox, SCESphere. Plus faible consommation mémoire d'une bounding box. Résolution du problème de la transformation d'une bounding sphere.

31/07/2009 à 10h47

SCECBuffers scindé en 3 modules : SCECBuffer, SCECVertexArray et SCECVertexBuffer.

09/07/2009 à 23h53

Refonte du gestionnaire de ressources, d'erreurs et de médias.

03/07/2009 à 09h11

Ajout d'une couche d'abstraction de gestion des modèles.

03/06/2009 à 20h27

Implémentation d'un module de génération d'UV spheres.

30/05/2009 à 21h22

Expérimental/en développement : animations par squelette, support des formats md5mesh et md5anim.