PDA

View Full Version : Vortex: realtime volume rendering utility


zhang
05-19-2005, 09:55 AM
http://zjprogramming.com/vx/vabout.jpg

Hi,

I proudly annouce the demo release of the Vortex program, a hardware-accelerated volume rendering utility. It takes advantage of the power of graphics hardware to render fuzzy objects like cloud and smoke in realtime. The goal of the Vortex project is to develop a fast enough high-quality volume rendering asset can output full-size frames in seconds and an effecient user interface for realtime visualizations.

You can download the latest demo version 0.7.0 from here:

http://zjprogramming.com/vx/vortex_demo_0.7.0.zip

And the latest version of Maya-to-Vortex exportor from here:

http://zjprogramming.com/vx/m2vx_0.7.0.zip

http://zjprogramming.com/vx/vtest_9.jpg

How to try it out?

1. Extract the .zip to disk. Go to the folder of "vortex_demo_0.7.0\";
2. Double-click to start the program.

http://zjprogramming.com/vx/vxuid.jpg



And this is the captured demo video showing how it works:

http://zjprogramming.com/vx/vortex_demo_0.2.6_avi.zip

There will be more information on the project homepage:

http://zjprogramming.com/vx/vxhome.html

Hardware requirement?

The first release is based on OpenGL Shading Language, which requires a nVidia GeForce FX 5200 or better, or an ATI Radeon 9500 or better graphics card.

In fact, I develop it on my PC at home with:

P4 2.6C 512MB memory
GeForce FX5600 128 MB RAM

Just common configuration, right?

Here is some snapshots of earlier test rendering.

If you got no problems to load the program after several seconds, change the viewport in the render view, using left, middle, and right mouse button. And tweak the parameters to get different appearance.

You can use the folder tree to browse to where the files are extracted. There are two .vdc files in the folder. They are voxel data cache files representing a sphere and a cube. And the .bmp files are the dependent textures control the color of volume. You can use your own, but remember the textures must be 256x256 BMP files. Click the icon in the main window of the program to load the files, you will get relative message, then click the render view to refresh.

I will continue to work on a Maya plug-in can export voxel data cache files to vortex program. So one can model the volume in Maya with polygonal mesh or particles system, and output .vdc files per frame, then render the animation in vortex.



The project is at its very early stage of evolution, it needs feedback. Any idea will be appreciated. Please don't be hesitate to post any comments or questions about the program.

You also can Email me to:

fredbach@163.com (fredbach@163.com)

Best wishes.

archerx
05-19-2005, 07:46 PM
this looks really interesting but i think this thread will be burried under all the e3 threads, but will you plan to give support for 3d max ?

zhang
05-20-2005, 06:42 AM
To archerx:

Thanks for your reply. I will keep the thread up-to-date.

Currently I can only write Maya plug-ins to output data cache to vortex, but I think it is easy to implement the idea in 3d max or XSI, just need to learn the API, and it is always exciting to learn something new:)

richcz3
05-20-2005, 07:39 AM
zhang This sounds very impressive. I'll give it a go over over tomorrow. I'll be doing some aerial cg shots and this could come in real handy. Like archerx has noted, with E3 going on and a hundred games threads are dominating this week. Be sure to bump the post for those who miss it.

oceanq
05-20-2005, 07:55 AM
Congratulations on your Vortex! That's pretty cool and it's really useful.

pixel-abuse
05-20-2005, 08:32 AM
Looks good so far

leach
05-20-2005, 10:12 AM
I tried this on my ATI radeon 9800 at work and just got a flat shaded white cube. adjusting the volume and noise parameters didnt do much.

Has anyone else had problems on ATI's?

EDIT: Also, theres no way to close the program down from its interface...small but annoying issue.

leach

_mg_
05-20-2005, 10:22 AM
This is exciting. Having some kind of Maya export will be great.

Hazdaz
05-21-2005, 06:56 AM
Very interesting. I am a MAX user, so it sounds like this would be of limited use for me, but still quite intrigued by what you have done here. I will have to download it tommorrow and give it a shot.

zhang
05-21-2005, 08:13 AM
To leach:

Any message box appeared when loading the program?

The OpenGL Shading Language program failed to compile on your hardware.

Maybe ATI uses different syntax or extension. I will try to find the answer.

To shut down the program, choose the menu item File>Exit

grau
05-21-2005, 08:54 AM
I tried this on my ATI radeon 9800 at work and just got a flat shaded white cube. adjusting the volume and noise parameters didnt do much.

Has anyone else had problems on ATI's?

I have the same problem on my radeon9600/FireGl T2, no error messages just a white cube

zhang
05-22-2005, 08:52 AM
I searched online and got some bug report about GLSL on ATI card.

http://www.gamedev.net/community/forums/topic.asp?topic_id=206242 (http://www.gamedev.net/community/forums/topic.asp?topic_id=206242)

Seems GLSL is better supported by nVidia than by ATI. Hope ATI will fix the problem in the future. The workaround is to use Cg instead. I will release a Cg version demo.

And don't forget to install the latest driver!

