Why aren't graphics done as vectors?

Recommended Videos

Hazzard

New member
Jan 25, 2012
316
0
0
In this day and age people are obsessed with graphics, especially when they see the pixels. So why don't graphics designers get around this by using vector based art programs?


That explains what they are.
How it works is that the art is made out of lines, this allows you to zoom in on images without losing quality. This solves the problem of snipers using their snipers rifles to zoom into shoot someone and then see the ugly textures that are very low resolution.
 

skywolfblue

New member
Jul 17, 2011
1,514
0
0
SVG works great for simple things like drawings or icons. It doesn't provide much benefit for paintings or textures.

Hazzard said:
This solves the problem of snipers using their snipers rifles to zoom into shoot someone and then see the ugly textures that are very low resolution.
No. Because even on an SVG if you zoom in, no detail is added. It's a low-detail texture, the lines on it may be sharp, but there's a lot of blank/empty space where there should be detail.
 

Doom972

New member
Dec 25, 2008
2,312
0
0
Drawing complex textures using mathematical expressions instead of pixels doesn't sound practical.
 

Esotera

New member
May 5, 2011
3,400
0
0
The programs used to create vectors aren't really as advanced (I think). Also if you're not changing the size of an image, then it will probably take more time to display an SVG than its BMP equivalent as you have to render it from scratch.

From a gaming point, standard images generally have a high enough resolution so that you don't notice pixellation. And if you are zooming in really close, it's quicker for the computer to switch to a more detailed texture than render the whole thing again and again.
 

Eclectic Dreck

New member
Sep 3, 2008
6,662
0
0
Largely because of computational requirements. Using a system of pixels simplifies all computations as any motion can be done as a linear transformation which can be performed using a matrix operation. This means in any given frame, you know exactly how much work is required in a worst case scenario and even the worst case scenario is likely going to be simpler than the best case scenario elsewhere.

To put it another way, the square root operation is generally one of the slowest computational tasks a computer can be asked to perform - a shame then that vector operations require them as a rule. Given that this can lead to thousands or even millions of such operations every frame is a problem. When you further consider that video cards are built on the presumption that you'll be performing linear transformations, all you have left to do is brute force your way to a solution. Trying to do this in real time on any likely consumer grade piece of hardware thus requires simplifying assumptions and other shortcuts necessary and in the end for the effort, you'll not end up with something that actually looks better in most usage scenarios and in many cases could end up looking worse.
 

Pinkamena

Stuck in a vortex of sexy horses
Jun 27, 2011
2,371
0
0
Because most textures are painted. You cannot "paint" a vector map. It only works for simple shapes with well defined edges.
 

thesilentman

What this
Jun 14, 2012
4,513
0
0
If we vectored everything in video games, we'd have a hard time just rendering graphics, let alone a whole game.
 

Aeshi

New member
Dec 22, 2009
2,640
0
0
Plus I'm pretty sure that it's far harder to make detailed textures with Vectors if I'm remembering correctly.

Perhaps it could work with less graphical games that use cel-shading or something.
 

Tesral

New member
Jul 19, 2011
228
0
0
Games programming student here, for those who don't know:
Bitmap graphics store the colour value of each texel. This means that there is a hard cap on the maximum filesize of a specified image at a specified resolution, so you can predict how much strain the hardware is going to be under. Vectors should, in theory have a much smaller filesize for very simple images (a few basic solid colour shapes for example) but RLE compression algorithms like the .GIF format eliminate any redundant texel data, typically compressing an image from 4:1 to 10:1 depending on the nature and complexity of the image.

Vector graphics store an image as a series of shapes, storing each shapes location, size, type and colour. This means that the image may have to become an incredibly complex web of shapes in order to contain a level of detail akin to a modern videogame texture, drastically increasing its filesize and hence its load time and impact on the GPU.

Bitmap:
+ Good for complex paintings
+ Lower file size in general
+ Simple images can be compressed efficiently
- Cannot edit individual elements of an image
- Causes jaggies when scaled

Vector:
+ Can edit an individual piece of a compound image
+ Always has sharp edges, no need for AA
- Significant file size for each texture
- Not suited for painting textures

TL:DR, to get a modern-quality texture in vector form it would have to be a huge filesize, and would have drastic impact on game performance, where speed in real-time rendering is vitally important.
 

Smooth Operator

New member
Oct 5, 2010
8,162
0
0
Because any raster image of the same size always has the same complexity, while a vector image can be anything from zero to infinity, and after that you still need to rasterize the vector image because all displays are now built around it.

And don't mix things up with 3D models, polygons are already vector graphics.
 

GeneralBob

New member
Oct 15, 2009
29
0
0
Get Inkscape and play around with it for 10 minutes. It's a great tool for maps and symbols (Wikipedia uses vector graphics for just that) but try importing a low resolution picture and convert that to vector graphics (shift+alt+b). I can almost guarantee the result will strain your computer to move around or rotate and look like a water painting of the original.

Still, I don't think it's fair to dismiss a vectorized game out of hand. I might be mistaken, but isn't that more or less what flash does already.
 

Callate

New member
Dec 5, 2008
5,118
0
0
In some cases, it might be possible to make a more detailed version of a texture with a tessellation or a fractal. Vectors alone don't really sound like the answer.
 

lacktheknack

Je suis joined jewels.
Jan 19, 2009
19,316
0
0
Do you like 10 GB games, or 1 TB games with ridiculous on-the-fly loading?

Give computers a few more years to expand graphic capabilities, then check back.
 

Olas

