0

私はXTKから始めています。ボリューム レンダリングを XTK にするために .vtk ファイルをロードしたいと思います。

この .vtk ファイルは、3D データ配列 (ボクセル) を vtk 形式に保存する matlab 関数で作成されています。

function savevtk(array, filename)
%  savevtk Save a 3-D scalar array in VTK format.
%  savevtk(array, filename) saves a 3-D array of any size to
%  filename in VTK format.
    [nx, ny, nz] = size(array);
    fid = fopen(filename, 'wt');
    fprintf(fid, '# vtk DataFile Version 2.0\n');
    fprintf(fid, 'Comment goes here\n');
    fprintf(fid, 'ASCII\n');
    fprintf(fid, '\n');
    fprintf(fid, 'DATASET STRUCTURED_POINTS\n');
    fprintf(fid, 'DIMENSIONS    %d   %d   %d\n', nx, ny, nz);
    fprintf(fid, '\n');
    fprintf(fid, 'ORIGIN    0.000   0.000   0.000\n');
    fprintf(fid, 'SPACING    1.000   1.000   1.000\n');
    fprintf(fid, '\n');
    fprintf(fid, 'POINT_DATA   %d\n', nx*ny*nz);
    fprintf(fid, 'SCALARS scalars float\n');
    fprintf(fid, 'LOOKUP_TABLE default\n');
    fprintf(fid, '\n');
    for a=1:nx
        for b=1:ny
            for c=1:nz
                fprintf(fid, '%d ', array(a,b,c));
            end
            fprintf(fid, '\n');
        end
    end
    fclose(fid);
return

ファイルが作成されたら、次の'output.vtk'方法でロードしようとします。

window.onload = function() {

var r = new X.renderer3D();
r.init();

// create a mesh from a .vtk file
var skull = new X.mesh();
skull.file = 'output.vtk';

// add the object
r.add(skull);

// .. and render it
r.render();

};

しかし、ブラウザには何も表示されません。

「output.vtk」は、ボリューム レンダリング用の有効な .vtk ファイルではありませんか?

この種のファイルを XTK にロードする方法は?

4

1 に答える 1

1

XTK コードは良さそうに見えますが、vtk 形式では通常、値の間に 1 つ以上のスペースがありません。それが問題だと思います。

于 2013-01-04T22:53:50.037 に答える