lundi 22 décembre 2014

PBS - du néant jusqu'à l'outil complété

Voici un vidéo qui présente de A à Z mon processus afin d'amener mes outils jusqu'à leur présentation - avec l'application des 2 mêmes textures d'un objet à un autre.


Merci et bon visionnement,
je vous reviens plus tard.

vendredi 12 décembre 2014

Optimisation des PBS // Intro


Bonjour à tous, j'entre immédiatement dans les détails de mes récentes recherches :

Que signifie PBS, à la base :
Physically-based Shading



Avec l'arrivée de Direct X11 et des consoles de notre génération, la toute dernière barrière à franchir afin d'accéder au système PBS est ouverte. Cette étape était celle d'intégrer des réflexions temps réel dans tous les matériaux, et ce, sans affecter les performances des jeux. Il faut avoir une bonne compréhension que tous les matériaux de notre environnement réflète la lumière, à la différence de ce que nous voyons dans les anciens systèmes de rendu temps réel où la réflexion n'est qu'une reproduction d'image.(1) De nos jours, nous pouvons sans crainte opérer des calculs et algorythmes se basant sur des vecteurs s'orientant de la source de lumière à l'objet puis de l'objet à la caméra.



Voici le set-up optimisé que je propose pour un projet : 2 TEXTURES

Texture no.: 1 - 128x128 au plus
Le dégradé ou les variances lumière - objet - objet - oeil

Gloss - UV channel 1 - 
Color channel choix de R, G, B ou A

Spec - UV channel 2 - 
Le color channel doit rester en RGB (car c'est un système qui lit la couleur - s'il y a sursaturation tel que dans les modes sRGB, il faut rajouter un paramètre de désaturation par la suite-)

Maintenant, pour donner un coup de main aux visuels de ce monde, voici la mise en place de base de la plage colorimétrique. Le carré dans le coin en bas à droit représente le canal UV 1 de mon objet.


Les canaux :

RGBA (en sRGB)                              Alpha                                             Rouge
                    

                         Vert                                                    Bleu

Texture no.: 2 - résolution au choix
Détails uniques ou propriété distinctive dans la colorimétrie d'un objet

Albedo - UV channel 3 - 
Le Color channel doit rester en RGB (il agit comme l'ancienne diffuse - garde plus pâle qu'une diffuse conventionnelle - certains angles d'incidence obtus vont porter l'objet à réagir de façon très sombre, et ce serait de même dans la nature également)

Occlusion Ambiante - UV channel 4 - 
Color channel A (alpha dans la texture de base)

---

Je mentionne jusqu'ici les canaux UV : Pour aller les chercher dans 3DSMax, il s'agit d'un paramètre à changer dans le "Unwrap UV Modifier"



J'ai déplacé mes UVs pour le bien de l'exercice. Voici mon Canal UV 2 pour le "Plane" - Bleu marin


















