<div dir="ltr">Hi Weiguang,<div><br></div><div>There aren't any filters for combining vtkImageStencilData (there should be!), so instead you will need to use two vtkImageStencil filters in series: one for the first vtkImplicitFunctionToImageStencil output, and then another for the second.</div><div><br></div><div> - David</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 29, 2014 at 10:09 AM, Weiguang Guan <span dir="ltr"><<a href="mailto:guanw@rhpcs.mcmaster.ca" target="_blank">guanw@rhpcs.mcmaster.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <div>Hi David,<br>
      <br>
      How to combine the outputs from two
      vtkImplicitFunctionToImageStencil instances as I need to use two
      spheres to define a shell? Thanks.<span class=""><br>
      <br>
      Best,<br>
      Weiguang<br>
      <br>
      On 28/10/2014 5:20 PM, David Gobbi wrote:<br>
    </span></div><div><div class="h5">
    <blockquote type="cite">
      <div dir="ltr">Hi Weiguang,
        <div><br>
        </div>
        <div>You definitely want to avoid using vtkClipVolume before
          volume rendering, because it produces vtkUnstructuredGrid data
          instead of image data.</div>
        <div><br>
        </div>
        <div>If you need a shell, you can use vtkImageGaussianSource to
          create an image of a Gaussian, and then threshold it with
          lower and upper thresholds to create a shell.  A Gaussian has
          radial symmetry, so thresholding will create a binary image of
          a spherical shell.   You can then multiply this shell by your
          image.</div>
        <div><br>
        </div>
        <div>Or, instead of using vtkClipVolume, you can use
          vtkImplicitFunctionToImageStencil with vtkImageStencil.  The
          output will be a vtkImageData.  Or, for greater efficiency,
          use vtkROIStencilSource to create a spherical (ellipsoidal)
          stencil for vtkImageStencil.</div>
        <div><br>
        </div>
        <div>Or, possibly the easiest "quick fix" would be to convert
          the vtkUnstructuredGrid that you already have into a
          vtkImageData by using vtkProbeFilter.  The vtkProbeFilter is a
          generic filter for copying (or interpolating) scalar data from
          one kind of data set onto another kind of data set.</div>
        <div><br>
        </div>
        <div> - David</div>
        <div><br>
        </div>
        <div><br>
          <div class="gmail_extra"><br>
            <div class="gmail_quote">On Tue, Oct 28, 2014 at 2:23 PM,
              Weiguang Guan <span dir="ltr"><<a href="mailto:guanw@rhpcs.mcmaster.ca" target="_blank">guanw@rhpcs.mcmaster.ca</a>></span>
              wrote:<br>
              <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi VTK
                users,<br>
                <br>
                I want to volume render (using 3D texture mapper) a
                shell with specified thickness. Previously, I used
                vtkClipVolume twice, one clipped away the inner portion
                of a regular volume data, the other clipped away outer
                portion. The only problem is slow rendering speed
                because the resultant data is no longer a regular volume
                data.<br>
                <br>
                Can anyone suggest a better solution? Would it be faster
                if I used several spheres with texture mapped on them
                and alpha-blending? Thanks.<br>
                <br>
                Best,<br>
                Weiguang<br>
              </blockquote>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </div></div></div>

</blockquote></div><br></div>