Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
You do understand that vectors don't exist as vectors once they are rendered right?

You don't say... Why there I thought that our displays weren't pixel based displays...

They become bitmaps and exist in texture memory?

Nope, they don't. They become bitmaps on the frame buffer memory, not the texture memory. Why render your vectors to textures before pushing them out to the framebuffer ? We're not doing 3D graphics here where the flat surface needs to be mapped onto a non-flat object on screen. We're rendering flat images to the screen. Just respect the Z-buffer and alpha blending and render straight to the frame buffer.

At some point you have to convert the mathematical construct into pixels. Doing this in real-time vs loading the exact bitmap is where the performance issues are.

Especially when you have very complex renderings with lots of layers. Just look at Adobe Flash, basic vectors no problems, complex illustrations, lots of problems.

Yawn... again, we've been doing this stuff with much less computers for quite a long time. You're making it seem harder than it is for the CPU.

The reason why Sierra chose to do their games that way (at least through King's Quest 4) is because of a lack of storage space. In Kings Quest 5, they switched to EGA-based bitmaps/sprites.

Nope, all the EGA era games used the PIC format. The bitmaps came with the VGA days. The sprites never were vector based to begin with, even in AGI as far as I recall. The point is, if a 286 running at 8 mhz could render vector graphics, I very doubt a Core i7 quad core aided by a bunch of GPU cores running in parallele can't do it.


Have you ever heard your CPU fans go into overdrive when you open a Flash page? There are reasons for that.

Nope, only when I try to have Flash decode H.264. For vector based games, the CPU usage and temp aren't high at all. Remember, Flash vector graphic based games have been around since the Pentium days. The Pentium pre-MMX days. ;)
 
...That is true resolution independence and something that should be worked on, not just double sized bitmaps.

OSX and Windows have had experimental support for resolution independence for years now. When it worked, it looks surprisingly good, but true system wide support requires developer buy-in.
Apple and MS should be mandating it through their dev suites today so it can be ready in a few years.
The image format is largely irrelevant. This could be done side by side with vector support. Let the developer choose the best image format for the UI element. Bitmaps can already be bundled at different resolutions, with 1-1 pixel for common sizes. Uncommon sizes may suffer some scaling artifacts (minimal on hi DPI displays). Apple does this today for many of the UI elements. The traffic lights and dock icons are already stored at various resolutions.
Common resolutions would look flawless while providing scalability to different display techs and user preferences. This would be of great use to those with impaired vision who want larger text/UI. Also a 200DPI display may make more sense economically than a 300DPI. It would be far cheaper and despite a suboptimal scaling artifact here and there, would look better than a traditional DPI display.
 
So, maybe you'd care to enlighten us ? Maybe I'm just nostalgic for the 80s and 90s, back when vector graphics were a possibility. Now that we have much more powerful CPUs and GPUs, it seems that vector graphics have become way too hard to handle... :rolleyes:



Only stuff that's required to scale. IE : the UI.

And games have been using vector graphics since the 80s and 90s, at least, games made with a little known technology called Flash. Or the above Sierra game, Conquest of Camelot ;) In fact, isn't that screenshot from a game that uses vector graphics ? (Plants vs Zombies ?).

Obviously, not all UI elements are needed to scale. The desktop wallpaper can remain a bitmap image, but things like icons, buttons, fonts and all UI controls would need to be scaled.

Think man, think.

