Actus GPU unbiased

mardi 19 juillet 2011

Octane beta 2.48c et mes projets en cours

Aujourd'hui est sortie une nouvelle version de Octane render, surtout destinée à de la correction de bugs.
L'émulation de la communauté autour des améliorations significatives des dernières semaines m'a motivé pour reprendre d'anciens projets et en lancer de nouveaux.
Voici donc les trois projets en cours dans les cartons.

Le premier rendu est la troisième image de la série "bureau MT International" . C'est à l'origine un projet Cedreo que j'ai repris comme scène de test.

1280x720 px _ 6h40

"New Jersey" est un projet personnel de rendu d'intérieur. Mon but étair de créer complètement une vue d'un salon dans une maison contemporaine. J'ai modelisé tout l'environnement; le mobilier vient de plusieurs site (Load, modelPlusModel, flying architecture).
La mise en place 3D est pratiquement terminée. Il reste maintenant à optimiser les temps de rendu pour obtenir une image propre. La version ci dessous peut être considérée comme un brouillon, le bruit (atténué au burin dans Photoshop) étant encore très présent.

1280x720 px _ 2h30
Le troisième projet en cours est un pack shot pour une bouteille de bière "Beer Premium". Ca me change des plans d'architecture et me permet de renouer avec mes premières amours d'images de pub avec FX. Techniquement je voulais tester le nouveau moteur PMC (Population Monte Carlo) d'Octane pour rendre l'interaction du verre, du liquide et de gouttes d'eau (à base de particules).
Pour ne pas faire une étiquette classique, je voulais reproduire une impression sérigraphie sur la bouteille.
La mise en scène est terminée. Il me reste à améliorer les matériaux de l'environnement et des gouttes pour arriver à l'objectif fixé.

1280x720px _ 2h45

1280x720px _ 2h40

lundi 11 juillet 2011

Octane et mon GPU : ca chauffe!

 
Je profite de quelques minutes de disponibilités pendant des vancaces studieuses pour poster les deux images que je viens de sortir avec Octane render. Ces dernières semaines ont vu la parution des versions beta 2.47 et 2.48. De grandes avancées techniques avec l'arrivée d'un nouveau moteur (pmc kernel), la réécriture complète du support multi GPU et les "light portal" dans la toute dernière version.
Entre temps, j'ai aussi changé ma carte graphique pour une GTX 460, ce qui a donné un coup d’accélérateur à mes rendus.
Cela m'a permis de ressortir une ancienne scène récalcitrante avec le pathtracing.


mardi 5 avril 2011

Video tutorial :: lighting techniques :: Octane render

Après plusieurs demandes de la part d'utilisateurs d'Octane render par le biais du blog, du forum...voici un tutoriel vidéo qui traite des différentes techniques pour éclairer vos scènes dans Octane render. On peut dégager trois techniques :
_ Le Sun & sky qui simule l'illumination du ciel et du soleil. Il peut être mis en œuvre soit avec les coordonnées GPS latitude/longitude, soit par placement du soleil en XYZ.
_ L'utilisation d'une texture; On place soit une texture de couleur (RGB) qui reproduit une lumière d'ambiance, soit une texture HDRI. Radiance (le créateur d'Octane) vient de me préciser qu'Octane supportait l'utilisation de HDR longitude latitude. Si vous avez des HDRI sphériques, vous pouvez les convertir avec HDRShop 1.0
_ L'utilisation d'aera lights ou meshlights; On utilise alors une géométrie qui devient une surface éclairante. Octane propose deux options pour les utiliser : le blackbody et les textures émissives.

Si vous appréciez les tutoriels que je crée et si vous souhaitez supporter la réalisation de mes vidéos, vous pouvez faire un don par le biais du bouton "faites un don" qui se trouve dans le panneau de droite.
Merci de votre attention et  à bientôt!

samedi 5 mars 2011

Video tutorial :: architectural glass :: Octane render

Le verre architectural reste un aspect du rendu architectural en 3D qui demande toujours des recherches (voir de la bidouille).
Le but de ce matériau particulier est d'avoir une surface parfaitement transparente avec de belles réflexions et pas trop de déformation due à la réfraction.

