public Texture3D Pipu2Texture( System.IO.FileInfo _FileName ) {
using ( System.IO.FileStream S = _FileName.OpenRead() )
using ( System.IO.BinaryReader R = new System.IO.BinaryReader( S ) ) {
int SlicesCount = R.ReadInt32();
int W = R.ReadInt32();
int H = R.ReadInt32();
PixelsBuffer Slices = new PixelsBuffer( (uint) (4 * W * H * SlicesCount * 4) );
using ( System.IO.BinaryWriter Wr = Slices.OpenStreamWrite() ) {
for ( int SliceIndex=0; SliceIndex < SlicesCount; SliceIndex++ ) {
float4 C = new float4();
for ( int Y=0; Y < H; Y++ ) {
for ( int X=0; X < W; X++ ) {
C.x = R.ReadSingle();
C.y = R.ReadSingle();
C.z = R.ReadSingle();
C.w = R.ReadSingle();
Wr.Write( C.x );
Wr.Write( C.y );
Wr.Write( C.z );
Wr.Write( C.w );
}
}
}
}
return Image2Texture3D( (uint) W, (uint) H, (uint) SlicesCount, PIXEL_FORMAT.RGBA32_FLOAT, new PixelsBuffer[] { Slices } );
}
}