tag:blogger.com,1999:blog-1023441640234597436.post2905649749553319332..comments2023-09-22T13:25:07.113-04:00Comments on Graphics Runner: Volume Rendering 101Kyle Haywardhttp://www.blogger.com/profile/00654406875137720609noreply@blogger.comBlogger57125tag:blogger.com,1999:blog-1023441640234597436.post-46095607836410953642015-01-04T18:15:15.398-05:002015-01-04T18:15:15.398-05:00Please see the next article in the series Volume R...Please see the next article in the series Volume Rendering 102: Transfer Functions :-).Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-19634806987696757192014-12-30T11:36:35.820-05:002014-12-30T11:36:35.820-05:00Well, nice work.By the way, have ever wrote the ar...Well, nice work.By the way, have ever wrote the article about the transfer function .... if exists, could you tell me the link, Many thanks.Anonymoushttps://www.blogger.com/profile/05212087183538298917noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-30550678872859911852013-11-06T11:02:20.612-05:002013-11-06T11:02:20.612-05:00Does the link to the source not work for you?Does the link to the source not work for you?Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-33048965065161242262013-11-03T22:22:25.810-05:002013-11-03T22:22:25.810-05:00Your blog is so brilliant.But where is the downloa...Your blog is so brilliant.But where is the download link of your sample code?Or are we have to paste your code?大天使泰瑞尔https://www.blogger.com/profile/14741073748514163108noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-54806363823156578972013-08-02T10:42:51.873-04:002013-08-02T10:42:51.873-04:00@Joel B
Yeah, I used a compiled effect because th...@Joel B<br /><br />Yeah, I used a compiled effect because the shader compiler used by xna was really out of date. So I hooked up the shader compiler to use the latest fxc in the d3d libs.<br /><br />These issues you mentioned are why I have moved away from xna unfortunately.Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-41186489295727228442013-08-01T17:21:16.073-04:002013-08-01T17:21:16.073-04:00Joel B, would you mind sharing the XNA4 port?Joel B, would you mind sharing the XNA4 port?Unknownhttps://www.blogger.com/profile/01085873514487789386noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-2503518101607448942013-08-01T12:29:27.337-04:002013-08-01T12:29:27.337-04:00Before anyone else asks, here's a link to an X...Before anyone else asks, here's a link to an XNA 4.0 port of the volume rendering 101 project:<br /><br />https://dl.dropboxusercontent.com/u/144587/VolumeRayCasting.zip<br /><br />It does have a few issues though. In XNA 4.0, the clamp color texture wrap mode is no longer available, so when looking at the model from certain angles, it looks like it is being mirrored/repeated. The other issue is that linear filtering isn't supported on HalfVector4 surfaces (or any sort of equivalent surface), which means I had to roll it back to use point filtering. Thus, it's a bit uglier, but at least it runs. (Kyle: I'm guessing that's the original reason you used a compiled effect: to compile the shader in such a way to ignore the warning, then import it as a compiled shader into the project so it'd work in XNA. Am I right on that?)<br /><br />Eventually I'd like to do a SlimDX/SharpDX port of it to get the original features working, but that's a ways out yet. At least this will work in the mean time. I'll try to keep the public link up as long as I can, but no guarantees. Joel Bhttp://joelbennett.wordpress.comnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-34103707836363420712013-07-22T17:22:15.777-04:002013-07-22T17:22:15.777-04:00Awesome, glad to hear it.Awesome, glad to hear it.Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-61769309760220704222013-07-22T12:23:00.639-04:002013-07-22T12:23:00.639-04:00Kyle, you might be happy to know that I've got...Kyle, you might be happy to know that I've got it working on XNA 4.0 now. :) There are still a few small issues with it, but the general process works. If you'd like I can certainly send a copy of the modified source your way. Just let me know. joel.bennett [at] live.caJoel Bhttp://joelbennett.wordpress.comnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-60991941143790592192013-07-18T09:57:16.246-04:002013-07-18T09:57:16.246-04:00Thanks!
Unfortunately I haven't dealt with x...Thanks! <br /><br />Unfortunately I haven't dealt with xna in quite a while. So the the likelihood of me updating for xna 4 is not looking good :).Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-2034511177425073532013-07-17T18:47:15.617-04:002013-07-17T18:47:15.617-04:00I have to say, this is some pretty awesome stuff y...I have to say, this is some pretty awesome stuff you've been posting (I mean the whole series on volume rendering, not just this post!). Any chance of an XNA 4.0 version? It seems they've ditched the CompiledEffect.<br /><br />(I'm doing a Master's and dealing with volumetric scanning of objects, so naturally, I need to be able to render them. :) )Joel Bhttp://joelbennett.wordpress.comnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-5077821627866257812013-03-03T20:15:25.628-05:002013-03-03T20:15:25.628-05:00I'm not exactly sure what you're asking / ...I'm not exactly sure what you're asking / trying to accomplish.Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-57459902211658054142013-03-01T12:01:54.215-05:002013-03-01T12:01:54.215-05:00How can I read volvis dataset to map to my raytrac...How can I read volvis dataset to map to my raytraced cube? What I am trying to do is Ray Trace a cube and map the skull dataset to my cube. andrewnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-43265873852851184492013-02-04T09:21:21.410-05:002013-02-04T09:21:21.410-05:00Yeah it's definitely possible. In fact most vo...Yeah it's definitely possible. In fact most volume vis applications are made in c++/opengl.Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-49456947642596528842013-02-04T04:15:06.657-05:002013-02-04T04:15:06.657-05:00hi i found very interesting your article, do you t...hi i found very interesting your article, do you think is possible make a Volume rendering application using only C/C++ and OpenGL?<br /><br />ThankAnonymoushttps://www.blogger.com/profile/09987343947682325519noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-46538745813038483652012-10-22T09:38:32.605-04:002012-10-22T09:38:32.605-04:00Kyle,
Is a very good tutorial. I need create a vo...Kyle,<br /><br />Is a very good tutorial. I need create a volume from bmp images, it's possible ?<br /><br />I am working VS2010 and XNA 4.0, but your example don't compile. Do you have a version compiled in VS2010 ?<br /><br />Thank you !Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-11827391920156884322011-10-15T04:41:35.320-04:002011-10-15T04:41:35.320-04:00Hi Kyle
I am doing my final year in I.T. Engineeri...Hi Kyle<br />I am doing my final year in I.T. Engineering. My project needs some information on volume rendering and the transfer function.<br />So please can you help me by giving me an idea where to find this information.<br /><br />Thank you<br />Pradnya BhagatAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-45782789037023035232011-09-24T13:34:57.114-04:002011-09-24T13:34:57.114-04:00Kyle thank you for answering, first I render the F...Kyle thank you for answering, first I render the Front faces I save it as a texture, second I render back faces and save it as a texture, and third I do the raycasting.<br /><br />I have check that the textures coordinates of the front and back facing are correct by texturing it to the cube to see the results and the image its like the one at this post, and also I have render the directions and I get the same results. <br /><br />in opengl do I have to activate the blend function? <br /><br />My raycasting shader(GLSL):<br />my 3dtextures are floats and the density value I store it the alpha channel.<br /><br /><br /><br />void main()<br />{<br />vec2 texC = Position.xy / Position.w;<br /> <br /> texC.x = 0.5f*texC.x + 0.5f;<br /> texC.y = 0.5f*texC.y + 0.5f;<br /> ////////////////<br /> <br />vec3 rayStart = texture2D(RayStartPoints, texC).xyz;<br />vec3 rayStop = texture2D(RayStopPoints, texC).xyz;<br /><br /> if (rayStart == rayStop)<br /> {<br /> FragColor = vec4(1.0);<br /> gl_FragColor = FragColor;<br /> return;<br /> }<br /><br /><br /><br /> vec3 pos = rayStart; <br /> vec3 step = normalize(rayStop-rayStart) * stepSize;<br /> float travel = distance(rayStop, rayStart);<br /><br /> vec4 value = vec4(0.0);<br /> vec4 dst = vec4(0.0);<br /> float scalar;<br /> <br /><br /> for (int i=0; i < numSamples && travel > 0.0; ++i, pos += step, travel -= stepSize)<br /> {<br /> //data acces to scalar value 3D volume<br /> value = texture3D(Density, pos);<br /> scalar = value.a;<br /> <br /> //aplicar valores<br /> vec4 src= vec4(scalar);<br /> /<br /> src.rgb*=src.a;<br /> //front to back composition<br /> dst = (1.0 - dst.a) * src + dst;<br /> if(dst.a>=0.95)<br /> break; <br /> }Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-46306895738982268092011-09-23T19:42:14.191-04:002011-09-23T19:42:14.191-04:00Do you have anymore information? Are you rendering...Do you have anymore information? Are you rendering your volume with the same process I am (e.g. render front faces, render back faces, do ray-cast pass)?Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-56383405534454943292011-09-23T11:24:23.908-04:002011-09-23T11:24:23.908-04:00Hi Kyle I'm implementing a volume rendering us...Hi Kyle I'm implementing a volume rendering using raycasting, similar to this but the front to back composition its not working for me, i get a black cube can you help me?<br /><br />ps: I want to render it in gray scale, and I have render the raystart and raystop, and direction and it seems like yours.<br /><br />thank youAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-49113151943638218452009-10-05T09:28:34.499-04:002009-10-05T09:28:34.499-04:00Sir, your blog is awesome,
Iam a master graudaute...Sir, your blog is awesome,<br /><br />Iam a master graudaute student whos is doing an academic project in 3d reconstruction of face,<br /><br />My input will be a dataset of slices of CT images.<br /><br />Could you please tell me which technique will be suitable for me.<br /><br />Now Iam focussing in Marching cubes algorithm,Is this fair enough,<br /><br />With Regards,<br />Rakeshഅപരിചിതന്https://www.blogger.com/profile/01254399694726294162noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-59158196743319360602009-04-05T20:06:00.000-04:002009-04-05T20:06:00.000-04:00Hi Mus,If you use the RayCastDirection technique d...Hi Mus,<BR/><BR/>If you use the RayCastDirection technique do you still get a black volume?<BR/><BR/>The black volume indicates to me there is something that the graphics driver doesn't like, and it's probably the for loop.<BR/><BR/>Did you try Mobeen's trick a few comments up? Instead of having the break statement, set i to a number larger than the max iterations.<BR/><BR/>You can also try using a constant for the number of iterations.<BR/><BR/>Also, on my 8800gt the tex*dlod functions were faster than the tex*dgrad functions. But the tex*dgrad functions might work better with ati.<BR/><BR/>Are you CS? What year are you? There's a gamedev club in cs (SIGGD) that you might want to join :)<BR/><BR/>KyleKyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-22025567975492872412009-04-05T17:43:00.000-04:002009-04-05T17:43:00.000-04:00Hi KyleNice tutorial but I'm also getting empty bo...Hi Kyle<BR/><BR/>Nice tutorial but I'm also getting empty box. I have ATI Radeon mobility X1400 that (I think) does support shaders 3.0. Thus I'm a bit stuck.<BR/><BR/>btw. I'm also studying at Purdue :)Unknownhttps://www.blogger.com/profile/15907323150977109541noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-44152414363192516522009-02-17T17:36:00.000-05:002009-02-17T17:36:00.000-05:00Actually you can use the methods I describe in thi...Actually you can use the methods I describe in this series.<BR/><BR/>You can also use a slice based rendering approach. Or you can use a marching cubes/tetrahedron algorithm to build a mesh from the ct dataset.Kyle Haywardhttps://www.blogger.com/profile/00654406875137720609noreply@blogger.comtag:blogger.com,1999:blog-1023441640234597436.post-42282864106490446242009-02-15T11:30:00.000-05:002009-02-15T11:30:00.000-05:00I am a beginner in using directx 9 and i have a ta...I am a beginner in using directx 9 and i have a task to render a CT volume.<BR/>Woukld you guide me to the suitable technique to render the 3D volume?<BR/><BR/>Thanks in advanceNohahttps://www.blogger.com/profile/05570266335349980036noreply@blogger.com