Annonces Google
Serveur IRC
Serveur : irc.portlane.se
Canal : #AmigaNG
Activité du Site

Pages vues depuis 25/07/2007 : 25 363 425

  • Nb. de membres 187
  • Nb. d'articles 1 271
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Création-Développement »» MiniGL

MiniGL#965

21Contributeur(s)
CrisotMrodfrartblinkscriptjestersinisrusCreolsalexAmiDARKPetrolphardfrSergiusElwoodK-Ldavebracokas1eOlrickBalisthellierzzd10hPseudaxoscorto
3 Modérateur(s)
K-LElwoodcorto
Olrick Olrickicon_post
Pour avoir déserté la communauté de juin 2000 à décembre 2008, je n'ai pas vraiment connu Crisot et, depuis sa réapparition à la μAlchimie, je me demandais qui était ce Crisot dont tout le monde parlait.

Aux Amigâteries, j'ai pu observer Crisot ramener à la vie du matériel contre toute attente.

Et puis je l'ai vu lancer sa démo The One...

Très honnêtement, jusque là je trouvais que tout ce que j'avais vu en 3D sur Amiga ou NG était anémique, des années lumières derrière ce que de bêtes PC faisaient au début des années 2000.
Les malheureux économiseurs d'écran OpenGL de l'OS m'ont conforté dans cet idée.
Et là, sous mes yeux, j'ai vu un morceau de "vieille" démo qui m'a laissé sur le cul.
J'ai réalisé que contrairement à ce que j'avais fini par penser, le hardware des NG n'est pas du pipi de chat juste bon à faire tourner l'AmigaOS sur PowerPC.
Je pensais vraiment que sans la magie du chipset du classic, le NG n'offrait que la moitié du plaisir de l'Amiga.

J'avais tort !

Crisot, ce que j'ai vu pendant quelques secondes sur ton écran, c'était du pur plaisir. J'ai réalisé que le hardware du NG a le potentiel !
Tout ce qui manque, c'est sa mise à disposition pour pouvoir l'exploiter.
Tu es capable d'exploiter ce matériel.

La moindre chose que tu pourras apporter à la communauté, par optimisation de MiniGL ou autre participation à une bibliothèque 3D sera du pain béni.
Tu as le pouvoir de faire relever la tête à toute la communauté NG.
Donc n'hésite pas, fais toi plaisir, fais nous plaisir et n'hésite pas à nous demander de l'aide. Pour ma part je suis prêt à t'aider pour tout ce que tu voudras.

J'ai juste une requête:
s'il te pla?t, publie le petit bout de ta démo qui est fonctionnel, afin que quand on fait une démo d'un NG, on puisse montrer qu'au delà de la lecture de ses mails, on peut créer des images de toute beauté.

En tout cas, merci pour cette révélation.


Petite note au sujet de la discussion sur Warp3D:
Cette démo qui m'a ébouriffé utilise Warp3D...
Ca fait se poser des questions sur l'avenir du support 3D de l'OS.
Balis Balisicon_post
@ Olrick

C'est clair que Crisot est l'un des rares qui puisse faire des merveilles avec de la 3D. Si tous les développeurs avaient le sens de l'optimisation des demomakers, AmigaOS4 serait utilisé 10x plus ;-)

