Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Xors3D

Xors3D Графический движок с поддержкой DirectX9

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

Сообщение от Mr_F_ Посмотреть сообщение
да, потому что ты объявляешь пустую неопределённую переменную и сравниваешь ещё с чем-то.
VFACE над вставить в входящие данные PS.
там где у тебя всякие TexCoords : TEXCOORD0, туда же вставляешь что-нибудь типа whatFace : VFACE.
Уже делал, дебагер ругается на "lit", не объявленная переменная:



float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; 
float4x4 matrixWorld	     : MATRIX_WORLD;	   

float3	 lightDirection	     : LIGHT0_DIRECTION;     
float4	 lightColor	     	 : LIGHT0_COLOR;	 

float4	 entityColor	     : COLOR_DIFFUSE;	
float 	 whatFace 	     : VFACE;

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;
};



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;


	if (whatFace < -1 )
	{

			float lit 	= dot(-input.normal , -lightDirection);
	}
	else
	{
			float 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;
	}
}


______________________________

Запихал ретурн после каждого условия и понял что мой код не работает вообще. То есть освещение не флипается там где надо, у меня флипается всё.

______________________________

Кажется понял что я не так сделал. Но как сделать правильно не понял.
(Offline)
 
Ответить с цитированием
Старый 12.08.2014, 16:46   #152
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

У каждой переменной есть область видимости (scope), которая обычно задается фигурными скобками {}. Объявленная внутри них переменная не может использоваться вне своей зоны видимости. Поэтому можно вынести объявление lit за пределы конструкции if-else:
float lit;
if ( whatFace < -1 ) {
    lit = dot( -input.normal, -lightDirection );
} else {
    lit = dot( input.normal, -lightDirection );
}
return diffuse * entityColor * lit * lightColor;
Вообще синтаксис и семантика HLSL (да и GLSL) во многом схожи с языком С. Поэтому если у тебя есть время - почитай книжки всякие про него. В отличие от С++, С не так трудно начинать изучать.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arton (12.08.2014)
Старый 13.08.2014, 02:39   #153
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Не понимаю почему так не работает?
Проверки тупо нету.

float4x4 matrixWorldViewProj : MATRIX_WORLDVIEWPROJ; 
float4x4 matrixWorld	     : MATRIX_WORLD;	   

float3	 lightDirection	     : LIGHT0_DIRECTION;     
float4	 lightColor	     	 : LIGHT0_COLOR;	 

float4	 entityColor	     : COLOR_DIFFUSE;	
float 	 whatFace 			 : VFACE;

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;
};



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 ( 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;
	}
}


Слева Хорс, справа шейдер:

(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 02:59   #154
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

if ( whatFace == -1 )
попробуй if ( whatFace < 0 ), не уверен что там точное значение стоит на каждый фейс.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 03:32   #155
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Сообщение от Mr_F_ Посмотреть сообщение
попробуй if ( whatFace < 0 ), не уверен что там точное значение стоит на каждый фейс.
Сделала в первую очередь

Как ещё можно сделать подобную штуку? Попробовать считать свет для обеих сторон?
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 03:44   #156
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

float whatFace : VFACE;
только сейчас заметил, что он у тебя как глобал объявлен.
нужно в VSOutput вставить.
в глобале только то, что одинаково на весь шейдер.
в VSOutput у тебя то, что приходит в пиксельный шейдер из VS интерполированное, и VFACE дополнительно из растеризатора - это инфа попиксельная.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 04:12   #157
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Сообщение от Mr_F_ Посмотреть сообщение
только сейчас заметил, что он у тебя как глобал объявлен.
нужно в VSOutput вставить.
в глобале только то, что одинаково на весь шейдер.
в VSOutput у тебя то, что приходит в пиксельный шейдер из VS интерполированное, и VFACE дополнительно из растеризатора - это инфа попиксельная.
Но, как это правильно сделать?
Если так то переменная "whatFace" не найдена:

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 ( 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;
	}
}
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 04:14   #158
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

