From info-volumizer-owner@els.sgi.com Tue Apr 11 22:27:39 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3C5NrbB2375166;
	Tue, 11 Apr 2006 22:23:53 -0700 (PDT)
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k36JZGx32280135
	for <info-volumizer@els.sgi.com>; Thu, 6 Apr 2006 12:35:17 -0700 (PDT)
X-ASG-Debug-ID: 1144352115-1764-896-0
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.192])
	by cuda.sgi.com (Spam Firewall) with ESMTP id 3C4D1D02B7E9
	for <info-volumizer@els.sgi.com>; Thu,  6 Apr 2006 12:35:15 -0700 (PDT)
Received: by zproxy.gmail.com with SMTP id i11so20341nzi
        for <info-volumizer@els.sgi.com>; Thu, 06 Apr 2006 12:35:15 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:references;
        b=fMOZ8skmrlzH/cmzdnaN9m/yEyaVOqC85ljD2XjXbLG14f6SivjBx6I+WUodoBAq6gyAbBV0+roKK49uwLWXVMf+5xPmEwQ4gftxcjXeCYu5kbiqkwCLBrH5ASbvlSjFqoTHITMfthnMAnendKEe3gq6uaAIWF9YSud1i2L3/6A=
Received: by 10.65.35.4 with SMTP id n4mr490267qbj;
        Thu, 06 Apr 2006 12:35:14 -0700 (PDT)
Received: by 10.65.22.19 with HTTP; Thu, 6 Apr 2006 12:35:14 -0700 (PDT)
Message-ID: <95d515cf0604061235x3295c935jfc8c4c50710402e8@mail.gmail.com>
Date: Thu, 6 Apr 2006 15:35:14 -0400
From: "Kevin Wang" <kwang22@gmail.com>
To: info-volumizer@els.sgi.com
X-ASG-Orig-Subj: Re: [info-volumizer] 3D cliptexture
Subject: Re: [info-volumizer] 3D cliptexture
In-Reply-To: <018901c64946$24e0abc0$8f000f86@PRAVEEN>
MIME-Version: 1.0
Content-Type: multipart/alternative; 
	boundary="----=_Part_27630_25400693.1144352114633"
References: <441591F8.7020207@imaging.robarts.ca>
	 <018901c64946$24e0abc0$8f000f86@PRAVEEN>
X-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests=
X-Barracuda-Spam-Report: Code version 3.02, rules version 3.0.10571
	Rule breakdown below pts rule name              description
	---- ---------------------- --------------------------------------------------
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

------=_Part_27630_25400693.1144352114633
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi Praveen,

Sorry to get back to you so late. I have a couple of questions now:

if I have a dataset with size of 128,128,128 and brick size of 128,128,128.
from the documetation of volumizer, there should be 2 levels. level 0 at
128,128,128 and level 1 at 64,64,64. in this case, how should i build the
cliptexture heirarchy?

I can downsample the original dataset to 64,64,64 to build level 1 texture.
(one question is how to pad the volume? shold I center the  original volume
in the padded volume) but for level 0, as I understand, there should be
2*2*2 bricks, how to generate them? Could you please detail it?

I use ClipGen3d to produce a clip-texture with a heart raw data, and it
works with sgi's clipviewer sample program in
/usr/share/Volumizer2/src/apps/simple/clipRenderAction

For my application, i only use one level. and my loader callback is invoked
as I can output some debug info. I use a dataset with 91,108, 91 and set
brick size to 128,128,128 so there is only one level. in the loader callbac=
k
i just return a pointer to the original volume even though volumizer asks
for a volume with size of 128,128,128. I also tried to use a padded volume
of 128,128,128 in the loader callback but still I got nothing on screen.

Right now I dont see any errors or warnings on the volumizer debug info and
the program runs ok, just nothing appears on the screen. It does seem that
part of the volumizer is working since I can feel the slow interaction afte=
r
I turn on the cliptexture rendering. Look forward to your reply.

Thanks,

-- Kevin

On 3/16/06, Praveen Bhaniramka <praveenb@sgi.com> wrote:
>
> Hi Kevin,
>
> Everything looks fine from the debug messages. You only have 1
> clip-resolution in the data set and the only brick at that resolution see=
ms
> to be rendered by Volumizer. Things to check -
>
> - How are you building clip-texture heirarchy in this case?
> - Do the sample applications, e.g. volview with libvolviewClip.so module
> work?
>
> I assume that you are using your own loader code to create the
> clip-texture. Is your loader callback being invoked correctly and are you
> loading the correct volume data in the callback?
>
> - Praveen
>
>  -----Original Message-----
> *From:* owner-info-volumizer@els.sgi.com [mailto:
> owner-info-volumizer@els.sgi.com] *On Behalf Of *Kevin Wang
> *Sent:* Monday, March 13, 2006 9:09 PM
> *To:* info-volumizer@els.sgi.com; praveenb@sgi.com
> *Subject:* [info-volumizer] 3D cliptexture
>
> Hi Praveen,
>
> I tried to use 3D cliptexture in our demo. attached is the volumizer debu=
g
> log. The problem is the everything seems to be working except that I cann=
ot
> see anything on the screen. I wonder if it has anything to do with image
> size since it is not power of 2. I hope you can find something strange in
> the debug log. Look forward to your reply.
>
> -- Kevin
>
>

------=_Part_27630_25400693.1144352114633
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi Praveen,<br><br>Sorry to get back to you so late. I have a couple of que=
stions now:<br><br>if I have a dataset with size of 128,128,128 and brick s=
ize of 128,128,128. from the documetation of volumizer, there should be 2 l=
evels. level 0 at 128,128,128 and level 1 at 64,64,64. in this case, how sh=
ould i build the cliptexture heirarchy?
<br><br>I can downsample the original dataset to 64,64,64 to build level 1 =
texture. (one question is how to pad the volume? shold I center the&nbsp; o=
riginal volume in the padded volume) but for level 0, as I understand, ther=
e should be 2*2*2 bricks, how to generate them? Could you please detail it?
<br><br>I use ClipGen3d to produce a clip-texture with a heart raw data, an=
d it works with sgi's clipviewer sample program in /usr/share/Volumizer2/sr=
c/apps/simple/clipRenderAction<br><br>For my application, i only use one le=
vel. and my loader callback is invoked as I can output some debug info. I u=
se a dataset with 91,108, 91 and set brick size to 128,128,128 so there is =
only one level. in the loader callback i just return a pointer to the origi=
nal volume even though volumizer asks for a volume with size of 128,128,128=
. I also tried to use a padded volume of 128,128,128 in the loader callback=
 but still I got nothing on screen.
<br><br><span>Right now I dont see any errors or warnings on the volumizer =
debug info and the program runs ok, just nothing appears on the screen. It =
does seem that part of the volumizer is working since I can feel the slow i=
nteraction after I turn on the cliptexture rendering. Look forward to your =
reply.
<br><br>Thanks,<br><br>-- Kevin<br></span><br><div><span class=3D"gmail_quo=
te">On 3/16/06, <b class=3D"gmail_sendername">Praveen Bhaniramka</b> &lt;<a=
 href=3D"mailto:praveenb@sgi.com">praveenb@sgi.com</a>&gt; wrote:</span><bl=
ockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, 204=
, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style=3D"direction: ltr;">






<div><span><font face=3D"Arial" size=3D"2">Hi=20
Kevin,</font></span></div>
<div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
<div><span><font face=3D"Arial" size=3D"2">Everything looks=20
fine from the debug messages. You only have 1 clip-resolution in the data s=
et=20
and the only brick at that resolution seems to be rendered by Volumizer. Th=
ings=20
to check -</font></span></div>
<div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
<div><span><font face=3D"Arial" size=3D"2">- How are you=20
building clip-texture heirarchy in this case? </font></span></div>
<div><span><font face=3D"Arial" size=3D"2">- Do the sample=20
applications, e.g. volview with libvolviewClip.so module work?=20
</font></span></div>
<div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
<div><span><font face=3D"Arial" size=3D"2">I assume that you=20
are using your own loader code to create the clip-texture. Is your loader=
=20
callback being invoked correctly and are you loading the correct volume dat=
a in=20
the callback? </font></span></div></div><div style=3D"direction: ltr;"><spa=
n class=3D"sg">
<div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
<div><span><font face=3D"Arial" size=3D"2">-=20
<span id=3D"st" name=3D"st" class=3D"st">Praveen</span></font></span></div>=
</span></div><div style=3D"direction: ltr;"><span class=3D"e" id=3D"q_10a09=
0582b24c687_2">
<blockquote dir=3D"ltr" style=3D"border-left: 2px solid rgb(0, 0, 0); paddi=
ng-left: 5px; margin-left: 5px; margin-right: 0px;">
  <div></div>
  <div dir=3D"ltr" align=3D"left" lang=3D"en-us"><font face=3D"Tahoma" size=
=3D"2">-----Original Message-----<br><b>From:</b>=20
  <a href=3D"mailto:owner-info-volumizer@els.sgi.com" target=3D"_blank" onc=
lick=3D"return top.js.OpenExtLink(window,event,this)">owner-info-volumizer@=
els.sgi.com</a> [mailto:<a href=3D"mailto:owner-info-volumizer@els.sgi.com"=
 target=3D"_blank" onclick=3D"return top.js.OpenExtLink(window,event,this)"=
>
owner-info-volumizer@els.sgi.com</a>]=20
  <b>On Behalf Of </b>Kevin Wang<br><b>Sent:</b> Monday, March 13, 2006 9:0=
9=20
  PM<br><b>To:</b> <a href=3D"mailto:info-volumizer@els.sgi.com" target=3D"=
_blank" onclick=3D"return top.js.OpenExtLink(window,event,this)">info-volum=
izer@els.sgi.com</a>;=20
  <a href=3D"mailto:praveenb@sgi.com" target=3D"_blank" onclick=3D"return t=
op.js.OpenExtLink(window,event,this)">praveenb@sgi.com</a><br><b>Subject:</=
b> [info-volumizer] 3D=20
  cliptexture<br><br></font></div>
  <div style=3D"direction: ltr;">Hi Praveen,<br><br>I tried to use 3D clipt=
exture=20
  in our demo. attached is the volumizer debug log. The problem is the=20
  everything seems to be working except that I cannot see anything on the=
=20
  screen. I wonder if it has anything to do with image size since it is not=
=20
  power of 2. I hope you can find something strange in the debug log. Look=
=20
  forward to your reply. <br></div>
  <div style=3D"direction: ltr;"><span><br>--=20
Kevin</span></div></blockquote>

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

------=_Part_27630_25400693.1144352114633--

From info-volumizer-owner@els.sgi.com Tue Apr 11 22:27:42 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3C5NrxK2394515;
	Tue, 11 Apr 2006 22:23:53 -0700 (PDT)
Received: from ipex2.johnshopkins.edu (ipex2.johnshopkins.edu [162.129.8.151])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k2RIf7x32064527
	for <info-volumizer@els.sgi.com>; Mon, 27 Mar 2006 10:41:09 -0800 (PST)
Received: from cis27.hosts.jhmi.edu ([162.129.9.14])
  by ipex2.johnshopkins.edu with ESMTP; 27 Mar 2006 13:41:01 -0500
