Благодарю тебя
PAX за хорошие советы!
Дело в том что я на ету полигональную сетку буду клеить 3Д текстуру, так как метод предложеный в
VolumeRayCasting_101 - 202 мне не подходит. А с полигональной сеткой работает:
Код шейдера выглядит:
float4x4 WorldViewProj;
texture3D Volume;
sampler3D SVolume = sampler_state
{
Texture = <Volume>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = LINEAR;
};
struct VS_INPUT
{
float4 Position : POSITION0;
float2 TexCoord : TEXCOORD0;
};
struct VS_OUTPUT
{
float4 Position : POSITION0;
float2 TexCoord : TEXCOORD0;
float4 pos : TEXCOORD1;
};
VS_OUTPUT PositionVS(VS_INPUT input)
{
VS_OUTPUT output;
output.Position = mul(input.Position, WorldViewProj);
output.TexCoord = input.TexCoord;
output.pos = input.Position;
return output;
}
float4 PixelShaderFunction(VS_OUTPUT input) : COLOR0
{
float4 outColor = tex3D(SVolume,input.pos);
return outColor * float4(1,1,1,0.2f);
}
technique BasicView
{
pass Pass1
{
// TODO: set renderstates here.
VertexShader = compile vs_1_1 PositionVS();
PixelShader = compile ps_1_1 PixelShaderFunction();
}
}
Но ети проблемы с отрисовкой полигонов меня затормозили
...Если камеру опустить пониже:
Видно неудавшиеся попытки отрисоватса следующим слоям после первого... А ето никуда не годится!