|
|
|
August 19th, 2007
07:32 pm - Textures, Colors, and Bits There's a lot of talk these days about how much space is needed to store texture data for the latest generation of game consoles. As while the Wii and the Xbox360 have stuck with the tried and true DVD format (4.7GB single layer, 8.5GB dual layer), the PS3 has gone with BluRay which provides 25 GB single layered and 50 in dual layer. Some developers are claiming to be maxing out the potential of the DVD (not to be confused with HD-DVD), however I'm willing to bet that about 98% of the time, this is simply due to poor compression and color palette use (note: I'm certainly no expert on all of this...just thinking out lout here).
Even though we now have a small, but growing number of TVs and monitors than can support beyond 24bit color, this does not mean every single texture needs to be stored with such a high color palette. Now beyond the Red, Green and Blue channels, you'll also want to store a "alpha" (or transparency) channel. This will bump some textures up to 32bits. However, giving up 8bits per pixel of your textures to memory can eat up alot of space and be quite wasteful, so some will only use a single bit for transparency, putting them in an either-or situation. This second method while much more efficient in terms of storage and processing required to render it in the scene looks absolutely awful most of the time. You find this 1bit alpha used most often in the textures for leaves, blades of grass, or a chain linked fence...all of which look absolutely awful because they cause so much aliasing that it appears the areas they're used in heavily together causes a shimmering, sparkling effect which can be quite irritating to the eye. Also since most modern anti-aliasing techniques strictly affect the polygons, and not your textures in the scene this becomes even more apparent as it makes these items stand out even more from the rest of the scene.
With the ultra powerful CPUs and GPUs found in the 360 and PS3 the processing power needed to render an 8bit alpha vs. a 1bit alpha is almost negligible at this point. However, as I started off talking about, it can make quite a difference in the amount of space required to store your textures, whether it be in memory or the physical storage media. With the higher and higher resolutions of todays textures, multiplied by a growing number of them with modern graphics engines using sometimes 8 or even 16 different textures across just one area on a model, those 7 little bits add up pretty quick.
The thing that has always puzzled me is why no one uses anything in between? The difference between a 1bit mask and an 8bit mask is very apparent, but the difference between a 2 or 3 bit mask compared to an 8 bit is not nearly as much.

Looking at them close up makes the differences more apparent, but it also makes it more clear how much we don't really need to use a full 8bit mask for decent alpha when it comes to edge aliasing.
First up, is a 4 times magnified close up of the 8bit mask:

And then look at the 1bit's very visible difference.

However, now look at the 2bit example. It's not quite as nice as the 8bit, but a huge improvement over the 1bit...

And if we bump that up to 3bit there's even less of a difference.

I had also originally made a 4bit example as well, but there was practically no difference between it and the 8bit example at all.
Now I want to point out that for all of this I am focusing on textures that have obvious aliasing problems, like a chainlinked fence, or leaves on a tree. For other effects like smoke, fire, or maybe even hair this may not work as well and you may still need to use 8bit to look good, but then again... maybe not? ;)
So, usually a texture map is going to be stored with either with 8, 16, 24, or 32 bits (due to byte addressable memory mainly I would assume). An 8bit texture is going to only give you an indexed palette of 256 colors, or 255 if you use 1 of those colors as your transparent color. If we take 2 of those bits and set them aside for transparency (giving 4 levels of transparency) we now get 64 colors that each can be displayed at 4 levels, or even 5 if you reserve one of those colors for absolutely transparent as with the usual scheme. Generally this is still plenty of different colors for a mainly monochromatic thing like a leaf or blade of grass.
However, let's say you need more colors. Let's look at a 16 bit texture, which in most instances is perfectly fine for even high quality graphics. Now we can use an indexed palette like with the 8bit image, and that will follow almost the same principles. Let's look at using a RGB scale instead. Once again, many times people will use 5 bits for each color channel and then the extra bit for transparency [RGBA5551], which gives us the same problems as with the 255+1 color image and aliasing. What if we bump down each color channel to 4bits, and now we have 4 bits for the transparency channel as well (16 levels of transparency) [RGBA4444]. As we've already determined, that's more than enough for the issue we're looking at, but it does cut into your number of possible colors by quite a bit. Perhaps, with a 16bit texture, you'd still be best off to use a static palette, with 2 or 3 bits set aside for transparency? It would probably depend on what type of texture you're working with individually.
So okay, let's look at 24bit textures, which rarely have an alpha channel at all. Here the solution seems very obvious, cut your color channels down to 7bits rather than 8, and then use the remaining 3bits for alpha [RGBA7773].
Generally however, if you want 24bit color textures, and transparency, you just bump on up to 32bits...which once again, may or may not be a waste depending on what type of texture it is your working with. As most TVs and monitors still can not display anything higher than 24bit color (don't let your Windows display settings fool you guys, there is no such thing as a 32bit monitor), some of the newer displays will actually go up to 30bit (10 per channel) and 36bit (12 bits per channel) which is only available to you if you're using HDMI v1.3+ or DisplayPort1.1+. In such a case (which I doubt anyone at all will even consider till the next generation of systems) we could have a 32 bit texture using 10 bits for each color channel and 2 bits for the transparency, or maybe a 40bit (next byte addressable size up) with 12bits per color channel and 4bits for transparency. However, most developers will probably opt to start using floating point based color channels ending up with 48 and 64 bit textures, which will take even more space...
Another interesting point I'd like to point out while I have your attention is that rather than using a 32bit texture for super high quality color representation, why not use a 16bit texture thats twice the resolution or more, yet uses about the same space? When the texture is filtered through mipmapping and various other filters, you probably won't even be able to tell the difference at a distance, yet up close you've got even more detail then before ;)
I guess the point of all this is that today's developers don't seem to care to try and be as creative about such problems as they used to be a decade ago. If you think squeezing all those textures onto a DVD is hard, try putting them on a 16 megabit SNES cartridge... If you spend just a little more time thinking about these kinda things, I'm sure that you'll be able to fit just about as much detail into that 9 gig DVD as you have planned to plop onto that BluRay disc. The same goes for audio (10 gigs my ass, that must be uncompressed or something...have these guys never heard of Ogg Vorbis?). Current Music: "Smile Like You Mean It" by The Killers
|
12:17 pm - Digg has failed me yet again... That's it...I give up, I'm never going to attempt to post another article to Digg.com ever again. I've submitted a handful of articles over the past year or so, and never once has any of them ever gotten any descent exposure. The site has a very flawed design in that there are so many people submitting articles, that it's hard for anyone to ever find them. The only way any articles make it to the front page any more is if they are posted by a popular submitter, or at least someone with a whole lot of friends to help digg it up. If you have less than 20 diggs you can forget about most people ever seeing it in the Upcoming Articles section...and I just don't have enough friends that are on Digg to even help make any difference. Fuck you Digg...I'm gonna keep reading, but you can forget me ever trying to post anything to you. I'll stick to Slashdot if I want people to actually read my stuff... Current Mood: irritated Current Music: "Bled For Days" by Static-X (via Pandora.com)
|
July 27th, 2007
July 23rd, 2007
12:13 am - Call it paranoia, or call it a set of open eyes Friends...Times are quickly growing scarey again. There have been multiple warning signs across the web this week about strange things building in Washington. The so-called president and friends have put some interesting new motions into effect recently. It is now illegal for you to protest the war in Iraq and the papers are now in place that if another "terrorist" attack happens George W. Bush will become the "temporary" dictator of the United States. There are also multiple people warning this may all link up to a new war with Iran, even a few republicans and conservatives. This is not a partisan issue...this is an American issue. If anything strange happens in the next few months, set aside your fear and emotions and start looking for what's really going on.
For any of you who have seen the possibilities that 9/11 may have been orchestrated by our own government, as horrible and incredible a thought as that may be, we all knew it was only a matter of time before phase two happened. I can not tell you how much I hope to be proven wrong.
PS: New in non-mainstream news this week: Multiple users have noticed Microsoft's new Windows Vista phoning not only home to Microsoft but also to various US Government organizations.
PSS: I almost forgot to mention, that by making this blog post, I may have all my possessions seized by the government. I guess at this point, that's the least of my worries :/
|
June 3rd, 2007
10:51 am - I hate stupid people (AKA 99% of humanity) Why are there so many morons around these days? With this modern age of information and connectivity it grows more and more apparent to me every day that the vast majority of human beings are complete waste of oxygen. I just wish I could get three simple ideas across to everyone.
1. You are not the center of the universe 2. Morals and laws must be based in logic if they are ever going to work 3. Life is not black and white
1 - I fall prey to this myself many times, but at least I'm aware of it and try to get better about it over time. You're opinions/beliefs are not the be-all-end-all. Sometimes you are wrong. You are not the best at everything you do, and that is okay...however, that's no excuse not to keep shooting for those improbable goals. There will always be people who are better at doing things than you, or look better than you, or have more friends than you. Accept it, live with it, move on.
Women, you're body is not perfect, get over it. Jealousy over idealized, photoshopped models will do nothing for you but drive you crazy (and more importantly, those around you who have to listen to you). However, once again...accepting that you are not perfect and being okay with that, isn't necessarily a good excuse to just let yourself go. Aim for the stars, just be okay with it when you don't quite make it past the clouds.
There's an old adage of "life's not fair". People, just remember that includes for you too. Don't let people trample you, you don't have to always give in, but for the love of God please try to let the people around you win sometimes too. If you're wrong about something, admit and let it go.
2 - With all these points, everything would be so much simpler if people took a moment to try and understand the complexity that is the world. One of my favorite schools of philosophy is Utilitarianism. If you don't already know, it is the study of the utility in our actions. Through this philosophy many laws and morals will just make sense, however there are many that won't as well. The idea is fairly simple...like it or not, every person's actions, yes...even your own come down to trying to find the greatest level of happiness and contentment. People like being happy, and they like not having to worry about everything; they like feeling safe. Now here's where things get interesting....in attempting to achieve ultimate happiness, you'll quickly find that for you to be happy, there will be alot of times where you must make others happy. Sure, there's a handful of hermits that would be find living alone with no contact from another human for the rest of the lives, but for the rest of us you're gonna have to deal with some other people at some point in your day.
Calculating how happy you will be from each particular choice you make and all it's subsequent effects seems daunting, but it doesn't have to be. Just break it down like this: If all you ever do is things simply to make yourself happy, you'll never actually be happy; and the opposite is also true. If you spend all your time worrying about making others happy, you will never be happy yourself. It's all about finding a balance. Taking a few miliseconds to choose whether giving up choice number 4 and 12 in favor of someone else's happiness will be better than giving up 5 and 7 on your list is well worth it.
Now I know this mindset, especially if this is the first time you've ever been really introduced to it, can seem a little cold, and maybe even cruel and inhuman....but it's not. Honestly one of the biggest problems in explaining the concepts of utilitarianism is that the language needed to explain it makes it seem like this. Honestly, everyone should have had at least a few instances where you actively chose to do something you didn't want to (or not do something you really wanted) to make someone else happy. This is merely taking the time to sit down and ponder why exactly you were naturally compelled to do so.
One of the greatest examples I've found in the past few years is the concept of open source software, of which you may or may not be already familiar as well. Traditionally when programmers and developers have written programs and such, they give you the end product and charge you a fee for it. It's a very simple and straight forward system. It works fairly well...for a while... Unfortunately, we come to find that one program does not fit all users, and there are always new bugs to be found. Lots of people would like to tinker around with this program they have bought, yet due to copyright laws it is illegal for you to modify someone's proprietary software and redistribute the improvement you have made. Open source software (also sometimes referred to as copyleft, or free-as-in-freedom software) works to fix this by granting all users to have full access to the programs source code and that they can modify and redistribute their derivative versions as long as they follow the rules setup in their license. Now one side-effect of giving users this level of freedom is that it's not always the easiest to justify convincing people to purchase the software after this. People are going to ask themselves, why should I buy this program from Joe, when Bob gives out his almost exact same version for free? What has happened here is utility at work though.
The developers of this open source software have decided that they will benefit more from giving their users freedom vs. placing restrictions on it so they can potentially make more money. By giving their code out, but requiring other developers to release their changes too, they get to have updates and improvements made to the same program that they use themselves. And just because the programs are freely available doesn't mean people won't pay for them anymore. People still make money off of selling tech support or specialized custom versions for customers. In the end these developers benefit much more in the long run than they would have from the short term profits of proprietary software by choosing to give a little freedom and happiness to others that they didn't necessarily have to.
Freedom is an essential component to anyone achieving happiness, but with Utilitarianism (as opposed to say Hedonism) we find the achieving the greater happiness of all people can make you much happier than focusing on yourself.
Now here's the other interesting thing...many religious laws and moral concepts fit very well with the logical morality of utilitarianism. In ancient times, Jewish people were forbidden from eating certain types of meats; but if you look scientifically at the times these same animals were the most likely to carry disease or spoil quicker. If you follow Christian teachings, these sorts of laws were done away with by Jesus, which many people have questioned as to why over time. If you look at it logically it makes perfect sense as technology and know-how had progressed to a point where it was now safe for you to eat a little pork.
Honestly, I don't see how any creationist can go against science and logic. If God created all things, then obviously he's a pretty big fan of these things that this world runs on. If only people were taught to question and ponder such things rather than simply have blind faith, the world would be such a better place.
3 - I constantly have people present concepts and arguments to me where there are only two absolute sides to consider. Yes, this makes things much easier for us to digest and deal with (why do you think computers work on binary?) but it's a very flawed and skewed way to look at the world. Like it or not, this is a world of floats, not bools (sorry, a little geek humor for those who don't get it). In every choice and decision I have to make, I always find that simplifying things down to a yes or no question never gives me a proper answer. Sometimes the answer is grey, somewhere in between those two options. Many times there are numerous other factors to consider beyond the immediate question at hand. The world is just too complex for anyone to be making yes or no decisions....to see black and white, good vs. evil....however you want to describe it.
If you ever look at mainstream political news you see this flawed half-logic all the time. Apparently no one on the big news channels or the politicians themselves seem to know a damn thing about what I have just said...and unfortunately neither do the people who watch and listen to them..... As apparent and undeniable are things like physics and evolution, maybe "survival of the fittest" was a little off.
</rant> Current Mood: pessimistic Current Music: "Sugar Echo" by On
|
January 16th, 2007
04:56 am - An Open Game Console Standard Well, the time has finally come... After almost two years of working on the concept, I have finally made my official proposal to the world. I am working on a project to create a standard and certification process so that multiple manufacturers can produce their own machines that all play the same exact games. The concept is to make console gaming as simple as watching DVD movies. When you buy a DVD movie, you don't have to worry if you have the right brand of DVD player. You don't have to have a Sony DVD player to watch Sony DVDs (although, they're trying with blu-ray). The other main goal of this project is to give game developers much more freedom than the likes of Sony, Microsoft and Nintendo can offer them. Sure, game developers can always just make PC games if they don't want to sign restrictive licensing agreements and give a portion of their profits to the console manufacturers, but most gamers today use their PC for work, and their consoles for gaming.
I have submitted stories linking to my proposal to both Slashdot and Digg. Hopefully at least one of them will put my proposal up for the world to see today....wish me luck ;) Oh, and if you have a Digg account, please go vote for my article: http://digg.com/gaming_news/An_Open_Standard_for_Game_Consoles Current Mood: anxious
|
January 10th, 2007
08:38 pm - Will the raise in minimum wage hurt the poor more in the long run? [rant] Ok, right up front, I want to say that I'm not an economist nor a mathematical expert, but I'm afraid the very real possibility of a raise in minimum wage is going to do nothing, if not hurt the poor.
Apparently, today a bill was passed thru the US House of Representatives (do note it still has yet to pass thru the Senate, nor pass by a potential presidential veto) that will raise the minimum wage from $5.15 to $7.25. That's $2.10 more per hour, and almost $4,400 more a year if you work 40 hours a week.
A couple years ago I would have probably cheered at the possibility of this, but now I'm looking at things in a different light. Sure, people who make less than $7.25 right now will be seeing a guaranteed raise, and potentially those already over that point too; however, it's just going to raise the cost of everything else. All the stores and such that will now be having to pay their employees more are going to have to raise the prices of all their products and services to make up for it. It may not be immediate, but within the next 5 years or so, the cost of everything from a gallon of milk to a new car will simply raise to adjust to the greater cost of production, and so really none of these people will be making any more money than they were before in the grand scope of things. Everyone's power bills will go up, the cost of gas is definitely going to go up....everything's going to go up, so as far as those who this bill was supposed to help are concerned, their going to be in almost the exact same state they were in before it passed. And yet, since so many people of today's generation seem so short sighted and apathetic, they're going to simply see the immediate jump in their spending money and then it will slowly sink right back to where they were before and most will be none the wiser.
All this is really going to do is make the lower class larger. Many people in the middle class will get little to no raise as a result of this, yet will have to pay much higher rates for their goods and services. This will simply widen the already growing gap between the super wealthy and the poor. The middle class has been disappearing for decades and now the rate of it's disappearance is going to exponentially increase.
In a well balanced economy, the middle class should be the majority and there should be very few poor nor rich, but we're heading towards the exact opposite of that. I guess after the last few years of the Republicans fucking up our social issues, now it's time for the Democrats to fuck up our economic ones. God I wish there were more Libertarians in this country. [/rant]
On a sort of side note... I wonder if this bill will raise the minimum wage for waiters? What is it now, like $2.13 or something?
PS: On second though both parties are screwing over US citizens in both areas...they're just a little more focused on the priorly mentioned areas. Current Mood: scared
|
January 9th, 2007
10:19 pm - 1 quarter of a century So I've been really freaking out lately thinking about the fact that I'm about to be 25. That's a long damn time... It creeps me out to think that it's been 10 years since I saw my first concert in the 9th grade; or the fact that it was over 15 years ago when I heard Nirvana's "Nevermind" for the first time in 4th grade (What? I started early).
I know I'm considered young still, and really in comparison to others I am...but I just feel really old anyway. It's weird. How could I have ever guessed I would be married and just leaving college (yet not graduated) for my first "real" job when I was 25...ok, so I expected to be actually graduated and a world renowned game designer by the time I hit 25, but that's besides the point.
Speaking of game stuff...my big announcement should happen Monday or Tuesday of this coming week if all goes well :D Current Music: "Water" by OhGr
|
January 1st, 2007
04:41 pm - ATTN Hattiesburg Last.fm Users Hello all...hope your New Years went well last night :D
To any of you that are on Last.fm, I've just set up a "Hattiesburg" group, for all the Hattiesburg Last-fm-ers. Sign up and spread the word... http://www.last.fm/group/Hattiesburg
If you're not already on Last.fm, you should check it out...it's a pretty awesome music discovery service. I'd also recommend checking out Pandora sometime too ;) Current Music: "Chuck Mosley (demo)" by Malamute
|
December 31st, 2006
05:14 pm - The end of another year Well, seeing as how it's the last day of 2006 and I haven't been on LJ much, I think it's time for a new post ;)
Let's see...lots of things have been going on in my life. This year I joined the Stage Monkeys (and subsequently, Feed the Bears too) and wasted most of my life continuing down the fruitless path known as college. I have recently decided that after going to USM off and on for 6 years, that college just is not for me. Don't get me wrong, I love learning, and I was interested in alot of the things I did while I was there, it's just that me and the whole class/homework deal don't really work out very well it seems. Unlike last time I "took a break" from college, I really feel like I have a solid base from which I can continue to build from. I feel I've got enough of an understanding and knowledge with programming that anything else I'll ever need to know I'll be able to teach myself (via a website or book, not just magically) ;) ...in fact, as part of this new path, since I'm basically dropping out of college for good (don't worry, I never was there for that worthless piece of paper that everyone else seems to be so concerned with, I was there for the actual knowledge and experiences), I've been searching and searching for a new full time job the last month or so. And last Thursday I found one :D I now work at a small computer shop called Broom Computer Services toward downtown Hattiesburg (across from N & H, if you know where that is). I'll basically be doing a little of everything, but my main job position is as a programmer :) That's right! I'm now officially a professional coder of all things :P And I'm getting paid pretty decent....nothing amazing, or anywhere near the national starting average, but a good bit more than I've ever made before ;)
My master plan is now that I'll have more freetime and less stress, I can start focusing all my energy on making prototypes and demos for my gaming portfolio so I can finally get on with my career and can quit waiting around here like it's just gonna happen on its own. I've got a fairly big announcement on that front too coming up soon, and I'll post a link here as soon as it's ready ;)
Christmas was pretty good, and my new job was just the present I was hoping for. I hope you all had a good one too :D
Tonight, I'm heading over to Terry and Adrian's house for New Years...so whatever and where ever you are tonight, have a Happy New Years, and I'll see ya next year ;)
|
|
|