zhang
06-01-2005, 08:10 AM
It took ten days to update the Vortex program to demo version 0.4.3. And you can model your own volume in Maya with the m2vx plug-in.

Get the files here:

zjprogramming.com/vx/vortex_demo_0.4.3.zip (http://zjprogramming.com/vx/vortex_demo_0.4.3.zip)

zjprogramming.com/vx/m2vx_demo_0.3.0.zip (http://zjprogramming.com/vx/m2vx_demo_0.3.0.zip)

What is new in this release?

1. A light preview mode to interactively change the light direction.
2. Fast shadow intergration to calculate light illumination and absorbing throughout the volume.
3. Use a transform function texture and a shadow texture to control the color variation of volume and shadow.
4. Optimization to load the program and render the image faster.

How to use?

1. Go to the "Shadow" controls, check Preview Lighting to enter the lighting mode. A diffuse-shaded sphere in the render view will be helpfult to define the lighting conditions.
2. In the render view, press key 'L' to edit the light. Drag LMB to move the light in X-Y direction of the camera, and drag RMB to move the light in depth.
3. Uncheck Preview Lighting and go back to render mode. Click Calculate Shadow Intergration, wait for the render view to be updarted.
4. Menu options will appear when you click a .bmp file, and select to load it as the transform function or shadow texture.


http://zjprogramming.com/vx/vtest_5.jpg


Above image is created with the gas-high.vdc file in the .zip package, using red transform function texture and default shadow texture.

http://zjprogramming.com/vx/m2vx.jpg


The m2vx plug-in allows to model the volume as a polygonal mesh in Maya, and export as .vdc file to be loaded in Vortex. It works only on Maya 6.5 windows for now.

How to use?

1. Load the plug-in in Maya.
2. Type MEL command:

createNode vortexContainer

3. Move the container box, DONOT rotate or scale. Set resolutions and cell size.
4. Model the polygonal mesh of volume INSIDE the container box.
5. Select the mesh and type MEL command:

m2vx

6. A .vdc file of the voxelized mesh will be written in the /data folder of the current project. Load it in the Vortex program.

Future works:

Glad to add new features and the plug-in to help exploring the power of vortex. I will continue to work on the program and plug-in:

1. To render multiple .vdc files in Vortex.
2. Export cache files from maya partilce system and fluid.

I need your feedback.

Best Wishes.

Fluckrat
06-01-2005, 10:25 AM
Hi Zhang, first off - looks great!

If you could somehow find a way to integrate this into XSI I'm sure you could make this a commercial product with great success.

If you go here:

http://grabiller.3dvf.net/site/index.php?lang=eng

and look in Gallery->Animations->R&D->Fluids you can see the solution created by Guy Rabiller for La Maison (in house unfortunately - so no release...).

This kind of solution would be a fantastic addition to XSI. XSI's realtimeshader support would make integrating this inside the app fairly straightforward I imagine (well straightforward for someone with the brains to code something like you have in the first place!).

Once again, great work, and amazing of you to share. :thumbsup:

zhang
06-01-2005, 11:21 AM
Hi Fluckrat,

Thanks for your instant feedback. Developing a 3D fluid solver is my future plan for the vortex project. Maya fluids is what i can count on before that.

The link you refered to is a great inspiration to me. I am amazed about how long it took to calculate that tri-128 grid animation:)

Sorry, I am not an XSI expert for now. Is that possilbe to directly use OpenGL shaders in XSI? I even don't know how to do that in Maya:(

Hope i will have time to learn how to write an XSI or 3d max plug-in or how to intergrate the DVR ( Direct Volume Rendering ) idea into some app, or I will have to keep it stand-alone.

mireneye
06-01-2005, 05:53 PM
Thats really impressive!. Now I really wish for a 3dsmax exporter and someway to integrate it more into my workflow so to speak... Keep it up man, your on the right track to something even more fantastic i think.

Cheers

opus13
06-01-2005, 05:59 PM
im a max user as well, and would love this.

thougtht: couldnt you export from max to .obj, import to maya, and then export from there? would it work with the mayaPLE?

Jackdeth
06-01-2005, 06:23 PM
Very interesting. A key feature will be matching your camera to Maya's, and having animation as well.

dmonk
06-01-2005, 06:28 PM
I also would love to see this for XSI as well.


Looks great and I wish you luck with the future versions.

kfc
06-01-2005, 07:01 PM
Hi Zhang,
I've always been a fan of ur renderman stuff.
The Vortex rendering seems to be real cool, seems like u've been bz with such stuff for all time time. I'll give it a try later when my workstation is available after renderings.
I'm running a quadro fx4000. It should be sufficient to run this program i presume.
Btw, is there any limitation on this demo version?
like watermark or so?
is this going to be released as a commercial software? how much does it cost in commercial release?

And is there any chance that we can have a Linux version?

AdrianLazar
06-01-2005, 08:46 PM
greate stuff! congrats. but please, please make this aviable for xsi, is the missing link!

Mudvin
06-01-2005, 09:03 PM
I think it's worth to built-in this stuff into Maya as an additional renderer at least, or maybe as a shader for hardware renderer. It will be really good.

DAZZAN
06-02-2005, 08:40 AM
I have the same problem on my radeon9600/FireGl T2, no error messages just a white cube


dito i have the same,the render window is just white,i have the same spec as you.

i also dl latest drivers to no avail!

Mudvin
06-02-2005, 11:09 AM
I think that the ATI cards is not the best choice for this stuff ;)

