Thanks, Scoble. That site only heightened my curiosity - I did notice that the PDC Demo session did not contain any of Aero. (!)
On the other hand, the talks on MS Build and the demos on Avalon were quite the coolness. And I must say that I'm disappointed that only the source-codes of the screensavers are made available online to feed hungry developers of the likes of me
Btw - is there anywhere I can find more information on how managed code is handled in Avalon/LH?
There was an analysis of 3d Desktop Environments a long while back, that I'd seen on some usability forum.
It will not work out - simply because you are trying to convert a 2D windowing environment into 3D, and by doing so, the effort required to access any object rises exponentially for the third dimension (think Fitts law).
I'm not saying its not possible - similar things have been attempted before (ofcourse, not using your specific idea, but quite similar ones) - its just very unusable.
There is a reason Apple came up with just one button - there are users out there who do not even know what right and left mouse buttons are.
3D Desktop environments would be ubercool and fun to play around with, but they would largely be unusable for most people. And even more, it would be really resource intensive.
On the other hand - if only Microsoft would bring out multiple desktop environments for the same user, where I can switch between various desktops, it would be really cool.
Microsoft should go back to simple, elegant and usable designs - rather than complex
hey-look-shiny-thinga-magic designs. I think Aero is headed in that direction.
Just because you can does not mean you should - especially when it comes to usability. The simplest ones are often the best.
Thanks, Joe! That just about answered all my questions - but I do have a couple of clarifications to make.
Are you referring to people building on top of Avalon, or the people writing Avalon (meaning me and my coworkers? I'm guessing you mean people building on top of Avalon.
I meant people who would be building on top of Avalon. The latter part of your answer did clear up my doubts, thanks!
Mostly, wrt DX and things like DShow, you can always put those in their own child window and then composite that child window into an Avalon application.
So, your old stuff will continue to work. You can move stuff over to Avalon on a child window by child window basis if you like. And for new development we are working on providing a more integrated consistent API than MS has ever released before.
Ah. I get it. But I would like to see how this would work, since I've noticed a lot of problems with OpenGL/DX/GDI integration (a classic problem is a clash between InvalidateRect and certain OpenGL APIs). It would be awesome if you guys could provide some
kind of preferential API (what goes where for what child window and what is preferred for which child window, etc) - just a suggestion (am I making sense?).
We'll take care of making sure that the DX gets drawn to the screen in a consistent way. In fact, DX child windows will integrate better in Avalon than the ever did in pervious versions of windows.
Coolness. One question, though - I'll quote from your Blog here.
To affect any change, it was always necessary to create the builder, make the change, and set the old value in.
Just out of curiosity, would this not increase the overhead of the implementation?
For simple 3D stuff (load up a model and spin it around like a 3D icon) we will have our own 3D API that doesn't pretent to offer all of the flexibility of D3D.
So where does one draw the line between Avalon and D3d?
I posted to that in another thread here. I mean that you shouldn't let the fact that Avalon is coming stop you from using a great (and evolving!) technology that exists and is shipping today. Check out this thread here.
That was quite cool, thank you. I personally think you convinced me to stick to WinForms for quite a while
By Info-Viz, I'm guessing you mean "Info Visualization." I'm thinking that is definately one of the ways that people will start using Avalon do something more than just "Clickable Flying Stuff". It is also one of the places where I think that 3D in Avalon
will shine. Do you have some specific examples that you'd like me to comment on?
Yup. I was referring to this kind of work - Information Visualization of large amounts of data and the like. I guess my question is, would you recommend using Avalon for stuff where the viz. changes ever so often
but is also heavily content driven? I imagine that as long as its not heavily graphics intensive (say high poly count and stuff), you can stick to Avalon. The moment you cross that line, you fall back to something like D3D. Am I right?
- What about some of the features in DX, that are used in UI Design too (DirectShow for one) - would Avalon programmers need to rewrite the wheel, and how will the existing UI code-base fit in?
- Would it be possible to combine DX/OpenGL with Avalon - a
graphics product that I work on uses x86 asm to make mathematical calculations that need to be fast and higher level APIs for the not-so-important stuff. So, can I use Avalon for the UI and "bare metal" DX for other parts, or how does this work?
- Content delivery + graphics capabilities brings multimedia to mind (and DRM). Is that a targeted area?
- Are you looking at getting rid of Winforms in upcoming releases? "Writing Winforms is not the wrong thing"
- but is it the right thing?
- From what I gather, all the capabilities of Avalon seem to be directed more towards cool UI stuff - does this involve things like Info-Viz (which are not quite graphics intensive as games are, but do need significant amounts of processing power). Is this
a targeted area?
As I understand it, Avalon is much more like a retained mode, highly hardware accelerated, and fully scalable version of GDI+ than it is like a 3D API. This is obviously a good thing because the average GUI developer doesn't want to worry about the details
of a 3D system, they just want the blending, transforming, and smooth animation that 3D graphic accelerators can provide when used for 2D graphics.
Where does that leave games, and DirectX? Or are we just talking about a purely UI design (equivalent of Swing on steroids for the purposes of web-content) toolkit/API?
And I can think of atleast one application that could use a scaleable graphics viz. combined with a good content delivery system.