X-BrightmailFiltered: true
X-Brightmail-Tracker: AAAAAA==
X-IronPort-AV: i="4.03,134,1141621200"; 
   d="scan'208"; a="137928547:sNHT2808992104"
Received: from Jhmipri-MTA by cis27.hosts.jhmi.edu
	with Novell_GroupWise; Mon, 27 Mar 2006 13:41:00 -0500
Message-Id: <s427eb6c.012@cis27.hosts.jhmi.edu>
X-Mailer: Novell GroupWise Internet Agent 6.5.4 
Date: Mon, 27 Mar 2006 13:39:55 -0500
From: "Ahmet Genc" <agenc@jhmi.edu>
To: <info-volumizer@els.sgi.com>
Subject: [info-volumizer] Xlib:  extension "XFree86-DRI" missing on display ":0.0"
	-volumizer 2.9 -linux32
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by els.sgi.com id k2RIfAx32067151
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

Hi there,

I'm having problem with Bad visual error when I try to run examples given in the /usr/demos/Volumizer/bin dirs and/or using other executables in src/apps/simple/tmRenderAction.

Please find the outputs of my three attempts below
-----------------------------------------------------------------------------------------
./XMLViewer -volume /usr/share/Volumizer2/data/XML/simple.vz
Volumizer MR 2.9, Build #1 (Date: Jul 13 2005 06:34)
 
Number of shapes = 1
Bounding box = (-5, -5, -5) - (5, 5, 5)
Bad visual
------------------------------------------------------------------------------------------
 ./volview  /usr/share/Volumizer2/data/medical/Phantom/CT.Head.char.tif
./volview: error while loading shared libraries: libmpk.so.3: cannot open shared object file: No such file or directory

------------------------------------------------------------------------------------------
./BasicViewer -volume ${DATAFILE} -samplingRate 1 1 3.36 -lut ${DATAPATH}/CT2.lut

Volumizer MR 2.9, Build #1 (Date: Jul 13 2005 06:34)
 
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
Bad visual

------------------------------------------------------------------------------------------


Few notes:

1) I used the --nodeps option with rpm to force the Volumizer (linux-32) installation. 

2) I am using 
    - nVidia Quadro FX 4500 and updated its driver.  
    - RedHat EL W 3 with most recent updates
    - Dual-processor (Athlon Optra 258) HP xw 9300

3) 3D Opengl is otherwise fine, e.g. glxgears

4) glxinfo output is below

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.3
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
    GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
    GLX_NV_swap_group
client glx vendor string: NVIDIA Corporation
client glx version string: 1.3
client glx extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
    GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGI_swap_control, GLX_NV_float_buffer, GLX_ARB_fbconfig_float
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
    GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
    GLX_NV_swap_group, GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro FX 4500/PCI/SSE2/3DNOW!
OpenGL version string: 2.0.1 NVIDIA 81.78
OpenGL extensions:
    GL_ARB_color_buffer_float, GL_ARB_depth_texture, GL_ARB_draw_buffers,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_half_float_pixel, GL_ARB_imaging,
    GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_shadow, GL_ARB_shader_objects, GL_ARB_shading_language_100,
    GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
    GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3, GL_ARB_texture_float,
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
    GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_vertex_shader,
    GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_float,
    GL_ATI_texture_mirror_once, GL_S3_s3tc, GL_EXT_texture_env_add,
    GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array,
    GL_EXT_Cg_shader, GL_EXT_depth_bounds_test, GL_EXT_draw_range_elements,
    GL_EXT_fog_coord, GL_EXT_framebuffer_object, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels,
    GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
    GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
    GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_texture3D,
    GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_lod, GL_EXT_texture_lod_bias, GL_EXT_texture_mirror_clamp,
    GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_timer_query,
    GL_EXT_vertex_array, GL_HP_occlusion_test, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square,
    GL_NV_copy_depth_to_color, GL_NV_depth_clamp, GL_NV_fence,
    GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragment_program,
    GL_NV_fragment_program_option, GL_NV_fragment_program2, GL_NV_half_float,
    GL_NV_light_max_exponent, GL_NV_multisample_filter_hint,
    GL_NV_occlusion_query, GL_NV_packed_depth_stencil, GL_NV_pixel_data_range,
    GL_NV_point_sprite, GL_NV_primitive_restart, GL_NV_register_combiners,
    GL_NV_register_combiners2, GL_NV_texgen_reflection,
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
    GL_NV_texture_expand_normal, GL_NV_texture_rectangle,
    GL_NV_texture_shader, GL_NV_texture_shader2, GL_NV_texture_shader3,
    GL_NV_vertex_array_range, GL_NV_vertex_array_range2, GL_NV_vertex_program,
    GL_NV_vertex_program1_1, GL_NV_vertex_program2,
    GL_NV_vertex_program2_option, GL_NV_vertex_program3,
    GL_NVX_conditional_render, GL_SGIS_generate_mipmap, GL_SGIS_texture_lod,
    GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
 
   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x21 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
0x22 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
0x23 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
0x24 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
0x25 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
0x26 16 tc  0 16  0 r  y  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
0x27 16 tc  0 16  0 r  .  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
0x28 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
0x29 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
0x2a 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
0x2b 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
0x2c 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
0x2d 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon
0x2e 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
0x2f 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon
0x30 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
0x31 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
0x32 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
0x33 16 dc  0 16  0 r  y  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
0x34 16 dc  0 16  0 r  .  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
0x35 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
0x36 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
0x37 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
0x38 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
0x39 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
0x3a 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon
0x3b 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
0x3c 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon


I appreciate any feedback.

Thanks,
Ahmet


From info-volumizer-owner@els.sgi.com Tue Apr 11 22:27:39 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3C5NrTd2390450;
	Tue, 11 Apr 2006 22:23:53 -0700 (PDT)
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k34GVwx32247083
	for <info-volumizer@els.sgi.com>; Tue, 4 Apr 2006 09:31:59 -0700 (PDT)
X-ASG-Debug-ID: 1144168315-6142-257-0
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from ipex1.johnshopkins.edu (ipex1.johnshopkins.edu [162.129.8.141])
	by cuda.sgi.com (Spam Firewall) with ESMTP id C446F2291C5
	for <info-volumizer@els.sgi.com>; Tue,  4 Apr 2006 09:31:55 -0700 (PDT)
Received: from cis27.hosts.jhmi.edu ([162.129.9.14])
  by ipex1.johnshopkins.edu with ESMTP/TLS/DES-CBC3-SHA; 04 Apr 2006 12:31:49 -0400
X-BrightmailFiltered: true
X-Brightmail-Tracker: AAAAAA==
X-IronPort-AV: i="4.03,164,1141621200"; 
   d="scan'208"; a="11196999:sNHT23219712"
Received: from Jhmipri-MTA by cis27.hosts.jhmi.edu
	with Novell_GroupWise; Tue, 04 Apr 2006 12:31:47 -0400
Message-Id: <s4326733.088@cis27.hosts.jhmi.edu>
X-Mailer: Novell GroupWise Internet Agent 6.5.4 
Date: Tue, 04 Apr 2006 12:31:35 -0400
From: "Ahmet Genc" <agenc@jhmi.edu>
To: <info-volumizer@els.sgi.com>
X-ASG-Orig-Subj: Can't load LUT -binding error in Volumizer 2.9
Subject: [info-volumizer] Can't load LUT -binding error in Volumizer 2.9
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Disposition: inline
X-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests=
X-Barracuda-Spam-Report: Code version 3.02, rules version 3.0.10475
	Rule breakdown below pts rule name              description
	---- ---------------------- --------------------------------------------------
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by els.sgi.com id k34GVxx32244161
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

Hi,

Does anyone know how to fix this error?

I am just trying to run the sample codes in  Volumizer2/src/apps/simple/tmRenderAction  directory

Please find the error message below when I try to run BasicViewer as

./BasicViewer -volume ${DATAFILE} -samplingRate 1 1 3.36 -lut ${DATAPATH}/CT2.lut

"Volumizer MR 2.9, Build #1 (Date: Jul 13 2005 06:34)
 
Xlib:  extension "XFree86-DRI" missing on display ":0.0".
Volumizer Warning: Operation failed
vzLUTManager::bindLUT(): attempt to bind a LUT (8bed088) that has not been managed"

Thanks,
Ahmet
Few notes:

1) I used the --nodeps option with rpm to force the Volumizer (linux-32) installation.

2) I am using
   - nVidia Quadro FX 4500 and updated its driver.  
   - RedHat EL W 3 with most recent updates
   - Dual-processor (Athlon Optra 258) HP xw 9300

3) 3D Opengl is otherwise fine, e.g. glxgears


From info-volumizer-owner@els.sgi.com Tue Apr 11 23:14:06 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3C6CCW62411627;
	Tue, 11 Apr 2006 23:12:12 -0700 (PDT)
Received: from cuda.sgi.com ([192.48.176.15])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k3C6ASx32376988
	for <info-volumizer@els.sgi.com>; Tue, 11 Apr 2006 23:10:29 -0700 (PDT)
X-ASG-Debug-ID: 1144822226-3371-187-0
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mail32.opentransfer.com (mail32.opentransfer.com [72.41.223.214])
	by cuda.sgi.com (Spam Firewall) with SMTP id 0A643B893F2
	for <info-volumizer@els.sgi.com>; Tue, 11 Apr 2006 23:10:26 -0700 (PDT)
Received: (qmail 1068 invoked by uid 399); 12 Apr 2006 06:10:19 -0000
Received: from unknown (HELO PRAVEEN) (61.246.82.128)
  by mail.opentransfer.com with SMTP; 12 Apr 2006 06:10:19 -0000
From: "Praveen Bhaniramka" <praveen.bhaniramka@gmail.com>
To: <info-volumizer@els.sgi.com>
X-ASG-Orig-Subj: RE: [info-volumizer] Can't load LUT -binding error in Volumizer 2.9
Subject: RE: [info-volumizer] Can't load LUT -binding error in Volumizer 2.9
Date: Wed, 12 Apr 2006 11:40:20 +0530
Organization: Darshan Solutions
Message-ID: <003c01c65df7$c8444360$4f000f86@PRAVEEN>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.2627
In-Reply-To: <s4326733.088@cis27.hosts.jhmi.edu>
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2096
Importance: Normal
X-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests=
X-Barracuda-Spam-Report: Code version 3.02, rules version 3.0.10833
	Rule breakdown below pts rule name              description
	---- ---------------------- --------------------------------------------------
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

Hi Ahmet,

It looks like you are trying to do indirect rendering with Volumizer
(run 'glxinfo' to confirm that this is indeed the case). This is not
supported with Volumizer. It might work in certain cases like using
TMSimpleShader, but will probably fail when you try to use specific
OpenGL extensions. In this particular case, the use of TMLUTShader
requires certain OpenGL extensions and hence fails.

Hth,
Praveen


