Silverlight 3DSMax Exporter – Update
The exporter is coming along nicely. I’m really happy with the results. So much so that I decided to create a Q*Bert scene. Click on the image blow for the full sized image.
In the image you have 3DSMax in the background with all it’s wireframe goodness. The render on the right, and as you can see, the Silverlight output in Firefox on the left.
Features in the short term will be more .NET features, as full scene rotation would give fantastic interactivity, and open up the door for useful Silverlight transitions. Texture mapping is another one I want to look at, mainly focusing on texture scaling and offset.
Read MoreSilverlight 3DSMax Exporter
Silverlight 3 comes with the new shiny Projection and PlaneProjection for perspective 3D effects. One issue is to create rich 3D environments, you need a good toolset, and although Blend is a great tool, it’s not a 3D authoring environment.
Enter 3DSMax. 3D Studio has an awesome scripting capability in the form of MaxScript. Writing 3DSMAX exporters is a past time of mine, and having had a conduit to John Wainwright (aka Mr MaxScript) at that time I became very fond of 3DSMax and MaxScript. But here ends the history lesson.
The main aim of the Silverlight 3D Studio Max exporter is to create a pipeline for 3D authoring, through to Silverlight in browser, and convenient stops in between. It shouldn’t ignore or outcast Visual Studio or Blend (or Photoshop etc), and should not replace them. But where as Visual Studio is a coding environment, Blend an awesome behavioural and layout authoring environment, neither are good 3D authoring environments. The Silveright 3DSMax Exporter hopefully will fill that gap.
So first up, lets take the following image.
In the screenshot below I’ve taken the above image, applied it as a textures to planes (rectangles), replicated them helix/spiral paths in various directions, textured, translucent, with a blue environment background. This process took about 2 minutes.
You can see in the image above the front perspective wireframe, the render, and an angled perspective view showing the planes along the various paths.
But with a click of a button, this 2 minutes of work gets exported to XAML in a second. Alt tab to Blend (Visual Studio doesn’t like ImageBrush for some reason) and voila, instant 3D.
Note that the background is actually blue, but Blend doesn’t stretch it to the full view by default. A quick stop over in Visual Studio and every object is named and available in Intellisense.
And the real test, taking it to the the browser. Firing up Firefox gives us…
So in 2 steps, 1) Export, 2) Build, we have a 3D Studio scene in Firefox.
Currently in v0.001 pre alpha, but I thought I’d post some information about what I’ve been working on. But it truly is 1 click, 1 build. No smoke, no mirrors.
So what features does it currently have? For the time being I’m focusing on only 1 shape, being a rectangle. Simple shape rotation can be done in Blend. Max is for full scene creation. Shapes are the easy part, and the hard part is getting coordinate transformations, texturing, and full scene rotation. These are the real features that I’m currently working on, and I’ll let you all know when it’s ready to get your dirty mitts on. Stay tuned.
Read MoreFive Second Test
Following a tweet from shanemo, I decided to check out fivesecondtest.com, and took the 5 second test. I had no idea what it was prior to turning up, but within 10 seconds the minimalistic site had me sold. From the site…
The five second test is a simple usability test that helps you measure the effectiveness of your user interfaces.
I’m a big fan of the “don’t make me think” usability principle, possibly because it’s the only one I truly understand. But after doing a few tests, you notice that some designs remain vividly in your head, and you can visualise an entire design. Other designs you can hardly remember, and possibly never knew what they were for.
Having a community of people review your designs is an obvious benefit for submitting designs, but what do you get out of doing the tests? For one, you get to see designs that work, and in turn that should be a learning experience. The stark contrast between good and bad designs during 5 seconds really hits home. Secondly, you get a warm and fuzzy feeling from helping the community of designers out there.
Read MoreAhoy! – Silverlight Virtual Earth MapControl
What does a developer do when exploring the possibilities of the new Silverlight MapControl. Create a pirate map of course!
Yarr! So how do you get the paper look and feel on the map? It’s a simple, and doesn’t require any C#, you can do it purely via the XAML.
<grid x:name="LayoutRoot" background="#FF000000">
<img x:name="Paper" source="images/ye_atlas.jpg" />
<m:map x:name="MainMap" opacity="0.5" />
</grid>
Yes, that’s how easy it is. The aged paper look doesn’t zoom, I played around with having the paper scroll and zoom with the map, and it gave me a headache. One of those times when you spend an hour or so finding that your cool idea wasn’t as cool as you thought. When you zoom in, what does it look like?
But what is missing from the map? Treasure of course! YARRR! Pushpin marks the spot! So add a few custom pushpins, a bezier path later, and the map shows you the way. How do you add a pushpin? The best way is to create a layer to put all your pushpins, that way you can hide/show them all together quite easily. So your XAML becomes…
<Grid x:Name="LayoutRoot" Background="#FF000000">
<Image x:Name="Paper" Source="images/ye_atlas.jpg" />
<m:Map x:Name="MainMap" Opacity="0.5" >
<m:Map.Children>
<m:MapLayer x:Name="PushpinLayer"/>
</m:Map.Children>
</m:Map>
</Grid>
… and by adding the following function which takes the position, the pixel size to resize your image/pushpin icon, and the title text of the pushpin …
private void AddPushpin(double latitude, double longitude, double size, string title)
{
// Grab our map layer
MapLayer ml = MainMap.FindName("PushpinLayer") as MapLayer;
// Create the title for the pushpin
TextBlock t = new TextBlock();
t.Text = title;
t.SetValue(MapLayer.MapPositionProperty,
new Location(latitude, longitude));
t.SetValue(MapLayer.MapPositionMethodProperty,
PositionMethod.Center);
// ... and the Pushpin image
Image img = new Image();
img.Width = size;
img.Height = size;
img.Source = new BitmapImage(new Uri("images/skull.png",
UriKind.Relative));
img.SetValue(MapLayer.MapPositionProperty,
new Location(latitude, longitude));
img.SetValue(MapLayer.MapPositionMethodProperty,
PositionMethod.TopCenter);
ml.AddChild(img);
ml.AddChild(t);
}
Note the use of the PositionMethod to have the bottom of the title aligned with the top center of the image. Having this makes life so easy when plotting pushpins on a map around a particular coordinate.
Call AddPushpin in your public Page() constructor, and play around with adding pushpins. Lots of fun to play around with. Then by simply adding a bezier path method (which I’m still not happy with yet) and vary the pushpins and voila, there be treasure! YARR!
If only the sailors of yesteryear had zoomable pannable treasure maps! Features to come are some pirate ships that float around in the water… and I’d love to add a little mini-canon fight, but time is of the essence.
So why is this exciting? Well, aside from our privateering friends out there, what it does open up is a great way to communicate hiking trails, cycling tracks, walks. Feed in a heap of map data and you can overlay anything! Add a custom map data source and you can really start to expand the possibilities.
Read MoreGame Review – Street Fighter IV
Street Fighter IV arrived on my coffee table last month. I can’t stop playing it. There are too many reasons why. Being addicted to Street Fighter II when it came out, I had been waiting a long time for the game to evolve significantly. Everything post Street Fighter II until now has felt like an experiment in what to do next, and with Street Fighter IV being released, it has finally stepped up.
3D is a big aspect graphically in the game, but fighting is still 2D. Ultra moves/combos when in action allow for some camera play, as it zips around giving a truly dramatic feel. In game music is excellent, and the sound FX are top notch. I would however pay for someone to mute the announcer, and the boy band that plays during the title screen.
Where SF4 really shines is in online multiplayer. Create a lobby, wait a minute, bam, you’re online kicking but with your leet skillz. The best online feature is being able to play arcade mode, and still having a lobby available online for people to join, meaning that during quiet times online you can dive straight into the game practise pulling off your 94 move combo.
The new characters are excellent, with 25 characters available (16 available initially, and 9 unlockable characters), and each character feeling just right. The stories in arcade mode are fun to watch, and the challenge modes provide some extreme combo challenges. Titles and Icons are a great way to earn some street cred, whilst giving the game more legs.
And then when you think you’re starting to get the new game, you discover focus moves. Focus moves are the first step in the master part of ‘easy to pick up, hard to master’. But when you start learning how to use them, watch your online ranking halve overnight. Moves that were hard to deal with will become trivial, and block turtles now have more to worry about than fireballs and throws.
A game that may not appeal to those who aren’t Street Fighter fans, it’s a must buy for those that were or still are, and it will have you playing online for many months, if not years.
And yes, playing it on a big HD plasma between the two Street Fighter Rubixels is awesome.
Big thumbs up. 5/5.
Read More












Recent Comments