Hello!
Dec 24, 2011
3,226
0
0
I used Adobe Illustrator for a digital design class, every time I converted a normal picture into a vector one without dramatically simplifying it the computer started running slow. I hated illustrator and there's a reason Photoshop is more popular.

So unless your game is highly cell shaded and/or has 2D graphics I think you'd just be making everything much harder on both the designers and the computer with negligible profit.

It might even be impossible with the way games are programmed, I don't know anything about that but it seems that vectors are so dramatically different from regular images that you'd have to fundamentally rewrite how the graphics were processed.
 

Ryan Hughes

New member
Jul 10, 2012
557
0
0
The Original Star Wars arcade game from 1980 I believe was Vector Graphics, but the practice fell out of favor due to the reasons listed above.

Though, "Vector Graphics" has taken on two meanings in games, the one you described and also one where vectors represent objects on screen. I.E. Virrtually all rail shooters and FPS games could be described using the term. This came about as the Star Wars arcade game used vector graphics to both render and process hit-detection: all the objects were alligned on an X,Y grid, and the targeting represented a point on that grid. When the target point and an object point matched while the trigger was pulled, a "hit" was detected. This lead to "vector graphics" acquiring two different meanings in the industry.
 

Verkula

New member
Oct 3, 2010
288
0
0
Theyre already making games with vectors. They are called Flash games, its perfect for 2D.
 

Tanakh

New member
Jul 8, 2011
1,512
0
0
Hazzard said:
Like ray tracing graphics ( http://en.wikipedia.org/wiki/Ray_tracing_(graphics) ) or voxel ( http://en.wikipedia.org/wiki/Voxel ). Or do you mean using vector graphic intead of bitmap images for textures?

Elaborate plz, because if i understand your post correctly it's the latter. In which case, it's just not economical to use vector graphics AT ALL, you will be better off just using super high res bitmaps.
 

DjinnFor

New member
Nov 20, 2009
281
0
0
Mr.K. said:
And don't mix things up with 3D models, polygons are already vector graphics.
Yes, but it's important to note that the textures (details) are defined by bitmaps.
 

Bad Jim

New member
Nov 1, 2010
1,763
0
0
Eclectic Dreck said:
Largely because of computational requirements. Using a system of pixels simplifies all computations as any motion can be done as a linear transformation which can be performed using a matrix operation. This means in any given frame, you know exactly how much work is required in a worst case scenario and even the worst case scenario is likely going to be simpler than the best case scenario elsewhere.

To put it another way, the square root operation is generally one of the slowest computational tasks a computer can be asked to perform - a shame then that vector operations require them as a rule. Given that this can lead to thousands or even millions of such operations every frame is a problem. When you further consider that video cards are built on the presumption that you'll be performing linear transformations, all you have left to do is brute force your way to a solution. Trying to do this in real time on any likely consumer grade piece of hardware thus requires simplifying assumptions and other shortcuts necessary and in the end for the effort, you'll not end up with something that actually looks better in most usage scenarios and in many cases could end up looking worse.
Actually it wouldn't be that hard to make it run fast. You just divide the texture up into say 256x256, with each element specifying the one or two shapes that can actually appear in that square. Most lookups would just return a colour, a minority would test whether one shape occupied the given point on the texture and a tiny number would test multiple shapes.

And . . square roots? Seriously? The Voodoo 3 card I had in 1999 could do phong shading at 60fps, and that requires a square root per pixel. You have no idea how fast modern graphics cards are. Modern graphics cards can draw the Mandelbrot Set at 60fps. That involves doing several thousand complex multiplies. A square root only requires about half a dozen divides if you use the Newton-Raphson formula and have some idea of the order of magnitude of the answer.
 

Eclectic Dreck

New member
Sep 3, 2008
6,662
0
0
Bad Jim said:
Eclectic Dreck said:
Largely because of computational requirements. Using a system of pixels simplifies all computations as any motion can be done as a linear transformation which can be performed using a matrix operation. This means in any given frame, you know exactly how much work is required in a worst case scenario and even the worst case scenario is likely going to be simpler than the best case scenario elsewhere.

To put it another way, the square root operation is generally one of the slowest computational tasks a computer can be asked to perform - a shame then that vector operations require them as a rule. Given that this can lead to thousands or even millions of such operations every frame is a problem. When you further consider that video cards are built on the presumption that you'll be performing linear transformations, all you have left to do is brute force your way to a solution. Trying to do this in real time on any likely consumer grade piece of hardware thus requires simplifying assumptions and other shortcuts necessary and in the end for the effort, you'll not end up with something that actually looks better in most usage scenarios and in many cases could end up looking worse.
Actually it wouldn't be that hard to make it run fast. You just divide the texture up into say 256x256, with each element specifying the one or two shapes that can actually appear in that square. Most lookups would just return a colour, a minority would test whether one shape occupied the given point on the texture and a tiny number would test multiple shapes.

And . . square roots? Seriously? The Voodoo 3 card I had in 1999 could do phong shading at 60fps, and that requires a square root per pixel. You have no idea how fast modern graphics cards are. Modern graphics cards can draw the Mandelbrot Set at 60fps. That involves doing several thousand complex multiplies. A square root only requires about half a dozen divides if you use the Newton-Raphson formula and have some idea of the order of magnitude of the answer.
All of which comes back to the initial point that it is more computationally expensive than a other graphics methods. Moreover, a 256x256 texture as described for example offers no tangible benefit to justify the increase in the expense of the operations. By contrast, a linear transformation cares little about the size of a texture when it comes to scaling operations.

To put it another way, linear transformations become increasingly expensive in a linear fashion and the cost increases per triangle. Vector graphics become more expensive on a pixel basis.