rendermaniac
06-02-2005, 06:16 PM
Only just noticed this. Could you compile a Linux version at some point? Also any plans on doing animation?

This looks very similar to Swell
http://web.ics.purdue.edu/~schpokj/research/purpl/clouds/index.html

Maya export is a nice touch though.

Simon

DAZZAN
06-02-2005, 09:33 PM
I searched online and got some bug report about GLSL on ATI card.

http://www.gamedev.net/community/forums/topic.asp?topic_id=206242 (http://www.gamedev.net/community/forums/topic.asp?topic_id=206242)

Seems GLSL is better supported by nVidia than by ATI. Hope ATI will fix the problem in the future. The workaround is to use Cg instead. I will release a Cg version demo.

And don't forget to install the latest driver!

Please release a cg version demo!

Nojoy
06-03-2005, 12:23 AM
Hi Zhang, i stumbled across your new realease over at Deathfall and instantly wanted to testdrive your new volumetic solution, especially since its integrated in Maya. Im a Moderator over at Digital Tutors and Im planning to maybe write a review about it and its possibilities concerning effects. I wouldve liked to see a quick tutorial aswell on your site to give me a fast impression about it wich is the reason for my post, a mere suggestion from a fellow fan.

By the way great work on the Muscle TK toolkit I heard you helped program it ;)

(added a few hours later after testing)

I came across the video when i scrolled all the way down the page with the downloadable screenshot. Sorry overlooked it since its so small and at the bottom might be better to place that to the top. Since you wanted some suggestions to implement I have a few wich I cant seem to see or just plain overlooking something. Currently I imagine there is no way of saving a created renderer easily. (Im doing screengrabs at the moment). It would also be nice if the User Interface itself would snap and store that information when restarting this, in my eyes great software. I created a picture easily that pleased me heavily within seconds. Also the render window and msg log window seem to always stay on top currently. A options section where things like this could be integrated to turn off and on would also be great (Kinda hard to write this post while its stuck at a high-res in the screen and to get to the render globals when creating a 1024x768 and not getting to the global settings anymore without moving the renderview out the screen or working at a way larger res). Another great thing would be to integrate a icon or logo that hovers over the screen when rotating, zooming, or transfroming the render view, so one actually knows what he is doing (for insance a letter R Z T on the bottom right) Once into it for a few minutes one figures it out easily since the resolution changes, but it would be nice, a colored frame around it would do the trick aswell. (This could also be integrated into the options such as turning on/off the high res cutdown while tumbeling or changing Heads UP Icons). And last but not least what all others have mentioned aswell. A way of Animating the current still images would be amazing, and will make heavy use of this cool tool as far as im concerned. This is also my most wanted integration (Give us a Timeline ZJ);). I havent tested the maya plugin yet but will tommorrow and give some feedback there aswell. This is NOT meant negatively at all, since you stated you wanted feedback I thought these were definate good advancements to this already increadible easy to use tool with amzing results. Im in love with it already.

Great Job and keep onto this one please ZJ along with the idear of making it Animatable. Ill definatly keep my eyes on it as with most of your scripts, mels, tutorials, software idears. Two Thumbs and Toes way UP from ME. :)

amygdalae
06-03-2005, 07:38 AM
Sony developed something much like this 3 years ago for smoke, fire, mist, fog, etc. Primarily for Polar Express, where it was used for all of the above.
All the rendering is done in hardware and it's very fast. Called SPLAT. Being used on alot of other productions now. Early steam/smoke renders in prman were taking 20+ hours to render, so they went all hardware based. There will probably be some kind of presentation at siggraph this year.

zhang
06-03-2005, 08:17 AM
Hi everyone,

Thanks for all of your kind words. I will keep working for a new release.

Just uploaded a new note about how to shader the volume:

http://zjprogramming.com/vx/vxshade.html


I think it is time to list out what to do for the very next step:

1. Animation:
Adding a 3D fluid solver is my future plan, but for now we must rely on Maya to animate the camera and source volume. The next release of m2vx plug-in will support output multiple .vdc files at a frame-by-frame basis, describing the animation of volume as well as the camera settings e.g. transformation and field of view. There will be 3 ways to animate the source volume: deform the polygonal mesh, particle system, and fluids.

2. Saving Document:
Save all the controls in a binary file to be loaded when the program is restarted.

3. User Interface:
The render view window is set to be top most. It is efficient to tweak the controls at low-resolution render, and finally call full-resolution to output images. Anyway it is still too slow to interactive at high-resolution over 1K. I plan to add the ability to iconize all the windows of the application to task bar, so that can be easily finded. Switch to different cursor icons during specific operations.

