[Résolu] Inverser Normal sur Asset avec Blendshape

Modérateur : Administrateurs Suppléants

Leuprochon
Messages : 19
Inscription : 04 Déc 2017 19:12

Re: Inverser Normal sur Asset avec Blendshape

Message par Leuprochon » 23 Mars 2018 13:12

Non car quand je désactive les ombres j'ai toujours le soucis. Je pense que c'est du au fait que mes normals ne soient pas inversé.

Avant que je fasse les blendshape et que je pouvais flipper mes normal j'avais pas de soucis.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 4608
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: Inverser Normal sur Asset avec Blendshape

Message par boubouk50 » 23 Mars 2018 14:23

ah oui, en fait tu inverses pas les normales, tu rends visible l'autre côté des faces. Donc l'éclairage n'éclaire rien.
Il te faut donc également inverser l'éclairage pour le cœur, mais pas pour le reste.
En gros, avec 2 lumières identiques, une statique qui éclaire tout sauf le layer du cœur, une autre qui peut s'inverser qui n'éclaire que le layer du cœur.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Leuprochon
Messages : 19
Inscription : 04 Déc 2017 19:12

Re: Inverser Normal sur Asset avec Blendshape

Message par Leuprochon » 23 Mars 2018 14:58

Bon, j'ai trouvé un shader qui faisait ce que je voulais :

https://assetstore.unity.com/packages/v ... ders-23087

Il suffit de mettre " Cull Front " et ça marche impec !

Merci pour votre aide !!

Leuprochon
Messages : 19
Inscription : 04 Déc 2017 19:12

Re: [Résolu] Inverser Normal sur Asset avec Blendshape

Message par Leuprochon » 23 Mars 2018 15:42

Et si ça peut en intéresser certains voici le petit script pour changer de changer a l'aide d'une bouton type Toggle

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class FlipShader : MonoBehaviour {
	public Shader shader1;
	public Shader shader2;
	public Renderer rend;
	void Start() {
		rend = GetComponent<Renderer>();
		/*shader1 = Shader.Find("Diffuse");
		shader2 = Shader.Find("Transparent/Diffuse");*/
	}

	void OnEnable () {
		ChangeShader();		
	}

	void OnDisable () {
		ChangeShader();
	}

	void ChangeShader() {
		//if (Input.GetButtonDown("Jump"))
		if (rend.material.shader == shader1)
			rend.material.shader = shader2;
		else
			rend.material.shader = shader1;

	}
}
Si vous voulez vous pouvez enlever la partie avec les enable et disable et réactiver la fonction pour switcher avec une touche..


Merci encore à tous !

Répondre

Revenir vers « Scripting Javascript, C# et Boo »