ну потому что теперь ты её должен читать как input.whatFace. так же как и всё, что ты читаешь из VSOutput.
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 04:34   #159
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Сообщение от Mr_F_ Посмотреть сообщение
ну потому что теперь ты её должен читать как input.whatFace. так же как и всё, что ты читаешь из VSOutput.
То есть так?

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;
        float  whatFace : VFACE;
};



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;
	
	output.whatFace	 = input.whatFace;



	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;
	}
}


Дебагер говорит инвалид:
(35): error X4502: invalid input semantic 'VFACE'
(99): ID3DXEffectCompiler::CompileEffect: There was an error compiling expression
ID3DXEffectCompiler: Compilation failed
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 05:33   #160
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

VFACE нету на входе в вершинный шейдер - он вычисляется автоматически между вершинным и пиксельным шейдером. Поэтому он не может быть в структуре VSInput.
Попробуй сначала убрать whatFace из VSInput а в вершинном шейдере ничего не присваивай output.whatFace или присвой 0.
А уже из пиксельного ты можешь обратиться к ней как input.whatFace и в ней уже будет содержаться нужное значение.
Должно работать.
Однако если вдруг компилятор всё-равно скажет что нет такой семантики (хотя вроде не должен), тогда тебе придется разделить VSOutput на две разные структуры - VSOutput и PSInput, и во второй добавишь VFACE.
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 06:35   #161
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Сообщение от Samodelkin Посмотреть сообщение
VFACE нету на входе в вершинный шейдер - он вычисляется автоматически между вершинным и пиксельным шейдером. Поэтому он не может быть в структуре VSInput.
Попробуй сначала убрать whatFace из VSInput а в вершинном шейдере ничего не присваивай output.whatFace или присвой 0.
А уже из пиксельного ты можешь обратиться к ней как input.whatFace и в ней уже будет содержаться нужное значение.
Должно работать.
Не сработало, куча ошибок.

Однако если вдруг компилятор всё-равно скажет что нет такой семантики (хотя вроде не должен), тогда тебе придется разделить VSOutput на две разные структуры - VSOutput и PSInput, и во второй добавишь 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;
	
}

	PSInput {
	
	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;
	
	
	output.whatFace = iput.whatFace;



	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;
	}
}
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 11:45   #162
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

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

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

float4 position : POSITION0;
float3 normal : TEXCOORD1;
float2 texCoords : TEXCOORD0;
float whatFace : VFACE
}
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 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)
 
Ответить с цитированием
Старый 13.08.2014, 15:29   #164
Mr_F_
Терабайт исходников
 
Аватар для Mr_F_
 
Регистрация: 13.09.2008
Сообщений: 3,947
Написано 2,189 полезных сообщений
(для 6,051 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

попробуй тогда убрать его из VSOutput, а вместо этого PSMain поменять типа
float4 PSMain(VSOutput input, float whatFace : VFACE) : COLOR {
__________________
бложик | geom.io | твиттер | faded | демо 1 2 | роботы | лайтмаппер
(Offline)
 
Ответить с цитированием
Старый 13.08.2014, 15:59   #165
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 5,019
Написано 2,312 полезных сообщений
(для 5,349 пользователей)
Ответ: Xors3D. Шейдеры. Урок первый

Сообщение от Mr_F_ Посмотреть сообщение
попробуй тогда убрать его из VSOutput, а вместо этого PSMain поменять типа
float4 PSMain(VSOutput input, float whatFace : VFACE) : COLOR {
error X3018: invalid subscript 'whatFace'

Нифига не понимаю, попробовал в шейдерах других игр покопаться, не нашёл.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шейдеры pax Наш форум 14 25.10.2009 22:16
Xors шейдеры Spy4433 Xors3D 3 28.08.2009 17:27
Типа шейдеры... :-) L.D.M.T. 3D-программирование 1 14.02.2009 13:19
Урок Фауста Magus Болтовня 0 13.07.2007 02:03
Ashadow & Шейдеры DRAG 3D-программирование 16 10.01.2007 22:21


Часовой пояс GMT +4, время: 11:50.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com