4. Output:
The future professional release will support output multiple-frame output as RGBA tiff format to be loaded in 2D post application.

5. Lighting:
Support 5 point lights to illuminate the volume with varying color and intensity. One can select and tweak individual light in the preview mode.

6. Depth Matte:
Cache files will contain the mesh data of matte object to simulate the object-in-cloud effects if necessary.

There is piles of hard working to do this month. I set the deadline to the middle of july. After the professional version is released, i will look into how to develop plug-ins to work with 3d max or XSI. Is there any learning resources I can refer to? Any suggestion should be appreciated.

Sorry to hear about it failed to run on older ATI hardware. Is there any Cg experience on ATI? I will release a Cg version after the prefesional release.

Thanks amygdalae,
I think hardware-accelerated rendering is used even in the first LOTR film. I can only script with MEL three years ago. People will rely on hardware-accelerated rendering more and more in the future when programmable GPU getting more and more powerful. Since big studios would rather keep their fantastic in-house tools properitary and few programmer works outside those big studios. I think it is hard for people to get off-the-shelf stuff good enough. I'd be proud of developing something useful, something avaliable for everyone.

Thanks Nojoy for your detailed feedback.

Thanks Simon,
Swell is a great inspiration to me. I write my vortex to learn openGL and GUP programming. Another reason is that it is too slow to implement volume rendering off-line with Maya renderer or PRMan. Minutes of waiting after change a single parameter makes it impossible in production. I want to develop and tool works closely with Maya that can load animation, fast tweak controls and render images for post production. It turns out to be not easy.

Hi kfc,

I think it will works on Quadro FX GPU, since it is much better than my Geforce FX one.

Current demo version has no watermark, also no image output.

I will make the professional release a stand-alone commercial application. The pricing is still under discussing. M2vx will be free for all. The only difference between pro and demo release will be the limited size of output images.

A Linux version? Yes, I will release a Linux version. But be patient I have only one brain for all the above tasks.

Nojoy
06-03-2005, 12:51 PM
I think these two links will help you in developing this plugin for Max. Especially the Sparks Plugin Site who guide develepers along their creation of Plugins.

http://sparks.discreet.com/info/infohome.cfm

http://www4.discreet.com/3dsmax/3dsmax.php?id=967

I came up with 3 new idears overnight for Vortex itself. But you alerady answered those. It would be great for an Alpha channel wich you stated will be included in the RGBA. I also had the idear of being able to create a Maya Camera and use that data for Vortex to Render out the scene, so when going into post one is able merge different layers together along with the Vortex Rendered out Volumes. I beleive you also have this planned from what I can read and Understand. Lastly a ZDepth information would also be great for post bluring effects etc. This is also planned I think through your Depth Matte idear I think, Am I assuming correctly??? Smaller idears include a Grid of some sort inside Vortex that one could use as a Coordinate Reference or just mere XYZ heads up logo similar to maya (bottom left if enabled)would be usefull aswell. Locking the attributes of Scale and Rotate could also help for the maya plugin and vortex container, incase one shouldnt touch those, and finally a toolbox would be nice to access rotate scate translate and the lightmode, one currently has to know all the shortcuts by heart. The new "Shading the Vortex Volume" explains this real nice, good JOB.

Thanks again for your time and developing this very handy software, and I hope some of the info I provided was usefull in making Vortex a tiny bit user friendlier.

Great to see that animation is a top priority. A tiny tutorial on how to currently cache the files or create an animation would be the icing on the cake currently for me. Keep up the increadible work Zhang.

Here a quick one i created after tweaking a few parameters. (took 1 min. to create with defaults and a 256 mb Geforce 5200 rendered it instantly, original image res. 1024x786)

fr3drik
06-03-2005, 02:40 PM
This is very cool. Looking forward to see the production-ready version (w/ ability to save out image sequences + Maya plugin).

Keep it up! :)

rendermaniac
06-03-2005, 03:10 PM
From your shading document it looks like it is using a very simple distance from lightsource ramp to get shading. Do you have any ideas how you could do some sort of deep shadow to get true volumetric shadows? This is what gives a very good volumetric effect. I can't find the paper right now, but I think you can save the accumulated opacity on each sprite as a pre pass and then use this for shadowing.

Simon

Nojoy
06-03-2005, 05:49 PM
I just finished testing the Maya Plugin aswell Zhang. And there are a few things that one might not understand, especially concerning Error Messages inside of Maya.

Incase this Error Occurs in Maya -> Cannot open file for writing!
-You will have to manually create a "Data" Folder before Exporting the Geometry in your current Scene.

Incase this Error Occurs in Vortex after Export-> Cannot load File!
-Than you pobably selected multiple Poly Objects for Export, wich created a File but it won't Load in Vortex. A workaround is to use the Combine Poly tool and to delete the history and Re-Exporting the now ONE single Object.

One thing I couldnt Figure Out
-I couldnt find the 3D Texture Resolution Attribute, to change it from 32x32x32 to something higher. The cell size and other Attributes were collected nicley in one Node However!?