Comme pour l'instant Octane render n'est pas très efficace lorsqu'il s'agit de faire traverser du verre par la lumière, il faut passer par une astuce qui prend en compte la géométrie, le matériau et le moteur (kernel).
_ Pour un rendu intérieur, il vous faudra un simple plan avec les normales orientées vers l'intérieur pour figurer la vitre de la fenêtre.
_ Ensuite, au lieu d'utiliser un shader specular, vous opterez pour un glossy avec relfection à 1, roughness à 0 et une opacité réduite (autour de 0.5).
_ Enfin, choisissez le moteur pathtracing et n'oubliez pas d'activer l'option alphashadows qui permet à la lumière de traverser des objets avec transparence.

Et maintenant la même chose en images. 

mardi 1 mars 2011

Nouveau blog :: gzavye's CG news

Parce que les nouveautés ne s’arrêtent jamais dans le monde de la création numérique, je vous propose de retrouver les  informations qui font l'actualité sur le blog gzavye's cgnews.
Je continuerai à poster ici les articles de fond, les tutoriaux et les informations généralistes sur le monde de la 3D. Et vous retrouverez les billets au plus prêt de l'actualité sur cgnews.

jeudi 24 février 2011

Video tutorial :: macro material node :: Octane render



Un sujet qui revient régulièrement sur le forum d'Octane render concerne la méthode pour enregistrer des matériaux sur la base de données en ligne (DBLive). En fait on ne peut pas enregistrer directement un réseau de nodes (material+textures+utilities). Il faut passer par une node spéciale appelée Macro Material. Je l'ai, déjà évoqué dans mes posts sans vraiment développer son utilisation. Ce sera maintenant chose faite...

L'objectif
Le but de cette vidéo est de vous montrer la manière d'encapsuler un réseau de nodes dans la Macro Material. J'en profite aussi pour faire une démonstration de quelques nodes courantes pour construction d'un shader. Vous verrez aussi l'utilisation des Inputs Pins très pratiques pour éditer les paramètres de la macro sans avoir besoin de l'ouvrir.

Le déroulé de la vidéo
_ La création de la node Macro Material.
_ Le branchement d'un Material à la node OUT.
_ L'utilisation des textures : Colors, Generators (procédurales), Mappings.
_ L’utilisation des nodes Transforms.
_ L'utilisation des nodes Input Pins.
_ Sauvegarde d'un matériau Macro Material.
_ Chargement d'un matériau Macro Material.




C'est tout pour aujourd'hui.
Je vous laisse en vous souhaitant bonne expérimentation avec les nodes!


lundi 21 février 2011

Video tutorial : color mask pass :: Octane render



Aujourd'hui je ne livrerai pas une fonctionnalité d'Octane render mais une astuce pour sortir une pass qui sert pour le compositing, la pass de couleur des matériaux. Pour bien comprendre voici le rendu de la beauty sortie d'octane :


Et la pass couleur tirée de votre image en utilisant la méthode décrite dans la vidéo. Le principe est en fait assez simple. Chaque matériau est remplacé par un matériau Diffuse avec une simple couleur. Après avoir veillé à désactiver toutes vos meshlights et à passer l'environnement en blanc avec une intensité proche de 2, vous pouvez passer en clay color render. Changez ensuite votre moteur en directlighting et désactivez l'ambient occlusion. Pour parfaire le tout, désactivez aussi le vignetting qui donne des dégradés sur les bords. Vous laissez cuire quelques minutes et votre image doit ressembler a cela; de grand aplats uniformes de couleur qui peuvent être facilement capturés à la baguette magique dans photoshop (au équivalent).




Et la dite vidéo si vous n'avez pas compris le blabla :



Voilà, plus de mystères; à vos rendus!




samedi 19 février 2011

Logiciel d’aménagement intérieur 3D : Home Planner par Cedreo


Une fois n'est pas coutume, un peu de pub pour les produits sur lesquels je travaille depuis 5 ans ne fera de mal à personne. Après 2 ans de travail, Cedreo sort la version 1.00 de son logiciel professionnel d'agencement 3D en temps réel.
Voici un aperçu du fonctionnement à travers la vidéo de promotion que j'ai réalisé, et n'hésitez pas à tester les logiciels en ligne sur les sites de nos clients.

 
Cedreo Interactive lance un logiciel d’agencement intérieur 3D disponible en ligne basé sur sa technologie 3D Web. Cedreo Planner est conçu pour une prise en main sans aucun besoin de formation. En quelques minutes l’utilisateur peut créer son aménagement, le personnaliser et exporter des rendus sans aucun besoin de réglage.

L’application sera prochainement disponible sur le site de Cuisishop, vente de cuisines en ligne avec une version dédié à l’aménagement 3D de cuisine. L’originalité repose sur une ergonomie dédiée au métier de la cuisine, l’utilisateur pouvant placer ses éléments en vue de face par rapport au mur avec des fonctionnalités intelligentes d’aide au placement.

Le logiciel d’aménagement 3D, Cedreo Planner est également disponible sur le site de MT International (aménagement de bureaux) et le sera prochainement chez masalledebain.com, magasin de salle de bain en ligne (aménagement 3D de salle de bain) ou bien encore la maison du convertible (agencement de salons) qui disposeront d’un outil simple et puissant de décoration et d’aménagement intérieur.

samedi 12 février 2011

Video tutorial : save camera node POV :: Octane render


Ces derniers semaines les nouvelles versions d'Octane render se sont enchainées. la plupart étaient des corrections de morceaux bugs, mais au milieu se cachaient tout de même des pépites de fonctionnalités. Une qui était demandée depuis 1 an et qui vient d'arriver concerne la sauvegarde de la node caméra. Ça ne parait pas mais c'est une fonction capitale pour profiter pleinement du moteur. On peut maintenant se promener dans nos modèles à la recherche de point de vue intéressants et les mémoriser, comme on ferait d'un matériau, pour les rappeler ultérieurement. Une nouvelle étape pour s’affranchir un peu plus des applis 3D pour le rendu.

La procédure est simple :
_ Changer votre point de vue caméra.
_ Faire un clique droit sur la node Mesh Preview Camera > Save Node
_ Pour utiliser cette caméra, Edit > Import Node
_ Brancher la node dans la node Mesh preview Render Target. Voila!

Place à la vidéo pour que tout le monde comprenne de quoi il retourne et puisse ensuite l'utiliser.

mardi 8 février 2011

Maya Animation _ walk video tutorial

ikJoe (c)Goosh


Je vous livre un tutoriel vidéo basé sur un des cours d'animation 3D sur maya que j'ai fait durant la formation "cinéma d'animation" en 2009-2010.
Il s'agit de la marche d'un personnage ( rig ikJoe V3) avec pour objectif de réaliser une animation en cycle sur place, puis de la passer en développé. Cette technique permet de faire parcourir des chemins sur de très long timing  à partir d'un seul cycle de 25 images (marche standard).
Je ne parlerai pas ici de la partie théorie sur la marche à caractère, ce que vous trouverez sur de nombreux site; je vous conseille d'ailleurs l'article très complet de Francis Jasmin.
Ce tutoriel se concentrera sur certains points techniques pour maya, et quelques procédures que j'utilise pour me faciliter le travail.
Vous trouverez le support de cours qui donne les étapes principales du tutoriel et les vidéos découpées selon ces mêmes étapes.
Aujourd'hui vous trouverez la préparation des shelves pour sélectionner les contrôleurs, ainsi que la méthode pour obtenir les poses en symétrique, ici sur les poses de contact à l'image 01 et à la 13.

Support du cours :


L'objectif  :

Partie 1 : Shelves
Préparation du travail d'animation en créant des shelves de raccourcis de sélection et de clés. utilisation du script editor et du shelf editor.

Partie 2 : Symétrie sur la pose Contact
Placer la pose de contact symétrique sur l'image 13. Utilisation de duplicate, group et scale -1.

Restez branchez pour voir la suite...

jeudi 3 février 2011

Animation pencil test

Je profite de l'envoi de la part de mon (grand) camarade Timidement un peu de tout, d'un lien sur un site de ressources incroyables, pour me fendre de ce billet.
Pour tout les amoureux de l'animation qui se pratique avec les doigts, je vous recommande chaudement de vous perdre sur living lines library. Vous y trouverez des line tests par les plus grands animateurs. Pour ma part je ne me lasse jamais de  redécouvrir les animations rough des "nine old men" (avec un faible pour Milt Kahl) et la souplesse des mouvements et du trait de James Baxter. A vos bookmarks donc!
Pour rappel, dans la même veine, Pencil test depot continue à rassembler lui aussi des animations de tous horizons.
Et pour finir, après quelques mois d'interruption, Character design revient avec de nouvelles interviews d'animateurs et de character designers

samedi 15 janvier 2011

Making of hetre - jatoba - marty :: Octane render



Cela faisait quelques temps que je voulais rédiger un tutoriel sur l'utilisation de Octane render. Je profite d'avoir terminé les 3 images de mon post précédent pour expliquer les points clés pour préparer votre scène 3D avant de l'exporter et de la calculer dans Octane render.

Image finale


Concept

Je suis parti sur cette idée du triptyque pour que chaque image recèle un morceau du nombre 2011. sur la première image, la pendule indique 2 heures (le deux est écrit sur la pendule). Dans la seconde, le 0 est représente par le trou dans le mur. Et dans la dernière, les baguettes formes le 11. Dans chaque image, l’élément important est rouge, alors que les autres objets sont très neutres dans une gamme de gris. Au niveau composition, on part a gauche d'une image basée sur les horizontales et les verticales; on évolue ensuite sur deux cadrages plus obliques avec des points de vue montant. Cet effet symbolise la bascule d'une année vers l'autre, d'une année que l'on connait (direction stable) vers une nouvelle inconnue (oblique). Tous les objets importants sont placés dans le cadre selon la règle des tiers. Tout est donc très classique...

fig 1. Croquis préparatoire


Modélisation

Rien de bien particulier au niveau modélisation, voir même du très basique. Je voulais que tout soit sobre et épuré dans les formes.  J'ai surtout travaillé depuis des références de magazines. Les objets sont conçus à partir de box modeling ou de splines. J'ai modélisé d’après nature pour la pendule de "hêtre" et le tasse de "jatoba" car j'ai les originaux à la maison.
Les pièces ne comportent que le sol, un ou plusieurs mur et parfois le plafond pour avoir une ombre portée. Je ne les ai pas entièrement modélisé car l’éclairage principal vient d'une image HDRI. Les plans 3D que vous voyez dans les fig 2 à 4 sont des géométries qui deviendront des meshlights dans Octane pour précisez les éclairages au niveaux ambiances et couleurs.

fig 2. scène 3D image "hêtre"
fig 3. scène 3D image "jatoba"
fig 4. scène 3D image "marty"

Le seul objet qui ait demandé plus de travail est le divan en cuir puisque les coutures ont été sculptées dans Mudox (fig 6.). Après dépliage des UV, j'ai repéré la position des coutures en peignant sur le divan grâce à l'outil Viewport Canvas de Max (fig 5.). L'objet est ensuite exporté en OBJ vers Mudbox pour le scupt. Les volumes créés sont enfin calculés en texture de Normal mapping qui sera directement appliquée dans Octane (fig 7.).

fig 5. texture UV sur le divan avec ajout de repères en rouge avant sculpture dans Mudbox

fig 6. Visualisation temps réel dans Mudbox avec exposure, DOF et bloom

fig 7. normal map du corps du divan


Textures

La majorité des textures utilisées sont des photos retravaillées dans photoshop. Avant toute retouche, j'égalise l'image pour gommer les différences de lumière. Pour cela j'utilise un script que vous pouvez trouver ici.
Après je rajoute au besoin des calques d'ajustement pour la teinte, les niveaux... Je travaille au maximum avec des calques dynamiques, y compris pour les effets, pour garder l'historique des réglages et pouvoir intervenir de nouveau plus tard.
A partir de là, j'ai une image pour la map de diffuse. En passant ce canal en noir et blanc et en ajustant la courbe, le contraste...j'obtiens la map de spéculaire et de bump. Ces trois textures sont suffisantes dans la plupart des cas (fig 8.)
Si j'ai besoin d'une normal map j'utilise le script nDo qui convertie les images, les graphismes et les tracés vectoriels créés dans photoshop.

fig 8. les 3 maps du matériau parquet
Pour les parquets, comme je l'ai souvent cité dans mes posts, j'utilise le maxscript FloorGenerator. A partir d'une spline qui représente le contour de la pièce, il génère un parquet au lames paramétrables. Avant de texturer l'objet, je le convertie en editable poly et je vérifie et ajuste les UV avec un unwrapUVW. Pour chaque parquet des 3 images, j'ai utilisé 5 ID matériau qui correspondent à un multi sous matériau (fig 9.)

