J'apprends OpenGL (spécifiquement, en utilisant JOGL) et j'essaye de créer un prisme triangulaire à angle droit. J'ai appris que vous pouvez créer un prisme équilatéral avec glutWire
/SolidCylinder
et un petit nombre de tranches (3 pour un triangle, évidemment). Donc, je me demande s'il y a une autre façon de faire un prisme, ou s'il y a un moyen de mettre à l'échelle un triangle équilatéral pour le transformer en triangle rectangle?Créer un prisme triangulaire à angle droit dans OpenGL
0
A
Répondre
0
J'ai également trouvé que (au moins dans JOGL, aucune idée ailleurs) glutSolidCylinder ne fonctionne pas correctement - les plateaux sont dessinés à une rotation différente des côtés, vous donnant une forme très étrange. J'ai donc fini par créer une méthode qui crée un prisme triangulaire droit-unité que vous pouvez ensuite faire pivoter et mettre à l'échelle si nécessaire. Il y a probablement beaucoup de meilleures façons de le faire, si les commentaires sont les bienvenus:
private void unitTriangularPrism(GL gl, boolean solid){
// back endcap
gl.glBegin(solid ? GL.GL_TRIANGLES : GL.GL_LINES);
gl.glVertex3f(1f, 0f, 0f);
gl.glVertex3f(0f, 0f, 0f);
gl.glVertex3f(0f, 1f, 0f);
gl.glEnd();
// front endcap
gl.glBegin(solid ? GL.GL_TRIANGLES : GL.GL_LINES);
gl.glVertex3f(1f, 0f, 1f);
gl.glVertex3f(0f, 0f, 1f);
gl.glVertex3f(0f, 1f, 1f);
gl.glEnd();
// bottom
gl.glBegin(solid ? GL.GL_QUADS : GL.GL_LINES);
gl.glVertex3f(0f, 0f, 0f);
gl.glVertex3f(1f, 0f, 0f);
gl.glVertex3f(1f, 0f, 1f);
gl.glVertex3f(0f, 0f, 1f);
gl.glEnd();
// back
gl.glBegin(solid ? GL.GL_QUADS : GL.GL_LINES);
gl.glVertex3f(0f, 0f, 0f);
gl.glVertex3f(0f, 1f, 0f);
gl.glVertex3f(0f, 1f, 1f);
gl.glVertex3f(0f, 0f, 1f);
gl.glEnd();
// top
gl.glBegin(solid ? GL.GL_QUADS : GL.GL_LINES);
gl.glVertex3f(0f, 1f, 0f);
gl.glVertex3f(1f, 0f, 0f);
gl.glVertex3f(1f, 0f, 1f);
gl.glVertex3f(0f, 1f, 1f);
gl.glEnd();
}
Questions connexes
- 1. Texture de la bande triangulaire de l'atlas Opengl ES
- 2. OpenGL à OpenGL-ES - glBegin();
- 3. comment créer le bouton triangulaire C#
- 4. Comment créer un module WPF/Silverlight à l'aide d'un prisme, mais aussi incorporé dans des applications sans prisme
- 5. Dessiner un prisme avec CoreAnimation
- 6. OpenGL: Créer un skybox?
- 7. Comment lier un PImage à une texture dans Traitement à l'aide de jogl (OpenGL droit)
- 8. Remplacement de tous les caractères non-ASCII, à l'exception du caractère à angle droit, en C#
- 9. Comment dessiner un NSString à un angle?
- 10. Scipy matrice triangulaire clairsemée?
- 11. BitmapData - transformation triangulaire
- 12. "Mirroring" un angle
- 13. Flash AS3 tweening à un angle
- 14. Problème avec un brouillard volumétrique dans OpenGL
- 15. Renverser un angle en utilisant des radians
- 16. Tracer une ligne à un angle spécifique en Java
- 17. OpenGL à OpenGL-ES - Modification de la couleur des triangles dans une bande
- 18. Angle interpolant
- 19. Angle de direction ou pointant un angle 3D vers une position dans l'espace
- 20. Calcul de bord triangulaire C++
- 21. prisme/MVVM: lier des colonnes à DataGrid
- 22. Abonnement à un événement avec prisme donnant l'exception methodaccess
- 23. Créer les liens d'une chaîne dans OpenGL
- 24. UIAccelerometer Angle de détection Problème
- 25. After Effect - Onde triangulaire (JavaScript)
- 26. angle UIAccelerationValue
- 27. Silverlight Action et Prisme
- 28. Prisme et régions
- 29. Comment faire pivoter un GluCynlinder dans OpenGL?
- 30. prisme delphi (.net) compilateur
à part le fait que tous ces appels sont déconseillés dans OpenGL 3, et je pense que vous voulez LINELOOP, pas de lignes, dans le cas wireframe (bien que la redondance fait probablement en sorte que tous les bords en sauvegardent un de toute façon), c'est une approche très claire et directe. –
Quel est l'équivalent OpenGL 3 de ces appels? – dimo414