[JMonkey Engine] Utiliser des NURBS
Bonjour,
Je développe sur mon temps libre un simulateur de train disponible sur Source Forge :
http://sourceforge.net/projects/jtrainsimulator/
J'essaie actuellement de remplacer Java3D par Java Monkey Engine en tant que moteur de rendu 3D du monde extérieur.
J'ai un problème de rendu sur mes sections de voies ferrées courbes qui était déjà présent avec Java 3D : l'objet 3D que j'affiche dans la scène est discrétisé. J'ai une sorte de patron qui représente le ballast et les rails que "j'extrude" en arc de cercle avec un pas discrétisé (degré par degré). Quand je circule sur cet élément de voie ferrée, je calcule la position de la caméra "parfaitement" sur un arc de cercle. En roulant sur l'élément, j'ai du coup l'impression que les rails dansent devant moi de gauche à droite.
J'ai l'impression que j'ai deux solutions :
- discrétiser à plus petits pas jusqu'à ne plus ressentir cette "danse" (mais je vais également multiplier le nombre de facettes à afficher)
- utiliser un objet graphique plus puissant dont je lis qu'il peut modéliser parfaitement des cercles en 3 dimensions : les NURBS
Et là je regarde le code de JME et j'ai l'impression que les NURBS sont gérés. Je vois qu'il y a une classe com.jme3.scene.shape.Surface et une méthode
Code:
public static final Surface createNurbsSurface(List<List<Vector4f>> controlPoints, List<Float>[] nurbKnots, int uSegments, int vSegments, int basisUFunctionDegree, int basisVFunctionDegree)
Mais deux problèmes se posent à moi :
- je ne sais pas exactement comment appeler concrètement cette méthode (je n'ai pas trouvé d'exemple de code dans les tutos de JME)
- je ne suis pas très fort en NURBS et je ne connais même pas de jeu de valeur qui soit susceptible de printer quelquechose de pas trop bête à l'écran, histoire de pouvoir commencer à manipuler pour appréhender la "physique" des NURBS
Merci de votre aide