0

我从 XTK 开始。我想加载一个 .vtk 文件,以便将体积渲染转换为 XTK。

此 .vtk 文件是使用 matlab 函数创建的,该函数将 3D 数据数组(体素)保存为 vtk 格式:

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 回答