fig 9. multi sous matériaux de l'objet plancher

Matériaux

Avant de procéder a l'export des scènes vers Octane, il convient de vérifier l'assigner correctement les matériaux aux objets. En effet, Octane de gère pas les objets mais bien les shaders qui leurs sont attachés. C'est pourquoi on peut anticiper le réglages des matériaux dans 3ds max. Octane utilise trois types d'ombrage : diffuse, glossy et specular (fig 10.). Quel que soit le shader dans Octane, on crée un matériau standard dans max. Ce sont les réglages de ce dernier qui détermineront son type au rendu.

fig 10. les 3 shaders d'Octane render

_ Pour régler un shader Diffuse, renseignez la couleur diffuse (RVB ou texture) et veillez a garder la valeur de speculaire à 0. Les objets meshlights utilisent le shader diffuse.
_ Pour régler un shader Glossy, renseignez la couleur diffuse (RVB ou texture). La valeur de spéculaire doit etre supérieure à 0 et l'indice de réfraction égale à 1.
_ Pour régler un shader Glossy, renseignez la couleur diffuse (RVB ou texture). La valeur de spéculaire doit être supérieure à 0 et l'indice de refraction egale à 1,5.
_ Si vous n'appliquez pas de matériau dans max et juste une couleur wire par défaut, Octane génèrera un Glossy.


Pour gagner du temps dans Octane, on peut aussi assigner des textures sur les matériaux. Sont exportés la couleur de diffuse, la couleur de spéculaire et le bump (fig 11.)

fig 11. canaux de textures exportés vers Octane

Export

Octane render est un moteur de rendu independant des applications 3D mais il existe un exporter pour la plupart des packages. Sinon un export de votre scene est suffisant pour calculer dans Octane.
Mes paramètres sont très simples puisque je ne renseigne que la résolution de l'image et la caméra (fig 12.). Et c'est suffisant pour la majorité des cas.

fig 12. paramètres d'export

Éclairage

A partir de ce moment, tout ce fait dans Octane.
Avant d'aller plus loin, il est important de préciser que le logiciel intègre 4 moteurs de rendus plus ou moins rapides et réalistes. Le clay mode est un mode ambient occlusion. Le color clay mode donne de l'AO et des textures. Le direct lighting est un moteur unbiased tres rapide mais qui donne pas un résultat totalement réaliste  car il ne gère pas tous les paramètres (bleeding, multi rebonds...) . Le dernier, le path tracing est le plus réaliste et aussi le plus lent (fig 13.).

fig 13. les 4 moteurs de rendu
J'ai l'habitude de faire tous les réglages d’éclairage et de matériaux en direct lighting avec une petite résolution d'image. J'utilise le path tracing uniquement pour le rendu final.
Comme dit précédemment les scènes sont éclairées par une image au format HDRI, Apartment_Spherical_HiRes.hdr (fig 14.) et par des meshlights. Grâce aux options de rotations disponibles sur les images d’éclairage, j'ai orienté la lumière de la fenêtre selon mes besoins. Les aera lights s’obtiennent, elles, avec les matériaux.
A ce stade, je fais aussi un premier réglage de l'exposition; en particulier le gamma de l'image, dont dépend l’éclairage définitif. Pour ces images, le gamma est autour de 1.1 pour baisser le contraste du rendu et ainsi conserver des blancs lumineux.

fig 14. image d’éclairage

Matériaux Octane

C'est à mon gout la partie la plus riche dans Octane. L'apport du rendu temps réel change complètement les habitudes de travail, et avec le graph nodal expérimenter des matériaux est un vrai plaisir.
Pour créer des matériaux, on a le choix entre le node inspector et le graph editor. Quand il s'agit de modifier quelques couleurs ou de changer des textures de diffuse, bump...l'inspector est suffisant. Mais quand les shaders se complexifient le graph devient indispensable.
Dans le cas du parquet, vu plus haut, le shader glossy ne comporte que les 3 textures récupérer pendant l'export. L'inspector suffit (fig 15.)

fig 15. matériau bois au sol

Par contre sur l'image marty, les matériaux du plat rectangulaire et des abat jour sont des mix de deux shaders. Ces derniers sont créés dans le graph à l'aide de macros (fig 16.).

fig 16. réseau nodal à l’intérieur d'un macro material

