Résultats 3D avec Hollywood
15 sujets de 1 à 15 (sur un total de 15)
-
Ah!
Voila les petits exécutables:
http://jeannoel.roueste.free.fr/Amiga/starship6800x0.exe
http://jeannoel.roueste.free.fr/Amiga/starshipAOS4.exe
http://jeannoel.roueste.free.fr/Amiga/starshipMorphos.exe
http://jeannoel.roueste.free.fr/Amiga/starshipWarpos.exe
Et la source (attention, j’y ai rien expliqué encore, j’en referai 1 plus tard avec explications )
http://jeannoel.roueste.free.fr/Amiga/starship3d4.hws
J’explique un peux quand même, j’ai donc travaillé qu’avec des tableaux et tableau multi dimensionnel, du trie, j’ai ajouter le calcule zmoyen pour chaque triangle (sa me sert d’adresse dans les tableaux pour les coordonnées en X et Y), après le bordel dans le code, j’ai tous rassemblé dans les boucles et éliminé celles qui ne servais à rien… il reste plus que 5 boucles (sur la dizaine que j’avais mis lol)
Et je maitrise pas encore les accés mémoire, mais le but est de remplacé les tableaux par les accès direct mémoire (normalement avec hollywood on peut) et j’espère que se sera plus rapide.
Y’a un peut (bon ok, beaucoup) de clipping, mais c’est parce que j’utilise pas le Zbuffer et mon trie est plutôt simpliste, a modifier.
Par contre, il y a une distortion sur la rotation, mais je sais pas d’ou sa vient (faut encore que je cherche), petit plus, l’objet suis le pointeur de la souris (c’est nul mais sa m’éclate lol)
Amusez-vous bien avec mon code, et si vous avez des questions, biper moi
Edit: J’oublier, vous pouvez me faire un ti retour sur la vitesse, les bugs et tout le toutim (à tester sur sam460 comme sa on voi si hollywood est compatible )
Respect
Bon, 2 images par seconde en émulation 68k
et 45/48 images par seconde en version Win32
J’ai regardé ton code et fais une recherche pour ça
AZ=AZ-1
Il me semble avoir vu passer une astuce sur la ML ou sur le forum qui permettait d’accélérer cette opération par un autre moyen.
Oui, c’est la commande sub()
j’ai modifié, nouveaux PRG à télécharger à la même adresse
Ah! la tu m’intéresse
Alex a regardé un peux mon code, il l’a un peux optimiser, je gagne un peux de FPS… balaise le p’tit alex, il y connais rien en langage hollywood et il a su optimiser mon code…
Quand je dis qu’on a des dev de talents et que l’on sait pas les exploité… j’ai pas si tort car déjà si il arrive un optimiser un code d’un langage qu’il connait pas… Imagine se qu’il peut faire avec un langage qu’il connait lol?
Imagine une équipe de dév avec Crisot, Alex, fab1, henes,thellier,huno… mouarfff… starcraft 3 sur ANG C’EST POSSIBLE
Et pi nous 3, citron toi et moi faire des tetris 2D pour ANG en 3 couleur lol ou alors les menus des jeux que font l’équipe de dev du dessus… si la musique c’est de l’electro, je travail avec soundsquare.
Respect
Moi je dis « Sa claque »
TROUVEEEEE
Et en équipe svp
voici les liens:
http://jeannoel.roueste.free.fr/Amiga/starship6800x0.exe
http://jeannoel.roueste.free.fr/Amiga/starshipAOS4.exe
http://jeannoel.roueste.free.fr/Amiga/starshipMorphos.exe
http://jeannoel.roueste.free.fr/Amiga/starshipWarpos.exe
Normalement c’est beaucoup plus rapide
Voici le code:
http://jeannoel.roueste.free.fr/Amiga/starship3d4.hws
Va falloir que j’explique un de ses 4 dans la source, car sa devient un peux incompréhensible
Merci Alex
@Tarzin: je cherche sur le forum english d’hollywood, toute optimisation et bonne à prendreT’inkiète, je suis tjrs sur ton moteur (t’a remarqué, un vrai chien, je lache rien lol)
Respect
J’ai retrouvé. J’espère que ça pourra t’aider:
—
A year or two ago I wrote a mail with some tricks that would reduce the execution time of your code in Hollywood. The subject interests me, and I keep looking for improvements of this type.
While looking at ways of optimizing the code in one of my programs I did a small test on some appearently straightforward code that surely must be in use in many places. To my surprise a change in this simple code gave a considerable speed increase. The test was made on a 733MHz SAM-Flex.
I use the code for managing the movement of a cursor in a textbox, but similar code can be found in games where an object is moved this or that way depending on a condition. In the example I have just used the value True to represent the test.
My testexample ran as follows
starttimer(1)
for i=1 to 100000
if true
v=v+1
else
v=v-1
endif
next
nprint(gettimer(1),v)
waitleftmouse
end
This example returns a timer value of about 1000. It hardly matters whether the condition is true or false. The result is close to 1000 in both cases.
It is well known, that changing variables into local variables will speed up things. If I add the line…
Local i,v=0,0
…the time returned is about 875. No surprises there, and you probably do this all the time as recommended in the manual.
Now replace this code:
if true
v=v+1
else
v=v-1
endif
with this code:
v=v+1
if True Then v=v-2
…and suddenly the timer returns about 660. Again it matters little whether the condition returns True or False. Cutting 25% from the execution time is not bad. The basic trick is to always set one of the two outcomes (as a default) and then use the simpler If/Then construction instead of If/Then/Else to modify the outcome if the condition is true.
Another observation is that code seems to execute faster when run from a window than if using full-screen mode. It is just a few percent and consistent no matter which window size you use – even if you set the window to the same as the full screen size (1920×1200 in my case). I added a Wait(100) statement before starting the timer and running the test loop. So the screen setup should not be a factor as far as I can see. If I don’t do this it does affect the result.
regards
Jesper
—
Salut
Tu devrais calculer ton A au debut juste apres avoir recupere tes u[ ] et ne faire les autres calculs que si le test sur A est realise
Aussi faudrait pouvoir trier un tableau a plusieurs colonnes:
1er champ = z
2eme champ = numero de son triangle
ainsi ca eviterait cette horrible double boucle
Alain
@Artblink,
Une petite remarque, les 4 exécutables que tu obtiens avec hollywood n’ont jamais l’attribut exécutable alors qu’ils ont bien les 3 autres attributs, lecture, écriture et effacement. Essaye de corriger ce petit problème quand tu sortiras une nouvelle version.
Brumiga
@brumiga: désolé, je comprend pas… snif!!!
Comment on fait?
Pour le moteur, hum!!! pourquoi sa rame? parceque je suis un nazebruck lol
Mon script timing est encore sur mon temps de test… je vous déconseil le
setinterval (1,nom de la fonction,1)
Sa rame lol (à rien y comprendre) le mieux pour la 3D c’est:
setinterval (1,nom de la fonction,1000/50); 50 images par seconde
Sa marche mieux lol
Pareil, artblink est une chèvre (je fais bien le chocolat tchouk tchouk, recette bientôt)
J’ai uploader mes nouveaux fichiers d’hier dans le mauvais répertoire, vous avez eux les même depuis le 21.12.2010 lol
La c’est all good… attention, je tourne sur mon PC à 450 FPS lol, donc la, sa va tourner sur nos amiga (attention, le FPS, c’est mon calcule, il est sûrement pas bon, car a 450 FPS, moi je développe starcraft 3 sur PC )
La différence de vitesse risque d’être énorme car tous mes uploads n’ont pas été fais depuis le 21, et en 3 jours avec alex et thellier et tarzin, le brainstorming à porter ses fruits
Merci aux acteurs, ils m’ont permis d’avoir une autre approche…
@ Thellier: good, je tente, je crois savoir se que tu essai de me dire, je dois précalculer une position de départ pour l’objet 3D et mettre (avec des variables global) des fonctions de calcule dans mes function Haut,Bas etc…
J’essai de faire un loader d’objet .geo, si t’a d’autres objet, tu pourrais me les passer
T’avais raison, pour la texturisation, sur mon PC, quand j’utilise la technique lecture pixel/calcule/écriture pixel je tourne a … hum … 2 FPS… ptdr
Respect
J’ai trouvé comment améliorer le jeux de lumière, je conseil l’utilisation des tableaux pour optimiser vos programmes Hollywood, au lieu de faire des test, indiqué les valeurs a tester comme index du tableau, et à côtés des index, les valeurs pour une variable, sa elimine définivitement les IF..Endif (gain de temp )
N’oubliez pas que l’index d’un tableau avec hollywood n’est pas limité qu’aux chiffres entier et positif, l’index peut être des mots, des nombres négatif, à virgule…
J’ai uploader la nouvelle version… j’ai éliminer 10 test If à faire dans une boucle de 170 à chaque traçage de l’objet grâce à un petit tableaux de 10 valeurs
J’ai modifié comme tu m’as dis… logique, bin oui, pourquoi calculer les coordonnées des triangles qui ne seront pas affiché… bien joué
Je pense avoir bien fignoler le truc, je me lance dans la texturisation
Respect
Nouvelle mise à jour:
Code et commentaires revu et corrigé par Mr Thellier himself
Les exécutables sont OK
Le code source est maintenant ok avec commentaires OK
Amusez-vous bien
Respect
15 sujets de 1 à 15 (sur un total de 15)
- Vous devez être connecté pour répondre à ce sujet.
› Forums › AmigaOS, MorphOS et AROS › Développement › Résultats 3D avec Hollywood