Page 1 sur 1

Smoothness Unity 5 C# PBR

Publié : 22 Avr 2015 14:12
par snoopy45
Bonjour je suis nouveau sur le forum, je souhaiterais poser une question sur la modification en script d'un material.

Je souhaiterai modifier le paramètre "Smoothness" de mon material qui est un sous-parametre de "Metallic".

J'arrive a modifier le "Metallic" de mon material :
MonObjet.GetComponent<MeshRenderer>().material.SetFloat("_Metallic",0.477f);

Mais pas moyen d'acceder au Smoothness...

Pouvez vous m'aider ?

Merci

Re: Smoothness Unity 5 C# PBR

Publié : 22 Avr 2015 14:50
par sotec
le shader standard a ces propriètés :

Code : Tout sélectionner

	Properties
	{
		_Color("Color", Color) = (1,1,1,1)
		_MainTex("Albedo", 2D) = "white" {}
		
		_Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5

		_Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
		[Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
		_MetallicGlossMap("Metallic", 2D) = "white" {}

		_BumpScale("Scale", Float) = 1.0
		_BumpMap("Normal Map", 2D) = "bump" {}

		_Parallax ("Height Scale", Range (0.005, 0.08)) = 0.02
		_ParallaxMap ("Height Map", 2D) = "black" {}

		_OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0
		_OcclusionMap("Occlusion", 2D) = "white" {}

		_EmissionColor("Color", Color) = (0,0,0)
		_EmissionMap("Emission", 2D) = "white" {}
		
		_DetailMask("Detail Mask", 2D) = "white" {}

		_DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {}
		_DetailNormalMapScale("Scale", Float) = 1.0
		_DetailNormalMap("Normal Map", 2D) = "bump" {}

		[Enum(UV0,0,UV1,1)] _UVSec ("UV Set for secondary textures", Float) = 0

		// UI-only data
		[HideInInspector] _EmissionScaleUI("Scale", Float) = 0.0
		[HideInInspector] _EmissionColorUI("Color", Color) = (1,1,1)

		// Blending state
		[HideInInspector] _Mode ("__mode", Float) = 0.0
		[HideInInspector] _SrcBlend ("__src", Float) = 1.0
		[HideInInspector] _DstBlend ("__dst", Float) = 0.0
		[HideInInspector] _ZWrite ("__zw", Float) = 1.0
	}
Smoothness : _Glossiness

Re: Smoothness Unity 5 C# PBR

Publié : 22 Avr 2015 15:01
par snoopy45
Merci beaucoup,

Voici la correction :)

MonObjet.GetComponent<MeshRenderer>().material.SetFloat("_Glossiness",0.477f);

Re: Smoothness Unity 5 C# PBR

Publié : 22 Avr 2015 16:58
par snoopy45
J'ai un autre problème,

Quant je change le "Rendering Mode" pour le mettre en transparent, il se change dans la liste mais il ne s'actualise pas au niveau du visuel :

MonObjet.GetComponent<MeshRenderer>().material.SetFloat("_Mode",3);

Pouvez vous m’éclairer ?

Merci

Re: Smoothness Unity 5 C# PBR

Publié : 22 Avr 2015 17:37
par sotec
oui, j'ai eu le soucis, changer le mode ne suffit pas ^^ , j'ai déjà posté une fonction qui fait le nécessaire :

viewtopic.php?f=24&t=10170

Re: Smoothness Unity 5 C# PBR

Publié : 23 Avr 2015 08:45
par snoopy45
Bonjour,

Et bien un grand MERCI, ça marche parfaitement :) !