Sure, I'll help enlighten. ;) Here are just a few points (some of which Arn has already pointed out):

  • Photorealistic graphics. As stated multiple times, you can't use vector for this.
  • Pixel-perfect designs. When you see a gorgeous iPhone or iPad app, it's because of this. You can't just resize a vector icon and expect it to look great at any size. It simply doesn't work like that.
  • Processing power. Load a complicated piece of vector artwork in Illustrator. It takes time to process all the math in a vector illustration.
  • File size. Making the assumption that vector is always smaller is wildly incorrect. Sometimes it is, sometimes it isn't.
  • Textures. Wood, cloth, stone, grunge. Those detailed, fantastic textures aren't vector -- they're raster. Can you use vector for them? Yes, the simple ones. But to get the same depth of detail (and you never will, because textures are often photorealistic), you get back to hurting processing power.
  • Effects rendering. Rasterizing an effect is much simpler than combining it with vector art. It's simple for the designer, prevents a developer from having to code the effect (which is no small task), and saves processing power.
  • Development time. Coding for vector in everything can increase development time due to the shortcomings of vector-based art. Often it's just faster to use rasterized artwork. Keep in mind this doesn't mean a designer doesn't use vector in his workflow, it just means that he saves it to raster at the end.

These are just a few things off the top of my head. I'm sure there are many more, but I don't have time to write a short story. ;)
 
Sure, I'll help enlighten. ;) Here are just a few points (some of which Arn has already pointed out):

  • Photorealistic graphics. As stated multiple times, you can't use vector for this.
  • Pixel-perfect designs. When you see a gorgeous iPhone or iPad app, it's because of this. You can't just resize a vector icon and expect it to look great at any size. It simply doesn't work like that.
  • Processing power. Load a complicated piece of vector artwork in Illustrator. It takes time to process all the math in a vector illustration.
  • File size. Making the assumption that vector is always smaller is wildly incorrect. Sometimes it is, sometimes it isn't.
  • Textures. Wood, cloth, stone, grunge. Those detailed, fantastic textures aren't vector -- they're raster. Can you use vector for them? Yes, the simple ones. But to get the same depth of detail (and you never will, because textures are often photorealistic), you get back to hurting processing power.
  • Effects rendering. Rasterizing an effect is much simpler than combining it with vector art. It's simple for the designer, prevents a developer from having to code the effect (which is no small task), and saves processing power.
  • Development time. Coding for vector in everything can increase development time due to the shortcomings of vector-based art. Often it's just faster to use rasterized artwork. Keep in mind this doesn't mean a designer doesn't use vector in his workflow, it just means that he saves it to raster at the end.

These are just a few things off the top of my head. I'm sure there are many more, but I don't have time to write a short story. ;)

Thank you. Finally a proper answer to my original question. As the article refers to the OSX UI thats what I was referring too. I didnt see the problem with making a button or icon bigger, or a menu bar longer. I didnt think however of the kitsch/crappy wood effect etc (I try to block it out sometimes) which would obviously require a bit more 'effort' to produce. It can be done but it is much more of a headache for both the developer and cpu.
 
I know a tiny bitmap will be smaller in filesize than a vector. I do know how they work!

That's funny, I could have sworn you originally said:

No they are much smaller. They contain less information.

Man up and admit you were wrong for goodness sakes.

You are missing my point!

As I understand it for each resolution there is a certain sized red traffic light right? So say there are 10 different resolutions that means 10 different bitmaps for the red traffic light. With a vector you only need one file which in file-size is less than the combined amount of bitmaps.

Okay, I see where you are taking this now. But I don't see anyone arguing that there needs to be even 10 versions of each graphic, let alone 50. No developer (including Apple) would ever be bothered to produce that many versions of the same graphic. The proposed HiDPI mode is only two times the current dimensions, but it's a huge visual difference, and should easily accommodate the highest resolutions we're likely to ever want. Some people have questioned whether we even need resolutions like that, given the distance we typically sit from our displays. I'd like to see something in-between, for the current crop of high-res displays (like my MBP with the high-res anti-glare), but chances are no one wants to have to make even three versions of the same bitmap. So your point is… well, kind of pointless.

We're only arguing about file sizes here because you and a few others were adamantly stating that vectors are smaller than bitmaps, which is nonsense when we're talking about detailed but relatively small graphics like UI controls. But this is really the least of your problems when you're talking about turning everything into a vector:
  1. As others have pointed out, everything has to be rendered as a bitmap anyway, so you're increasing load on the CPU.
  2. Then you have the issue concerning the sharpness of the scaled graphics, and the inability for pixel-precise control. Apple values things like this. If they didn't, I'm sure they'd have no problem with taking the same approach as they do with the Dock icons — large bitmaps scaled down.
  3. And as others have mentioned, vector graphics can be more difficult to create. It really depends on what effect you're going for, but keep in mind, bitmaps can always be generated from vectors — the reverse is not true. So which offers developers the most flexibility for final output? Bitmaps.
 
