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

Pages vues depuis 25/07/2007 : 24 889 105

  • Nb. de membres 186
  • Nb. d'articles 1 269
  • Nb. de forums 19
  • Nb. de sujets 20
  • Nb. de critiques 24

Top 10  Statistiques

Index du forum »»  Logiciels »» Cows 3D pour Warp3D et Nova

Cows 3D pour Warp3D et Nova#2388

11Contributeur(s)
thellierK-Lzzd10hCrisotamigaoufdavebracoElwoodsadiruxsinisrusxray
3 Modérateur(s)
K-LElwoodcorto
K-L K-Licon_post
Alain vient de mettre en ligne une nouvelle version de Cows3D, le testeur ultime pour la 3D sur AmigaOS.

Cette version supporte maintenant Warp3D Nova !

Warp3D pour Radeon HD sur X1000 / Radeon 7770 1Ghz : 156 FPS
W3D Nova pour Radeon HD sur X1000 / Radeon 7770 1Ghz : 459 FPS

Ne se lance pas sur ma Sam440 et sa Radeon M9 (le CPU monte à 90% mais rien ne s'affiche).
--
AmigaONE X1000/1,8 Ghz (A-Eon), Radeon RX560, 2 Go de Ram et OS4.1 FE
zzd10h zzd10hicon_post
X1000 / R7-250X / FE upd 1

CoW3D6-os4         154
Cow3D6-os4-Nova 448


thellier thelliericon_post

Merci à Tous :-)

>se lance pas sur ma Sam440 et sa Radeon M9 (le CPU monte à 90% mais rien ne s'affiche).

Je viens de tester sur ma Sam440+M9 et ça marche

Mais je crois me rappeler que j'avais réinstallé un vieux Warp3D du 4.1 car avec celui de FE j'avais des problèmes

Tu peut m'envoyer ton Warp3D que t'as dans libs: par mail que je comprenne le pb

Alain

 



Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
Crisot Crisoticon_post
C'est cool, j'ai vu beaucoup de résultats défiler sur d'autres forums. Maintenant plusieurs interrogations.

-Compte tenu des faibles performances de Warp3D, de sa grande dépendance au CPU, et du fait que Nova est supposé reposer au maximum sur le GPU, je trouve l'écart de performances un peu faible. Mais peut-être faudrait-il un modèle un peu plus complexe que la sempiternelle vache pour mettre en avant l'écart :-)

-Je soupçonne Nova d'être encore pas mal dépendant du CPU, comme le dénote les écarts de performances entre les différents benchmarks sur les mêmes GPU. J'avais déjà ce soupçon à la dernière Amiageterie avec 30% de CPU utilisé pour le simple logo Warp3D Nova. :-)

Quoi qu'il en soit, c'est une révolution! :-)

Alain: Je suppose que c'est du VBO static?
--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet
Crisot Crisoticon_post
J'ajoute que le X5000 patate bien. Mais j'ai quand même du mal à expliquer l'écart de performances avec X1000/Sam460 avec pourtant des GPU similaires.
--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet
thellier thelliericon_post
Soir'

Merci des retours
Je suis comme vous : je n'ai pas toutes les réponses
On m'a demandé de faire un Cow3D pour la sortie de Nova: le voilà donc...
Mais ça m'a gavé de me remettre dans CoW3D qui est pas un programme si bien écrit que ça