@Crisot
Y'a plein de monde qui espère que tu puisses améliorer un peu les choses sur MiniGL.
Avec tout le talent que t'as, tu ferais la joie de beaucoup (enfin presque) d'utilisateurs.
SAM440ep@667Mhz - AmigaOS 4.1
artblink artblinkicon_post
Oui, d'accord avec la plupart, mais c'est dommage d'être seul sur un tel projet, une relecture de code, une optimisation partagé entre plusieurs programmeur, ils sont plusieurs sur amiga à travailler la 3D, je pense à crisot comme tous, mais il y a aussi Amidark, Thellier et d'autres (que l'on connait moins) sûrement qui sont habitué a optimiser des bouts de codes, routines. Un ensemble et un noyau dur de "développeur" sur un projet commun ou ils partageraient leurs connaissances, ressources, relire les codes de chacun en vu d'optimisation personnalisé, il y a plus d'idée dans plusieurs tête que dans une seul ;-)

De plus, les projets iraient bien plus vite et ne tomberaient pas à l'eau(par manque de temps dans la plupart des cas) au bout d'un long moment de vivotage. Car le plus dure dans tous sa, a part le temps, c'est la motivation, qui peut vite les abandonner.

Bref, pour moi, et sa fait longtemps que je le dis, tant que les développeurs par loisirs ne se rapprocheront pas, les idées ne seront pas novatrice et les projets auront du mal a être finaliser ou très long à développer.

Pour info, je recherche tjrs des gens motivé pour des projets communs sur hollywood ;-)
AmiDARK AmiDARKicon_post
Tu sais, Artblink,
Souvent on développe par "plaisir" comme tu le dis toi même ...
A partir du moment ou tu commences à former un groupe ... il commence à y avoir des notions de délai ... impératif, etc ... et la ... le plaisir devient vite une contrainte ...
Pour ma part, même si j'aime beaucoup bosser en groupe (comme l'on fait aux Alchimies :p) ... je préfère bosser en Solo ... c'est vrai que c'est plus lent ... mais je garde le contrôle sur le développement du produit (pas de dérives) et je code quand j'en ai envie (et quand je le sens, car le code, c'est comme de la zik ... il y a une bonne part d'inspiration ... si on est pas inspiré ... on n'arrive pas a coder ... enfin... moi je le "perçois" ainsi) ...
Pour MiniGL ... je suis pas sûr qu'on puisse réellement optimiser drastiquement la "Chose" ... De plus ... je ne suis pas "familier" avec des techniques de programmations autres que la mienne (je suis un peu un électron libre ...) ... donc j'ai souvent du mal à reprendre du code des autres (je ne comprends pas leur logiques, et bien souvent, eux ne comprennent pas la mienne ... mdr)

@ +
AmiDARK
Crisot Crisoticon_post
Avec 18 mois de retard j'ai compilé minigl et mglut.

Je viens de passer l'après midi dedant et on est au dela de tout ce que j'imaginais... Je sais que j'aime bien troller/provoquer, toussa toussa, mais là je vais parler très très sérieusement. MiniGL est irrécupérable. Je n'ai jamais vu quelque chose d'aussi mal fichu. C'est une catastrophe, tout simplement.

L'architecture complète de la library est à revoir, intégralement. Elle a besoin d'une réécriture complète, depuis une page blanche. Il n'y a absolument rien à récupérer.

Comment expliquer simplement...

En 3D on traite des paquets de triangles les plus grands possibles à chaque étape de la création d'une image. Puis on trace tous les triangles finaux d'un coup, d'un seul!

MiniGL fait totalement le contraire, il prend les triangles un par un, le traite, l'affiche, avant de passer au suivant. C'est un gouffre CPU/GPU abominable, encré au plus profond du code...

Je suis dépité. MiniGL est beaucoup plus bas que je ne l'imaginais.
--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet
sinisrus sinisrusicon_post
Sa prendrai combien de temp pour la réécrire? ou du moin l'optimisé?
--
Coin coin... amitheme.amiga-ng.org
Sam460 1,15Ghz - OS4.1FE - Radeon Saphir HD7750 R7 250E - 2Go de ram
AmiDARK AmiDARKicon_post
thellier thelliericon_post
Hello

>MiniGL fait totalement le contraire, il prend les triangles un par un
Ca rejoint ce que j'avais écris ici:
http://www.amiga-ng.org/viewtopic.php?topic=1369&forum=14
Comme quoi il faudrait un StateTracker dans MiniGL comme ce qui existe dans Wazp3D pour bufferizer les triangles...

J'en viens même à me demander si un "Wazp3D avec rendu Warp3D" n'aurait pas du sens.... (cad tout le bon code de Wazp3D et juste utiliser qques fonctions de Warp3D comme W3D_DrawArrray pour tracer....)

Par ailleurs avant de tracer MiniGL passe son temps à remettre (aux mêmes valeurs) les states et blendmode .@crisot : Ajouter qques tests dans le code MiniGL éviteraient 10 appels à Warp3D par opération de traçage (voir plus loin)

Ci dessous un exemple obtenu grace au debugger de Wazp3D sur supertuxkart:
trace 2 rectangle soit 2*2=4 triangles en 22 !!! appels à Warp3D
Je precise pour les non-coders que un seul appel à Warp3D suffisait le W3D_DrawArray() de 4 triangles

Alain Thellier


/* ici mets des states */

[69424][2346]W3D_SetState
[ ] state=W3D_CULLFACE
[69425][1387]W3D_SetFrontFace
direction=W3D_CCW
[69426][34428]W3D_SetTextureBlend
W3D_BLEND_STAGE,0,
W3D_COLOR_COMBINE,W3D_COMBINE_DISABLED
W3D_ALPHA_COMBINE,W3D_COMBINE_DISABLED
[69427][34429]W3D_SetTextureBlend
[69428][34430]W3D_SetTextureBlend
W3D_BLEND_STAGE,1,
W3D_COLOR_COMBINE,W3D_COMBINE_DISABLED
W3D_ALPHA_COMBINE,W3D_COMBINE_DISABLED
[69429][34431]W3D_SetTextureBlend
[69430][34432]W3D_SetTextureBlend
[69431][10327]W3D_InterleavedArray
[69432][2347]W3D_SetState
[X] state=W3D_CULLFACE
[69433][1388]W3D_SetFrontFace
direction=W3D_CCW

/* ici trace juste 2 triangles */

[69434][14739]W3D_DrawArray
SetTexStates
WC->state:Changed1 UseTex0 ST0 ZMode9 TexEnvMode0 BlendMode33 UseGouraud1 UseFog0 (tex 0)
Adjusting WC->state ....
WC->state.BlendMode=33
WC->DstFunc=8
WC->SrcFunc=7
WC->state.BlendMode=33
WC->state:Changed1 UseTex0 ST0 ZMode9 TexEnvMode0 BlendMode33 UseGouraud1 UseFog0
primitive=W3D_PRIMITIVE_TRISTRIP
base=0
count=4
DrawPrimitive

/* ici remets les mêmes states */

[69435][2348]W3D_SetState
[ ] state=W3D_CULLFACE
[69436][1389]W3D_SetFrontFace
direction=W3D_CCW
[69437][34433]W3D_SetTextureBlend
W3D_BLEND_STAGE,0,
W3D_COLOR_COMBINE,W3D_COMBINE_DISABLED
W3D_ALPHA_COMBINE,W3D_COMBINE_DISABLED
[69438][34434]W3D_SetTextureBlend
[69439][34435]W3D_SetTextureBlend
W3D_BLEND_STAGE,1,
W3D_COLOR_COMBINE,W3D_COMBINE_DISABLED
W3D_ALPHA_COMBINE,W3D_COMBINE_DISABLED
[69440][34436]W3D_SetTextureBlend
[69441][34437]W3D_SetTextureBlend
[69442][10328]W3D_InterleavedArray
[69443][2349]W3D_SetState
[X] state=W3D_CULLFACE
[69444][1390]W3D_SetFrontFace
direction=W3D_CCW

/* ici trace juste 2 triangles */

[69445][14740]W3D_DrawArray
SetTexStates
WC->state:Changed1 UseTex0 ST0 ZMode9 TexEnvMode0 BlendMode33 UseGouraud1 UseFog0 (tex 0)
Adjusting WC->state ....
WC->state.BlendMode=33
WC->DstFunc=8
WC->SrcFunc=7
WC->state.BlendMode=33
WC->state:Changed1 UseTex0 ST0 ZMode9 TexEnvMode0 BlendMode33 UseGouraud1 UseFog0
primitive=W3D_PRIMITIVE_TRISTRIP
base=0
count=4
DrawPrimitive
K-L K-Licon_post
Un Wazp3D qui ferait appel aux fonctions Warp3D ? Comment cela pourrait se faire ?

Il ne peut y avoir qu'une bibilothèque Warp3D en mémoire, non ? (Soit Warp3D.library soit Wazp3D.library renommée en Warp3D.library).
--
AmigaONE X1000/1,8 Ghz (A-Eon), Radeon RX560, 2 Go de Ram et OS4.1 FE
thellier thelliericon_post
Note sur le debugger:

[69429][34431]W3D_SetTextureBlend

Veut dire 69429 appels a War/zp3D ok ok
34431 appels à W3D_SetTextureBlend ===> Dingue

Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme