Entries:
Comments:
Posts:

Loading User Information from Channel 9

Something went wrong getting user information from Channel 9

Latest Achievement:

Loading User Information from MSDN

Something went wrong getting user information from MSDN

Visual Studio Achievements

Latest Achievement:

Loading Visual Studio Achievements

Something went wrong getting the Visual Studio Achievements

WPF 3.5 SP1 Graphics with David Teitlebaum

Download

Right click “Save as…”

  • Mid Quality WMV (Lo-band, Mobile)
  • MP3 (Audio only)
  • MP4 (iPhone, Android)
  • High Quality MP4 (iPad, PC, Xbox)
  • Mid Quality MP4 (Windows Phone, HTML5, iPhone)
  • WMV (WMV Video)
You've heard all about the improvements and new features in WPF 3.5 SP1, now its time to see the new stuff.  David Teitlebaum takes us on a tour of graphic applications that take advantage of the new and improved Effects, DirectX Interop, WriteableBitmap and more.

There is a bit of discussion in the beginning, so if you want to skip right to the demos jump to 05:45 in the video.  I'm smitten.

Looking for more than graphics? Check out the WPF 3.5 SP1 Overview video.

Tags:

Follow the Discussion

  • Wow!
  • Christian Liensbergerlittleguru <3 Seattle
    Cool stuff! Smiley Great to have this kind of conversation.

    What are the performance drawbacks compared to using directly DirectX and C++? Do you guys have any numbers?
  • CKurtCKurt while( ( !​succeed=try​() ) ) { }
    Love the demo's. Can't help thinking it will probably be compared to 'Compiz Fusion' by some. But this is really good, it aren't 'just effects', these are thing we can accually use !

    Where can we download the demo's given and compile/run/render them ourselfs?
    I for one would love to see the performance of that on my pc.

    Realy great work!
  • Christian Liensbergerlittleguru <3 Seattle
    Adam, have you really recorded this at once? I mean the parts where we see you look so different from the lighting...
  • Mark Wisecarverwisemx Live it
    Sweet! DSP in WPF will definitely Rock! Big Smile
  • Is there source code available for these demos at all? I would love to try these things out and see the code for myself.

    Very, very cool.
  • Adam KinneyAdamKinney Agent of Change
    @littleguru, I used two cameras during the shoot and as you can tell they were not equal quality, but neither was the lighting so it was tricky.  Once he started showing the demos I picked up the camera that was on me and shoot his screen while the other one was still on him.

    I'll ask David about releasing the demos.
  • You guys really deliver! Bring this stuff to Silverlight and watch Adobe Flash go, well, back to the dashboard.
  • stevo_stevo_ Human after all
    Thats really cool stuff, I think I remember watching a c9 video awhile back about the trick used to get 3D hit detection to work, wasn't it like the 2D layer was essentially invisibly overlayed and moved perfectly to line up against the mouse with fancy maths..

    That might of been the 'hack' to do it back then however..

    The effects thing is also really slick as well..

    Almost makes me sad to be a web dev now Tongue Out


    .. so uh.. when will you guys deliver this power via sl? Wink
  • I can see this being used to create some kind of replacement for the start menu or those clones of the dock like RocketDock.

    This is the most interesting technology I've seen featured on C9 in a while.
  • Adam KinneyAdamKinney Agent of Change
    Very cool to hear, thanks dentaku!
  • MinhMinh WOOH!  WOOH!
    I really really like the edited format 20 minutes is the perfect length. This could've easily gone an extra 10 minutes, maybe even 20.

    Oh, and the content is cool, too.
  • Big Smile WOW! Kudos to you WPF SP1 team on delivering all these awesome UI features. We can now get down to building the next generation of software experiences we've only enjoyed in movies and games up to this point.

    Thank you Microsoft for investing and following through on this research.
  • Allan LindqvistaL_ Kinect ftw

    that

    is

    in

    sane

    :O :O

     

    please pleeeeease let there be more videos about effects :O

  • hey Adam you look verry happy and too serious Smiley is this your first C9 interview?
  • I'm a little bit confused, David said he's also responsible for design and ensure the WPF meets customers requirements, what customers? How do they decide what features to add/improve in WPF?
  • Hi 9ers, I'm one of the dev's on the WPF graphics team.  As you can see we're really excited about 3.5 SP1.

    We haven't figured out the mechanism yet (msdn, codeplex, blog, etc), but I plan to release the transition demo+source once 3.5 SP1 ships.  We understand that not everyone has experience writing pixel shaders, so samples like this (and others) will be worth looking at.

    As David said in the video, the shader effects integrate really well with the WPF platform.  This mean you can take a library of effects, and just drop them into your XAML without knowing a thing about HLSL.
  • Ion Todirel wrote:
    ...ensure the WPF meets customers requirements, what customers? How do they decide what features to add/improve in WPF?


    Great question. There are lots of different ways we gather feedback: the Connect site, forum and newsgroup posts, support requests, blog comments, requests received via MVPs etc. We also run invite-only labs here in Redmond for some of the very largest customers and partners: we gather lots of feedback at those events also. Occasionally we have customers who are on campus come and deliver short presentations to the team where they demonstrate their own application and talk about some of the best and worst experiences they had in developing the product.

    At the same time, we're constantly looking at the broad-scale research we collect about platform adoption - for example, at what point does the size of a runtime have a material effect on its adoption rate? How many people are still using Windows 2000? And so on.

    Plus of course, almost all of us here actively use WPF as developers, whether for amazing demos like David produces, for writing technical articles or in building test harnesses to ensure the platform works consistently.

    We're always keen to hear real-world experiences with the platform: it's immensely useful to get your feedback. Ian mentions a few ways you can provide that feedback above. If it's actionable feedback and not simply a request for technical support, and you're struggling to be heard through more traditional routes, you're always welcome to drop me an email at tims at microsoft.com and I'll ensure it gets routed in the right direction.

    We know that we're only delivering if you are able to deliver on top of us - our success is measured by your success!

    Tim
  • Brandon, thanks for saying you will post the sample code when SP1 ships. For now, even a very simple but complete (.sln to .ps) "hello pixel shaders in WPF" sample would be very helpful.
  • Christian Liensbergerlittleguru <3 Seattle
    AdamKinney wrote:
    @littleguru, I used two cameras during the shoot and as you can tell they were not equal quality, but neither was the lighting so it was tricky.  Once he started showing the demos I picked up the camera that was on me and shoot his screen while the other one was still on him.

    I'll ask David about releasing the demos.


    Yeah... you one only does interleaced Smiley You see that when you move a little bit faster - hehe.

    Nice work Adam! Great week so far!
  • BasBas It finds lightbulbs.
    And of all 52 weeks in the year, our national DSL network chooses C9's WPF Week to go down, and go down hard. Guess I'll have a lot of video catching up to do in the weekend. Tongue Out
  • robski wrote:
    Brandon, thanks for saying you will post the sample code when SP1 ships. For now, even a very simple but complete (.sln to .ps) "hello pixel shaders in WPF" sample would be very helpful.


    Hey robski, I think you might well like Greg Schechter's blog series that goes into this in some detail:
    http://blogs.msdn.com/greg_schechter/archive/2008/05/12/a-series-on-gpu-based-effects-for-wpf.aspx

    Tim
  • Allan LindqvistaL_ Kinect ftw
    watching the video again a question comes to mind,

    can you use other filtering techniques than nearset neighbur on a writable bitmap?  how much work is it to get something like that to work?
  • I will work on getting these posted soon.  They are almost ready to go.  And I believe Brandon is working on getting his demos (the multi input transitions) posted too!  Tongue Out

    DukeNukem wrote:
    Love the demo's. Can't help thinking it will probably be compared to 'Compiz Fusion' by some. But this is really good, it aren't 'just effects', these are thing we can accually use !

    Where can we download the demo's given and compile/run/render them ourselfs?
    I for one would love to see the performance of that on my pc.

    Realy great work!
  • You can use any of the three filtering methods we now expose (bilinear, nearest neighbor, and the "Fant scaler").  These are selected from the RenderOptions.BitmapScalingMode attached property, and affect the entire subgraph from which they're applied.Tongue Out

    aL_ wrote:
    watching the video again a question comes to mind,

    can you use other filtering techniques than nearset neighbur on a writable bitmap?  how much work is it to get something like that to work?
  • Internally the term "customer" is really generic and refers to anyone who uses the thing you build.  Thus you can have "internal customers" who are just another team within the company.

    And as Tim mentioned, the process of choosing what features to add/improve is really pretty thorough and includes an assessment of who/what scenarios would benefit from the work, what the risk would be from a performance, stability, security, or architectural standpoint, and an rough idea of how much time that work would require.Tongue Out

    Ion Todirel wrote:
    I'm a little bit confused, David said he's also responsible for design and ensure the WPF meets customers requirements, what customers? How do they decide what features to add/improve in WPF?
  • The performance of D3DImage is really scenario dependent, but generally we've had very good results... meaning full frame rates for complex scenes.Tongue Out

    David
  • Allan LindqvistaL_ Kinect ftw
    David Teitlebaum [MSFT] wrote:
    You can use any of the three filtering methods we now expose (bilinear, nearest neighbor, and the "Fant scaler").  These are selected from the RenderOptions.BitmapScalingMode attached property, and affect the entire subgraph from which they're applied.



    sweeet Smiley

    also i vaguely remember you saying that there wasnt any multipass support for pixel shaders? but what about the MultipassShaderEffect Class?  is that depricated or something? or am i just wrong about the multipass stuff? Smiley i noticed that MultipassShaderEffect doesnt have a RegisterPixelShaderSamplerProperty  method or any pixelshader(s) property though.. can you elaborate on how that works? Smiley
  • Allan LindqvistaL_ Kinect ftw

    (yet) another question Smiley how about pixelshading for 3d models? is that possible somehow? since there is now a pixelshaderwrapper with constants and stuff, the step shouldnt be to long i'd imagine (but what do i know:P)

     

  • Allan LindqvistaL_ Kinect ftw
    David Teitlebaum [MSFT] wrote:
    Right, the multipass shader effect class has been cut and won't be in the final builds of WPF.  If any of it is in the beta, it's just a stub.

    MultiInput effects *will* be in the final release, but shouldn't be in the beta.


    oh ok Smiley can you talk anythign about why it was cut? it seemed like a good idea to me Smiley but i guess the panel (or something) with an effect containg another panel with another effect works as well but it just seems a little more cumbersome to me Smiley but im sure you have another trick up your sleeve Smiley

    havent found anything about multiInput so far but i figured you'd just register more DPs as sampler properties and hook them onto diffrent registers (can you do that by the way?) Smiley

  • Allan LindqvistaL_ Kinect ftw
    David Teitlebaum [MSFT] wrote:
    In WPF3D we haven't yet added a mechanism to use a custom pixel shader when your 3D object is being rasterized.  The new effects are applicable to UIElements -- ie 2D.

    That having been said, you could use a our new DX Interop (D3DImage) and do whatever you wanted in 3D, but I gather that's not exactly what you wanted.


    ok Smiley any thing like that in the works post sp1? i guess perhaps you could apply a visual element and then try to massage the normal data into the shader with a property or something Smiley but that sounds hard Big Smile


    David Teitlebaum [MSFT] wrote:
    Multi-input effects didn't make it because we ran out of time in our compressed release schedule to get it implemented and tested properly before we released. 


    oh, im sorry thats not what i meant Smiley i realise that the time to get stuff in the beta was limited and if you had gotten everything in, it whouldnt be a beta Smiley no i ment, why was multipass shaders cut Smiley (you awnserd this below)

    David Teitlebaum [MSFT] wrote:
    In the grand scheme of things we nailed the most important effect scenarios with the features we did get, so the loss of multi-pass was not a deal-breaker.


    alright, thanks Smiley
  • Why can't you guys remember to post a link to the LOW-RES file on every video that you do? Mad

    It's very irritating when downloading with BITS to have to wait on 600Mb files.

    ---dup---

  • We're just now in the early planning stages for the post-SP, so nothing has really been decided yet. Wink

    aL_ wrote:
    
    David Teitlebaum [MSFT] wrote:
    In WPF3D we haven't yet added a mechanism to use a custom pixel shader when your 3D object is being rasterized.  The new effects are applicable to UIElements -- ie 2D.

    That having been said, you could use a our new DX Interop (D3DImage) and do whatever you wanted in 3D, but I gather that's not exactly what you wanted.


    ok Smiley any thing like that in the works post sp1? i guess perhaps you could apply a visual element and then try to massage the normal data into the shader with a property or something Smiley but that sounds hard Big Smile


    David Teitlebaum [MSFT] wrote:
    Multi-input effects didn't make it because we ran out of time in our compressed release schedule to get it implemented and tested properly before we released. 


    oh, im sorry thats not what i meant Smiley i realise that the time to get stuff in the beta was limited and if you had gotten everything in, it whouldnt be a beta Smiley no i ment, why was multipass shaders cut Smiley (you awnserd this below)

    David Teitlebaum [MSFT] wrote:
    In the grand scheme of things we nailed the most important effect scenarios with the features we did get, so the loss of multi-pass was not a deal-breaker.


    alright, thanks Smiley
  • Multi-input effects didn't make it because we ran out of time in our compressed release schedule to get it implemented and tested properly before we released.  In the grand scheme of things we nailed the most important effect scenarios with the features we did get, so the loss of multi-pass was not a deal-breaker. Tongue Out


    aL_ wrote:
    
    David Teitlebaum [MSFT] wrote:
    Right, the multipass shader effect class has been cut and won't be in the final builds of WPF.  If any of it is in the beta, it's just a stub.

    MultiInput effects *will* be in the final release, but shouldn't be in the beta.


    oh ok Smiley can you talk anythign about why it was cut? it seemed like a good idea to me Smiley but i guess the panel (or something) with an effect containg another panel with another effect works as well but it just seems a little more cumbersome to me Smiley but im sure you have another trick up your sleeve Smiley

    havent found anything about multiInput so far but i figured you'd just register more DPs as sampler properties and hook them onto diffrent registers (can you do that by the way?) Smiley

  • In WPF3D we haven't yet added a mechanism to use a custom pixel shader when your 3D object is being rasterized.  The new effects are applicable to UIElements -- ie 2D.

    That having been said, you could use a our new DX Interop (D3DImage) and do whatever you wanted in 3D, but I gather that's not exactly what you wanted.Tongue Out

    aL_ wrote:
    

    (yet) another question Smiley how about pixelshading for 3d models? is that possible somehow? since there is now a pixelshaderwrapper with constants and stuff, the step shouldnt be to long i'd imagine (but what do i know:P)

     

  • Right, the multipass shader effect class has been cut and won't be in the final builds of WPF.  If any of it is in the beta, it's just a stub.

    MultiInput effects *will* be in the final release, but shouldn't be in the beta.


    aL_ wrote:
    
    David Teitlebaum [MSFT] wrote:
    You can use any of the three filtering methods we now expose (bilinear, nearest neighbor, and the "Fant scaler").  These are selected from the RenderOptions.BitmapScalingMode attached property, and affect the entire subgraph from which they're applied.



    sweeet Smiley

    also i vaguely remember you saying that there wasnt any multipass support for pixel shaders? but what about the MultipassShaderEffect Class?  is that depricated or something? or am i just wrong about the multipass stuff? Smiley i noticed that MultipassShaderEffect doesnt have a RegisterPixelShaderSamplerProperty  method or any pixelshader(s) property though.. can you elaborate on how that works? Smiley
  • jlcjlc jlc
    Adam,

    Very nice work indeed. What should I use if I wanted to access TV functionality from a TV Tuner card? Is that a DirectX only route or can something be done from WPF?

    Thanks.
  • Hurry up and post some sample files Tongue Out I want to play with the demos.

    It looks like you guys have done some really good to me, I'm really impressed. The next Office, Windows and everything else should be fantastic thanks to this technology.
  • erikerik_ Whooops!

    Cool!

  • Fantastic demo.  I have a quick question re D3DImage:  Will it work in an xbap?  In other words, if you have a managed dx9 rendering back-end, will it fuse with the new dx interop without requiring full trust?

    Thanks.


  • Unfortunately D3DImage does require full trust.  There are a variety of reasons for this, but among the most fundamental, the WPF team can't guarantee that the D3D APIs are safe for use in a partial trust environment.  Additionally, the SetBackBuffer method has the signature:

    public void SetBackBuffer(D3DResourceType backBufferType, IntPtr backBuffer)

    which takes an IntPtr as a param, necessitating full trust. Tongue Out


    Murrderizer wrote:
    Fantastic demo.  I have a quick question re D3DImage:  Will it work in an xbap?  In other words, if you have a managed dx9 rendering back-end, will it fuse with the new dx interop without requiring full trust?

    Thanks.


  • Is there any sample code available with the 3d form stuff?  That just has me itching to try a few things out, and thinking of what might be ahead in 3-5 years if some of this gets into Silverlight - wow, it's going to be cool!
    Nice work!

    Rob

  • @David Teitlebaum:

    i enjoyed this session on the teched in orlando.
    As you said, please provide a download link for this demos.

    thx,
    Thomas
  • Did the demos ever get posted by any chance? I'm particularly interested in the audio waveform with fmod demo, but it's all really interesting. Well done guys!
  • hello again....

    i am very disappointed at the moment...
    since the teched@orlando 08 i am waiting to get the source code of davids wpf gfx demos...as he promised.

    Is anybody here who can talk to david titlebaum?
    We need demo code !...
  • The source code for this demo would be really cool!!!
    More votes for source!!
  • I really like this video! So much! But now it's been more than 2 months, and where's the source code of this demo?

    Hey Adam and David, even now .NET 3.5 SP1 and this includes WPF 3.5 SP1, has been released, where's the demo code? Please don't make anymore promises.

    We want it now.

    Eriawan
  • Adam KinneyAdamKinney Agent of Change

    Apologies for the long wait, now that SP1 has shipped we can celebrate by spending sometime on shipping the source code for these demos.  You can find the first batch here: Teitlebaum's WPF Graphic Demos, Part 1

    Hooray! Smiley

  • @awsomedevsignerilija injac Ilija Injac
    Hey, this is really, really cool stuff ! Congratulations to David and all the other developers working on this.  Thank you very much !
  • We need the source of the demos ,
    as promised from david teitlebaum at his teched08@orlando session !
  • Thanks! But now where are the rest of the sample code of the video?

    And again, it's been more than a month since Part 1. I may sound to be bad, but why can't I simply have the codes soon?
    I think it doesn't matter for me if the code came directly enedited from David, instead of waiting for you to post the code, and it's been taking too long time to wait.

    Eriawan

  • First, congratulations on doing a great job with SP1.

    Now my question:
    David, at 21:11 you mentioned that the integrated DirectX could also be used for wireframes.

    After some investiation, the only thing I saw was a new D3DImage class (btw. it is very usefull). But it is not appropriate to create a 3d lines and wires.

    So is there a way to use the real DirectX 3d lines or do we still have to use workarounds like ScreenSpaceLines3D and similar (use triangles to simulate lines) which are quite slow?
  • Thanks for the source code. The spinning 3d window thing is begging to be used as a some sort of gratuitus cool looking (and probably incredibly frustrating to use) menu!

    I'll get to wasting as much time as quickly as possible! 
  • This single-handedly inspired me to move from Managed DX to WPF.
  • Adam KinneyAdamKinney Agent of Change
    That's awesome!  Thanks for the comment Smiley
  • rhmrhm
    Digging up a pretty old thread here because I've just been studying the whole D3DImage thing which is an awesome, but very basic facility if you have a C++ 3d engine that you want to integrate with WPF. For example if you need to write a level editor for your 3d game you can use the actual graphics engine for the game itself in a WPF shell instead of the traditional choice of having to write a separate renderer for the editor that didn't use D3D or trying to code a user interface in D3D (which as David points out in this video, doesn't seem like a major pain until you actually go to do it).

    Anyway, I saw in the WPF Futures video from PDC2008 that in the future we'll be able to use XNA as an ImageSource, thus keeping the whole application managed code. Any news on when that's going to be available? Hope we don't have to wait until .NET4. Although the 3d viewport in WPF allows you to do some 3d stuff, it's kindof reminiscent of Retained Mode in old versions of DirectX, i.e. good for putting a few objects on the screen, but nothing too serious. Having a proper 3d api in managed code with a surrounding user interface in WPF would be a dream come true.
  • Way cool... is there code available for the demo's. I'd like to compile and run them locally.

  • Rene JensenRene Jensen Rene Jensen

    Cool cool stuff

     

    But where is the promised code? The link http://adamkinney.com/blog/357/default.aspx don't work and there have never been anything else.

     

    I believe SP1 is released now.. Please... send some code...

  • Better late than never, eh?

     

    I dumped a bunch of the demos + source on skydrive:  http://cid-3ffaec66aac45172.skydrive.live.com/browse.aspx/WPF^_3.5^_PS1^_Demos

    It should be publicly accessible.

     

    Let me know if you are having trouble accessing it, or if you want some other demos that aren't here.


    Thanks!
    David

  • BryanBryan

    Visit this link to vote for multi-pass shaders which are so desperately needed.
    http://dotnet.uservoice.com/forums/40583-wpf-feature-suggestions/suggestions/480961-add-gloweffect-and-multipass-shaders-

Remove this comment

Remove this thread

close

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.