Page 1 sur 2

besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 20 Mai 2021 19:34
par UnityNoobUser
Salut,

petite question pour comprendre le principe avant de me lancer dans shader graphe.
je réalise un petit jeux pour apprendre . je suis donc passer par l'étape "apprendre a utiliser blender" pour modéliser un objet.
je suis ensuite passer par l'étape création d'un shader simple sous blender car sur un missile par exemple, je voulais utiliser un .png pour appliquer une tete de mort sur une texture acier ou appliquer une transparence sur une vitre de vaisseau . une fois réussi je réalise les quelques étapes pour importer sous unity ( comme appliquer les transform, les rotations pour avoir le bon axe z sous unity, le scale, l'export des textures, la fusion en un seul objet de toutes les pièces du model car pas d'animation a prevoir etc..) mais bien entendu une fois sous unity le shader n'est pas appliqué je n'ai plus que les materiaux de base (une couleur mais plus de textures avec les melange rgb ou ma tete de mort avec la prise en compte de l'alpha pour la transparence etc) et les matériaux sont grisés sous unity, je ne peux donc pas les modifier ou les remplacer.
je vais donc devoir apprendre a utiliser shader graph apres avoir galeré dans blender avec les noeuds et le uv unwrap ^^.

mais je ne vois pas comment une fois que j'aurai réussi a recreer un shader sous unity je pourrai l'appliquer a la ou les parties de mon missile car il n'y a pas le system de uv unwrap dans unity! font il que je refasse mon missile dans blender en le laissant en plusieurs morceaux et sans matériaux pour réaliser les materiaux sous unity et pouvoir y appliquer des shader fait avec shader graph ?

merci d'avance a celui qui voudra bien m'aider a comprendre la méthode a suivre pour avoir un objet qui rend a peu prêt correctement sous unity :amen:

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 21 Mai 2021 09:17
par EmileF
Salut,

quand je désire appliquer une texture sur un objet dans Blender, je crée un Material avec la texture en question et j'applique ce matérial sur les faces concernée. Dans l'UVEditor de Blender, je règle la position de la texture.

Je fait le transfert dans Unity, et j'importe le material de Blender ou je crée un material dans Unity dans lequel je mets ma texture et que j'applique au bon material de l'objet.

J'espère avoir été assez clair et que ça pourra t'aider.

Bonne continuation

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 21 Mai 2021 10:48
par boubouk50
1/ Les matériaux "grisés".
Ce sont les matériaux par défaut, ils sont là uniquement pour que l'objet possède un matériau et soit rendu (s'il n'en possédait pas, il serait d'une couleur unie fuschia).
2/ Les matériaux Blender vers Unity.
Dans les Imports Settings d'Unity, tu peux régler dans l'onglet Materials la façon dont ceux-ci sont importés. Je recommande personnellement de ne pas les importer et des les refaire dans Unity.
3/ Les matériaux, les shaders, les UVs
Pour rendre à l'écran un objet 3D, il lui faut un MeshFilter qui contient le Mesh 3D (qui lui possède les UVs) et un Renderer qui définit un matériau qui interprète un shader qui définit comment ton mesh 3D est rendu.
Le matériau n'est qu'une interface pour un shader où tu définis les attributs: textures, couleur, offset, etc.
C'est ce que tu dois avori normalement, avec le matériau default-material.

Pour créer un matériau, tu fais un simple clique droit dans Project: Create > Material.
Ensuite (matériau sélectionné), dans l'Inspector tu règles ton matériau avec ta texture (que tu auras importée) et tu glisse-déposes celui sur ton objet. Tu devrais avoir un premier résultat.

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 21 Mai 2021 21:18
par UnityNoobUser
un grand merci a vous deux ! j'ai enfin compris le principe, je peux passer aux tutos sur shader graph pour ajouter ma tête de mort sur mon missile :super:

Image

Re: besoin d'explications sur le principe d'application d'un shader dans unity [RESOLU]