Suggestions for better Workflow
-i couldn't label the file befoer export leaving it in an untitled.vdc file. It would be nice
to be able to label it and tell it where to save it too, so one can organize more
cleanly.
-I accidently mistyped the render resololution inside vortex and ended up with 40000 x image wich instantly froze my mashine. A safety to not be able to do this would be great along with a proportion lock for both tabs similar to photoshop.
-A reset button and a undo/redo button inside Vortex after making too many tweaks to get back to a certain setup or saving them as presets could also create less headaches while working.

Two new Idears
-Random buttoms-functions for the attributes to quickly create volumes would be great.
-Clicking a button or using a tool to make the images Seamless would also be amazing for quick texture creation such as smeared up marble wall textures to use inside a 3D Application.

Ive used it for a few hours now ZJ and I hope my feedback is wanted? Theese are just things that came to mind while working with your Vortex. Thanks again it is a great tool for lots of things and I hope to see and use it lots more. ;)

Here two Maya to Vortex Images.

zhang
06-13-2005, 02:55 PM
Hi,

New release of Vortex and m2vx demo is now ready for test. You can download from the link:

http://zjprogramming.com/vx/vortex_demo_0.6.1.zip

http://zjprogramming.com/vx/m2vx_demo_0.6.2.zip

Check the projection home (http://zjprogramming.com/vx/vxhome.html)for more details.

http://zjprogramming.com/vx/vxuid.jpg

http://zjprogramming.com/vx/vxuif.jpg

http://zjprogramming.com/vx/vxpld.jpg

http://zjprogramming.com/vx/vxplf.jpg

http://zjprogramming.com/vx/vtest_9.jpg

This image is the rendering of a 64X64X64 .vdc file created from about 16,000 particles by m2vx plug-in, and illuminated in Vortex with 3 point lights.

What is New?

Vortex program user interface has been modified. Windows can be minimized, closed, and re-open. Different cursor will appear during specific operations. Press 'H' key to reset the camera. Supports max to 5 point lights with independent intensity, absorbing coeffitient, and color controls. Preview mode has been modified for better interaction. Press 'L' key to toggle preview mode. Click and drag to move a light or the sphere. New light control panel added.

http://zjprogramming.com/vx/mvctr.jpg

New m2vx plug-in can output camera to match maya's resolution gate in Vortex render view. Add custom menu items and user interface for output controls, e.g. frame range and cache name. Particles system and multiple frame output is supported.

http://zjprogramming.com/vx/mvcond.jpg

http://zjprogramming.com/vx/mvcon.jpg

LevelX,Y,Z controls the resolution of 3D texture.

The tool set changed a lot in the past week, and I am working on the new documentation. Thanks in advance for your feedback.

Best Wishes,

zhang
06-14-2005, 09:12 AM
http://zjprogramming.com/vx/mvm5.jpg

Hi,

New documents about how to use m2vx plug-in has been added.

http://zjprogramming.com/vx/mvnode.html

http://zjprogramming.com/vx/mvmod.html

zhang
06-14-2005, 03:50 PM
Hi,

Today I update the m2vx plug-in to v 0.6.5

http://zjprogramming.com/vx/mvctr.jpg

That is new control of the cache path help to store the cache files to custom location. And frame padding will be 4.

Get it here (http://zjprogramming.com/vx/m2vx_demo_0.6.5.zip)

Unfortunately, I have error reports about unable to load the Vortex program. Trying to figure out what is going wrong. I want to know whether it works on your PC, Tahnks in advance.

zhang
06-16-2005, 05:34 AM
Sorry for not updated the documentation. I found a mistake in the program that might cause it failed to load on some PC. Will release a more stable version 0.6.5 with more efficient memory management.

From your shading document it looks like it is using a very simple distance from lightsource ramp to get shading. Do you have any ideas how you could do some sort of deep shadow to get true volumetric shadows? This is what gives a very good volumetric effect. I can't find the paper right now, but I think you can save the accumulated opacity on each sprite as a pre pass and then use this for shadowing.



Hi Simon,

Vortex performs ray-march from current voxel to the each light's point, and addup density in the 3D texture, then save the accumulated inshadow value in the specific channels of current voxel. These values will be used to read shadow texture to get the color of shadow. Current version supports max to 5 point lights, using 2 4-channel voxel stack (2 for color, 1 for opacity, 5 for shadow).

That is the way how it calculates self-shadowing of the volume. It is fast since no need to re-calculate the cache when changing the view-point. The shortcoming is lacking of noise contribution to shadowing, and shadow calculation is done on CPU.

Mudvin
06-16-2005, 06:17 AM
Uhmm...it's standard raymarching technique, described in few renderman papers, and i should say that it's quite slow ;)

Why Vortex is so fast then?

zhang
06-16-2005, 06:39 AM
Hi Mudvin,

Offline renderer like PRMan calculate ray-march along view-direction through the volume for every sample( typically 9 samples per-pixel). That needs a lot loops to process, and if there is some 3D noise texture, there is lots of noise() to calculate for every samples along the ray-march. If self-shadowing is needed, it needs to perfrom ray-march to multiple light source at every ray-march sample! Millions of operations to do. That is why volume rendering is so heavy for PRMan.

Vortex uses pre-computed volume density and noise as Image3D of OpenGL, so that is no need to calculate them per-sample, only simple 3D texture read on slice is needed. And shadow value is saved into 3D textures like the deep shadow map. Also no need to calculate it at a per-pass base. So the calculation is quite faster. The drawback is lacking of Anti-Aliasing that in PRMan. Fortunately we are talking about fuzzy effects here.

Mudvin
06-16-2005, 07:34 AM
Ahh, i've got the idea. Thanks ;)

rendermaniac
06-16-2005, 07:03 PM
I see - that makes sense. I have tried rendering lots of particles in prman and it becomes a nightmare quickly! I guess the opacity means that lots of points have to stay in memory. You can usually get away with a pretty high shading rate - it's not a sharp object - it's the shading rate that improves shading.

It would be really neat if you could write a prman shadeop to push stuff onto the GPU - I think that was a stupid RenderMan trick from Hal Bertram, but it doesn't seem that he's had time to write up any notes on it. Handling the SIMD stuff would be tricky - you'd need to write out the grid points as a vertex shader and then shade it with a fragement shader.

How do youwork out the density? Do you create a grid and then work out the percentage it is filled with the geometry? And for the particles does this mean more particles per voxel is denser? Would it be worth trying to export fluids? There is no support for this at the moment from Maya.

By the way - really great website. Maybe you should consider writing a book!

Simon

zhang
06-17-2005, 04:00 AM
I see - that makes sense. I have tried rendering lots of particles in prman and it becomes a nightmare quickly! I guess the opacity means that lots of points have to stay in memory. You can usually get away with a pretty high shading rate - it's not a sharp object - it's the shading rate that improves shading.


Hi Simon,

Here is my attempt to RenderMan volume rendering years ago. Simply overlapping a lot texture spheres. I always have not patient to wait for minutes to see what turns out to be. I remember that I could never try a normal shading rate like 1.0 for those tests. 3.0-5.0 instead. I'd never try this shader ever.

http://deathfall.com/modules.php?op=modload&name=XForum&file=viewthread&tid=678

Opacity is the alpha-channel of the the 3D Image, also the alpha of the textured slice. Vortex is a slice-based volume rendering.

It would be really neat if you could write a prman shadeop to push stuff onto the GPU - I think that was a stupid RenderMan trick from Hal Bertram, but it doesn't seem that he's had time to write up any notes on it. Handling the SIMD stuff would be tricky - you'd need to write out the grid points as a vertex shader and then shade it with a fragement shader.


I plan to write a DSO to read voxel data for density querying in PRMan. It is easy to perform tri-cubic b-splines filtering in a DSO. But speed is still a roadblock even when voxel data was supported. I still don't know how to push SIMD stuff onto the GPU. There already be a lot GPU-based effects include, fluid, cloth, raytracing. I think realtime rendering and GPGPU is my reserach direction. But that is still loads of limitations to doing calculations on a GPU, e.g. looping. Any notes about GPU for renderman will be great!


How do youwork out the density? Do you create a grid and then work out the percentage it is filled with the geometry? And for the particles does this mean more particles per voxel is denser? Would it be worth trying to export fluids? There is no support for this at the moment from Maya.


I create a voxel stack and step through to find out whether current voxel falls inside the mesh. 1 or 0. Finally blur the edge. It is hard to calculate the percentage filled with the geometry, i think. For paticle, add up the iso-value of particles for each voxel, then divided by some uniform value to make sure the density won't exceed 1.0 anywhere. Maya fluid will be supported in the future release. Still use the 2D slice interporlation idea here:

http://zjprogramming.com/html/fluid_particle.html (http://zjprogramming.com/html/fluid_particle.html)

By the way - really great website. Maybe you should consider writing a book!


Thanks. Might to work out some training DVD if people turns out to be interested in the solution, which is still uncertian. Just work hard to release a professional version and see.

Best Wishes,

zhang
06-19-2005, 11:07 AM
http://zjprogramming.com/vx/vxuid.jpg

http://zjprogramming.com/vx/vxuif.jpg

Hi,

The new release of Vortex demo is ready for testing now.

http://zjprogramming.com/vx/vortex_demo_0.6.5.zip

A new window is added to control the lights. Check new document about the user interafce:

http://zjprogramming.com/vx/vxui.html

zkanal
06-21-2005, 05:07 PM
I for one is extremely happy that this is working with Maya :)
Will try it out ASAP!
You are truly amazing zj!

