Показать сообщение отдельно
Старый 21.10.2009, 14:31   #19
Igor'
ПроЭктировщик
 
Аватар для Igor'
 
Регистрация: 15.10.2009
Сообщений: 190
Написано 47 полезных сообщений
(для 142 пользователей)
Ответ: BurnFX RayTracer - W.I.P

Решил сегодня в рейтрейсере ввести шейдеры,тоесть имеем такое:

class CTestRayShader : public IRayShader
{
public:

	CTestRayShader(){
	}

	vec3 main( const RayHit& hit ){
		float3 final = float3(0,0,0);
		float3 diffuse = hit.material->getColor();
		float3 base = tex2D(hit.material , float2(hit.u,hit.v) , 0);
		final = diffuse * base;
		return final;
	}
};
Возможностей много(шейдеры пишутся на C++) название типов как в HLSL.

tex2D пердставлена в таком виде:

float4 tex2D( IMaterial* material , const float2& texcoord , int samplerIndex )

первый параметр - матереал
второй - текстурные координаты
третий - индекс семплера(текстуры) в матереале

будут и tex3D,texCUBE.

Щас после переведения трейсера на шейдеры буду доделывать мультисеймплинг(анти альясинг).
(Offline)
 
Ответить с цитированием