Page 1 sur 1

[RESOLU] Custom SurfaceOutput non reconnu par mon custom lighting

Publié : 04 Juil 2019 20:06
par MrBub
Bonjour à tous, je me tourne vers vous car j'ai un petit souci !
Je débute en shader, je me penchais sur le bouquin Unity 2018 Shaders and Effects Cookbook, il propose ce script que j'ai largement simplifié pour ne garder que les infos qui me semblent importantes pour mon problème.

Code : Tout sélectionner

Shader "Custom/AnisoTest"
{
        #pragma surface surf Anisotropic
        
	fixed4 LightingAnisotropic ( SurfaceAnisoOutput s, fixed3 lightDir, half3 viewDir, fixed Atten){
		//Some Code
	}

	struct SurfaceAnisoOutput{
		//Some code
	};

        void surf (Input IN, inout SurfaceAnisoOutput o){
        	//Some Code
        }
        ENDCG
    }
}
Seulement voila, pour la ligne :

Code : Tout sélectionner

fixed4 LightingAnisotropic ( SurfaceAnisoOutput s, fixed3 lightDir, half3 viewDir, fixed Atten){
Unity me sort cette erreur :
Unexpected identifier "SurfaceAnisoOutput". Expected: ')'
Si je remplace le SurfaceAnisoOutput par le standard SurfaceOutput je n'ai plus un tel souci.
Comment lui faire comprendre qu'il doit se servir de ma nouvelle structure, et non pas de celle de base ? :\

Merci énormément pour le coup de pouce, si vous avez une idée, je n'ai pas trouvé la solution à ce problème.

Re: Custom SurfaceOutput non reconnu par mon custom lighting

Publié : 04 Juil 2019 20:25
par Max
Bonsoir,

il faudrait déclarer la structure dans le code avant son emploi dans une fonction.
Donc:

Code : Tout sélectionner

Shader "Custom/AnisoTest"
{
        #pragma surface surf Anisotropic

	struct SurfaceAnisoOutput{
		//Some code
	};
	        
	fixed4 LightingAnisotropic ( SurfaceAnisoOutput s, fixed3 lightDir, half3 viewDir, fixed Atten){
		//Some Code
	}

        void surf (Input IN, inout SurfaceAnisoOutput o){
        	//Some Code
        }
        ENDCG
    }
}

Re: Custom SurfaceOutput non reconnu par mon custom lighting

Publié : 05 Juil 2019 13:24
par MrBub
Haha super, merci beaucoup, je crois qu'il va y avoir pas mal de taff avant que je ne puisse aider qui que ce soit à mon tour !