*EDIT*

Just tried it, doesn't start on my friends computer, but it does on mine.. hmmm..
Also, I'm wondering, is it possible to render out to bitmap from vortex?

zhang
06-22-2005, 03:53 AM
Hi zkanal,

It requires a graphic card with a modern GPU. And it there any error log before it failed to start? Output animation will be supported in the 0.7 releases.

zkanal
06-22-2005, 08:08 AM
No output log at all, hangs at init :( GPU is GeForce 6800 ultra.
Cool that animation output is planned for 0.7, that's gonna be sweet. :bounce:

zhang
06-22-2005, 02:35 PM
No output log at all, hangs at init :( GPU is GeForce 6800 ultra.

Have you tried the latest Vortex Demo 0.6.5 ? I think I have fixed some bug in the old 0.6.1 that may cause failed to load on some PC. It is annoying that it works fine on my PC.

zkanal
06-22-2005, 06:39 PM
Hello Chief!
Check your PM.
:)

zhang
06-23-2005, 11:31 AM
http://zjprogramming.com/img/vxopt.jpg


Hi,

Just pleased to inform that I have just worked out how to dump the Vortex render into a Tiff image with alpha-channel. New release will out in days.

zkanal
06-23-2005, 01:09 PM
Man! Awesome!! :)
Soo looking forward to it. :eek:

