Le petit journal du pr0n: l'esclave des amazones numériques (et de marc dorcel..)
Le petit journal du pr0n
Informations et actualités cinématographiques
Les cours de tantine Caro
Caro est une gentille personne: Elle met à dispo' quelques petites stuffs OpenGL dont notamment ces cours et également ces TPs conviviaux dont La visualiseuz' de tonton Robert

Chapeau bas, Caro!

Le mirror si cela venait à disparaître dans les méandres du net.(..)
2006
16:10
Les cours de tantine Caro

Caro est une gentille personne: Elle met à dispo’ quelques petites stuffs OpenGL dont notamment ces cours et également ces TPs conviviaux dont La visualiseuz’ de tonton Robert

Chapeau bas, Caro!

Le mirror si cela venait à disparaître dans les méandres du net.

2006
21:10
Shadow of the Colossus

Une ombre est une zone sombre créée par l’apposition d’un objet opaque entre cette zone et la source de lumière. Elle se matérialise sur une surface par une silhouette à deux dimensions.

La taille de l’ombre dépend de la taille de l’objet intercalé et de sa distance à la source de lumière. Plus il est près de la source de lumière, plus la zone d’ombre sera importante, et inversement.

Pour des sources non ponctuelles, on distingue des zones d’ombre et de pénombre, avec comme caractéristique que plus la source est large et le support le l’ombre éloigné de l’objet qui masque la lumière, plus l’ombre est floue.[1]

Ceci est la théorie;

Dans la pratique 3D, les gestions des ombres sont un peu plus complexes que le simple fait d’activer un paramètre OpenGL.

La construction d’une ombre – ou des ombres s’y rattachant – demande quelques calculs supplémentaires pour obtenir quelques choses de cohérent.

De base, OpenGL n’intègre pas de gestion des « shadows », cependant plusieurs techniques permettent de simuler ces dernières.

De prime abord, il existe plusieurs méthodes comme la projection plane, le shadow mapping, les shadow volumes, etc..

Dans cette petite guerre des ombres et lumières, Tomas Akenine-Möller nous gratifie de superbes articles sur les Soft-Shadows, avec, petite cerise sur le gateau, de magnifiques code-sources développées par les amis Ulf Borgenstam et Jonas Svensson.

Afin de compléter la quinzaine des ombres, deux articles interessants de la part des équipes de NeHe (EN) sur les Shadow Volumes et de TeXel (FR), itoo.

2006
11:10
La méthode Dick Rivers avec SQLite

Bonjour Ami Jeune, c’est M. Manhattan;
Ami jeune, tu tentes – comme bon nombre d’insouciant dans ton espèce – d’utiliser SQLite. Mais tu trouves que cela n’est vraiment pas normal que celui avance comme une mule corse en plein cagniard ?.
Ahh! petite insolent, c’est parce que tu ne connais pas la méthode Dick Rivers.

La méthode Dick Rivers est simple: « Pour toute discussion, tu diras quand l’ouvrir et quand la fermer !« 

Tu as ce genre de requète :

 CREATE TABLE test (     id integer primary key,     text varchar(255) ); INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 0'); INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 1'); INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 2'); [...] INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 9998'); INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 9999'); INSERT INTO toto (id, text) VALUES (NULL, 'Mon Index 10000') 

Après insertion, tu auras perdu – au moins – hmmm …. 5 bonnes minutes.

Mais alors, comment faire ?!

Tu me m’écoutes pas jeune ! : La méthode Dick Rivers je t’ai dis !

Rajoutes – en début et fin de fichier SQL – des « BEGIN; » et autre « COMMIT; » saltimbanque.

 BEGIN;     CREATE ...     INSERT .... COMMIT; 

En terme de performance, tu passeras de 5 min à …. 2 secondes (testé avec 10.000 insertions)

2006
13:10
T’es trop rigide du coude, René !

Quand vous envoyez une balle contre un mur proche, vous aurez une chance sur deux pour qu’elle vous revienne en pleine tête.

Dans un monde simulé, lorsque vous envoyez une balle contre ce même mur .. il la traversera … (et ne s’arrétera pas).

Pour cela, nous avons besoin (entre autres) d’un gestionnaire qui se chargera de ce genre de « petites » conditions: un moteur de collision (collision, friction, jointures, etc…).

Le projet « O.D.E. » est fait pour cela.


O.D.E est l’acronyme de Open Dynamics Engine, une bibliothéque C/C++ gérant la simulation des dynamiques entre corps solides.
Cela se traduit par une gestion des jointures entres objets, une gestion des collisions en résultant et des frictions entre ces derniers.

O.D.E. se démarque par une utilisation relativement simple et indépendante des autres gestionnaires dont, notamment, le gestionnaire de l’environnement graphique (OpenGL/DirectX).

O.D.E. a une particularité que je crois ne pas avoir vu dans d’autres projets Open source dans cette catégorie: une utilisation sur des jeu-videos commerciaux.
A son palmarès, nous pouvons citer les bien connus S.T.A.L.K.E.R ainsi que Call Of Juarez et des éditeurs du monde 3D tel que SoftImage|XSI.

A ce sujet, Al’s Programming nous offre quelques articles de mise-en-bouche du moteur physique ODE avec OpenGL:

Et afin de compléter notre formation, il existe le bien nommé OpenDE, site de la communauté O.D.E, où nous retrouverons quelques tutoriaux convivaux.

A noter qu’il existe – pour les plus fainéants ;) – des couches d’abstractions pour O.D.E :

  • Open Physics Abstraction Layer : OPAL
  • ODE Abstraction Layer : EZPhysics


Dans les solutions concurrentes, nous avons Newton Physics Engine qui n’est malheureusement pas libre; et son site communautaire
(je vous conseille les samples très sympathiques, notamment la gestion des collisions).

A vos collisions !



PS: Si quelqu’un retrouve le vrai site du projet « ODE Editor » (ODEEd), dont (l’ancien ?) site est malheureusement injoignable, je suis preneur. [Cache Google]

Allons dans le passé Revenons dans le futur