Показать сообщение отдельно
Старый 13.08.2014, 15:09   #163
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Сообщение от Mr_F_ Посмотреть сообщение
iput, ок. и вообще убери эту строку полностью.

+ не надо ничего разделять, просто блин оставь так
struct VSOutput {

float4 position : POSITION0;
float3 normal : TEXCOORD1;
float2 texCoords : TEXCOORD0;
float whatFace : VFACE
}
О, это уже не соображал.

Так тоже сделала в первую очередь:

float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; 
float4x4 matrixWorld	     : MATRIX_WORLD;	   

float3	 lightDirection	     : LIGHT0_DIRECTION;     
float4	 lightColor	     	 : LIGHT0_COLOR;	 

float4	 entityColor	     : COLOR_DIFFUSE;	

texture  diffuseTexture      : TEXTURE_0;	     


sampler	diffuseSampler = sampler_state

{
	Texture = <diffuseTexture>;

	AddressU	= WRAP;
	AddressV	= WRAP;
	AddressW	= WRAP;

	MinFilter	= ANISOTROPIC;
	MagFilter	= ANISOTROPIC;
	MipFilter	= ANISOTROPIC;


	MaxAnisotropy	= 16;
};



struct	VSInput {
	float4 position  : POSITION0;
	float3 normal 	 : NORMAL;
	float2 texCoords : TEXCOORD0;
};



struct VSOutput {

	float4 position : POSITION0;
	float3 normal : TEXCOORD1;
	float2 texCoords : TEXCOORD0;
	float whatFace : VFACE;

};



VSOutput VSMain(VSInput input) {


	VSOutput output;
	
	output.position  = mul (input.position, matrixWorldViewProj);


	output.normal 	 = normalize(mul(input.normal, matrixWorld));

	output.texCoords = input.texCoords;




	return output;
}


float4 PSMain( VSOutput input) : COLOR {

	float4 diffuse  = tex2D(diffuseSampler, input.texCoords);
	
	float4 color;
    color = tex2D( diffuseSampler, input.texCoords.xy);
	
	if (diffuse.a < 0.5f) discard;

	float lit;

	if ( input.whatFace == -1 )
	{

			lit 	= dot(-input.normal , -lightDirection);
	}
	else
	{
			lit 	= dot(input.normal , -lightDirection);
			
	}


	return diffuse * entityColor * lit * lightColor;
}

technique Diffuse {
	pass p0 {
		PixelShader  = compile ps_3_0 PSMain();
		VertexShader = compile vs_3_0 VSMain();
		
		CullMode = none;
	}
}


Дебагер говорит:
(65): error X4000: variable 'output' used without having been completely initialized
(98 ): ID3DXEffectCompiler::CompileEffect: There was an error compiling expression
ID3DXEffectCompiler: Compilation failed
(Offline)
 
Ответить с цитированием