DAZZAN
06-29-2005, 09:25 PM
Very upset at not being able to play the vortex game,so i will now buy a graphics card the same as zhang s to be able to play,as my 3 ati s wont run it.

I hope it works!

Will display my results,i cant wait.

Great Product!

sutabi
06-30-2005, 12:47 AM
any chance on giving more specs on file format? I'd love to make a Blender exporter...

zhang
07-07-2005, 08:42 AM
http://zjprogramming.com/vx/vxuid.jpg

http://zjprogramming.com/vx/vxuif.jpg

Hi,

After days of hard working, i have an new version of Vortex program and m2vx plug-in ready for testing. Get them here:

http://zjprogramming.com/vx/vortex_demo_0.7.0.zip

http://zjprogramming.com/vx/m2vx_0.7.0.zip

What is new?

1. Functions added to take a snapshot of the render view and multi-frame output. Images will be rendered into TIFF images with RGBA channels and saved to the current project path. To take a snapshot, select the render view and press F8 key, or click the camera button in the global control window. To render animation, set the start and end frame in the display controls and click the film button. Vortex will search the current project path to load the vdc files in the sequence.

Notes: Demo version does not support output resolution over 600*600. And the UI cannot respond when the rendering is undergoing. But don't worry, the calculation will continue underground until the last frame is rendered or the program is killed.

2. The size of .vdc file format has been doubled since it contains the cache data at shutter open as well as shutter close. Vortex program uses the new cache data for motion/camera blur issue. One must use the latest m2vx plug-in to export animation.

3. M2vx plug-in can export multiple objects into a single cache file. Simply select all the meshs and export. No need to combine any more.

Note: It appears to be too much aliasing when exporting dynamic particle. That is why the new release has been delayed. I am still trying to find the solution.

Future works:

Now the program and plug-in is ready to render static volume source and fly-through animation. But still got the anti-aliasing problem when rendering particles. And it is pretty hard to re-create the motion of smoke with a commom particle system, My plan is to develop a 3D fluid solver inside the program. New vortex solver program will simlution and render 3D fluid in realtime.

zhang
07-07-2005, 09:12 AM
any chance on giving more specs on file format? I'd love to make a Blender exporter...

That's great if you can develop a blender exporter. I plan to post the structure of vdc file format on the project home. But why not layout some details here?

First, it is a binary file contains following stuff:
///:
struct mvVolumeInfo {

int sizeX, sizeY, sizeZ, numFloat;
float xmin, ymin, zmin;
float xmax, ymax, zmax;
};

floats of the volume stack, 4 floats per voxel

struct mvCameraInfo {

float fieldOfView;
float eye[3];
float view[3];
float up[3];
double overscan;
double near_clip;
double far_clip;
};

floats of the volume stack, 4 floats per voxel

struct mvCameraInfo {

float fieldOfView;
float eye[3];
float view[3];
float up[3];
double overscan;
double near_clip;
double far_clip;
};

///:~

First pair of floats and cameraInfo is written at shutter open, and the second is written at shutter close. The last float of the voxel is the density. It is open for developers to write exporter for any 3D app. Any questions about the structure of the cache, please contact me.

Malakai
07-12-2005, 03:30 PM
Hello!

