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

Pages vues depuis 25/07/2007 : 25 179 449

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

Top 10  Statistiques

Index du forum »»  Création-Développement »» Demande de bench #Zero

Demande de bench #Zero#2404

14Contributeur(s)
Crisothunoppczzd10hElwoodLioK-LthellierdavebracoMurakamicortosadiruxEggmanPetrolFernecho
3 Modérateur(s)
K-LElwoodcorto
thellier thelliericon_post
si ton code est en ASM alors casse toi pas la tete:

1) adapte le code C de ma fonctions à ton usage au niveau input/output
2) mets la juste dans un toto.c
3) laisse GCC te la convertir en ASM avec un gcc -S toto.c

Alain
Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
Crisot Crisoticon_post
Heuuu... je pense que je ferais à ma sauce :-)

Le truc sorti de Mesa c'est pas du tout ma tasse de thé, enfin disons que ça me ferait chier d'avoir tapé des kilomètres d'assembleur pour aller assassiner la vitesse d'execution avec du vieux code open source :-)

De toute façon les arrays que je passe à Warp3D sont hardcodés, sans structure (ASM oblige) donc pour intercaler le moindre octet pour du FOG là dedans faut que je révise absolument tout mon code pour l'adapter au nouveau array.

--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet

Message édité par : Crisot / 21-02-2017 00:25
thellier thelliericon_post


>pour intercaler le moindre octet pour du FOG

Justement je vois pas l'interet de faire un (draw)array avec en plus une valeur fog et le faire par Warp3D..

Honnêtement le plus radical c'est de calculer ton fog en soft (meme lentement...) mais une fois pour toute dans une table selon Z genre UBYTE FogValues[1024];

Puis faire un truc du genre pour chaque vertex

 n=vertex->z*1024.0;

fog=FogValues[n];

invfog=255-fog;

     color[i][0] = (UBYTE) (fog * color[i][0] + invfog * rFog);
     color[i][1] = (UBYTE) (fog  * color[i][1] + invfog * gFog);
     color[i][2] = (UBYTE) (fog  * color[i][2] + invfog * bFog);

tu peut aussi precalculer toute la valeur RGBA du fog dans FogValues si tu n 'es pas à 4Ko près

fogRGBA=FogValuesRGBA[n];

     color[i][0] = (UBYTE) (fogRGBA[3] * color[i][0] + fogRGBA[0] );
     color[i][1] = (UBYTE) (fogRGBA[3] * color[i][1] + fogRGBA[1] );
     color[i][2] = (UBYTE) (fogRGBA[3] * color[i][2] + fogRGBA[2] );


Et si tu mets tes valeurs RGBA de color et fogRGBA dans des registres 32 bits (des unions en C)  alors cela fera pas grand mal de tout faire au cpu : 3 mul sur des registres par vertex


Alain






Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
Crisot Crisoticon_post

Le rendu peut-être potentiellement salopé. Le fog est calculé au pixel, le blending au vertex.


Imagines que tu as une ligne qui va de Z=0 à Z=1 et un fog qui va de start=0,35 à end=0,40 (exemple volontairement abusif). Il faudrait un éclairage au vertex pour avoir le bon rendu, le blending n'en est pas capable.

--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet
thellier thelliericon_post

On est d'accord

Mais je suis pas sûr que Warp3D non plus fasse un fog au pixel près...

Sinon le seul moyen d'émuler le fog au pixel près c'est de mettre le fog précalculé en RBA dans une texture mappée selon z (genre u=z; v=0;)


Tu m'as pas répondu à ça

Question: j'ai noté que le bump de Microbe3D marchait plus sur ma Sam460 sur un WaRp3D plus récent: connais tu quel modif de code il faut pour notre bump ?

Normalement ça devrait donner ça:

http://thellier.free.fr/Docs/Juliette_grab500.JPG


Alain



Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
Crisot Crisoticon_post
Alors là je n'ai pas de réponse, mon bump fonctionne toujours. T'as pas de bump du tout du tout?
--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet
thellier thelliericon_post
Je
suis pas sûr car l'objet est envahit de noir comme si il était eclairé
par une lampe noire donc on y voit pas grand chose mais je pense que le bump lui est toujours
présent : le problème doit venir d'ailleurs
Mais  c'est rageant que du
code qui marchait depuis des années se mettent à plus marcher au fil des
nouvelles versions de l'OS41
J'ai aussi une démo Nova sur laquelle je suis depuis des mois : le code est finit mais rien ne s'affiche: zero bugs, zero crash, zero erreur retournée et sortie sans soucis et pourtant rien = rageant

Alain

Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
Fernecho Fernechoicon_post
Salut,

Chez moi ça fonctionne très bien, couleurs parfaites et son sans coupures.

Average Framerate: 130.15 fps

AmigaONE X1000 - RadeonHD 7950 - AmigaOS4.1FE update 1

Amiga 1200 / Blizzard 1260 / Mediator 1200 / Voodoo 3 / 64 Mb / Indivision AGA 1200 / 80 Gb HDD / OS 3.9
AmigaONE X1000 First Contact
Petites Annonces

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme