使用matlab创建的.vtk文件进行xtk体积渲染

时间:2012-12-13 19:55:22

标签: matlab vtk xtk

我从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这种文件?

1 个答案:

答案 0 :(得分:1)

XTK代码看起来不错,但vtk格式的值通常不超过1个空格。我认为这就是问题所在。

相关问题