Pour Marmoset, le premier canal (ce qu'ils nomment "UV set") est le 0 - bref : UV set 0 = Couleur Verdâtre ; UV set 1 = Couleur Bleuetée

Le meilleur exemple de jouer avec les Canaux dans Marmoset est l'Occlusion Ambiante;
Si je prend le Canal Bleu (jusqu'à présent, il est sombre pour le UV set 0 et pâle pour le UV set 1) l'occlusion ambiante, expliquée plus en profondeur ci-bas, paraîtra mieux sur le UV set 1







---

GLOSS - Canal UV 1

Voici une mise en scène de base pour présenter les réactions de la "Plane"

Le Gloss fonctionne à la façon réelle. Il considère la dispersion des rayons de lumière lors de leur impact sur l'objet (2). Il vient également affecter la qualité du grain dans la réflexion.

Ici,  j'ai choisi le Color Channel Vert qui est le plus pâle sur notre UV set 0. 
Plus pâle = plus concentré
Ici,  j'ai choisi le Color Channel Rouge qui est le plus sombre sur notre UV set 0.
Plus sombre = plus dispersé


SPECULAIRE - RÉFLECTIVITÉ - Canal UV 2 (dans Marmoset, il existe que 2 canaux; dans les engins de jeux, il y en a une panoplie)

La map spéculaire vient chercher les tonalités additives du gloss des sources de lumière et des bounces lumineuse (analysé de base en niveaux de gris) pour venir teinter les zone de la couleur dans la map (ici le "plane" se trouve dans la zone bleu-vert). Plus on se trouve dans une zone sombre, plus l'objet va chercher la teinte opposée à la couleur originale (on voit ici le magenta ressortir sur l'objet).


Cette map est avant tout utile pour coloriser l'objet de façon réaliste; elle peut être manié pour faire réagir l'albedo et prendre sa teinte opposée si l'intensité lumineuse réfléchie est sombre.

Ici, l’albédo est vert-bleuté (voir le canal RGBA) et la tonalité dans la map spéculaire fait ressortir la réflexion du décor dans ses régions pâle et vient chercher la teinte dans l’albédo lorsque la map est foncée. Ceci est due à la perte de réflection qui nous ramène une couleur plus près de celle qui est caractéristique à l'objet (albédo).


ALBEDO - Canal UV 3 (dans Marmoset, il existe que 2 canaux; dans les engins de jeux, il y en a une panoplie)

Couleur caractéristique de l'objet. Si la lumière rebondit rapidement sur un objet, c'est qu'elle ne capture pas la couleur de l’albédo et renvoie mieux la réflexion rebondie.

Ici, l'albedo est rouge et paraît aisément sur une surface où la map spéculaire est plus faible


OCCLUSION AMBIANTE - AO - Canal UV 4 (Canal UV 1 dans Marmoset)






Map qui vient simplement émettre une négation dans la tonalité ET dans la teinte. Ici j'ai mis l'intensité de la AO à 4, ce qui tourne la couleur orangée à vert (à l'opposée dans le cercle chromatique), 3 fois plus contrasté que l’albédo d'origine ( 100% - 400% = -300% ).

Affecte uniquement l'albedo.

---

Je résume en vidéo mes explications :

 

Pour la suite je pars à la recherche d'un logiciel qui me permet les Canaux UV multiples pour la malléabilité de la propriété des différents matériaux sur une même texture.

Merci à tous et je vous reviens,
David


---

(1) Andrew Maximov, Physically Based Rendering for Artists, https://www.youtube.com/watch?v=LNwMJeWFr0U
(2) Gloss Introduction, http://www.gloss-meters.com/GlossIntro.html#1

lundi 27 octobre 2014

Rig sur 3DSMax // Les coudes




Bonjour à tous, je reprends la barre du Blog.

Je travaille sur un Rig d'humanoïde simple. Je tiens à créer un "Custom Rig" pour un personnage humain de l'âge de 25 ans (donc un adulte). Mon défi est celui de bien faire attention aux perte de tonus dans les articulations, notamment aujourd'hui, celle du coude. Il faut éviter l'effet "Rubber" qui donne une impression de caoutchouc mou dans la peau du personnage.



Je teste plusieurs façons de simplifier tout en donnant la qualité et la solidité du membre dans sa vraie nature.

J'ai fait un test en me rattachant à un bipède. Cela présente ce que j'illustre.

(  "Dummy" : Visible sous la forme de cubes verts dans 3DSMax, ils sont l'équivalent du "Point" (alternative dans 3DSMax et Maya) ou du "Null" de XSI. Il s'agit en fait d'un point de coordonnées dans l'univers et cette information se trouve au centre du cube.  )

À partir du bras en T-pose,


Avec une commande en "wire" sur le plus grand "Dummy", je lui donne un axe et point de pivot plus large. Son mouvement et sa réponse seront accentués vers l'arrière et vers le corps du bipède lorsqu'on serre le coude.








Ici, je vais évidement chercher le mixte de IK et FK de l'épaule du Bipède.





Donc les "dummy" suivent les actions du personnage tout en gardant leurs contraintes d'orientation.



Suite à ceci, j'ai fait les tests sur des os pour un rig plus flexible.

Setup :


Rotation délayée :



Le grand "Dummy" forme un plus grand arc qui oppose le poids du bone qui reserre la peau du personnage fictif.

Après avoir "skinné" le mesh en rajoutant le plus Grand "Dummy" de l'image précédente,

Bref, à partir d'un coude en caoutchouc...

... j'ai donné le tonus à mon personnage!



Cela peut également se produire au niveau du Coccyx et des genoux. Des chaines de "Dummy" fixés aux os de l'articulation avec un plus grand "Dummy" qui possède un axe de rotation modifié suffisent à créer la force opposée qui rappelle la forme de notre coude.

Évidement, mon rig est encore lié à un biped. Je fais la transition précisément pour obtenir la flexibilité du "Custom Rig". Je dois donc venir compenser pour l'unique avantage du Bipède, celui de posséder les propriété du IK et du FK en même temps tel que présenté avec l'épaule du bipède que l'on peut rotater alors que le bras garde son orientation fixée sur le poignet.

N'hésitez pas à me poser des question sur le sujet du Rigging, mes prochaines nouvelles concerneront avant tout de la modélisation et de l'éclairage. Si vous voulez revenir sur ce sujet, les commentaires sont bienvenus.

Merci de me supporter ;  AVIS aux intéressé, je suis disponible à l'emploi. Contactez-moi si mon travail vous intéresse.

mardi 20 mai 2014

Projets en video

Je redémarre le blog en présentant les projets sur lesquels j'ai travaillé :



SwoOop! : 
Jeu d'immersion visuel/sonore/gameplay axé sur l'interdépendance de l'environnement avec les sens. Un jeu fortement funky dans sa palette artistique.


Chasse Alpine : Scénario fou composé par l'équipe mais dirigé par Olivier Reeves, notre level designer, je me suis occupé de la palette et de la composition d'image via l'éclairage et les shaders.


Blueprint : Un monstre technique. J'ai tenu le projet en place côté particularités techniques lors de l'intégration visuelle. Mon allié a été Marc-Antoine Proulx, mon level designer du projet. J'ai travaillé les shaders et l'éclairage dynamique de l'environnement.

Recolo : Une production fantaisiste où j'ai complété les talents qui se trouvaient déjà dans l'équipe formelle. J'ai monté l'ambiance et l'éclairage ainsi qu'une palette de couleurs appropriée au thème. J'ai également produit du travail d'artiste technique, communiquant avec les programmeurs afin d'assembler et d'intégrer les éléments activables.


Le NAD est terminé, c'est le moment de mettre un pas en avant,

Je vous tiens au courant,
David

dimanche 23 mars 2014

Semaine 4 et 5 - L'intégration et shaders

Bonjour à tous,

dans un retour sur la semaine, cette fois-ci, je me penche sur les matériaux dans l'engin de Unity pour le projet. Mon but est de créer un shader signature pour Korrasso et la Menace, bref tout ce que l'on qualifie d'être vivant dans notre jeu.

D'ailleurs cette semaine, je me permet de vous présenter rapidement l'équipe :

Nicolas Cloutier; qui travaille surtout le game design, le level design ainsi que le level art
Linas Paulauskas; qui fait la programmation des scripts
Lynda Lavoie; s'occupe de l'intégration sonore avec Wwise
et moi; je suis l'Artiste Technique de l'équipe : je m'occupe de l'intégration à l'engin (comprenant du level art pour les éléments de gameplay, de l'éclairage, des particules et des shaders); du Rigging et du skinning.

Notre superviseur; Yan Breuleux également nous fait des suggestions et nous aide à l'éélaboration de nos idées.

nous avons également fait appel à Olivier Gauvin pour l'élaboration de quelques croquis concepts et à Florence Thibault pour la modélisation de Korrasso. Je leur doit un grand merci ainsi qu'un plus gros merci à l'équipe jusqu'à présent.

Premier pas dans l'intégration : Une partie du terrain ainsi que Korrasso animé, qui court dans l'univers.


Voici l'idée du shader pour Korrasso :



Voici jusqu'où je me suis rendu durant la première semaine du travail du shader :


Ensuite, j'ai travaillé avec Shuriken question de m'adapter au système de particule. Y ayant déjà touché auparavant, je me suis permis quelques tests dans FumeFX sur 3DSMax placé en planche contact dans photoshop pour animer les particules en slideshow :


Enfin, une mécanique que nous voulons implémenter se retrouve enfin dans l'engin : Le Morphing realtime de l'environnement. Je le teste avec des objets, dont cette plante que j'ai pris en silhouette dans 3DSMax pour donner une idée du type de fore que nous voulons donner aux objets dans le jeu; ainsi que quelques transition de la première à la dernière itération :


Les couleurs et les formes qui nous inspirent pour la végétation de notre univers sortent des fond marin, plus précisement de l'idée des "Sea slugs", qui ont la qualité d'être des animaux visuellement très variés et très colorés :

                                     
Cette image provient du Web. Une multitude d'autres Sea Slugs variées se retrouve lorsque nous approfondissons les recherches.

Nous continuons le travail. Je vous reviens sur la suite.

jeudi 27 février 2014

Semaine 3 - Layout

 Bonjour à tous,

cette semaine, l'équipe a bien progressé côté level design. Nous avons un layout testable que l'équipe commence à intégrer.
Considérant que les sections se séparent selon le nombre de saut, nous considérons les tonalités de couleurs pour démontrer la hauteur à sauter. Nous avons pensé à un terrain ouvert qui offre une découverte graduelle de l'univers avec un retour possible dans chaque section.

Dans notre Direction Artistique, nous optons pour un visuel qui se rapproche de celui du numéro 29 (Batman) sur l'échelle de stylisation de McCloud, bref à mi-chemin entre le réaliste et le géométrique, empruntant très peu à l'effet cartoony.

Je termine avec le Rig que je commence à monter pour Korrasso. J'essaie de placer l'ossature afin qu'il puisse amplifier ses élan dans les airs avec un travail de IK successif qui unbend ses bras. Jusqu'à présent le tout se déplace avec des mouvements exaggérés qui restent dans les orientation normales avec leurs contraintes.

La progression pour cette semaine comprendra la Greyboxing (mise du niveau dans l'engin) et un travail de shaders assidue.

Je vous y revois!

jeudi 20 février 2014

Semaine 2 : Corps-à-Sauts!


 Bonjour,

cette semaine je me suis mis aux croquis concepts, autant qu'au design du jeu.

Pour le design, imaginez les trois aspects suivants : Exploration; Interaction; Funky.

Au premier coup d’œil, le tout semble logique et intuitif, surtout pour le second point qui représente la totalité des jeux vidéos et ce qui l'identifie et le dissocie du cinéma. Cependant, le jeu amène l'idée plus loin encore, nous appelons le second degrée d'interaction. Nous en appelons à plusieurs de vos sens. Pensez-y.

L'exploration atteint DIRECTEMENT la mécanique principale du jeu. La malléabilité de l'exploration sera progressive et donc la découverte se fera aux yeux du joueur. Nous en appelons à votre sens des dimensions. Agitez-vous.

Funky. Le jeu s'intitule SwoOop! Direction artistique colorée et vectorielle. Univers déjanté. Amusez-vous.

SwoOop! : WheeeEEEeee!
"Une poursuite sautée et multi-morphe!"

MENACE!:

La première image au haut de l'article présente des forme simple qui peuvent structurer une mécanique de l'environnement du joueur. La menace sera présentée dans l'environnement de façon omniprésente et poussera le joueur à se dépasser!

Comme on le voit ici, je prends inspiration de Giger (1) pour la Menace. Le regard sur l'aspect biomécanique est parfait pour le scindement du côté Direction Artistique du jeu. avec des formes géométriques mixées avec l'approche biomorphique des univers de cet artiste (image en bas à gauche).

 Les couleurs de la menaces doivent contraster avec l'univers. C'est pour cela qui les couleurs saturées mauve peuvent être la base de cette palette.

KORRASSO!:

Notre personnage principal se précise. Cette créature déborde d'énergie! Son anatomie doit lui permettre de se mouvoir librement dans son environnement. Pour accentuer ce sentiment, ses extrémités sont propice au rotations accentuées (de même qu'aux étirements et compressions accentuées).

Au nom de l'équipe, nous vous présentons : Korrasso!

(1) Giger's Fan Website : https://giger.com/gigerframeset.php

dimanche 9 février 2014

Nouveau projet - Nouvelles avenues


Bonjour à tous,

je vous révèle enfin que je travaille sur un nouveau projet. Le mood promet et je sens que la créativité sera omniprésente au courant du projet. Moi et mon équipe nous enlignons sur un prototype jouable que je considère placer sur le blog dans les prochains mois.

Voici quelques sketches pour démarrer et pour vous mettre en haleine.



Contrairement au restant de mon blog, cette fois-ci, je suis artiste technique (contrairement au titre d'artiste de lumière sur quoi je continuerai de faire des mises à jour pour les deux postes. Sur ce projet, j'assemble le game design et je fais également l'intégration dans l'engin (Unity de ce fait).

Je vous tiens au courant pour la semaine 2!

jeudi 30 janvier 2014

Projet contrainte : Poursuite

De retour à vous,

Avec deux nouveaux projets en main, je vous fournis un lien direct vers toutes les démarches et opérations dans le processus de projet travaillés sur 7 semaines chacun dans des équipes hors pair.

Sur mon blog affilié, vous trouverez plusieurs déconstructions et étapes du projet :

http://davidceratnand160.blogspot.ca/

Je me permet de poser ici quelques images du jeu dans le cadre du Projet de Poursuite, séquences ou j'ai travaillé les shaders, les effets de particules ainsi que les lumières du niveau.

1. Analyse de la lumière - contraste chaud / froid

2. Éclairage de la pièce intérieur du chalet

3. La cachette ou le joueur reste quelques instants. Tonalités douces et sombres pour la cachette.

 4. Travail de densité de l'environnement.

5. La grande ligne droite dans le parcours du joueur.

 6. Travail d'ombres au mur.

7. Vérification du chemin guide avec l'éclairage.

8. Ambiance froide pour placer les ennemis de la poursuite en contexte.

 9. Shader de surbrillance manipulable pour les toits.

10. Éclairage fort et contrasté sur le portail de la fin.

11. Un dernier "Shot" d'un angle de vue sur le pont brisé.



Heureusement,
je reviens avec plus de nouvelles dans les prochains jours.