> -----Original Message-----
> From: owner-info-volumizer@els.sgi.com 
> [mailto:owner-info-volumizer@els.sgi.com] On Behalf Of Ahmet Genc
> Sent: Tuesday, April 04, 2006 10:02 PM
> To: info-volumizer@els.sgi.com
> Subject: [info-volumizer] Can't load LUT -binding error in 
> Volumizer 2.9
> 
> 
> Hi,
> 
> Does anyone know how to fix this error?
> 
> I am just trying to run the sample codes in  
> Volumizer2/src/apps/simple/tmRenderAction  directory
> 
> Please find the error message below when I try to run BasicViewer as
> 
> ./BasicViewer -volume ${DATAFILE} -samplingRate 1 1 3.36 -lut 
> ${DATAPATH}/CT2.lut
> 
> "Volumizer MR 2.9, Build #1 (Date: Jul 13 2005 06:34)
>  
> Xlib:  extension "XFree86-DRI" missing on display ":0.0". 
> Volumizer Warning: Operation failed
> vzLUTManager::bindLUT(): attempt to bind a LUT (8bed088) that 
> has not been managed"
> 
> Thanks,
> Ahmet
> Few notes:
> 
> 1) I used the --nodeps option with rpm to force the Volumizer 
> (linux-32) installation.
> 
> 2) I am using
>    - nVidia Quadro FX 4500 and updated its driver.  
>    - RedHat EL W 3 with most recent updates
>    - Dual-processor (Athlon Optra 258) HP xw 9300
> 
> 3) 3D Opengl is otherwise fine, e.g. glxgears
> 


From info-volumizer-owner@els.sgi.com Tue Apr 11 23:21:16 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3C6J6AY2388720;
	Tue, 11 Apr 2006 23:19:06 -0700 (PDT)
Received: from cuda.sgi.com ([192.48.176.15])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k3C6Ikx32380508
	for <info-volumizer@els.sgi.com>; Tue, 11 Apr 2006 23:18:47 -0700 (PDT)
X-ASG-Debug-ID: 1144822723-3051-309-0
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mail32.opentransfer.com (mail32.opentransfer.com [72.41.223.214])
	by cuda.sgi.com (Spam Firewall) with SMTP id 8AAF4B894FF
	for <info-volumizer@els.sgi.com>; Tue, 11 Apr 2006 23:18:43 -0700 (PDT)
Received: (qmail 15736 invoked by uid 399); 12 Apr 2006 06:18:38 -0000
Received: from unknown (HELO PRAVEEN) (61.246.82.128)
  by mail.opentransfer.com with SMTP; 12 Apr 2006 06:18:38 -0000
From: "Praveen Bhaniramka" <praveen.bhaniramka@gmail.com>
To: <info-volumizer@els.sgi.com>
X-ASG-Orig-Subj: RE: [info-volumizer] Xlib:  extension "XFree86-DRI" missing on display ":0.0"-volumizer 2.9 -linux32
Subject: RE: [info-volumizer] Xlib:  extension "XFree86-DRI" missing on display ":0.0"-volumizer 2.9 -linux32
Date: Wed, 12 Apr 2006 11:48:35 +0530
Organization: Darshan Solutions
Message-ID: <004601c65df8$f1f621f0$4f000f86@PRAVEEN>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: 7bit
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.2627
In-Reply-To: <s427eb6c.012@cis27.hosts.jhmi.edu>
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2096
Importance: Normal
X-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests=
X-Barracuda-Spam-Report: Code version 3.02, rules version 3.0.10833
	Rule breakdown below pts rule name              description
	---- ---------------------- --------------------------------------------------
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

Hi again,

I just saw your second message. From your glxinfo output, it looks like
you are indeed getting direct rendering with OpenGL. 

The XMLViewer is giving you error since you have a bad visual. Looking
at your glxinfo output, looks like your X is configured in a way that
does not support the visual requeted by the XMLViewer application. I
have seen similar issues when using nVidia GPUs before. You should
either change the XMLViewer source code (See
/usr/share/Volumizer2/src/apps/XMLViewer/UserInterface.cxx) to request
visuals with lesser bits or change your XF86Config file so that the
requested visual is supported by the X server. 

The second error occurs since you do not have MPK installed. Visit the
supportfolio web page to download 32-bit version of Multipipe SDK
software for this.

I am not sure why you see the 3rd error. It does not look like a visual
issue... 

Thanks.

- Praveen


> -----Original Message-----
> From: owner-info-volumizer@els.sgi.com 
> [mailto:owner-info-volumizer@els.sgi.com] On Behalf Of Ahmet Genc
> Sent: Tuesday, March 28, 2006 12:10 AM
> To: info-volumizer@els.sgi.com
> Subject: [info-volumizer] Xlib: extension "XFree86-DRI" 
> missing on display ":0.0"-volumizer 2.9 -linux32
> 
> 
> Hi there,
> 
> I'm having problem with Bad visual error when I try to run 
> examples given in the /usr/demos/Volumizer/bin dirs and/or 
> using other executables in src/apps/simple/tmRenderAction.
> 
> Please find the outputs of my three attempts below
> --------------------------------------------------------------
> ---------------------------
> ./XMLViewer -volume /usr/share/Volumizer2/data/XML/simple.vz
> Volumizer MR 2.9, Build #1 (Date: Jul 13 2005 06:34)
>  
> Number of shapes = 1
> Bounding box = (-5, -5, -5) - (5, 5, 5)
> Bad visual
> --------------------------------------------------------------
> ----------------------------
>  ./volview  
> /usr/share/Volumizer2/data/medical/Phantom/CT.Head.char.tif
> ./volview: error while loading shared libraries: libmpk.so.3: 
> cannot open shared object file: No such file or directory
> 
> --------------------------------------------------------------
> ----------------------------
> ./BasicViewer -volume ${DATAFILE} -samplingRate 1 1 3.36 -lut 
> ${DATAPATH}/CT2.lut
> 
> Volumizer MR 2.9, Build #1 (Date: Jul 13 2005 06:34)
>  
> Xlib:  extension "XFree86-DRI" missing on display ":0.0".
> Bad visual
> 
> --------------------------------------------------------------
> ----------------------------
> 
> 
> Few notes:
> 
> 1) I used the --nodeps option with rpm to force the Volumizer 
> (linux-32) installation. 
> 
> 2) I am using 
>     - nVidia Quadro FX 4500 and updated its driver.  
>     - RedHat EL W 3 with most recent updates
>     - Dual-processor (Athlon Optra 258) HP xw 9300
> 
> 3) 3D Opengl is otherwise fine, e.g. glxgears
> 
> 4) glxinfo output is below
> 
> name of display: :0.0
> display: :0  screen: 0
> direct rendering: Yes
> server glx vendor string: NVIDIA Corporation
> server glx version string: 1.3
> server glx extensions:
>     GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
>     GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
>     GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
>     GLX_NV_swap_group
> client glx vendor string: NVIDIA Corporation
> client glx version string: 1.3
> client glx extensions:
>     GLX_ARB_get_proc_address, GLX_ARB_multisample, 
> GLX_EXT_visual_info,
>     GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
>     GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, 
> GLX_SGIX_pbuffer,
>     GLX_SGI_swap_control, GLX_NV_float_buffer, GLX_ARB_fbconfig_float
> GLX extensions:
>     GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
>     GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
>     GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_fbconfig_float,
>     GLX_NV_swap_group, GLX_ARB_get_proc_address
> OpenGL vendor string: NVIDIA Corporation
> OpenGL renderer string: Quadro FX 4500/PCI/SSE2/3DNOW!
> OpenGL version string: 2.0.1 NVIDIA 81.78
> OpenGL extensions:
>     GL_ARB_color_buffer_float, GL_ARB_depth_texture, 
> GL_ARB_draw_buffers,
>     GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
>     GL_ARB_fragment_shader, GL_ARB_half_float_pixel, GL_ARB_imaging,
>     GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
>     GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, 
> GL_ARB_point_sprite,
>     GL_ARB_shadow, GL_ARB_shader_objects, GL_ARB_shading_language_100,
>     GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
>     GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
>     GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3, 
> GL_ARB_texture_float,
>     GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
>     GL_ARB_texture_rectangle, GL_ARB_transpose_matrix,
>     GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, 
> GL_ARB_vertex_shader,
>     GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_float,
>     GL_ATI_texture_mirror_once, GL_S3_s3tc, GL_EXT_texture_env_add,
>     GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
>     GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
>     GL_EXT_blend_minmax, GL_EXT_blend_subtract, 
> GL_EXT_compiled_vertex_array,
>     GL_EXT_Cg_shader, GL_EXT_depth_bounds_test, 
> GL_EXT_draw_range_elements,
>     GL_EXT_fog_coord, GL_EXT_framebuffer_object, 
> GL_EXT_multi_draw_arrays,
>     GL_EXT_packed_depth_stencil, GL_EXT_packed_pixels,
>     GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
>     GL_EXT_rescale_normal, GL_EXT_secondary_color,
>     GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
>     GL_EXT_stencil_two_side, GL_EXT_stencil_wrap, GL_EXT_texture3D,
>     GL_EXT_texture_compression_s3tc, GL_EXT_texture_cube_map,
>     GL_EXT_texture_edge_clamp, GL_EXT_texture_env_combine,
>     GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
>     GL_EXT_texture_lod, GL_EXT_texture_lod_bias, 
> GL_EXT_texture_mirror_clamp,
>     GL_EXT_texture_object, GL_EXT_texture_sRGB, GL_EXT_timer_query,
>     GL_EXT_vertex_array, GL_HP_occlusion_test, GL_IBM_rasterpos_clip,
>     GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, 
> GL_NV_blend_square,
>     GL_NV_copy_depth_to_color, GL_NV_depth_clamp, GL_NV_fence,
>     GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragment_program,
>     GL_NV_fragment_program_option, GL_NV_fragment_program2, 
> GL_NV_half_float,
>     GL_NV_light_max_exponent, GL_NV_multisample_filter_hint,
>     GL_NV_occlusion_query, GL_NV_packed_depth_stencil, 
> GL_NV_pixel_data_range,
>     GL_NV_point_sprite, GL_NV_primitive_restart, 
> GL_NV_register_combiners,
>     GL_NV_register_combiners2, GL_NV_texgen_reflection,
>     GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
>     GL_NV_texture_expand_normal, GL_NV_texture_rectangle,
>     GL_NV_texture_shader, GL_NV_texture_shader2, 
> GL_NV_texture_shader3,
>     GL_NV_vertex_array_range, GL_NV_vertex_array_range2, 
> GL_NV_vertex_program,
>     GL_NV_vertex_program1_1, GL_NV_vertex_program2,
>     GL_NV_vertex_program2_option, GL_NV_vertex_program3,
>     GL_NVX_conditional_render, GL_SGIS_generate_mipmap, 
> GL_SGIS_texture_lod,
>     GL_SGIX_depth_texture, GL_SGIX_shadow, GL_SUN_slice_accum
> glu version: 1.3
> glu extensions:
>     GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess
>  
>    visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
>  id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
> ----------------------------------------------------------------------
> 0x21 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
> 0x22 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
> 0x23 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
> 0x24 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
> 0x25 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
> 0x26 16 tc  0 16  0 r  y  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
> 0x27 16 tc  0 16  0 r  .  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
> 0x28 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
> 0x29 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
> 0x2a 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
> 0x2b 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
> 0x2c 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
> 0x2d 16 tc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon
> 0x2e 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
> 0x2f 16 tc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon
> 0x30 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  0 0 None
> 0x31 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
> 0x32 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  0 0 None
> 0x33 16 dc  0 16  0 r  y  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
> 0x34 16 dc  0 16  0 r  .  .  5  6  5  0  4  0  0 16 16 16 16  0 0 None
> 0x35 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
> 0x36 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
> 0x37 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  2 1 Ncon
> 0x38 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  0 16 16 16 16  4 1 Ncon
> 0x39 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
> 0x3a 16 dc  0 16  0 r  y  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon
> 0x3b 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  2 1 Ncon
> 0x3c 16 dc  0 16  0 r  .  .  5  6  5  0  4 24  8 16 16 16 16  4 1 Ncon
> 
> 
> I appreciate any feedback.
> 
> Thanks,
> Ahmet
> 