Comme dit plus haut, les éclairages artificiels du type aeralights, s'obtiennent avec un shader. Il suffit de créer un diffuse et d'activer l'option émissive. Deux options possibles : blackbody et texture. La première considère la température de couleur et la puissance (fig 17.); et la deuxième éclaire simplement par rapport a l'image.
Dans les 3 scènes, j'ai utilisé des émissives blackbody.

fig 17. paramètres d’émission blackbody


Le rendu final

Une fois que tout est en place, je règle la profondeur de champ. Pour travailler, je mets l'aperture de la camera à 0 pour ne pas être dérangé par la profondeur de champ. Par défaut la camera est en mode auto focus (AF) et fait la mise au point au centre de l'image. Pour modifier le point focal, il suffit de cliquer dans la vue sur l'objet a mettre au point avec la pipette AF (fig 18.).

fig 18. réglages différents d'aperture et de point focal


Il ne reste plus qu'a régler la taille de l'image (ici du 2048x2048 px) et à activer le moteur pathtracing. Après environ 2 h 30 pour chacune des images, le grain est suffisamment faible pour arrêter le calcul. Il faut bien garder a l'esprit que les moteurs unbiased rendent sans limite de temps. L'utilisateur décide quand le calcul est terminé. Par contre, peut arrêter le processus en fixant au préalable un nombre de samples maximum par pixel à atteindre.

Post process

Les retouches se passent en deux temps. Une partie de correction d'exposition dans Octane. Et une post production proprement dite dans photoshop pour l'aberration chromatique (dans le cas présent). Cette fonction sera intégrée dans la prochaine version beta 2.4 qui doit sortir dans quelques jours.
La node d'exposition d'Octane (appelée Preview Imager) comporte des outils exposition de la pellicule, ainsi que le vigneting, la saturation et le hotpixel Removal, algorithme magique qui supprime les points blancs qui peuvent résulter des moteurs unbiased (fig 19.)
J'ai surtout modifié légèrement l'ouverture (fstop) et la sensibilité (ISO) pour arriver aux images finales. J'ai aussi rajouté du vignetting entre 0.3 et 0.5.
Je sauve ensuite plusieurs versions des rendus avec des responses différents, qui sont des filtres qui modifient l'ambiance de l'image en utilisant les caractéristiques techniques des pellicules argentiques.

fig 19. les paramètres d'exposition

Le mot de la fin

La fabrication des 3 images et l'assemblage pour la carte de voeux m'ont demandé une dizaine de jours à raison de 3 à 4 heures par jour. La date butoir du premier janvier, fixée pour terminer, m'a permis de travailler en quasi conditions de production.
Cette présentation de mon flux de travail et du fonctionnement d'Octane render arrive à sa fin. Merci d'avoir lu ce post jusqu'au bout (pour les courageux). Et je souhaite qu'il vous ait donné envie d'essayer ce logiciel très prometteur (classé parmi les 20 évènements 3D de 2010 par CGSociety).
N’hésitez pas à laisser un commentaire si vous désirez que je développe un aspect de son utilisation.

dimanche 2 janvier 2011

bonne année 2011!

version 300dpi

Je souhaite une bonne et heureuse année à tous les lecteurs habituels ou de passage de ce blog!
Et je souhaite à tous une année 2011 pleine de projets motivants et empreints de challenge.
Je voulais commencer cette année en me fixant moi même un petit challenge en créant ces trois images dans des domaines que j'affectionne : le graphisme, l’épure et le design.
Cela donne des rendus 3D qui rassemblés en triptyque pour ma carte de voeu donne l'occasion de créer un "puzzle allégorique".
Coté technique, les scènes ont été modélisées et texturées dans 3dsmax et rendues avec Octane render, qui ne me quitte plus pour mes travaux personnels.
Et comme j'aime bien glisser des objets de mon quotidien dans mes images, j'ai cette fois placé l’horloge Nava qui trône sur ma table de cuisine.
Au total, entre la modelisation des objets, la mise en scène, la création des textures et le rendu, la carte de voeux terminée  m'a demandé une dizaine de jours.
Les images avant retouches sur Photoshop (aberration chromatique et vignetting) ont été rendues en 2048x2048 px. Les versions définitives ci dessous sont en 1600x1600px.




total des pages vues