Aussi Nova (tout comme les versions d'OpenGL avec shaders...) est un peu trop compliqué pour rien : cad que quand on veut pas faire grand choses il faut quand meme écrire beaucoup de code
Bref c'étais chiant...

>Nova est supposé reposer au maximum sur le GPU, je trouve l'écart de performances un peu faible.
Cow3D fait pas grand chose donc c'est un programme idéal pour Warp3D qui est donc favorisé
Par contre si il y avait eu de l'éclairage ou d'autres effets alors Nova aurait repris le dessus: enfin je suppose :-P

@Crisot
>Je suppose que c'est du VBO static?

Oui voici comment la vache est mise dans le vbo une fois pour toute

/*==================================================================*/
BOOL ObjectToVboNova(struct object3D *O)
{
ULONG Anb=3+1;
ULONG Asize = O->Pnb * sizeof(NOVAPOINT) + O->PInb * sizeof(ULONG);

O->vbo = C.ncontext->CreateVertexBufferObject(&C.error, Asize, W3DN_STATIC_DRAW, Anb, TAG_DONE);
NCHECK(O->vbo,CreateVertexBufferObject);
NERROR(CreateVertexBufferObject)

// Set the VBO's layout
NOVAPOINT *point = NULL;
O->Vid = 0;
O->Nid = 1;
O->UVid = 2;
// O->Cid = 3;

O->PIid = 3;
// O->PIid = 4;

uint32 Vcount = sizeof(point->position) / sizeof(point->position.x);
uint32 Ncount = sizeof(point->normal) / sizeof(point->normal.x);
uint32 UVcount = sizeof(point->texCoord) / sizeof(point->texCoord.x);
// uint32 Ccount = sizeof(point->color) / sizeof(point->color.x);

uint32 Voffset = offsetof(NOVAPOINT, position);
uint32 Noffset = offsetof(NOVAPOINT, normal);
uint32 UVoffset = offsetof(NOVAPOINT, texCoord);
// uint32 Coffset = offsetof(NOVAPOINT, color);

uint32 Psize = sizeof(NOVAPOINT);
uint32 PIsize = sizeof(ULONG);
uint32 PIoffset = O->Pnb * Psize;

strcpy(O->Vname ,"vertPosition");
strcpy(O->Nname ,"vertNormal");
strcpy(O->UVname,"vertTexCoord");
// strcpy(O->Cname ,"vertColor");

C.ncontext->VBOSetArray(O->vbo, O->Vid, W3DNEF_FLOAT, FALSE, Vcount, Psize, Voffset, O->Pnb);
C.ncontext->VBOSetArray(O->vbo, O->Nid, W3DNEF_FLOAT, FALSE, Ncount, Psize, Noffset, O->Pnb);
C.ncontext->VBOSetArray(O->vbo, O->UVid,W3DNEF_FLOAT, FALSE, UVcount,Psize, UVoffset,O->Pnb);
// C.ncontext->VBOSetArray(O->vbo, O->Cid ,W3DNEF_FLOAT, FALSE, Ccount,Psize, Coffset, O->Pnb);

C.ncontext->VBOSetArray(O->vbo, O->PIid,W3DNEF_UINT32, FALSE, 1, PIsize, PIoffset, O->PInb);

/* not known yet */
O->Vattrib=0;
O->Nattrib=0;
O->UVattrib=0;
O->Cattrib=0;

// Generate the vertices
W3DN_BufferLock *bufferLock = C.ncontext->VBOLock(&C.error, O->vbo, 0, 0);
NCHECK(bufferLock,VBOLock);
NERROR(VBOLock)

APTR NP = (NOVAPOINT*)bufferLock->buffer;
memcpy(NP,O->P,O->Pnb*sizeof(NOVAPOINT));

APTR NPI = (uint32*)((uint8*)bufferLock->buffer + PIoffset);
memcpy(NPI,O->PI,O->PInb*sizeof(ULONG));

C.ncontext->BufferUnlock(bufferLock, 0, bufferLock->size);

return(TRUE);
panic:
REM(panic!!!)
return(FALSE);
}
Sam440 - Sam460 - X5000 - PowerBookG4 - WinUAE - MiniMig
amigaouf amigaouficon_post
Une chose a faire gaffe quand on parle de carte graphique en pci-e, c est la version du dit pci-e je crois savoir que le pcie du x1000 est première génération alors que celui du x5000 est de deuxième génération.
Crisot Crisoticon_post
Peut importe, sur un VBO (=OpenGL moderne) et avec un niveau de détail faible (=cas de la vache), on pourrait bien être sur un port ISA que les performances n'ont aucune raison de tomber vu qu'aucun transfert PCI-E n'est sollicité. C'est mon unique (en tout cas ma plus grande) interrogation sur les performances de Nova.

Après je ne crache pas dans la soupe, les performances ont l'air honorables, et Nova est jeune. Peut-être même y'a t'il une marge de progression considérables. Je regrette de ne pas pouvoir tester moi même, mais ce n'est pas à l'ordre du jour. :-)
--
AmigaOne X1000 - 2 Go DDR2 - Sapphire R9 280x Toxic - Crucial MX200 500 Go - Alim/Cooling BeQuiet

Message édité par : Crisot / 16-01-2017 22:40
davebraco davebracoicon_post
Sam460 R7-250 

CoW3D6-os4         147
Cow3D6-os4-Nova 500
A1200PPC / Sam440ep / Sam460ex / X1000 / X5000
Crisot Crisoticon_post
Intéressant. La SAM460 offre les mêmes performances qu'un X1000 sur une même HD250. Pendant ce temps, un X5000 ventile les deux.

Là je n'ai juste AUCUNE explication (théorique) :-)

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

0 annonce(s) publiée(s)

Consulter

AmigaOS 4.1

Laissez-vous tenter par
AmigaOS 4.1
AmiTheme

AmiTheme