From info-volumizer-owner@els.sgi.com Tue Apr 11 23:33:03 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3C6UFYs2368718;
	Tue, 11 Apr 2006 23:30:15 -0700 (PDT)
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k3C6Tsx32405242
	for <info-volumizer@els.sgi.com>; Tue, 11 Apr 2006 23:30:01 -0700 (PDT)
X-ASG-Debug-ID: 1144823391-19402-580-0
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from mail32.opentransfer.com (mail32.opentransfer.com [72.41.223.214])
	by cuda.sgi.com (Spam Firewall) with SMTP id B5CA7D02F276
	for <info-volumizer@els.sgi.com>; Tue, 11 Apr 2006 23:29:52 -0700 (PDT)
Received: (qmail 3236 invoked by uid 399); 12 Apr 2006 06:29:46 -0000
Received: from unknown (HELO PRAVEEN) (61.246.82.128)
  by mail.opentransfer.com with SMTP; 12 Apr 2006 06:29:46 -0000
From: "Praveen Bhaniramka" <praveen.bhaniramka@gmail.com>
To: <info-volumizer@els.sgi.com>
X-ASG-Orig-Subj: RE: [info-volumizer] 3D cliptexture
Subject: RE: [info-volumizer] 3D cliptexture
Date: Wed, 12 Apr 2006 11:59:47 +0530
Organization: Darshan Solutions
Message-ID: <004901c65dfa$7ff11130$4f000f86@PRAVEEN>
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----=_NextPart_000_004A_01C65E28.99A94D30"
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook, Build 10.0.2627
In-Reply-To: <95d515cf0604061235x3295c935jfc8c4c50710402e8@mail.gmail.com>
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2096
Importance: Normal
X-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests=
X-Barracuda-Spam-Report: Code version 3.02, rules version 3.0.10833
	Rule breakdown below pts rule name              description
	---- ---------------------- --------------------------------------------------
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

This is a multi-part message in MIME format.

------=_NextPart_000_004A_01C65E28.99A94D30
Content-Type: text/plain;
	charset="US-ASCII"
Content-Transfer-Encoding: 7bit

Hi Kevin,
 
Volumizer's clip-texture implementation assumes 1 voxel overlap among
adjacent bricks in the heirarchy. It also assumes that ALL the bricks
are of the same resolution. Hence you are right that using a brick size
of 128^3 with 128^3 data set will generate two levels to compensate for
the overlap. Volumizer's loader callback might request you data which is
outside the actual volume's boundaries to maintain the constant brick
size for the heirarchy, e.g. you might get a request to load brick of
size 128^3 at offset (127, 0, 0), which would be outside the volume
data. You can handle this by either padding the volume explicitly or
simply modifying the loader callback code such that when Volumizer
invokes your loader callback, it simply zero's out the empty region of
the brick and initializes the valid portions of the brick pointer with
the correct data. All the sample loaders that ship with Volumizer under
src/lib/loaders directory handle this case properly. Try taking a look
at those. 
 
I know this is a bit complicated and sometimes unintuitive. That is why
we provide ClipGen3d, which the data generation for these cases
properly. 
 
hth,
Praveen
 
 
 -----Original Message-----
From: owner-info-volumizer@els.sgi.com
[mailto:owner-info-volumizer@els.sgi.com] On Behalf Of Kevin Wang
Sent: Friday, April 07, 2006 1:05 AM
To: info-volumizer@els.sgi.com
Subject: Re: [info-volumizer] 3D cliptexture



Hi Praveen,

Sorry to get back to you so late. I have a couple of questions now:

if I have a dataset with size of 128,128,128 and brick size of
128,128,128. from the documetation of volumizer, there should be 2
levels. level 0 at 128,128,128 and level 1 at 64,64,64. in this case,
how should i build the cliptexture heirarchy? 

I can downsample the original dataset to 64,64,64 to build level 1
texture. (one question is how to pad the volume? shold I center the
original volume in the padded volume) but for level 0, as I understand,
there should be 2*2*2 bricks, how to generate them? Could you please
detail it? 

I use ClipGen3d to produce a clip-texture with a heart raw data, and it
works with sgi's clipviewer sample program in
/usr/share/Volumizer2/src/apps/simple/clipRenderAction

For my application, i only use one level. and my loader callback is
invoked as I can output some debug info. I use a dataset with 91,108, 91
and set brick size to 128,128,128 so there is only one level. in the
loader callback i just return a pointer to the original volume even
though volumizer asks for a volume with size of 128,128,128. I also
tried to use a padded volume of 128,128,128 in the loader callback but
still I got nothing on screen. 

Right now I dont see any errors or warnings on the volumizer debug info
and the program runs ok, just nothing appears on the screen. It does
seem that part of the volumizer is working since I can feel the slow
interaction after I turn on the cliptexture rendering. Look forward to
your reply. 

Thanks,

-- Kevin


On 3/16/06, Praveen Bhaniramka <praveenb@sgi.com> wrote: 

Hi Kevin,
 
Everything looks fine from the debug messages. You only have 1
clip-resolution in the data set and the only brick at that resolution
seems to be rendered by Volumizer. Things to check -
 
- How are you building clip-texture heirarchy in this case? 
- Do the sample applications, e.g. volview with libvolviewClip.so module
work? 
 
I assume that you are using your own loader code to create the
clip-texture. Is your loader callback being invoked correctly and are
you loading the correct volume data in the callback? 

 
- Praveen


-----Original Message-----
From: owner-info-volumizer@els.sgi.com [mailto:
<mailto:owner-info-volumizer@els.sgi.com>
owner-info-volumizer@els.sgi.com] On Behalf Of Kevin Wang
Sent: Monday, March 13, 2006 9:09 PM
To: info-volumizer@els.sgi.com; praveenb@sgi.com
Subject: [info-volumizer] 3D cliptexture


Hi Praveen,

I tried to use 3D cliptexture in our demo. attached is the volumizer
debug log. The problem is the everything seems to be working except that
I cannot see anything on the screen. I wonder if it has anything to do
with image size since it is not power of 2. I hope you can find
something strange in the debug log. Look forward to your reply. 


-- Kevin



------=_NextPart_000_004A_01C65E28.99A94D30
Content-Type: text/html;
	charset="US-ASCII"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">
<TITLE>Message</TITLE>

<META content=3D"MSHTML 6.00.2900.2096" name=3DGENERATOR></HEAD>
<BODY>
<DIV><SPAN class=3D512032006-12042006><FONT face=3DArial size=3D2>Hi=20
Kevin,</FONT></SPAN></DIV>
<DIV><SPAN class=3D512032006-12042006><FONT face=3DArial=20
size=3D2></FONT></SPAN>&nbsp;</DIV><SPAN =
class=3D512032006-12042006><FONT face=3DArial=20
size=3D2></FONT></SPAN>
<DIV></DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006>Volumizer's&nbsp;clip-texture implementation =
assumes 1=20
voxel overlap among adjacent bricks in the heirarchy. It also assumes =
that ALL=20
the bricks are of the same resolution. Hence you are right that using a =
brick=20
size of 128^3 with 128^3 data set will generate two levels to compensate =
for the=20
overlap. Volumizer's loader callback might request you data which is =
outside the=20
actual volume's boundaries to maintain the constant brick size for the=20
heirarchy, e.g. you might get a request to load brick of size 128^3 at =
offset=20
(127, 0, 0), which would be outside the volume data. You can&nbsp;handle =
this by=20
either padding the volume explicitly or simply modifying the loader =
callback=20
code such that when Volumizer invokes your loader callback, it simply =
zero's out=20
the empty region of the brick and initializes the valid portions of the =
brick=20
pointer with the correct data. All the sample loaders that ship with =
Volumizer=20
under src/lib/loaders directory handle this case properly. Try taking a =
look at=20
those. </SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006></SPAN></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006>I know this is a bit complicated and =
sometimes=20
unintuitive. That is why we provide ClipGen3d, which&nbsp;the data =
generation=20
for&nbsp;these cases properly. </SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006></SPAN></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006>hth,</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006>Praveen</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006></SPAN></FONT></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006>&nbsp;</SPAN></FONT></FONT></FONT></DIV>
<DIV><FONT face=3DTahoma><FONT size=3D2><FONT face=3DArial><SPAN=20
class=3D512032006-12042006>&nbsp;</SPAN></FONT>-----Original=20
Message-----<BR><B>From:</B> owner-info-volumizer@els.sgi.com=20
[mailto:owner-info-volumizer@els.sgi.com] <B>On Behalf Of </B>Kevin=20
Wang<BR><B>Sent:</B> Friday, April 07, 2006 1:05 AM<BR><B>To:</B>=20
info-volumizer@els.sgi.com<BR><B>Subject:</B> Re: [info-volumizer] 3D=20
cliptexture<BR><BR></DIV></FONT></FONT>
<BLOCKQUOTE=20
style=3D"PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px =
solid; MARGIN-RIGHT: 0px">Hi=20
  Praveen,<BR><BR>Sorry to get back to you so late. I have a couple of =
questions=20
  now:<BR><BR>if I have a dataset with size of 128,128,128 and brick =
size of=20
  128,128,128. from the documetation of volumizer, there should be 2 =
levels.=20
  level 0 at 128,128,128 and level 1 at 64,64,64. in this case, how =
should i=20
  build the cliptexture heirarchy? <BR><BR>I can downsample the original =
dataset=20
  to 64,64,64 to build level 1 texture. (one question is how to pad the =
volume?=20
  shold I center the&nbsp; original volume in the padded volume) but for =
level=20
  0, as I understand, there should be 2*2*2 bricks, how to generate =
them? Could=20
  you please detail it? <BR><BR>I use ClipGen3d to produce a =
clip-texture with a=20
  heart raw data, and it works with sgi's clipviewer sample program in=20
  /usr/share/Volumizer2/src/apps/simple/clipRenderAction<BR><BR>For my=20
  application, i only use one level. and my loader callback is invoked =
as I can=20
  output some debug info. I use a dataset with 91,108, 91 and set brick =
size to=20
  128,128,128 so there is only one level. in the loader callback i just =
return a=20
  pointer to the original volume even though volumizer asks for a volume =
with=20
  size of 128,128,128. I also tried to use a padded volume of =
128,128,128 in the=20
  loader callback but still I got nothing on screen. <BR><BR><SPAN>Right =
now I=20
  dont see any errors or warnings on the volumizer debug info and the =
program=20
  runs ok, just nothing appears on the screen. It does seem that part of =
the=20
  volumizer is working since I can feel the slow interaction after I =
turn on the=20
  cliptexture rendering. Look forward to your reply. =
<BR><BR>Thanks,<BR><BR>--=20
  Kevin<BR></SPAN><BR>
  <DIV><SPAN class=3Dgmail_quote>On 3/16/06, <B =
class=3Dgmail_sendername>Praveen=20
  Bhaniramka</B> &lt;<A =
href=3D"mailto:praveenb@sgi.com">praveenb@sgi.com</A>&gt;=20
  wrote:</SPAN>
  <BLOCKQUOTE class=3Dgmail_quote=20
  style=3D"PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: =
rgb(204,204,204) 1px solid">
    <DIV style=3D"DIRECTION: ltr">
    <DIV><SPAN><FONT face=3DArial size=3D2>Hi Kevin,</FONT></SPAN></DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2></FONT></SPAN>&nbsp;</DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2>Everything looks fine from =
the debug=20
    messages. You only have 1 clip-resolution in the data set and the =
only brick=20
    at that resolution seems to be rendered by Volumizer. Things to =
check=20
    -</FONT></SPAN></DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2></FONT></SPAN>&nbsp;</DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2>- How are you building =
clip-texture=20
    heirarchy in this case? </FONT></SPAN></DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2>- Do the sample applications, =
e.g.=20
    volview with libvolviewClip.so module work? </FONT></SPAN></DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2></FONT></SPAN>&nbsp;</DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2>I assume that you are using =
your own=20
    loader code to create the clip-texture. Is your loader callback =
being=20
    invoked correctly and are you loading the correct volume data in the =

    callback? </FONT></SPAN></DIV></DIV>
    <DIV style=3D"DIRECTION: ltr"><SPAN class=3Dsg>
    <DIV><SPAN><FONT face=3DArial size=3D2></FONT></SPAN>&nbsp;</DIV>
    <DIV><SPAN><FONT face=3DArial size=3D2>- <SPAN class=3Dst id=3Dst=20
    name=3D"st">Praveen</SPAN></FONT></SPAN></DIV></SPAN></DIV>
    <DIV style=3D"DIRECTION: ltr"><SPAN class=3De =
id=3Dq_10a090582b24c687_2>
    <BLOCKQUOTE dir=3Dltr=20
    style=3D"PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: =
rgb(0,0,0) 2px solid; MARGIN-RIGHT: 0px">
      <DIV></DIV>
      <DIV lang=3Den-us dir=3Dltr align=3Dleft><FONT face=3DTahoma =
size=3D2>-----Original=20
      Message-----<BR><B>From:</B> <A=20
      onclick=3D"return top.js.OpenExtLink(window,event,this)"=20
      href=3D"mailto:owner-info-volumizer@els.sgi.com"=20
      target=3D_blank>owner-info-volumizer@els.sgi.com</A> [mailto:<A=20
      onclick=3D"return top.js.OpenExtLink(window,event,this)"=20
      href=3D"mailto:owner-info-volumizer@els.sgi.com" target=3D_blank>=20
      owner-info-volumizer@els.sgi.com</A>] <B>On Behalf Of </B>Kevin=20
      Wang<BR><B>Sent:</B> Monday, March 13, 2006 9:09 PM<BR><B>To:</B> =
<A=20
      onclick=3D"return top.js.OpenExtLink(window,event,this)"=20
      href=3D"mailto:info-volumizer@els.sgi.com"=20
      target=3D_blank>info-volumizer@els.sgi.com</A>; <A=20
      onclick=3D"return top.js.OpenExtLink(window,event,this)"=20
      href=3D"mailto:praveenb@sgi.com"=20
      target=3D_blank>praveenb@sgi.com</A><BR><B>Subject:</B> =
[info-volumizer] 3D=20
      cliptexture<BR><BR></FONT></DIV>
      <DIV style=3D"DIRECTION: ltr">Hi Praveen,<BR><BR>I tried to use 3D =

      cliptexture in our demo. attached is the volumizer debug log. The =
problem=20
      is the everything seems to be working except that I cannot see =
anything on=20
      the screen. I wonder if it has anything to do with image size =
since it is=20
      not power of 2. I hope you can find something strange in the debug =
log.=20
      Look forward to your reply. <BR></DIV>
      <DIV style=3D"DIRECTION: ltr"><SPAN><BR>--=20
    =
Kevin</SPAN></DIV></BLOCKQUOTE></SPAN></DIV></BLOCKQUOTE></DIV><BR></BLOC=
KQUOTE></BODY></HTML>

------=_NextPart_000_004A_01C65E28.99A94D30--


From info-volumizer-owner@els.sgi.com Wed Apr 12 23:08:23 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3D66vCh2364911;
	Wed, 12 Apr 2006 23:06:57 -0700 (PDT)
Received: from cuda.sgi.com (cuda2.sgi.com [192.48.168.29])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k3CG03x32384367
	for <info-volumizer@els.sgi.com>; Wed, 12 Apr 2006 09:00:04 -0700 (PDT)
X-ASG-Debug-ID: 1144857601-19646-148-0
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from ipex1.johnshopkins.edu (ipex1.johnshopkins.edu [162.129.8.141])
	by cuda.sgi.com (Spam Firewall) with ESMTP id AC98FD030A59
	for <info-volumizer@els.sgi.com>; Wed, 12 Apr 2006 09:00:01 -0700 (PDT)
Received: from cis27.hosts.jhmi.edu ([162.129.9.14])
  by ipex1.johnshopkins.edu with ESMTP/TLS/DES-CBC3-SHA; 12 Apr 2006 11:59:58 -0400
X-BrightmailFiltered: true
X-Brightmail-Tracker: AAAAAA==
X-IronPort-AV: i="4.04,115,1144036800"; 
   d="scan'208"; a="13342727:sNHT23827768"
Received: from Jhmipri-MTA by cis27.hosts.jhmi.edu
	with Novell_GroupWise; Wed, 12 Apr 2006 11:59:58 -0400
Message-Id: <s43cebbe.045@cis27.hosts.jhmi.edu>
X-Mailer: Novell GroupWise Internet Agent 6.5.4 
Date: Wed, 12 Apr 2006 11:59:47 -0400
From: "Ahmet Genc" <agenc@jhmi.edu>
To: <info-volumizer@els.sgi.com>
X-ASG-Orig-Subj: RE: [info-volumizer] Can't load LUT -binding error in
	Volumizer 2.9
Subject: RE: [info-volumizer] Can't load LUT -binding error in
	Volumizer 2.9
Mime-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Disposition: inline
X-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests=
X-Barracuda-Spam-Report: Code version 3.02, rules version 3.0.10851
	Rule breakdown below pts rule name              description
	---- ---------------------- --------------------------------------------------
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by els.sgi.com id k3CG04x32403578
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

Praveen,

I have Volumizer 2.6 running in other Linux 32 system (with nVidia Quadro FX 3000 graphics card) and have no problem at all when I run my program on it.  -I developed my program using Volumizer 2.6 and Qt in that -old- linux system.

I don't understand why I am getting this error on running exactly the same program in this new system.  I posted those errors from Volumizer demos to make it easy to understand.  Yet, I am not doing any different than running exactly the same program which has no problem in Volumizer 2.6 and with the nVidia grahics card from the same product line.

Furthermore, X configuration in both systems are identical.  I spent quite some time to make it work in the previous system and would like to eliminate that factor in the new system by using the same XF86Config file.

I hope this could help to shed more light on the problem.

Thanks,
Ahmet

>>> praveen.bhaniramka@gmail.com  >>>
Hi Ahmet,

It looks like you are trying to do indirect rendering with Volumizer
(run 'glxinfo' to confirm that this is indeed the case). This is not
supported with Volumizer. It might work in certain cases like using
TMSimpleShader, but will probably fail when you try to use specific
OpenGL extensions. In this particular case, the use of TMLUTShader
requires certain OpenGL extensions and hence fails.

Hth,
Praveen


> -----Original Message-----
> From: owner-info-volumizer@els.sgi.com 
> [mailto:owner-info-volumizer@els.sgi.com] On Behalf Of Ahmet Genc
> Sent: Tuesday, April 04, 2006 10:02 PM
> To: info-volumizer@els.sgi.com
> Subject: [info-volumizer] Can't load LUT -binding error in 
> Volumizer 2.9
> 
> 
> Hi,
> 
> Does anyone know how to fix this error?
> 
> I am just trying to run the sample codes in  
> Volumizer2/src/apps/simple/tmRenderAction  directory
> 
> Please find the error message below when I try to run BasicViewer as
> 
> ./BasicViewer -volume ${DATAFILE} -samplingRate 1 1 3.36 -lut 
> ${DATAPATH}/CT2.lut
> 
> "Volumizer MR 2.9, Build #1 (Date: Jul 13 2005 06:34)
>  
> Xlib:  extension "XFree86-DRI" missing on display ":0.0". 
> Volumizer Warning: Operation failed
> vzLUTManager::bindLUT(): attempt to bind a LUT (8bed088) that 
> has not been managed"
> 
> Thanks,
> Ahmet
> Few notes:
> 
> 1) I used the --nodeps option with rpm to force the Volumizer 
> (linux-32) installation.
> 
> 2) I am using
>    - nVidia Quadro FX 4500 and updated its driver.  
>    - RedHat EL W 3 with most recent updates
>    - Dual-processor (Athlon Optra 258) HP xw 9300
> 
> 3) 3D Opengl is otherwise fine, e.g. glxgears
> 


From info-volumizer-owner@els.sgi.com Wed Apr 12 23:08:24 2006
Received: (from majordom@localhost)
	by els.sgi.com (8.12.10/8.12.2/els-2.2) id k3D66vgI2393721;
	Wed, 12 Apr 2006 23:06:57 -0700 (PDT)
Received: from cuda.sgi.com (cuda1.sgi.com [192.48.168.28])
	by els.sgi.com (8.12.10/8.12.2/els-2.2) with ESMTP id k3CInsx32410474
	for <info-volumizer@els.sgi.com>; Wed, 12 Apr 2006 11:49:54 -0700 (PDT)
X-ASG-Debug-ID: 1144867790-20938-801-0
X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi
Received: from zproxy.gmail.com (zproxy.gmail.com [64.233.162.203])
	by cuda.sgi.com (Spam Firewall) with ESMTP id 8EEC623A9BD
	for <info-volumizer@els.sgi.com>; Wed, 12 Apr 2006 11:49:51 -0700 (PDT)
Received: by zproxy.gmail.com with SMTP id i11so1170232nzi
        for <info-volumizer@els.sgi.com>; Wed, 12 Apr 2006 11:49:50 -0700 (PDT)
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
        s=beta; d=gmail.com;
        h=received:message-id:date:from:sender:to:subject:in-reply-to:mime-version:content-type:references;
        b=esBk+i1uGPsb8AtTIMQBaccMJJeljGI9SqH59b8/nxkFVyEecNJCYsSNNoAFSQSMTnad+H/Vl76o3RW96N/OaOnMMuyVVmRkcQJqbjUwSWyQpsynMnY/oQ10yzitS8iAELI9bCAeViFLnBCpmq1cC7QYZo0Ndl06ncfTLaxG8cE=
Received: by 10.65.153.13 with SMTP id f13mr877422qbo;
        Wed, 12 Apr 2006 11:49:49 -0700 (PDT)
