I'm one of those people who thinks that we all need heroes in our lives. Heroes inspire us, they show us where we can be better, they show us that things we thought were impossible are in fact within our grasp, and they teach us what we need to do to grasp them.
One of my heroes is my Father for many reasons, but one thing I will mention here - he worked hard to support his family, even doing honourable jobs he didn't enjoy because he took his responsibilities seriously. I hope some of that has rubbed off on me. That's what heroes do for us, we hope that by being associated with them that we will be better.
Since you are currently studying 3D animation you might like to become aquainted with some of the heroes of animation. I hope that some of these will inspire you to be better. Better at animating, and better all round.
You can find out more on the Disney Legends website here:
http://legends.disney.go.com/legends/index
One thing they all have in common, like my Dad, not one of them took the easy way out, and that's how they earned hero status. Heroes are not made by looking for the easy path - work hard and one day you may inadvertently be a hero to someone else.
Just remember, it's not about where you are or where you started, it's all about where you are headed. Work to get a little better each day and you will get there.
Saturday, 21 November 2009
Wednesday, 18 November 2009
The impact of ergonomics

Any design student, whose task is to develop something that is used by a person should be aware of ergonomics.
Essentialy ergonomics is all about being user friendly, and in interactive media terms that means usability and accessibility.
This BBC article "Five ways ergonomics has shaped your life" (http://news.bbc.co.uk/1/hi/magazine/8363862.stm) makes a good introduction to the concept of ergonomics, and may help you in your assignments.
Questions to ask yourself after reading:
1. What is the main goal of ergonomics?
2. How does this apply to interactive media or web design?
3. How does this apply to my current project?
HND students can make use of this now, ND students may find it helpful in units 104, 105 and 39.
Imagine

Just a short alert for those among you most interested in animation. Imagine is a Journal (magazine) that focuses purely on animation in its many forms. It is available to read in the cluster.
They also have an interesting website full of news about animation, as well as information about animation festivals that you could show your work in.
http://www.imagineanimation.net/?q=news
ColorCode (Amber+Blue) 3D glasses did work with an LCD projector
I have cross posted this from my other blog, because not all my students read that.
I said I would test it out, and the verdict is... yes.
At least, it did with the Dell projector I tried it on. While I initially found that there was more ghosting on the projector image when viewed through ColorCode (Amber+Blue) glasses, than my LCD monitor, at least it was 3D.
I have not yet had success with Cyan+Red at all on a projector.
Changing "Video Mode" improves image
The Dell projector I used allowed me to change the "video mode", which is basically a bunch of different colour level presets. I found that in "game mode" the ghosting pretty much vanished even on the projector.
So there you have it.
ColorCode (Amber+Blue) can work with a projector.
I said I would test it out, and the verdict is... yes.
At least, it did with the Dell projector I tried it on. While I initially found that there was more ghosting on the projector image when viewed through ColorCode (Amber+Blue) glasses, than my LCD monitor, at least it was 3D.
I have not yet had success with Cyan+Red at all on a projector.
Changing "Video Mode" improves image
The Dell projector I used allowed me to change the "video mode", which is basically a bunch of different colour level presets. I found that in "game mode" the ghosting pretty much vanished even on the projector.
So there you have it.
ColorCode (Amber+Blue) can work with a projector.
Labels:
3d glasses,
anaglyph,
colorcode,
projectors
Thursday, 12 November 2009
More on 3D Vision
Just to follow on from my last post about 3D anaglyphs I have produced a series of different kinds of anaglyph so you can get an idea of all the different kinds - you can view the images larger by clicking on them.

Above are the left eye and right eye images for all these anaglyphs.
Red+Cyan Anaglyphs
First, the popular red+cyan, of which there appear to be several variations.
Plain old red+cyan.
We also have somthing called Dubois Red+Cyan. But I am not yet sure what the difference is here either.


In fact what really tipped me off to thinking that yellow+blue was remarkably similar to ColorCode's Ochre+Blue (Amber+Blue) was this 3D Monsters v. Aliens trailer on the ColorCode website:

Is it just me? Or does that look like a yellow+blue anaglyph?
Click to enlarge if you need to, or you can watch the trailer on the ColorCode site here: http://www.colorcode3d.com/gallery/pages/gal_dwa.htm.
Now, it may be true that the specific algorithm that ColorCode patented is better than the one I had access to. But if this also works good enough on an LCD projector then I will be impressed. A poor man's alternative to ColorCode may be yellow+blue anaglyphs - but don't celebrate just yet, I still need to test it on a projector. Watch this space, I will get back to you on that.
Red+Blue
Red+Blue is a combination I remember from my childhood. Its drawbacks, as you can see, are zero colour transmission - the image is effectively monochrome once the glasses are on, and gives a very dark image.

Red+Green
I do remember reading a 3D comic that required red+green 3D glasses when I was a kid. But the yellow background wasn't part of it. In this example, the image has zero colour transmission too, but the image is lighter than red+blue.

The Winners
It is pretty clear that from the examples above the obvious combinations of choice are red+cyan or yellow+blue. Both of these methods give much brighter images, and allow a reasonable amount of colour through.
On the down-side, both red+cyan and the yellow+blue I used do leave traces of ghosting (when you can still see a faint secondary image of the other eye's view). This is called leaking.
Leaking? For example, through a perfect cyan filter no cyan would be visible, but in my tests some cyan faintly leaks through the cyan filter. In part this leaking is what allows for better colour transmission - but you have to put up with a little ghosting. I had a similar issue with my Blue+Ochre Sainsbury's glasses on the yellow+blue image.
It's a toss up, do you want more colour, or less leaking and resulting ghosting?
For me I can put up with a little ghosting for a colour image.
The Losers
I rejected the red+green filter purely because of the yellow background, that just spoils it for me. Unless you are making a movie about 3D custard this particular example is out. However that doesn't mean red+green is no good - it was used to excellent effect in my 3D DVD of Journey to the Centre of the Earth which did not have a yellow background. So I guess my complaint is not about red+green, but this particular way of combining the image for it - stupid algorithm.
While I reject red+blue it does have one advantage over the others. No colour leakage. With the right filters this means a perfect anaglyph, no ghosting in sight. In fact with red+blue its strength is its weakness. The lack of leaking means perfect anaglyphs, but also means low colour transmission resulting in a darker monochrome image.
I guess you can't have it both ways.

Above are the left eye and right eye images for all these anaglyphs.
Red+Cyan Anaglyphs
First, the popular red+cyan, of which there appear to be several variations.
Plain old red+cyan.
Then we have a ghost reduced red+cyan, but I am not sure I can tell the difference with my cheap cardboard glasses.
We also have somthing called Dubois Red+Cyan. But I am not yet sure what the difference is here either.

Yellow+Blue (which looks a lot like Ochre+Blue or Amber+Blue)
Here we have a Blue+Yellow. Which incidentally works with the free Sainsbury's glasses for Channel-4's 3D week, and makes me wonder how similar this is to the ColorCode method in my previous post.

In fact what really tipped me off to thinking that yellow+blue was remarkably similar to ColorCode's Ochre+Blue (Amber+Blue) was this 3D Monsters v. Aliens trailer on the ColorCode website:
Is it just me? Or does that look like a yellow+blue anaglyph?
Click to enlarge if you need to, or you can watch the trailer on the ColorCode site here: http://www.colorcode3d.com/gallery/pages/gal_dwa.htm.
Now, it may be true that the specific algorithm that ColorCode patented is better than the one I had access to. But if this also works good enough on an LCD projector then I will be impressed. A poor man's alternative to ColorCode may be yellow+blue anaglyphs - but don't celebrate just yet, I still need to test it on a projector. Watch this space, I will get back to you on that.
Red+Blue
Red+Blue is a combination I remember from my childhood. Its drawbacks, as you can see, are zero colour transmission - the image is effectively monochrome once the glasses are on, and gives a very dark image.

Red+Green
I do remember reading a 3D comic that required red+green 3D glasses when I was a kid. But the yellow background wasn't part of it. In this example, the image has zero colour transmission too, but the image is lighter than red+blue.

The Winners
It is pretty clear that from the examples above the obvious combinations of choice are red+cyan or yellow+blue. Both of these methods give much brighter images, and allow a reasonable amount of colour through.
On the down-side, both red+cyan and the yellow+blue I used do leave traces of ghosting (when you can still see a faint secondary image of the other eye's view). This is called leaking.
Leaking? For example, through a perfect cyan filter no cyan would be visible, but in my tests some cyan faintly leaks through the cyan filter. In part this leaking is what allows for better colour transmission - but you have to put up with a little ghosting. I had a similar issue with my Blue+Ochre Sainsbury's glasses on the yellow+blue image.
It's a toss up, do you want more colour, or less leaking and resulting ghosting?
For me I can put up with a little ghosting for a colour image.
The Losers
I rejected the red+green filter purely because of the yellow background, that just spoils it for me. Unless you are making a movie about 3D custard this particular example is out. However that doesn't mean red+green is no good - it was used to excellent effect in my 3D DVD of Journey to the Centre of the Earth which did not have a yellow background. So I guess my complaint is not about red+green, but this particular way of combining the image for it - stupid algorithm.
While I reject red+blue it does have one advantage over the others. No colour leakage. With the right filters this means a perfect anaglyph, no ghosting in sight. In fact with red+blue its strength is its weakness. The lack of leaking means perfect anaglyphs, but also means low colour transmission resulting in a darker monochrome image.
I guess you can't have it both ways.
Tuesday, 10 November 2009
3D Week on Channel-4

I was at Sainsbury's today (unusual, but I happened to be near one) and came across a big point-of-sale bin thing with loads of FREE 3D glasses in it. Apparently Channel-4 is hosting a 3D week, which according to my 3D glasses arm will feature "never-seen-before archive footage and continue[s] through the week with loads of awesome 3D films and concerts to enjoy".
Anaglyph TV
Now, the image below (from the C4 website) doesn't look like anything special to the naked eye, but when viewed through the special Sainsbury's glasses will take on a 3D appearance. It is an anaglyph.

To view anaglyphs you need special "3D glasses" that have coloured filters. But there are several different colour combinations around, and you have to make sure you get the right one for what you are watching. You can get Red Blue, Red Cyan (the most popular), Red Green and, as I learned today, Blue Ochre (sometimes called Blue Amber, or Blue Brown).
And guess which ones Channel-4 have opted for?
Blue Ochre of course - which means you probably don't have an old pair of 3D glasses hanging round the house which will work for 3D week. Your "Journey to the Centre of the Earth" glasses will not work, and neither will your "Shark Boy and Lava Girl" pair.
Better get yourself down to Sainsbury's and get some Blue Ochre.
But what's with all the different types?
Why not just stick to one type and have done with it? Simply put, different colour combinations have different benefits. Red Cyan is probably the most popular because it allows the creation of both colour and B&W anaglyphs (as does Red Green). Red Blue only allows B&W and the images are very dark.
But more information on the different types can be found here:
http://nzphoto.tripod.com/sterea/anaglyphs.htm
However, and this was news to me until today, Blue Ochre when viewed in a dark room, has better colour transmission than the others. So this is probably why Channel-4 opted for it. After all, if you want people to think that 3D is more than just a gimmick, it needs to look good.
Blue Ochre not free but very clever
While all the other anaglyph colour methods are pretty much public domain, the Blue Ochre combination is apparently patented. Not the idea of the anaglyph - that has been around for too long, you can't patent that - but according to this website it is the method for converting an image for Blue Ochre is patented:
What makes it patentable (the "secret sauce") is the mathematical formula that modifies the luminance of the right eye record and the luminance and chrominance of the left eye record to best transmit the colour information. The darker brown is necessary for balance, because blue is low luminance.
Whilst I haven't read the patent (http://www.patentstorm.us/patents/6687003/fulltext.html) thoroughly, their process doesn't seem to attempt to determine which point in each image represents each point in the three dimensional scene, so it seems to me that they are effectively presenting a luminance-based stereoscopic pair combined with a flat chrominance image based on the average of the two views.
(http://www.dvinfo.net/forum/archive/index.php/t-128661.html)
Apparently this method was invented at the Technical University of Denmark, and has been branded as ColorCode. More information can be found here: http://www.colorcode3d.com/
What makes it so clever, and therefore worth paying for perhaps, is explained on their website:
The ColorCode 3-D system is the only in the world to reproduce high quality 3-D Stereo images and movies with full color- and depth information on all display types.
(http://www.colorcode3d.dk/group.asp?group=39)
And I can't argue with this claim. I know from experience that Red Cyan may work on a CRT or TFT monitor, but utterly fail on a projector. You can also get a fair amount of ghosting. If ColorCode (Blue Ochre) can crack this, it will be worth the license fees for TV companies who want good quality 3D without a trace of gimmick.
I will test my new Sainsbury's ColorCode glasses on the LCD projector at work, and if the result is good I will be very impressed and let you know.
Monday, 9 November 2009
Basic Flash Based MP3 Player
Here is the solution. It turns out you can use NetConnect and NetStream to make an MP3 player in Flash, but only if you encapsulate all your MP3s as FLV files. Not really very helpful since it means converting your MP3 files - it just makes more work.
So, let's use another way. This other way makes making and maintaining the connection with the media easier, but the pausing and playing is just a tad more complicated. Nothing you can't handle I am sure.
The Code
First, here's the code, then I will explain it:
The Explanation
Here goes. First, instead of using NetConnect and NetStream as we did for the video player, we are going to use loadSound. This still gives us a fair amount of control, in some ways more than the NetStream would give us, but it doesn't automatically pause when you play something that is already playing, as NetStream does. So while the rest is no more difficult, just different, pausing and then playing again is slightly more complicated using loadSound.
As with any program, we can only work with the information available, or that we can find out. With the loadSound approach we can find out one very important thing that will help us make a pause/play mechanism - we can find out our current position in the MP3 as it plays. In the code above we do this as follows:
Not hard, but on its own it is not a pause/play mechanism. We make it into a pause/play by storing the current position as a variable called playpoint at the time of pause. In effect we remember where we got up to. Then, when we play, we tell it to play from where we left off by asking the variable playpoint to tell us where we got to. As follows:
When pausing:
First we set the variable playpoint to store our current position. This is actually given in milliseconds so we divide it by 1000 to convert it to seconds - and that's what you see being done here. Then we tell it to stop.
When resuming playing:
We simply tell it to start, but include the start position as playpoint so it resumes from where we left off.
Isn't that what pausing/playing really is? Stopping, and then starting from where you left off?
The other code is effectively a menu, allowing you to choose which track to listen to. The term false on the end means the track won't play straight away, but will wait for you to press play as well. Change the false into a true and just clicking on the menu will make the track start as well.
Getting late, will add more tomorrow.
So, let's use another way. This other way makes making and maintaining the connection with the media easier, but the pausing and playing is just a tad more complicated. Nothing you can't handle I am sure.
The Code
First, here's the code, then I will explain it:
/*set default starting position for playback in seconds*/
var playpoint = 0;
/*create sound object*/
var audio_sound:Sound = new Sound();
/*play button*/
this.play_btn.onPress = function() {
/*play the mp3 from the point defined in the variable playpoint*/
audio_sound.start(playpoint);
};
/*pause button*/
this.stop_btn.onPress = function() {
/*define the variable playpoint as the same as the current position, this is given in milliseconds so we divide it by 1000 to convert it into seconds*/
playpoint = (audio_sound.position/1000);
/*stop the playback*/
audio_sound.stop();
};
this.m1_btn.onPress = function() {
audio_sound.loadSound("track1.mp3", false);
/*true = streaming and therefore autoplay, false = not streaming and therefore just sets the file for when you hit the play button.*/
};
this.m2_btn.onPress = function() {
audio_sound.loadSound("track2.mp3", false);
};
The Explanation
Here goes. First, instead of using NetConnect and NetStream as we did for the video player, we are going to use loadSound. This still gives us a fair amount of control, in some ways more than the NetStream would give us, but it doesn't automatically pause when you play something that is already playing, as NetStream does. So while the rest is no more difficult, just different, pausing and then playing again is slightly more complicated using loadSound.
As with any program, we can only work with the information available, or that we can find out. With the loadSound approach we can find out one very important thing that will help us make a pause/play mechanism - we can find out our current position in the MP3 as it plays. In the code above we do this as follows:
audio_sound.position
Not hard, but on its own it is not a pause/play mechanism. We make it into a pause/play by storing the current position as a variable called playpoint at the time of pause. In effect we remember where we got up to. Then, when we play, we tell it to play from where we left off by asking the variable playpoint to tell us where we got to. As follows:
When pausing:
this.stop_btn.onPress = function() {
playpoint = (audio_sound.position/1000);
audio_sound.stop();
};
First we set the variable playpoint to store our current position. This is actually given in milliseconds so we divide it by 1000 to convert it to seconds - and that's what you see being done here. Then we tell it to stop.
When resuming playing:
this.play_btn.onPress = function() {
/*play the mp3 from the point defined in the variable playpoint*/
audio_sound.start(playpoint);
};
We simply tell it to start, but include the start position as playpoint so it resumes from where we left off.
Isn't that what pausing/playing really is? Stopping, and then starting from where you left off?
The other code is effectively a menu, allowing you to choose which track to listen to. The term false on the end means the track won't play straight away, but will wait for you to press play as well. Change the false into a true and just clicking on the menu will make the track start as well.
Getting late, will add more tomorrow.
NewsFlash! Teacher found not to be a Robot
In spite of a long run of near flawless performance, and an uncanny knack of getting CPUs to do his bidding, the interactive media teacher today managed to demonstrate that perfection is not a pre-requisite to success.
Much to the relief of his students one was reported to say "now we know he is human". Others chuckled as code did not work as expected. But in true form, the teacher used this opportunity to introduce the value of using trace to debug code and find where it wasn't working.
The teacher refused to comment on rumours that he had microchips where his heart and brain should be but simply said "when code doesn't work, it is always user error, you just have to be methodical about hunting down the glitch. I think it is important that HE students sometimes see that code doesn't always work as expected, so they can also see what professionals do to solve problems like this. It's all part of being willing to teach flexibly and respond to what the HE learners want and need - not everything can be planned in advance when teachers are willing to respond to learner requests and the direction the lesson goes, but HE learners gain a lot from it. It's real."
Much to the relief of his students one was reported to say "now we know he is human". Others chuckled as code did not work as expected. But in true form, the teacher used this opportunity to introduce the value of using trace to debug code and find where it wasn't working.
The teacher refused to comment on rumours that he had microchips where his heart and brain should be but simply said "when code doesn't work, it is always user error, you just have to be methodical about hunting down the glitch. I think it is important that HE students sometimes see that code doesn't always work as expected, so they can also see what professionals do to solve problems like this. It's all part of being willing to teach flexibly and respond to what the HE learners want and need - not everything can be planned in advance when teachers are willing to respond to learner requests and the direction the lesson goes, but HE learners gain a lot from it. It's real."
Subscribe to:
Posts (Atom)