Question

(Je ne sais pas si cela devrait être sur https://softwareengineering.stackexchange.com/ ou non, s'il vous plaît commentaire si vous croyez)

Je suis sur le point de créer un point de repère pour les implémentations WebGL pour ma thèse de bachelor. Je ne suis pas sûr quel genre de tests que je devrais créer et si je mesure que les images par secondes si je pouvais obtenir d'autres données utiles pour référence ...

Actuellement, je pensais juste que sur les tests comme ça:

  • 1 seul objet coloré
  • 1 objet multicolore
  • 1 objet texturé
  • 1 objet texturé avec le mélange
  • 1 objet texturé avec la foudre
  • 1 objet texturé avec de multiples points d'éclairage
  • 1 scène rendu à la texture et l'utiliser sur un autre objet
  • 1 animation modèle
  • tous les tests avec plusieurs objets: 50, 500, 5000
  • changement Shaders / programmes par le rendu (une fois, deux fois, plusieurs fois)

Cela entraînerait 40 tests différents, mais je ne sais pas si ce sont des tests importants pour la performance.

Un ami a suggéré de tester le shader complexe mais comme le shaders sont en cours d'exécution sur le matériel graphique, il ne devrait pas être une différence d'une application de bureau java, droit?

En tout cas mon sentiment est que la performance du JavaScript est le principal goulot d'étranglement dans WebGL.

Mise à jour

J'ai finalement fait mon test. Après une discussion sur la façon dont la référence devrait fonctionner, j'ai créé les éléments suivants: http://martin.cyor.eu/ référence

Était-ce utile?

La solution

Qu'est-ce que vous choisissez de référence devrait dépendre de ce que vous avez l'intention de faire avec les scores de référence (ou qui le public visé par les scores sont et ce qu'ils ont l'intention de le faire avec eux); on peut présumer qu'ils sont censés influencer une décision -. vous devriez commencer par cette décision et travailler à rebours de celle de savoir ce que l'indice de référence devrait mesurer

Je dirais que votre liste proposée tombe à la fin « synthétique » du spectre d'analyse comparative; ils semblent être le genre de chose qui serait plus utile à un WebGL / navigateur implémenteur avec un profileur que de quelqu'un qui essaie de choisir entre les implémentations WebGL / plates-formes de décider qui est susceptible d'exécuter des applications mieux (cf l'histoire de l'étalonnage OpenGL où tous sortes de non-sens utilisé pour être revendiquées pour synthétiques polygone par seconde jusqu'à ce que le nombre SPECviewperf est venu et a imposé des cas de tests réels réalistes).

Autres conseils

Je suis d'accord avec @timday que vous devriez le biais de votre enquête vers quelque chose « réel », et comme vous le suggérez dans un commentaire que vous voudrez peut-être que l'histoire soit au sujet de décider entre une application bureau ou sur le navigateur.

Ceci est exactement ce que je travaille en ce moment. Mon client a une application de visualisation qui fonctionne actuellement sur le bureau de Windows. Une scène typique pour eux a 500.000 triangles, beaucoup de textures et de transparence. À l'heure actuelle leurs utilisateurs sont peu enclins à installer le spectateur - ils ont tendance à travailler dans des environnements d'entreprise où sysadmins contrôler ce qui est installé sur leur ordinateur. Et plusieurs utilisateurs préféreraient lancer la visualisation sur leurs iPads, où le spectateur ne fonctionneraient pas de toute façon. Donc, mon client veut savoir si WebGL résoudrait leurs problèmes de plate-forme -. NEVERMIND qu'aucun navigateur prend en charge encore officiellement WebGL, et que ni IE ni iPad ont annoncé tout type de support

Gardez à l'esprit que tous les repères que vous faites sont relativement vide de sens, parce que vous mesurez une cible en mouvement. Les éditeurs de navigateurs travaillent dur pour mettre en œuvre WebGL, et ils mettent à jour leurs versions bêta fréquemment. Non seulement ils travaillent sur la mise en œuvre WebGL conformantly, mais ils doivent se soucier des problèmes de sécurité du navigateur et flux global de pipeline. pourparlers de cette vidéo sur certaines des questions (et vous donner une idée de ce qu'il faut en). De plus, les performances peuvent varier en fonction de votre système d'exploitation et votre matériel graphique.

Comme vous l'avez dit, une fois que WebGL est en cours d'exécution dans le matériel graphique devrait fonctionner aussi rapidement comme une application de bureau. Vos critères devraient essayer de confirmer que, et vous devriez essayer de mesurer où la performance est perdue en raison d'être dans un navigateur. Mon sentiment est que Javascript en soi n'est pas le goulot d'étranglement, juste parce qu'il n'y a pas beaucoup Javascript à exécuter (et il est assez rapide ces jours-ci). Cependant, comme il est décrit à la fin de la vidéo ci-dessus, il peut y avoir des inefficacités qui se posent dans le Javascript-C ++ de liaison, une demande de validation, contrôle de flux et que non. D'autre part, les fabricants de navigateurs (au moins Google) travaillent dur à repasser sur ces petits défauts.

L'une des choses que j'ai remarqué est pas non framerate / problèmes de performance (dans mon test actuel, je peux rendre 500,000 texturé triangles à 30fps), mais framerate ne semblent pas être très cohérente, et que les cadres semblent être passé de temps en temps. Je pense, mais je ne sais pas si cela a à voir avec la manière setInterval() relativement simple ou des animations en cours d'exécution en Javascript. (MozRequestAnimationFrame de Mozilla pourrait être un moyen de mieux la manipulation de ce).

Bien que je ne sais pas comment utile tout de ce qui précède est pour votre thèse, il me semble que vous avez un sujet riche et vous devriez faire plus de concocter des repères simples. Peut-être vous devriez commencer sur certains points de référence, comparer navigateur par rapport à la performance de bureau, et ensuite essayer d'examiner les meilleures pratiques pour non seulement décider entre le navigateur et le bureau, mais aussi pour écrire des applications WebGL.

Il y a tout à fait quelques cadres WebGL là-bas aussi. J'ai essayé un couple, et a été très impressionné - il y a beaucoup à apprendre d'eux. En fonction de vos intérêts et exigences de thèse, vous pouvez être intéressé par l'analyse comparative ces derniers aussi bien.

Peu importe la façon que vous allez, je pense qu'il ya une grande communauté de soi-adoptants WebGL qui mourir de faim pour le genre d'information que vous allez être la recherche.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top