Auteur Sujet: Je fait encore du desktop, rendu PBR wannabe  (Lu 2515 fois)

0 Membres et 1 Invité sur ce sujet

Salut, j'avais oublié d'annoncer ça sur DFR. Je me suis lancé dans le plugin audio depuis 10 mois.

C'est en rapport avec ce forum car j'ai un peu trippé, mon framework (https://github.com/p0nce/dplug) fait du rendu "PBR" pour l'UI sur CPU:
- j'ai une map de profondeur (important qu'elle soit >= 16-bit)
- une map diffuse RGB + emissiveness
- un channel roughness => exposant spéculaire entre autres
- un channel metalness => quantité d'envmap
- un channel specular => quantité de spéculaire
- un channel physicalness => permet de bypasser et prendre le RGB direct pour tricher
En vérité j'arrive pas trop à simuler énormément de matériaux et il faut texturer dans la map de diffuse, mais bon :)

En dernier lieu je corrige les couleurs avec un look-up lift-gamma-gain ça évite d'avoir à ajuster tout le reste.   :P

Avec pas trop de travail on peut avoir des interfaces comme ceci ou les boutons bougent et les ombres suivent, ce qui est quand même bien normal.




C'est le produit que j'ai sorti en novembre (octaveur pour voix assez unique, ça fait du vocal fry avec zéro latence).

Et donc voici un petit lien pour parler de ces robes de mariées plugins audio: https://www.auburnsounds.com

Joli ! :D

(Graillon il s'appelle ton truc ?? ;D )

Il sert à quoi ton canal specular si tu as déjà un channel "métal" ?? Le métal te sers pas à utiliser la diffuse soit pour l'albédo, soit pour la réflectance spéculaire ?

Bonne question, j'ai fait plutôt de la cuisine et c'est pas très net.

En gros dans mon code ca fait: https://github.com/p0nce/dplug/blob/master/gui/dplug/gui/compositor.d#L302

- metalness => intensité de la skybox, diminue l'intensité des taches spéculaire dans une certaine mesure, mais en fait on a quasiment jamais envie que ca soit 0.

- specular => intensité de la réflectance spéculaire, mais c'est un peu 0.5 partout en fait.

J'ai pas trop compris ce que je faisais sur ces deux paramètres. J'imagine qu'il y a une histoire d'énergie à préserver pour être estampillé "PBR".

Si je te lis bien, les pur metaux n'ont pas d'albedo ?

Bah oui, les métaux n'ont pas de diffuse...
Un exemple de ce qu'ils font dans Marmoset Toolbag, Unreal et que j'utilise aussi:

float3  diffuseColor = diffuseTex.Sample( ... );
float    metal = metalTex.Sample( ... );

float3  diffuseAlbedo = lerp( diffuse, 0, metal );   // Plus on est métallique, plus la diffuse passe à 0
float3  specularF0 = lerp( 0.04, diffuse, metal );  // En diélectrique, on a F0=0.04, en conducteur on a F0=diffuse

F0 c'est ta réflectance spéculaire quand ton angle d'incidence est à 0° (orthogonal à ta surface).
A partir de ça tu peux en déduire l'index de réfraction de ta surface en faisant :

// Assuming n1=1 (air) we get:
// F0 = ((n2 - n1) / (n2 + n1))²
// => n2 = (1 + sqrt(F0)) / (1 - sqrt(F0))
//
float3 Fresnel_IORFromF0( float3 _F0 ) {
float3 SqrtF0 = sqrt( _F0 );
return (1.0 + SqrtF0) / (1.00001 - SqrtF0);
}

Tu vois que la valeur magique 0.04 correspond à un IOR de 1.5 qui est à peu près standard pour les diélectriques, on voit également que comme c'est un scalaire (ou un float3( 0.04, 0.04, 0.04 )), les reflets spéculaires des diélectriques sont monochromes.
Le fait qu'on utilise la texture diffuse comme F0 de spéculaire permet de faire des reflets spéculaires colorés sur les métaux.

J'ai pas regardé ton code en détail mais tu as de chouettes résultats avec de toute manière, c'est pas trop la peine de le changer ! :D

Hey ponce!

Joli rendu et je rejoins Patapom. Même si ta technique n'est pas super physiquement correct, si le rendu est cool, que les perfs sont correctes et que tu ne passes pas 3 plombes à ajuster les paramètres et les textures, ça ne vaut peut être pas le coup de tout refaire.

Ah merci d'ailleurs ça tombe bien parce que j'ai pas trop le temps de refaire ça notamment les textures :)
Merci Patapom pour l'explication c'est nickel ! Un jour peut-être j'y reviendrai...

Pour plus de détail regarde la différence entre les modèles metal+roughness (base color, metallic, roughness) et specular+glossiness (diffuse, specular, glossiness).

Par exemple : https://forum.allegorithmic.com/index.php?topic=3243.0

j'viens de testé, j'fais pas mal de son ces derniers temps
l'effet est propre mais meurtri toute la stéréo de mes samples bien stéréo de voix de films,
marche très bien sur mon FLstudio10sousXP32bits réinstaller là semaine dernier suite à un hard disk imminent failur de 4ans et une barrette de RAM morte sous clavier, XP c'est total démodé mais j'avais que ça alors.. c'est déjà assez difficile j'allais pas pleurnicher.
à voir ce que ça donne par des calques négatif et bidouiller les potards avec pannelle contrôler, y a peut être une distorsion cacher bien  sympa, pour l'instant j'ai rien remarqué de plus original que cette piste, le résultat à la qualité qu'un empilement de variateur de pitch granuliseur n'aurait pas,
c'est du beau travail ponce  :D ;) 8)

Hé merci Graindo, porte toi bien et pas trop d'idées négatives. C'est déjà super une histoire de 7 mois ;)

En fait pour Graillon il vaut mieux réduire l'entrée en mono, ce qui est stéréo passe inchangé.
Bouges pas je t'envoie celui là et le plugin d'après qui est en béta, comme ça je saurais si lui aussi marche sous XP !
Le prochain est bien meilleur.