Received: by 10.65.22.19 with HTTP; Wed, 12 Apr 2006 11:49:49 -0700 (PDT)
Message-ID: <95d515cf0604121149n768a234fk825a245749798d8f@mail.gmail.com>
Date: Wed, 12 Apr 2006 14:49:49 -0400
From: "Kevin Wang" <kwang22@gmail.com>
To: info-volumizer@els.sgi.com, "Praveen Bhaniramka" <praveenb@sgi.com>
X-ASG-Orig-Subj: Re: [info-volumizer] 3D cliptexture
Subject: Re: [info-volumizer] 3D cliptexture
In-Reply-To: <004901c65dfa$7ff11130$4f000f86@PRAVEEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_7234_888176.1144867789801"
References: <95d515cf0604061235x3295c935jfc8c4c50710402e8@mail.gmail.com>
	 <004901c65dfa$7ff11130$4f000f86@PRAVEEN>
X-Virus-Scanned: by cuda.sgi.com at sgi.com
X-Barracuda-Spam-Score: 0.00
X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=3.5 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=5.0 tests=
X-Barracuda-Spam-Report: Code version 3.02, rules version 3.0.10859
	Rule breakdown below pts rule name              description
	---- ---------------------- --------------------------------------------------
Sender: owner-info-volumizer@els.sgi.com
Precedence: bulk
Reply-To: info-volumizer@els.sgi.com

------=_Part_7234_888176.1144867789801
Content-Type: multipart/alternative; 
	boundary="----=_Part_7235_29422250.1144867789801"

------=_Part_7235_29422250.1144867789801
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi Praveen,

Thanks for your reply. That clears up a few things.

Now It seems that I can upload the dataset in my loader callback. but the
problem is that after uploading the texture, the values are all set to 0. I
came to this explanation because I can only see the volume (brain volume)
when I change opacity to non-zero at scalar value 0, otherwise I see nothin=
g
on screen. I checked my dataset in the callback and print some data out,
they seem to be fine. I am attaching the volumizer debug log and a screen
shot to you. In this case, i am using just one level.

I also tried to generate synthetic volume in the loader callback to make
sure the values are not zeros. but after uploading, the values all become 0=
.
What could be the possible cause for this in your opinion?

Another thing is that as I mentioned early, in theory, a brick size of 128^=
3
with 128^3 dataset will have 2 levels. but in my case, it seems volumizer
only need one level. you can see this in the debug log.

Thanks, look forward to your reply.

-- Kevin

On 4/12/06, Praveen Bhaniramka <praveen.bhaniramka@gmail.com> wrote:
>
> Hi Kevin,
>
>  Volumizer's clip-texture implementation assumes 1 voxel overlap among
> adjacent bricks in the heirarchy. It also assumes that ALL the bricks are=
 of
> the same resolution. Hence you are right that using a brick size of 128^3
> with 128^3 data set will generate two levels to compensate for the overla=
p.
> Volumizer's loader callback might request you data which is outside the
> actual volume's boundaries to maintain the constant brick size for the
> heirarchy, e.g. you might get a request to load brick of size 128^3 at
> offset (127, 0, 0), which would be outside the volume data. You can handl=
e
> this by either padding the volume explicitly or simply modifying the load=
er
> callback code such that when Volumizer invokes your loader callback, it
> simply zero's out the empty region of the brick and initializes the valid
> portions of the brick pointer with the correct data. All the sample loade=
rs
> that ship with Volumizer under src/lib/loaders directory handle this case
> properly. Try taking a look at those.
>
> I know this is a bit complicated and sometimes unintuitive. That is why w=
e
> provide ClipGen3d, which the data generation for these cases properly.
>
> hth,
> Praveen
>
>
>  -----Original Message-----
> *From:* owner-info-volumizer@els.sgi.com [mailto:
> owner-info-volumizer@els.sgi.com] *On Behalf Of *Kevin Wang
> *Sent:* Friday, April 07, 2006 1:05 AM
>
> *To:* info-volumizer@els.sgi.com
> *Subject:* Re: [info-volumizer] 3D cliptexture
>
> Hi Praveen,
>
> Sorry to get back to you so late. I have a couple of questions now:
>
> if I have a dataset with size of 128,128,128 and brick size of
> 128,128,128. from the documetation of volumizer, there should be 2 levels=
.
> level 0 at 128,128,128 and level 1 at 64,64,64. in this case, how should =
i
> build the cliptexture heirarchy?
>
> I can downsample the original dataset to 64,64,64 to build level 1
> texture. (one question is how to pad the volume? shold I center the
> original volume in the padded volume) but for level 0, as I understand,
> there should be 2*2*2 bricks, how to generate them? Could you please deta=
il
> it?
>
> I use ClipGen3d to produce a clip-texture with a heart raw data, and it
> works with sgi's clipviewer sample program in
> /usr/share/Volumizer2/src/apps/simple/clipRenderAction
>
> For my application, i only use one level. and my loader callback is
> invoked as I can output some debug info. I use a dataset with 91,108, 91 =
and
> set brick size to 128,128,128 so there is only one level. in the loader
> callback i just return a pointer to the original volume even though
> volumizer asks for a volume with size of 128,128,128. I also tried to use=
 a
> padded volume of 128,128,128 in the loader callback but still I got nothi=
ng
> on screen.
>
> Right now I dont see any errors or warnings on the volumizer debug info
> and the program runs ok, just nothing appears on the screen. It does seem
> that part of the volumizer is working since I can feel the slow interacti=
on
> after I turn on the cliptexture rendering. Look forward to your reply.
>
> Thanks,
>
> -- Kevin
>
> On 3/16/06, Praveen Bhaniramka <praveenb@sgi.com> wrote:
> >
> >  Hi Kevin,
> >
> > Everything looks fine from the debug messages. You only have 1
> > clip-resolution in the data set and the only brick at that resolution s=
eems
> > to be rendered by Volumizer. Things to check -
> >
> > - How are you building clip-texture heirarchy in this case?
> > - Do the sample applications, e.g. volview with libvolviewClip.so modul=
e
> > work?
> >
> > I assume that you are using your own loader code to create the
> > clip-texture. Is your loader callback being invoked correctly and are y=
ou
> > loading the correct volume data in the callback?
> >
> > - Praveen
> >
> >  -----Original Message-----
> > *From:* owner-info-volumizer@els.sgi.com [mailto:owner-info-volumizer@e=
ls.sgi.com]
> > *On Behalf Of *Kevin Wang
> > *Sent:* Monday, March 13, 2006 9:09 PM
> > *To:* info-volumizer@els.sgi.com; praveenb@sgi.com
> > *Subject:* [info-volumizer] 3D cliptexture
> >
> > Hi Praveen,
> >
> > I tried to use 3D cliptexture in our demo. attached is the volumizer
> > debug log. The problem is the everything seems to be working except tha=
t I
> > cannot see anything on the screen. I wonder if it has anything to do wi=
th
> > image size since it is not power of 2. I hope you can find something st=
range
> > in the debug log. Look forward to your reply.
> >
> > -- Kevin
> >
> >
>

------=_Part_7235_29422250.1144867789801
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi Praveen,<br>
<br>
Thanks for your reply. That clears up a few things.<br>
<br>
Now It seems that I can upload the dataset in my loader callback. but
the problem is that after uploading the texture, the values are all set
to 0. I came to this explanation because I can only see the volume
(brain volume) when I change opacity to non-zero at scalar value 0,
otherwise I see nothing on screen. I checked my dataset in the callback
and print some data out, they seem to be fine. I am attaching the
volumizer debug log and a screen shot to you. In this case, i am using
just one level. <br>
<br>
I also tried to generate synthetic volume in the loader callback to
make sure the values are not zeros. but after uploading, the values all
become 0. What could be the possible cause for this in your opinion?<br>

<br>
Another thing is that as I mentioned early, in theory, a brick size of
128^3 with 128^3 dataset will have 2 levels. but in my case, it seems
volumizer only need one level. you can see this in the debug log. <br>
<br>
Thanks, look forward to your reply.<br>
<br>
-- Kevin<br><br><div><span class=3D"gmail_quote">On 4/12/06, <b class=3D"gm=
ail_sendername">Praveen Bhaniramka</b> &lt;<a href=3D"mailto:praveen.bhanir=
amka@gmail.com">praveen.bhaniramka@gmail.com</a>&gt; wrote:</span><blockquo=
te class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204, 204, 204)=
; margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style=3D"direction: ltr;">






<div><span><font face=3D"Arial" size=3D"2">Hi=20
Kevin,</font></span></div>
<div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div><span>=
<font face=3D"Arial" size=3D"2"></font></span>
<div></div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span>Volu=
mizer's&nbsp;clip-texture implementation assumes 1=20
voxel overlap among adjacent bricks in the heirarchy. It also assumes that =
ALL=20
the bricks are of the same resolution. Hence you are right that using a bri=
ck=20
size of 128^3 with 128^3 data set will generate two levels to compensate fo=
r the=20
overlap. Volumizer's loader callback might request you data which is outsid=
e the=20
actual volume's boundaries to maintain the constant brick size for the=20
heirarchy, e.g. you might get a request to load brick of size 128^3 at offs=
et=20
(127, 0, 0), which would be outside the volume data. You can&nbsp;handle th=
is by=20
either padding the volume explicitly or simply modifying the loader callbac=
k=20
code such that when Volumizer invokes your loader callback, it simply zero'=
s out=20
the empty region of the brick and initializes the valid portions of the bri=
ck=20
pointer with the correct data. All the sample loaders that ship with Volumi=
zer=20
under src/lib/loaders directory handle this case properly. Try taking a loo=
k at=20
those. </span></font></font></font></div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span></sp=
an></font></font></font>&nbsp;</div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span>I kn=
ow this is a bit complicated and sometimes=20
unintuitive. That is why we provide ClipGen3d, which&nbsp;the data generati=
on=20
for&nbsp;these cases properly. </span></font></font></font></div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span></sp=
an></font></font></font>&nbsp;</div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span>hth,=
</span></font></font></font></div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span>Prav=
een</span></font></font></font></div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span></sp=
an></font></font></font>&nbsp;</div>
<div><font face=3D"Tahoma"><font size=3D"2"><font face=3D"Arial"><span>&nbs=
p;</span></font></font></font></div>
<div><font face=3D"Tahoma"><font size=3D"2"></font></font></div><div style=
=3D"direction: ltr;"><span class=3D"q"><font face=3D"Tahoma"><font size=3D"=
2"><font face=3D"Arial"><span>&nbsp;</span></font>-----Original=20
Message-----<br><b>From:</b> <a href=3D"mailto:owner-info-volumizer@els.sgi=
.com" target=3D"_blank" onclick=3D"return top.js.OpenExtLink(window,event,t=
his)">owner-info-volumizer@els.sgi.com</a>=20
[mailto:<a href=3D"mailto:owner-info-volumizer@els.sgi.com" target=3D"_blan=
k" onclick=3D"return top.js.OpenExtLink(window,event,this)">owner-info-volu=
mizer@els.sgi.com</a>] <b>On Behalf Of </b>Kevin=20
Wang<br></font></font></span></div><div style=3D"direction: ltr;"><font fac=
e=3D"Tahoma"><font size=3D"2"><b>Sent:</b> Friday, April 07, 2006 1:05 AM</=
font></font></div><div style=3D"direction: ltr;"><span class=3D"q"><font fa=
ce=3D"Tahoma">
<font size=3D"2"><br><b>To:</b>=20
<a href=3D"mailto:info-volumizer@els.sgi.com" target=3D"_blank" onclick=3D"=
return top.js.OpenExtLink(window,event,this)">info-volumizer@els.sgi.com</a=
><br></font></font></span></div><div style=3D"direction: ltr;"><font face=
=3D"Tahoma">
<font size=3D"2"><b>Subject:</b> Re: [info-volumizer] 3D=20
cliptexture<br><br></font></font></div></div><div style=3D"direction: ltr;"=
><span class=3D"e" id=3D"q_10a8cf1c9778e95e_5">
<blockquote style=3D"border-left: 2px solid rgb(0, 0, 0); padding-left: 5px=
; margin-left: 5px; margin-right: 0px;">Hi=20
  Praveen,<br><br>Sorry to get back to you so late. I have a couple of ques=