Sure, I'll help enlighten. ;) Here are just a few points (some of which Arn has already pointed out):

  • Photorealistic graphics. As stated multiple times, you can't use vector for this.


  • You don't need to.

    [*]Pixel-perfect designs. When you see a gorgeous iPhone or iPad app, it's because of this. You can't just resize a vector icon and expect it to look great at any size. It simply doesn't work like that.

    Pixel-perfect design only works if you have static window sizes, something desktops that use a window metaphor don't. Hence, they have been highly discouraged and window scaling methods implemented in UI toolkits since... well since Windowing systems have been around.

    [*]Processing power. Load a complicated piece of vector artwork in Illustrator. It takes time to process all the math in a vector illustration.

    Again, the 80s called. Sierra games.
    The 90s called. Flash games/animations.
    The 00s called. KDE. SVG. Support.

    The proof is out there, don't be afraid to think and realise that maybe these computers we have today are quite a bit more powerful than you guys can imagine it seems...

    [*]File size. Making the assumption that vector is always smaller is wildly incorrect. Sometimes it is, sometimes it isn't.

    So a complete non-issue since storage space for graphics is not what is at issue here. Obviously, since we're talking bigger and bigger bitmap images, storage doesn't quite seem to be an issue at all.

    [*]Textures. Wood, cloth, stone, grunge. Those detailed, fantastic textures aren't vector -- they're raster. Can you use vector for them? Yes, the simple ones. But to get the same depth of detail (and you never will, because textures are often photorealistic), you get back to hurting processing power.

    Textures... for UIs and desktop windowing systems ? Again, we're talking 2D based frame buffers here.

    [*]Effects rendering. Rasterizing an effect is much simpler than combining it with vector art. It's simple for the designer, prevents a developer from having to code the effect (which is no small task), and saves processing power.

    But effects like scaling are free with vector graphics. You just need to render the result, not upscale/downscale the graphics. Again, this would depend on the effect you're trying to achieve. Alpha blending effects are done on the framebuffer, once your vectors are rendered, so no true loss of performance there either...

    [*]Development time. Coding for vector in everything can increase development time due to the shortcomings of vector-based art. Often it's just faster to use rasterized artwork. Keep in mind this doesn't mean a designer doesn't use vector in his workflow, it just means that he saves it to raster at the end.

    The UI frameworks only need to implement vectors once. That's the hurdle, once the UI frameworks support vector based graphics (like KDElibs does), then developers can just work it into their apps seemlessly.

    These are just a few things off the top of my head. I'm sure there are many more, but I don't have time to write a short story. ;)

    Too bad most of them are written in a way that ignores all the current work that has gone into vector based images for the last 30 years. ;)

    It's funny how a forum that praises Apple so much for being innovative can be quite stuck in the old ways of thinking and not see what is different.

    Think Different boys and girls. :D
 
What's hard about that ? Sierra games used to be all made of vector graphics (the PIC format) back in the 80s... :

Image

Yes, that's a bunch of "Line from X to Y, fill with color ZZ".

Vector graphic based UIs are probably where we should be heading. KDE/Gnome have supported SVG for a icon format since the late 90s. That is true resolution independence and something that should be worked on, not just double sized bitmaps.

By the way... you are dead wrong about this. Sierra games from the 80s didn't use vector graphics. I would know... I grew up playing them as a child. Mystery House used vector, and it was basic line art.

King's Quest, Space Quest, Quest for Glory, and Conquests of Camelot (the screenshot you posted) were bitmap.

Edit: Before you go questioning me, here's a link: Adventure games and graphical development.
 
