home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser-CD 2001 January / LCD_01_2001.iso / develop / tinylib041 / tiny / atari / infos.txt next >
Encoding:
Text File  |  2000-08-15  |  6.0 KB  |  137 lines

  1. Tiny_gl.ldg quesako                   Belfort le 15/08/2000
  2.  
  3. Version actuelle de tiny_gl.ldg = 0.41
  4.  
  5.  
  6. TinyGL est une librairie graphique 3D minimaliste de Patrice BELLARD
  7. développée dans le cadre d'un projet étudiant de réalité virtuelle
  8. nommé Vreng, TinyGL étant le moteur de rendu 3D du projet. Les fonctions
  9. de base sont identiques à la célèbre librairie OpenGL de SGI, dont le
  10. clone le plus célèbre est Mesa (déja porté par mes soins).
  11. Contrairement à Mesa, TinyGL ne se veut pas compatible OpenGL, les 
  12. fonctions accessibles sont assez restreintes et n'ont été implémentées
  13. que celles nécessaires au projet de réalité virtuel. Pour ma part je 
  14. tacherais de rajouter quelques fonctions pratiques et très usitées comme
  15. "glOrtho()"... qui peuvent facilement être implémentées. Enfin TinyGL a 
  16. surtout été optimisée pour le plaquage de textures.
  17.  
  18. La librairie LDG que vous avez entre les mains
  19.  
  20. Cette librairie a donc repris les sources originales de TinyGL 0.2 et
  21. ont été adaptées au besoin de notre monde et dans le but de le rendre
  22. dans la mesure du possible la plus compatible avec la librairie Mesa_gl.ldg
  23. précitée et avec les fonctions d'affichage TrueColor de screen.ldg.
  24. Pour se faire les fonctions GLX liées à X1Windows ont été remplacées pour
  25. créer un contexte compatible avec celui crée dans Mesa_gl.ldg. Contrairement
  26. à celui ci un seul mode graphique a été retenu: le mode 24bits RGB au format
  27. VDI. Le rendu de base de TinyGL s'effectuant en 16bits et la transformation
  28. de 16 vers 24bits étant très lente, le driver  à été adapté afin de directement
  29. réaliser le dessin dans le buffer 24bits. Une forte optimisation du code a été
  30. nécessaire afin de ne pas être pénalisé et obtenir une vitesse identique
  31. ou presque (voir plus rapide!) par rapport au rendu 16bits d'origine, c'est
  32. chose fait pour le rendu de gouraud (smooth) et le rendu flat. Le rendu se
  33. révèle globalement nettement plus rapide que celui de Mesa_gl.ldg si l'on 
  34. n'utilise pas l'accélération GL_CULLFACE qui permet de ne pas dessiner le
  35. dos des objets si ceux la sont cachés par d'autres. Cette accelération 
  36. n'existe pas dans TinyGL.
  37.  
  38. version originale : 0.10
  39. Ce qui ne va pas encore dans cette version
  40.  
  41. Le rendu des textures n'est actuellement pas valide car la transformation
  42. du rendu 24 bits n'est pas faite ou incomplete, donc pas la peine d'essayer
  43. de lui faire faire des textures! seul le rendu Flat ou Gouraud fonctionne.
  44. La fonction glDeleteLists() est accesible dans les fonctions mais ne fait
  45. absolument rien! je l'ai intégrée uniquement pour test de remplacement de 
  46. mesa_gl.ldg par Tiny_gl.ldg dans Eureka 2.12 de Francois Le Coat avec succes.
  47. Tiny_gl peut donc dans une certaine mesure remplacer Mesa_gl pour des rendus
  48. simples.
  49.  
  50. WARNING: La largeur de l'image doit être un multiple de 4!!!!! sinon 
  51. oups!
  52.  
  53. Save_TGA() ne fonctionne pas, elle sera retirée dans une prochaine 
  54. version, elle fait double emploi avec la meme fonction de screen.ldg
  55.  
  56. version : 0.11 (1 mars 2000)
  57. Recompilation de la version précédente avec nouvelle librairie LDG
  58. pour corriger un bug de gestion mémoire.
  59. Save_TGA() a été éliminée des fonctions de Tiny (vous pouvez utiliser celle
  60. de screen qui fonctionne parfaitement)
  61. Les textures ne fonctionnent toujours pas normalement
  62.  
  63. version : 0.20 (3 avril 2000)
  64. Correction du rendu filaire
  65. Correction du rendu des textures
  66.  
  67. version : 0.30 (4 avril 2000)
  68. Nouvelle correction pour les textures
  69. Gestionnaire de mémoire (grabage collecting) intégré pour assurer l'éffacement 
  70. des blocs à la fin de la session 
  71.  
  72. version : 0.31 (9 avril 2000)
  73. Accélération légère de la librairie (environ 5 à 10%)
  74.  
  75. version : 0.32 (15 avril 2000)
  76. Correction de la fonction de désallocation qui ne désallouait rien!
  77. erreur incroyable, faut que je dorme!
  78.  
  79. version : 0.33 (24 avril 2000)
  80. Encore des problèmes de désallocations mémoire importants, sur les
  81. essais effectues plus riena signaler ouf, ca fait pas très sérieux tout cela.
  82.  
  83. version : 0.34 (25 avril 2000)
  84. Une allocation inutile enlevée, réduction du fractionnement mémoire et du nombre
  85. de blocs alloués.
  86. swapbuffer() devrait fonctionner (attention vous devez allouer vous même le bloc
  87. 3 octets par pixel)
  88.  
  89. version : 0.35 (18 juin 2000)
  90. Une routine d'exception est installable en cas d'erreur interne non 
  91. prévisible
  92.  
  93. version : 0.36 (29 juin 2000)
  94. Correction erreur GL_FRONT GL_BACK avec le placement des vertex sous
  95. GL_TRIANGLE_STRIP. Dorénavant avec cette version on peut utilise les
  96. options liéees à GL_BACK et GL_FRONT elles peuvent être enfin différentes
  97. de plus l'option GL_CULLFACE est maintenant utilisable.
  98. Interpolation des couleurs sur les lignes pour le mode filaire.
  99.  
  100. version : 0.37
  101. Interpolation des couleurs en mode filaire et amélioration d'environ
  102. 20% de la vitesse.
  103. Toutes les erreurs internes de Tiny sont gérées par l'exception
  104.  
  105. version : 0.38
  106. Contrairement à ce que j'ai pu écrire pour la version 0.37 toutes les
  107. erreurs n'étaient pas gérées par l'exception, c'est chose faite, de plus
  108. 2 nouveaux types d'erreurs apparaissent et une erreur mémoire ne signifie
  109. plus systématiquement un arrêt brutal du programme si l'erreur 13 est 
  110. présentée. Tout le monde peut se tromper! moi le premier. Warning sur niveau
  111. de mémoire basse (< 32Ko)
  112.  
  113. version 0.41
  114. Gain en mode filaire d'environ 10% !
  115. Gain en utilisation intensive des couleurs et utilisation en liste 10-15% !
  116. Gain sur 3D sans perspective environ 10% 
  117.  
  118. Intérêt de Tiny_gl:
  119.  
  120. Tiny_gl est tout petit et fait environ 140Ko (compilé avec GCC qui prend pour
  121. n'importe quelle application environ 40Ko) et comparé à Mesa_gl.ldg qui est 
  122. proche de 800Ko (les 2 en version 68000) on comprend la différence. Mais
  123. bien plus fort  en mémoire prise en utilisation le gain peut atteindre de 
  124. l'ordre de 5Mo!!!!
  125. Enfin TinyGL est petit, le source est bien plus simple à suivre et plus aisé à
  126. optimiser (Est ce possible avec Mesa! je m'y suis casse le nez), si des fous
  127. d'assembleur veulent s'y frotter, je leurs laisserais bien volontier les 
  128. sources.
  129.  
  130. Fonctions ajoutées à TinyGL:
  131.     gluLookAt()
  132.     glOrtho()
  133.  
  134.  
  135. Olivier LANDEMARRE
  136.  
  137.