tions=20
  now:<br><br>if I have a dataset with size of 128,128,128 and brick size o=
f=20
  128,128,128. from the documetation of volumizer, there should be 2 levels=
.=20
  level 0 at 128,128,128 and level 1 at 64,64,64. in this case, how should =
i=20
  build the cliptexture heirarchy? <br><br>I can downsample the original da=
taset=20
  to 64,64,64 to build level 1 texture. (one question is how to pad the vol=
ume?=20
  shold I center the&nbsp; original volume in the padded volume) but for le=
vel=20
  0, as I understand, there should be 2*2*2 bricks, how to generate them? C=
ould=20
  you please detail it? <br><br>I use ClipGen3d to produce a clip-texture w=
ith a=20
  heart raw data, and it works with sgi's clipviewer sample program in=20
  /usr/share/Volumizer2/src/apps/simple/clipRenderAction<br><br>For my=20
  application, i only use one level. and my loader callback is invoked as I=
 can=20
  output some debug info. I use a dataset with 91,108, 91 and set brick siz=
e to=20
  128,128,128 so there is only one level. in the loader callback i just ret=
urn a=20
  pointer to the original volume even though volumizer asks for a volume wi=
th=20
  size of 128,128,128. I also tried to use a padded volume of 128,128,128 i=
n the=20
  loader callback but still I got nothing on screen. <br><br><span>Right no=
w I=20
  dont see any errors or warnings on the volumizer debug info and the progr=
am=20
  runs ok, just nothing appears on the screen. It does seem that part of th=
e=20
  volumizer is working since I can feel the slow interaction after I turn o=
n the=20
  cliptexture rendering. Look forward to your reply. <br><br>Thanks,<br><br=
>--=20
  Kevin<br></span><br>
  <div><span class=3D"gmail_quote">On 3/16/06, <b class=3D"gmail_sendername=
">Praveen=20
  Bhaniramka</b> &lt;<a href=3D"mailto:praveenb@sgi.com" target=3D"_blank" =
onclick=3D"return top.js.OpenExtLink(window,event,this)">praveenb@sgi.com</=
a>&gt;=20
  wrote:</span>
  <blockquote class=3D"gmail_quote" style=3D"border-left: 1px solid rgb(204=
, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
    <div style=3D"direction: ltr;">
    <div><span><font face=3D"Arial" size=3D"2">Hi Kevin,</font></span></div=
>
    <div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
    <div><span><font face=3D"Arial" size=3D"2">Everything looks fine from t=
he debug=20
    messages. You only have 1 clip-resolution in the data set and the only =
brick=20
    at that resolution seems to be rendered by Volumizer. Things to check=
=20
    -</font></span></div>
    <div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
    <div><span><font face=3D"Arial" size=3D"2">- How are you building clip-=
texture=20
    heirarchy in this case? </font></span></div>
    <div><span><font face=3D"Arial" size=3D"2">- Do the sample applications=
, e.g.=20
    volview with libvolviewClip.so module work? </font></span></div>
    <div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
    <div><span><font face=3D"Arial" size=3D"2">I assume that you are using =
your own=20
    loader code to create the clip-texture. Is your loader callback being=
=20
    invoked correctly and are you loading the correct volume data in the=20
    callback? </font></span></div></div>
    <div style=3D"direction: ltr;"><span>
    <div><span><font face=3D"Arial" size=3D"2"></font></span>&nbsp;</div>
    <div><span><font face=3D"Arial" size=3D"2">- <span name=3D"st">Praveen<=
/span></font></span></div></span></div>
    <div style=3D"direction: ltr;"><span>
    <blockquote style=3D"border-left: 2px solid rgb(0, 0, 0); padding-left:=
 5px; margin-left: 5px; margin-right: 0px;" dir=3D"ltr">
      <div></div>
      <div align=3D"left" dir=3D"ltr" lang=3D"en-us"><font face=3D"Tahoma" =
size=3D"2">-----Original=20
      Message-----<br><b>From:</b> <a href=3D"mailto:owner-info-volumizer@e=
ls.sgi.com" target=3D"_blank" onclick=3D"return top.js.OpenExtLink(window,e=
vent,this)">owner-info-volumizer@els.sgi.com</a> [mailto:<a href=3D"mailto:=
owner-info-volumizer@els.sgi.com" target=3D"_blank" onclick=3D"return top.j=
s.OpenExtLink(window,event,this)">
=20
      owner-info-volumizer@els.sgi.com</a>] <b>On Behalf Of </b>Kevin=20
      Wang<br><b>Sent:</b> Monday, March 13, 2006 9:09 PM<br><b>To:</b> <a =
href=3D"mailto:info-volumizer@els.sgi.com" target=3D"_blank" onclick=3D"ret=
urn top.js.OpenExtLink(window,event,this)">info-volumizer@els.sgi.com</a>; =
<a href=3D"mailto:praveenb@sgi.com" target=3D"_blank" onclick=3D"return top=
.js.OpenExtLink(window,event,this)">
praveenb@sgi.com</a><br><b>Subject:</b> [info-volumizer] 3D=20
      cliptexture<br><br></font></div>
      <div style=3D"direction: ltr;">Hi Praveen,<br><br>I tried to use 3D=
=20
      cliptexture in our demo. attached is the volumizer debug log. The pro=
blem=20
      is the everything seems to be working except that I cannot see anythi=
ng on=20
      the screen. I wonder if it has anything to do with image size since i=
t is=20
      not power of 2. I hope you can find something strange in the debug lo=
g.=20
      Look forward to your reply. <br></div>
      <div style=3D"direction: ltr;"><span><br>--=20
    Kevin</span></div></blockquote></span></div></blockquote></div><br></bl=
ockquote>

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

------=_Part_7235_29422250.1144867789801--

------=_Part_7234_888176.1144867789801
Content-Type: application/octet-stream; name=volumizerdebug.log
Content-Transfer-Encoding: 7bit
X-Attachment-Id: f_ely0c3pk
Content-Disposition: attachment; filename="volumizerdebug.log"