By the way... you are dead wrong about this. Sierra games from the 80s didn't use vector graphics. I would know... I grew up playing them as a child. Mystery House used vector, and it was basic line art.

King's Quest, Space Quest, Quest for Glory, and Conquests of Camelot (the screenshot you posted) were bitmap.

Oh no you didn't. :D

The PIC format was vector based. Read up on it : AGI DEV
 
  • Pixel-perfect designs. When you see a gorgeous iPhone or iPad app, it's because of this. You can't just resize a vector icon and expect it to look great at any size. It simply doesn't work like that.
  • Processing power. Load a complicated piece of vector artwork in Illustrator. It takes time to process all the math in a vector illustration.
  • File size. Making the assumption that vector is always smaller is wildly incorrect. Sometimes it is, sometimes it isn't.
  • Development time. Coding for vector in everything can increase development time due to the shortcomings of vector-based art. Often it's just faster to use rasterized artwork. Keep in mind this doesn't mean a designer doesn't use vector in his workflow, it just means that he saves it to raster at the end.
Just cherry-picking the ones I want to respond to…

1) On a retina display monitor, you don't need pixel-perfect designs. Vectors will look absolutely crisp.

2) Vectors are obviously not ideal for incredibly complicated things. (Although I think it's hilarious that people here think the performance Illustrator — which is not a 64-bit application and does not take advantage of the computer's GPU, even if you have one of those fancy CUDA ones — has any real bearing with how a well-programmed, modern application/OS/whatever would handle vector elements. We bash Flash all the time, because Adobe is lazy. Have we all forgotten this now, conveniently?)

But for logos and UI elements, absolutely, vectors are well-suited for them. Take this web page, for instance. The Mac Rumors logo, a bunch of smileys with a few gradients, rectangles with rounded corners and triangles. There is no reason everything on this page — except the banner ad — couldn't be done as a vector, and none of it is so complicated that your computer would even blink.

3) You note that lots of designers save things as vectors, but as noted elsewhere, why save out a 16x16 icon, a 48x48 icon, a 64x64 icon, a 128x128 icon… instead of just one vector graphic?
 
Just cherry-picking the ones I want to respond to…

1) On a retina display monitor, you don't need pixel-perfect designs. Vectors will look absolutely crisp.

2) Vectors are obviously not ideal for incredibly complicated things. (Although I think it's hilarious that people here think the performance Illustrator — which is not a 64-bit application and does not take advantage of the computer's GPU, even if you have one of those fancy CUDA ones — has any real bearing with how a well-programmed OS would handle vector elements. We bash Flash all the time, because Adobe is lazy. Have we all forgotten this now, conveniently?)

But for logos and UI elements, absolutely. Take this web page, for instance. The Mac Rumors logo, a bunch of smileys with a few gradients, rectangles with rounded corners and triangles. There is no reason everything on this page — except the banner ad — couldn't be done as a vector, and none of it is so complicated that your computer would even blink.

3) You note that lots of designers save things as vectors, but as noted elsewhere, why save out a 16x16 icon, a 48x48 icon, a 64x64 icon, a 128x128 icon… instead of just one vector graphic?

And you know what, for those things that just require a pattern fill that's tile capable, SVG supports filling a vector shape with a pattern. A bitmap based pattern. So you can still have that nice "wood" or "leather" finish on your Apple apps (oh god the tackyness...) in a vector graphics based UI using the same tiles as you did before.

Anyway, what good is it to argue. From listening to the lot of you, my 386 was more powerful than the computers of today. I'll just go back to that.
 
Sure, I'll help enlighten. ;) Here are just a few points (some of which Arn has already pointed out):

I didn't see this post while typing out my last one… Could have saved me some time just to quote your list. :)

Edit: Gosh you guys are quick. I can't keep up.
 
PIC format is raster based. jessea was right. The way they were drawn is line based, when it saved to a file it was saved as a raster.

http://en.wikipedia.org/wiki/PICtor_PIC_image_format

That's not the format Sierra used. Read the AGI page.

