PDA

View Full Version : Should XSI have vector support?


Zac-Donald
03-04-2008, 07:57 AM
Well I got the idea from:
http://www.xsibase.com/forum/index.php?board=1;action=display;threadid=35208

ai & svg images loose nothing when scaling (+swf but that could be a movie...)

And I think is a fairly legit request to have vector support in XSI, like posted in the thread above BLENDER supports it.

If you believe vector works can only have toony results just take a look that the XSIbase thread.

this could be perfect for logos, you will have no reason to worry about textures pixelizing, and you wont need extremely high rez images slowing down PS or XSI.

I must say I have a background in Flash (notice my avatar :P) but theres really alot potential to this, I've see some pretty realistic images and effects in vector programs and it'd only make sense to see it in a program that has to worry about pixelation, with vector images you never have to start from scratch if you make something to small or too low rez.

Heinerich
03-04-2008, 10:37 AM
There used to be external vector renderers for a lot of "major" 3d programs, yet, as I see it, none of them was commercially successful enough to survive up to now, or they have not seen updates since years.. so I guess there's no real demand for it.

Flash content is either On2 or real 3D like papervision these days and logo/typeface-designers won't use a nurbs-weak software like XSI to produce anything that requires precision (and rendering a tesselated polygon piece to vector doesnt seem to be much of a plan, imho).

When Blender does what you need.. why not use it as "back end" of your pipeline?

JDex
03-04-2008, 11:57 AM
This is exactly the kind of thing that should be handled outside of Soft, IMHO. The ability for third-party renders to now be integrated means that either a 3rd party commercial render developer, or gang of open-source aficionados should be able to make such a package, if there is demand.

There is really only technical and motivational hurdles involved in getting the engine that does this in blender, to do it through the Soft API.

Zac-Donald
03-04-2008, 01:19 PM
Just to clarify I was talking about using vector images for textures, instead of 512, 1k, 2k images for textures, not vector rendering...

Heinerich
03-04-2008, 01:57 PM
Oh.. I need to read more carefully :no:

Zac-Donald
03-04-2008, 02:39 PM
I need to word better :P, do you have different oppions on that though?

Just to clarify one mroe time:

What I mean when you load a texture such as a JPG PNG TARGA OR PSD, it should be equally valid to load a .AI or .SVG

This way your textures can SCALE with no loss of resolution, as you move the camera closer, unlike pixel based image formats which cant.

luceric
03-05-2008, 04:11 PM
What blender does is load SVG files and then renders them to a bitmap, using a freeware library called Cairo. It supports a very small subset of what you could do in Illustrator, and the anti-aliasing quality is nowhere in the ballpark.

It's IMHO totally unnecessary to add this to a 3D app, that would mean having to keep up with all the enhancements and features of Illustrator, imitating all the masking and gradient features, text, etc.

And at the end of day it's convenient when it works, but you loose a lot of time when it doesn't, and there was an easy work-around: export the bitmap yourself from Illustrator.

Illustrator is a high quality 2D renderer that no one can really touch, never mind clone. You can do a lot of third party vector rendering libraries, but it's still a lot of work to re-invent the wheel.

Even if you created vector art, it still needs to be converted to a vector before it's used in ray tracing. The vector images need to be rendered because they are made up of layers upon layers of tiny gradients that are masked, the image doesn't "exist" until it's fully rendered into a bitmap.

Why does Blender have all of these things? IMHO it is because they don't have to completely work for everyone or make total sense. The few people who do use them have probably very simple requirements and expectations.

Tekano
03-06-2008, 09:57 AM
I dont see the point - if you want something that allows for scaling, generate a memory mapped texture file with the biggest size you need. To render a complicated .svg is much more cpu intensive (gradients etc) than your average bitmap.

Zac-Donald
03-06-2008, 12:06 PM
Rendering a vector takes lets than a second, and I'm sure it could be optimized. Also it Depends on the file.

luceric
03-06-2008, 02:31 PM
The speed depends on the renderer, which you need to build. Firefox and Blender use the low-level rendering library Cairo, which is slow, and other libraries are also necessary for blurs and compositing, and extracting paths from font. Render vector art requires creating many image buffers, masking and compositng them together multiple times during the render.
It's a lot like a compositing tree.
When you have a small illustrator file and you convert to a .SVG so Cairo can render, it generally becomes a multi-megabyte .svg XML file with thousans of primitives that take a lot of time to render. This is because a single primitive in Illusion is equal to multiple ones in SVG, and it needs to be broken down even further into triangles to render. (Generally apps only support a subset of SVG, since it is a complex spec that includes CSS and other things)


I've investigated this all before, for an SVG renderer, and of course I wrote the vector paint renderer in the fxtree. It's all very fast in Flash, but that's a commercial product Abobe has worked on for years.

Do try the application called "Inkscape", it is also using Cairo and probably the same SVG renderer as in Blender. It can be slow and unpleasant as soon as you being to have some decent vector art that would be instanteneous in Illustrator. I've had some vector files take more than two minute to render. After that, the layers are cached on disk so you don't realize how much time it took to render.

Zac-Donald
03-06-2008, 03:54 PM
I didn't realized how hard it was to make an effective vector rendering engine. Kinda odd that vector programs increase in file size when saving as soley a vector image, normal image programs do the opposite. Good to know though.

Zac-Donald
04-21-2008, 10:02 PM
http://xsibase.com/news.php?detail=2234
Sounds like this might actually happen...

ThE_JacO
04-25-2008, 09:11 AM
Rendering a vector takes lets than a second, and I'm sure it could be optimized. Also it Depends on the file.

Looking up a pixl in a raster image is orders of magnitudes faster than knowing a coordinate in a cartesian space and running a long pull to render something out of it.
The difference is the one that runs between a lookup and a render, simply put, immense.

I don't want to bash on the thread itself or people's opinions, we all have different needs and focii, but Luc-Eric is pretty spot on on this, and what he says is backed by a solid knowledge of the subject.

Even thinking in abstract terms I find myself unable to see any advantages, other than saving a conversion step, in having anything like this. It really wouldn't be worth the time and memory it takes to load the rendering engine libraries AFAIC :)

luceric
04-25-2008, 01:22 PM
Right now it looks from the FAQ (http://www.letterboxanimationstudios.com/ILL_MR/United.php)like they don't want to show it (they say don't want to hurt the feelings of the the other DCCs that would be left out!). They also don't want to say how it works. But if it ships, problem solved!
I'm guessing these guys would to launch Illustrator in a texture shader to render the image to bitmap? I guess we'll see.

If you're going to be rendering very large texture from art vector work, in my experience your best bet for filtering quality and memory is to produce a pyramidal .map texture offline. With imf_copy you can even specify each mip map images individually. On very large images Mental Ray doesn't have to load the entier image, it can load only the tiles it needs.

If you're going to be orbiting, zooming in and out of illutrator art work in a motion graphic sequences, IMHO it's probably best to do it in a tool like AfterFx, which can indeed re-rasterize the vector art at various resolution. They're adobe, they can do this well natively. I believe the antialiasing will be more tuned to these senarios, as well.

doctorbob
04-26-2008, 02:50 AM
there has been a renderman shadeop that does this for a while - http://renderman.ru/i.php?p=Projects/VtextureEng

one way around the "what's adobe done to it's file format *this* time" problem is to support only a fixed version of EPS (kinda like the EPS importer in XSI). this stops it being a moving target. or some other vector format (a subset of PDF?)

cheers,
chrisg