Publié : 22 Mai 2021 00:11
par UnityNoobUser
ok ok bon ça commence mal ^^ a priori je ne peux pas utiliser shadergraph car j'ai créé mon projet avec un template 3D ( qui utilise de ce que je comprends Built-in Render Pipeline)..et non hdrp ou urpipeline... du coup quelle serait la bonne voie a suivre ? est ce que je peux modifier le template de mon projet actuel ou sinon quel est l’équivalent de shadergraph pour Built-in Render Pipeline car pour mon apprentissage je n'ai pas besoin de faire des shaders de ouf . je sens que ça va être compliquer tout ça encore :hehe:

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 22 Mai 2021 00:14
par jmhoubre
Bonsoir boubouk50,
boubouk50 a écrit : 2/ Les matériaux Blender vers Unity.
Dans les Imports Settings d'Unity, tu peux régler dans l'onglet Materials la façon dont ceux-ci sont importés. Je recommande personnellement de ne pas les importer et des les refaire dans Unity.
Cela m'intéresserait de savoir la raison de ce choix. Je n'ai pas importé beaucoup d'objets depuis Blender, mais j'ai à chaque fois importé les matériaux, et demandé l'extraction.

Merci.

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 22 Mai 2021 00:18
par jmhoubre
Oui tu peux.
1) tu installes le pipeline de ton choix avec le package manager.
2) menu Asset > Renderer, tu crées une asset. Unity va créer 2 assets dans ton repertoire actuel.
3) dans Project Settings, section Graphics, tu renseignes le champ renderer avec l'asset que tu viens de créer.
4) tu convertis les matériaux pour ton nouveau pipeline (en souhaitant que tu aies seulement des shaders standards). C'est dans Edit > RenderPipeline > [NOM de ton PIPELINE] > Upgrade Project Materials to [NOM de ton PIPELINE] materials.

Conseil : une sauvegarde préliminaire de ton projet ne coûte pas grand chose et évite le stress.

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 22 Mai 2021 00:52
par UnityNoobUser
:pleur4:

1) tu installes le pipeline de ton choix avec le package manager.
install de hight definition rp ok

2) menu Asset > Renderer, tu crées une asset. Unity va créer 2 assets dans ton repertoire actuel.
unity a créé automatiquement un "asset" (je comprend pas trop de ce que c'est) "HDRenderPipelineAsset"
mais il n'y a rien dedans et mon projet est tjrs dans le dossier Assets. fautil que je recopie tout dans le nouvel asset ?
plus rien n'est affiché normalement, plus de skybox, mes objets sont fushia etc ! seul mon canvas s'affiche normalement.

3) dans Project Settings, section Graphics, tu renseignes le champ renderer avec l'asset que tu viens de créer.
il la fait tout seul je n'ai plus que le choix que du HDRP

4) tu convertis les matériaux pour ton nouveau pipeline (en souhaitant que tu aies seulement des shaders standards). C'est dans Edit > RenderPipeline > [NOM de ton PIPELINE] > Upgrade Project Materials to [NOM de ton PIPELINE] materials.
ok quelques objets sont de retour (et en plus beau d'ailleurs) mais j'ai perdu un paquet de trucs, comme mes effets de particules et certains objets avec materiaux qui en effet utilisaient un shader spécifique 8|

y a trop de trucs qui ont changés et trop d'options partout , les materiaux, les lumieres etc Oh My God :aille2:

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 22 Mai 2021 01:24
par UnityNoobUser
bon je vais faire une restore du projet je crois . sinon y a pas équivalent a shadergraph pour Built-in Render Pipeline :-D

Re: besoin d'explications sur le principe d'application d'un shader dans unity

Publié : 22 Mai 2021 09:40
par Max
Bonjour,
UnityNoobUser a écrit :
22 Mai 2021 01:24
sinon y a pas équivalent a shadergraph pour Built-in Render Pipeline :-D
personnellement, toujours attaché au pipeline standard (Built-in), j’utilise Amplify Shader, qui est vraiment très bien (asset payant par contre).