I think I'm done here. Obviously, I'm not going to convince you guys. I just hope you're not all the first to be cheerleading how "vector is the best way!" when Apple actually does bother to implement it for their UI.
 
That's funny, I could have sworn you originally said:

Man up and admit you were wrong for goodness sakes.

I was replying to a generalisation of the fact. Someone stated they are bigger. I said they are not, in response to their generalisation. I could of gone all boring and started stating static vector filesizes and variable bitmap sizes for scaled images of each format but I didn't.

What is your problem anyway? I asked a question 'why cant vectors be used?'. Someone, maybe you, responded and I then asked a further question regarding the response? Are we not allowed to ask questions on forums these days without people looking for a fight? Why do I have to 'man up' when I have already stated I dont fully understand the concept?

I'm asking questions because I don't understand something. I don't pretend to understand things either unlike some people around here.
 
I think a combination of vector and raster based imaging would work quite well... admittedly, there's not as much of a built in framework for vector, but that will come when necessary, I imagine... I'm just wondering when we'll actually see some retina displays on a real computer... I think it'll be more than a little bit longer, but once our processing power gets there, I'm sure Apple will jump in it... at least I hope so! :)
 
That's not the format Sierra used. Read the AGI page.

I think I'm done here. Obviously, I'm not going to convince you guys. I just hope you're not all the first to be cheerleading how "vector is the best way!" when Apple actually does bother to implement it for their UI.

The article you linked (AGI) isn't vector either. The format that it saves in (PCX) isn't vector. What on earth are you talking about, dude? :D

No, you're not going to convince us. I'm a full-time designer at a technology consulting company that creates software for desktop, web, iOS, and Android. I'd like to think I have a good enough handle on this stuff to know.

This stuff will change in the future, no doubt, but it's not as simple as you think.

Those of you arguing about resizing vector graphics and such... well, I'm not really going to respond. Based on your arguments, it would seem that you've never actually worked with them. ;)
 
But for logos and UI elements, absolutely, vectors are well-suited for them. Take this web page, for instance. The Mac Rumors logo, a bunch of smileys with a few gradients, rectangles with rounded corners and triangles. There is no reason everything on this page — except the banner ad — couldn't be done as a vector, and none of it is so complicated that your computer would even blink.

This is the point I was trying to make!
 
I agree with this. I'm definitely an advocate for the vector format being more usable (especially on the web),.

Here we go. People coming round now. Make yourself at home, theres beer and wine in the fridge and chips and dip on the table.

Wait a minute... sorry no trainers im afraid!
 
You do understand that vectors don't exist as vectors once they are rendered right? They become bitmaps and exist in texture memory? At some point you have to convert the mathematical construct into pixels. Doing this in real-time vs loading the exact bitmap is where the performance issues are. Especially when you have very complex renderings with lots of layers. Just look at Adobe Flash, basic vectors no problems, complex illustrations, lots of problems.

This is an implementation detail. If you want to cache a bitmap of the UI element on first use, go ahead. This may improve performance for common/complex images. Depending up the performance profile of the vector, the API could make this decision dynamically.
 
I was replying to a generalisation of the fact. Someone stated they are bigger. I said they are not, in response to their generalisation. I could of gone all boring and started stating static vector filesizes and variable bitmap sizes for scaled images of each format but I didn't.

In other words, you answered one bad generalisation with another. How did that add to anyone's learning? Anyway, the context of the discussion is UI graphics — things like window controls, not logos on billboards. In this context, the other commenter's generalisation was more correct than yours.

What is your problem anyway? I asked a question 'why cant vectors be used?'. Someone, maybe you, responded and I then asked a further question regarding the response? Are we not allowed to ask questions on forums these days without people looking for a fight? Why do I have to 'man up' when I have already stated I dont fully understand the concept?

I don't have a problem with anyone asking questions. I have a problem with people spreading misinformation that, when proved wrong, they later back away from and try to shift the goalposts.

Okay, enough of this. It's getting boring.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.