It's don't works for me. I see only a white view in the Render view, and when I switch to preview and back again the backround is blue and the container is full green. In preview mode, I can't see the emitter, it's only a spot, like a light (it's normal?).

VCard: ATi Radeon 9600XT

No warnings, or anything else in the log window, it's seems like everything good.

zhang
07-13-2005, 07:40 AM
Hi Malakai,

Thanks for your reply. The program is loaded but the OpenGL Shader failed to compile on the hardware. I got loads of error logs about such a problem from ATI users. Did you ever try GLSL on your PC? I will release a troubleshoot for that to find out the problem. And using Cg may be a better choice. I will work on a Cg version after the first professional release.

Regards,

Apoclypse
07-14-2005, 04:01 AM
By the way xi does support realtime shaders in the view port ( in fact there was an addon realeased not to long ago that kets you load fx files). I would really love to see an XSI version as XSI currently doesn't have a good volumtreic solution. I would also think that it would be easier to implement the program in an intergrated way into xsi than it is in maya due to XSi's ability to display dx glsl and cg shaders in the actual viewports.

zkanal
07-14-2005, 10:50 AM
Maya supports cg shaders as well, the plug-in is even built in, but you need to download the cgToolkit from nvidia.
Has been like this for a long time.

http://developer.nvidia.com/docs/io/3548/screenshot_maya.jpg

zhang
07-15-2005, 07:46 AM
I think all the major animation software supports hardware shading now, via built-in shading tree or 3rd-party plug-in. Pitty I haven't tried any.

But volume rendering is not just hardware shading. That also requires slice/sprite generation, alpha blending, off-screen buffer, 3D texturing, shadow intergration, texture reads, and so on. Combining all these stuff into a nice "plug-in" appears to be too complex to me at this time.

Vortex is not a Conductor program. I want to develop a small, simple, fast, and stand-alone application, so that is no need to workround limitations when using those huge and complex devkit API of Maya or XSI. I think that is a better option during the early stage of the development.

DAZZAN
07-27-2005, 10:13 AM
Im starting to do some testing with some good results for what i need,but im just useing the basic light set up,is there any documentation on how to use the lights?

I try to move the lights around useing x y z numerical input but when i input a number it just changes to 0 again. nothing happens

The lighting of any clouds is gonna be very important,im very lucky with being used to maya lights,so am i doing anything wrong.

Is it a bug?

thanks

DAZZAN
07-30-2005, 06:11 PM
Zhang,your proberbly doing what you do on Vortex at the moment,but i wanted to ask something about Vortex .

Is the aim of Vortex(for Future releases) going along the same ideas such as "afterburn"
a maya mel script,or Pyrocluster(max) ,these are all volume renderers,but yours being real time?

Will you try to implement, cloud presets as a starting point,soft puffy clouds to pyroclastic mass.

Im asking for myself of course,but when i am in the maya dynamics forum, cloud effects is one of the biggest FAQ around,thats why my eyes popped out when i saw your Vortex.

Im hopeing this kind of effect will be able to be done inside Vortex(pic attached,done in maya,but hell of a render time!)

Thanks for all your efforts

will post soon as i try to get lighting working on my cloud face.

Ps .If this cloud effect can be done now,please show a example!

MunCHeR
07-31-2005, 07:02 AM
looking cool, just wanted to add a url for the nvidia toolkit.:thumbsup:

http://developer.nvidia.com/object/cg_toolkit.html

Cheers

MunCH

DAZZAN
07-31-2005, 08:28 PM
Hi my weekends gone,and a little longer inside Vortex.

A bit slow,as im useing one machine with a ati to output vdcs in maya,then over to my other machine,with a geforce inside,to play.

I now kinda get the lights,but still cannot get positioning on them,if this is what position inputs are there for.

Since i wanted to use Vortex as a cloud maker,but also as to build a cloud character.

So i used a polygon face about 1600 polys . took out various sized poly vdc to play with.

Then i did a particle face,a maya goals test so the particles stick to the shape of the face.
Sorry zhang but the goal object i sent you gave me a problem with animation and a error,i will look into why.

But the simple goal test output to vdc worked fine.

Im pleased with the polygon test myself(attached pics),but the particle tests worked as vortex should but the face was gone just a black cloud mass,tried to mess around a lot with about 10 various particle vdc files,but nice clouds,no face.This must be on my part,as i only used 1600 particles to match the number of polys.

I will keep testing with some per particle attributes,as it must work.Just slow,going backwards and forwards on machines.

Wanted to do anim test on particle face morphing from cloud to face,but will try to do it on polyface.Then sort out my particle problem.

Had some fun,hope i can achieve a pyroclastic look, with perhaps that fluid solver in the future.

Thanks

rendermaniac
08-10-2005, 01:01 AM
Just wondering what has happened to your website? The home page has disappeared. (Vortex one is still accessible).

Simon

zhang
08-10-2005, 08:19 PM
Sorry, my hoempage will be down for a while before it is totally renewed.

It seems hard to reduce aliasing when rendering particles. I am now working to add a 3D fluid solver for animation. And there is problem to refresh the render within a CThread as well.

Geddart
08-16-2005, 01:01 AM
Nice Tool! And it's getting better and better very quick.

One wish: Make a button for a "always on" high quality display mode.
You can get the effect holding down F5 while changing the viewport but it's rather annoying ;).
Keep up the great work!

frogspasm
07-20-2006, 01:14 AM
Bump!
Just wanted to keep this from getting closed.

Any news on what's going on with this Zhang?

~Mike D.

Ourouk
08-01-2006, 03:22 PM
Bump !

Any news ?

lazzhar
08-13-2006, 09:14 AM
Any hope to get the plugin again zj?

lotusexige
08-13-2006, 11:54 AM
as Zhang last visited just under a year ago, its unlikely he will reply :(

I was looking to get hold of this too, i used to be in contact with him but i haven't been for a long time.

Shame

CGTalk Moderation
08-13-2006, 11:54 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.