[kwang@be volumizerdemogcc323]$ ./AtamaiVolumizerDemo
Initializing debug Level to: 5
Volumizer (3): ================================================
Volumizer (3): Checking for 'volumizer_linux' license
Volumizer (0): ================================================
Volumizer (0): =             OpenGL Volumizer 2.9             =
Volumizer (0): =                 DEMO EDITION                 =
Volumizer (0): ================================================
Volumizer (0): =   For information about purchasing the full  =
Volumizer (0): =        OpenGL Volumizer product, visit       =
Volumizer (0): =     http://www.sgi.com/software/volumizer/   =
Volumizer (0): ================================================
Volumizer (0): =                                              =
Volumizer (0): =                   WARNING                    =
Volumizer (0): =                                              =
Volumizer (0): =    YOUR DEMO LICENSE EXPIRES IN 18 DAYS!     =
Volumizer (0): =                                              =
Volumizer (0): ================================================
Volumizer (4): Object 85bf300 ref() -> Ref count = 2
Volumizer (4): Object 85bf300 unref() -> Ref count = 1
Volumizer (4): Object 85bf428 ref() -> Ref count = 2
Volumizer (4): Object 85bf378 ref() -> Ref count = 2
Volumizer (4): Object 85bf428 unref() -> Ref count = 1
Volumizer (4): Object 85bf378 unref() -> Ref count = 1
Volumizer (5): Client attribute stack maximum depth = 16
Volumizer (4): Vendor string = NVIDIA Corporation
Volumizer (4): Renderer string = GeForce 6600 GT/AGP/SSE2
Volumizer (2): NVIDIA GeForce graphics
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): ARBImaging = yes
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): ARBFragmentProgram = yes
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): ARBVertexProgram = yes
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): ARBFragmentShader = yes
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): ARBVertexShader = yes
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): ATIFragmentShader = no
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): SGITextureColorTable = no
Volumizer (5): vzPlatformInfo::vzPlatformInfo(): SGIColorMatrix = no
Volumizer (3): ARBFragmentProgram::init(): GL_ARB_fragment_program supported
Volumizer (3): ARBFragmentShader::init(): GL_ARB_fragment_shader supported
Volumizer (2): ClipRenderImplementation::ClipRenderImplementation(): Assuming available texture memory to be 115 MB
Volumizer (3): vzClipRenderAction::setLODThreshold: Setting the threshold value to be 1.000000
Volumizer (1): Data dimensions = 128, 128, 128
Volumizer (1): Texture type changed to VZ_UNSIGNED_SHORT
Volumizer (1): Number of Components = 1
Volumizer (3): vzParameterClipTexture::setBrickDimensions(): Texture brick dimensions = (128, 128, 128)
Volumizer (2): ParameterClipTextureImpl::setPhysicalMemorySize: Physical Memory Size = 33554432 bytes
Volumizer (4): Object 8546eb0 ref() -> Ref count = 2
Volumizer (4): Object 8546eb0 unref() -> Ref count = 1
Volumizer (2): ParameterClipTextureImpl::setGeometryROI: Geometry ROI = (0.000000, 0.000000, 0.000000) - (128.000000, 128.000000, 128.000000)
Volumizer (0): ClipRenderInterface: Scaling geometryROI to (128.000000, 128.000000, 128.000000)
Volumizer (0): NumberOfLevels is 1
Volumizer (3): vzParameterClipTexture::setDataLoaderCB(): Data loader CB = 4063a194, User data = 85dd948
range:0 65535
Volumizer (4): Object 8537848 ref() -> Ref count = 2
Volumizer (4): Object 8537848 unref() -> Ref count = 1
Volumizer (3): vzClipRenderAction::manage : Number of shapes currently managed = 1
Volumizer (1): texture range = 0.000000, 65535.000000
Volumizer (3): ParameterClipTextureImpl::initClipTextures(): Number of clip-textures in shape 85bf4f8 is 1
Volumizer (2): vzParameterClipTexture: Original volume dimensions = (128, 128, 128)
Volumizer (2): vzParameterClipTexture: Texture brick size = (128, 128, 128)
Volumizer (2): vzParameterClipTexture: Num of leaves = (1, 1, 1)
Volumizer (2): vzParameterClipTexture: Num of levels = 1
Volumizer (2): vzParameterClipTexture: Number of threads not set. Using 1 loader threads
Volumizer (3): Level 0: Bricked Volume dimensions = (128, 128, 128)
Volumizer (3): Level 0: Texture brick dimensions = (128, 128, 128)
Volumizer (3): Level 0: Total number of texture bricks = (1, 1, 1)
Volumizer (3): ParameterClipTextureImpl::createTreeLevels(): Total physical memory = 33554432 bytes, Phys brick size = 4194304 bytes
Volumizer (3): ClipLevel 0, Number of physical bricks = 8, computed dims = (2, 2, 2), actual bricks = 8
Volumizer (3): ClipLevel 0, Memory remaining = 33554432, Suggested number of physical bricks = 8,  dims = (2, 2, 2)
Volumizer (3): ClipLevel 0: Physical window size = 4194304, Actual number of bricks = (1, 1, 1)
Volumizer (3): Initializing level 0
Volumizer (4): Object 85bf300 ref() -> Ref count = 2
Volumizer (4): Object 8537848 ref() -> Ref count = 2
Volumizer (4): Object 8537848 ref() -> Ref count = 3
Volumizer (4): Object 8537848 ref() -> Ref count = 4
Volumizer (4): Object 8537848 unref() -> Ref count = 3
Volumizer (4): Object 8537848 unref() -> Ref count = 2
Volumizer (2): ClipLevel::initialize(): Original appearance has 2 parameters. Clip-level appearance has 1 parameters
Volumizer (4): Object 85bf428 ref() -> Ref count = 2
Volumizer (4): Object 882ac28 ref() -> Ref count = 2
Volumizer (4): Object 882ac28 unref() -> Ref count = 1
Volumizer (2): ClipLevel 0: Data Dimensions = (128, 128, 128)
Volumizer (2): ClipLevel 0: Geometry ROI = (0.000000, 0.000000, 0.000000) - (128.000000, 128.000000, 128.000000)
Volumizer (2): Level 0: Total number of physical memory bricks = (1, 1, 1)
Volumizer (2): Level 0: Number of physical bricks in the window = (1, 1, 1)
Volumizer (2): Level 0: Total physical memory window size is approximately 4194304 bytes
Volumizer (3): BrickedVolume::setCurrentWindow: Load queue not set for level 0 yet!
Volumizer (2): ParameterClipTextureImpl::createTreeLevels(): Number of levels = 1, Allowed memory size = 33554432, Actual maximum = 4194304
Volumizer (2): Creating LoadQueue for 1 levels
Volumizer (2): Creating 1 loader threads
Volumizer (3): ClipLevel #0: Physical window size = (1, 1, 1) bricks
Volumizer (3): LoadQueue:: Elements on load queue = 1
Volumizer (4): Object 85bf4f8 ref() -> Ref count = 2
Volumizer (4): Object 85bf378 ref() -> Ref count = 2
Volumizer (4): Object 8537848 ref() -> Ref count = 3
Volumizer (4): Object 85bf300 ref() -> Ref count = 3
Volumizer (3): ClipShapeManager::beginDraw():Number of shapes currently managed = 1
Volumizer (2): Physical Brick (0, 0, 0) not in main memory, loading...
Volumizer (2): loadNow()::Given brick 880cbd8 not scheduled for read. New index (0, 0, 0), this = 85ef188
Volumizer (5): Requested Extents: 0, 127, 0, 127, 0 ,127
Volumizer (5): Current Level: 0
Volumizer (5): Current filename: /data/kwang/tmp/brain0.mhd
Volumizer (5): data value: 2560
Volumizer (5): loadBrick took 196 ms, Rate = 21.35 MB/sec
Volumizer (1): loadNow()::Phys bricks in mem = 1, returning
Volumizer (4): Object 880b860 ref() -> Ref count = 2
Volumizer (5): Pixelstore settings: SKIP_PIXELS: 0, SKIP_ROWS: 0, SKIP_IMAGES: 0, ROW_LENGTH: 128, IMAGE_HEIGHT: 128
Volumizer (5): glTexImage3D called for (128 x 128 x 128) texture (loading into (128 x 128 x 128) texture), data ptr = 45925008, ID = 1
Volumizer (5): vzTMRenderAction: Total texture memory consumed: 2097152
Volumizer (2): ClipRenderImplementation:: Total texture memory used = 4 MB, Download = 4, Render = 4
Volumizer (3): ClipShapeManager::draw():Drawing shape 85bf4f8
Volumizer (3): ClipShapeManager::draw():Drawing shape 85bf4f8
Volumizer (5): TMInternalGPUShaderImpl::initShader(): Generated fragment shader 1
Volumizer (5): This works fine after binding the shader
Volumizer (4): Object 85bf428 ref() -> Ref count = 3
Volumizer (4): Object 8251258 ref() -> Ref count = 2
Volumizer (4): Object 82511d8 ref() -> Ref count = 2
Volumizer (4): Object 82511d8 unref() -> Ref count = 1
Volumizer (4): Object 8251258 unref() -> Ref count = 1
Volumizer (3): Computing adjacency list...
Volumizer (3): ClipShapeManager::beginDraw():Number of shapes currently managed = 1
Volumizer (5): vzTMRenderAction: Total texture memory consumed: 2097152
Volumizer (2): ClipRenderImplementation:: Total texture memory used = 4 MB, Download = 0, Render = 4
Volumizer (3): ClipShapeManager::draw():Drawing shape 85bf4f8








------=_Part_7234_888176.1144867789801
Content-Type: image/jpeg; name=AtamaiVolumizerDemo.jpg
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ely0gwv7
Content-Disposition: attachment; filename="AtamaiVolumizerDemo.jpg"

/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a
HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy
MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAM+BBkDASIA
AhEBAxEB/8QAHAABAAICAwEAAAAAAAAAAAAAAAMEBQYBAgcI/8QAZxAAAQMCAgMFDhAMAgcIAgAH
AQACAwQFERIGEyEUFTFB0QcWIjJRU1RVYXWSk5TTFzM0NTZlcXSBkZWisbKz0iNCUlZkcnOho7TB
4SRGJTdDRYKk8AgmRGJjg8LUdoQ48UeFhsPE/8QAGgEBAAMBAQEAAAAAAAAAAAAAAAEDBAIFBv/E
AD0RAQABAwMCAwQJAwMCBwEAAAABAhESAxNRMTIEIUFhcZGxBRQiQlKBocHRIzPwNJLhQ7IGFSRE
U2LSwv/aAAwDAQACEQMRAD8A9qrKyoiq3sZJg0YYDAdRQb4VXXfmjkS4erpPg+gLRtL9KKqxX6wW
+KrttDT3HdGuq69hcyLVta5v+0YNpOG08Y+EN53wquu/NHIm+FV135o5F5dPp9X013ht0dTQV7jd
LfSSTRUbo4jFUse/NG7XPzHADA7AOo7HZnrTp7a7xXUFPBT1kcVy1+4KmVjRHU6k4PygOLm8ZGdr
dg6uxBue+FV135o5E3wquu/NHIqqgrd1bhqNw6ndmqdqNfjq9Zh0ObDblxwxw24IMjvhVdd+aORN
8KrrvzRyLyqq5pVU/RTRy4UUMLKy5RTzVBnhLo2R0zHOnyNEgJdi3oAXYEcJbwrKs5pVrioRUTw1
ksVPTUk1fVRQtZHTboALMzDIXcYJDM+AOGJKD0DfCq6780cib4VXXfmjkWmSae2uGqdSy09Yyobd
2Wl0TmNDxI8EskwzY6pwBIdwnDYFlbFfqXSGlqKqijmFPFUyU7JXgZJ8hwL4yCQ5hOIB7hQZ7fCq
6780cib4VXXfmjkVVYC93mstekOj9OGUzbZXzy09TPM7BzJNWXQtb0Q2uLXDgPENhIxDad8Krrvz
RyJvhVdd+aOReMyc1O7N0Ysd0MdAHVEFRUXERwGV0EbJhDG5sZmYcHOcBtd1SOAhbhFzQrTLcTRm
mr4wLo60unfCNUKgY5RiDtDiCBgDhszBoIJDdt8KrrvzRyJvhVdd+aOReav5ptNNd7IaWJ8dlrG1
0s1VUQOxdFAwkSRlp4MWPxaRmwAxaMQTdPNJtraKaoltl1Y6O3x3NkGqje+Wme4N1jcryABiCQ4t
IG3DYUG+74VXXfmjkTfCq6780ci0mr5odmpX3NjWVNS6hdSsa2mDHmrdUDNGIOi6M4bcNmwHDFbY
gtb4VXXfmjkTfCq6780ciqrQrjzQN7LtphQ1VRbYH2qmjktzJn5X1EjoS8tILuj6LKMG4Hb3UHo+
+FV135o5E3wquu/NHIvO6bmmUDLVFU11NUuMFJRz3KenjbqaV1Q0Fowc/O4bcehDsAeqult5oua6
VNtr6GaWqfd62gomUMWOZsDWEZ8ztjjnwzbGjhOUAlB6PvhVdd+aORN8KrrvzRyLCWK90ekdkpbt
QOeaapaXNztyuBBIII6oII2YjZsJG1ZFBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5F
VRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wq
uu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm
+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o
5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3
wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NH
Im+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV13
5o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRB
a3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/
NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV135o5FVRBa3wquu/NHIm+FV
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
3HYTIwY/uXsttnhuVrpK5kDWNqYWTBpAxaHNBw/eg03cls7KtPkLfOpuS2dlWnyFvnVveqj62zwQ
mqj62zwQg0Tcls7KtPkLfOpuS2dlWnyFvnVveqj62zwQmqj62zwQg0Tcls7KtPkLfOpuS2dlWnyF
vnVveqj62zwQmqj62zwQg0Tcls7KtPkLfOpuS2dlWnyFvnVvTmQsaXOZG1o4SQAsZVX/AEfosd0X
K3xkfimVuPxcKiaojq7o0q9SbURM+5rG5LZ2VafIW+dTcls7KtPkLfOq1W80rROkxyTPqnDiggP0
uwH71rddzX4sS2gsjcOJ9Q8fVA/qqavE6VPWp6Wj9CeP1u3SmPf5fOzNbktnZVp8hb51NyWzsq0+
Qt86twtM7LlZqGudBGx1TTxzFoGIaXNBw/ermpi62zwQrom8XeZXTNFU0z1hoe5LZ2VafIW+dTcl
s7KtPkLfOrfNTF1tnghNTF1tnghS5aHuS2dlWnyFvnU3JbOyrT5C3zq3zUxdbZ4ITUxdbZ4IQaHu
S2dlWnyFvnU3JbOyrT5C3zq3zUxdbZ4ITUxdbZ4IQaHuS2dlWnyFvnU3JbOyrT5C3zq3zUxdbZ4I
TUxdbZ4IQaHuS2dlWnyFvnU3JbOyrT5C3zq3zUxdbZ4ITUxdbZ4IQaHuS2dlWnyFvnVZiskMwBib
QyAjEZbaDiOr6YtourGx2itexoa9sEha5owIOU7QsTPI+Kgukkb3Meyklc1zTgQQNhBQa/Wtsttn
EFfcbLSzEZhHPSMY7DEjHAy9UH4lX3dox280d8RF51eX80v12tHemH6z1pSvp0omL3U1asxNn0Lu
7Rjt5o74iLzqbu0Y7eaO+Ii86vnpF1sRy53p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4
fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3
p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYj
k3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekT
Yjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+e
kTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq
+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iL
zq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74
iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o
74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt
5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7R
jt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu
7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvO
pu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviI
vOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjv
iIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3m
jviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO
3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7t
GO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu
7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4f
Qu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p4fQu7tGO3mjviIvOpu7Rjt5o74iLzq+ekTYjk3p
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
uKc+Fxb6VBQw9TV0zRh7iY6f4v0NvR9