47Fermer49
bearbecueLe 15/06/2010 à 14:29
(N étant multiple de 2 à priori tongue)


j'ai pas lu ton article, mais.. j'ai vu _aucun_ ecran autostereo acceptant deux points de vue, c'est minimum 5.
apres, comme je disais dans mon premier post, t'es pas oblige de faire 5 rendus ou plus, tu peux deduire les rendus intermediaires avec seulement un ou deux rendus + depth maps (mais avec des artefacts)
(Oui, il faut aussi compter les pixels invisibles tongue)

je sais pas toi, mais perso je connais pas beaucoup de moteurs qui ne font pas de prepasse-Z (et le cout des shaders pour une depth-pass est assez ridicule)
Côté vertex shader ça devrait doubler direct (À priori faut bien recalculer l'éclairage pour chaque œil, non ?) donc si tu dessines beaucoup de polygones ça peut jouer.

wat ?
idem, je connais pas beaucoup de moteurs qui calculent l'eclairage par-vertex de nos jours, mais admettons.
deja, si les vertex shaders etaient vraiment un probleme compare aux pixel shaders point de vue perfs, tu pourrais faire des render to vertex buffers, et reutiliser ces resultats pour skipper quasi-integralement des vertex shaders complexes (exemple: pas eclairage, mais plutot skinning / morphing)
(Et puis ensuite, les geometry shaders je pense que ça ne joue pas, mais qui sait...

sachant qu'un geometry shader, dans le pipeline, est situe entre le vertex shader et le fragment (pixel) shader, a partir du moment ou tu re-evalue un vertex shader, tu reevalue forcement le geometry shader.
et son cout depend enormement de la CG, les premieres NVIDIA a supporter les geometry shaders avaient de gros problemes de perfs des que t'emettais plus d'un triangle.
la encore, si ca n'est pas view-dependent, tu peux faire un render to vertex buffer pour eviter d'avoir a re-executer ton geometry shader. sachant que tu pourrais perdre en perfs du a la vram necessaire en plus pour stocker les versions preprocessees de tes mesh. mais bon...
le plus gros bottleneck est de toutes facons le pixel shader la plupart du temps, surtout si t'as de l'eclairage complexe per-pixel, des post-process fullscreen gourmands, des particules (meme si, bon, les particules, tu peux les rendre dans une render-target plus petite, surtout si elles sont tres soft)