Slashdot Mirror


DirectX9 - For More Than Just Gamers?

Xev writes "HEXUS.net are showing a review of a new product called 3DEdit. This uses the DirectX 9 3D rendering engine; 3D transitions; DirectX 9 Shader-based filters, in order to give you a powerful home DV editing suite. This proves a lot more value to me as a Video editor than a card which just lets me play the latest games. Perhaps there is more use for these cards even at a consumer level?"

37 of 311 comments (clear)

  1. Typo by PhraudulentOne · · Score: 4, Informative

    For more THAN just Gamers.

    --
    You create your own reality - Leave mine to me.
    1. Re:Typo by Carthag · · Score: 3, Insightful

      If it were only a typo it wouldn't really be a problem. However, a and e aren't nearly close enough for this to be anything but ignorance. :)

  2. And? by Darren+Winsper · · Score: 4, Insightful

    Using DirectX to create a horribly non-standard and ugly interface? Meh, it's been done before.

    1. Re:And? by shaka999 · · Score: 2, Interesting

      Guess its all in how you define "standard."

      Looking at dictionary.com the most relevant definition

      "Something, such as a practice or a product, that is widely recognized or employed, especially because of its excellence"

      Now the excellence part is in doubt but I dont' think any sane person will argue that windows DirectX 9 isn't "widely employed." Because most people have access to this platform it is very standard and thus useful to the majority of people.

      Oh, or were you just ranting because you can't use it on your Mac or Linux machine?

      --
      One should not theorize before one has data. -Sherlock Holmes-
  3. Perhaps you will come to this conclusion? by delta_avi_delta · · Score: 4, Insightful

    Perhaps there is more use for these cards even at a consumer level?"

    Is it just me, or has almost every second story today had some kind of spurious leading comment tagged on to the end?

    Give me facts dammit, I can make my own opinions from there!

  4. Yeah, maybe by DOS-5 · · Score: 2, Interesting
    Most 3D APIs are good for doing this sort of thing. I think OpenGL would have been a better choice for it though. Although OpenGL is a little behind Direct3D in terms of standard features I still find that it's not only easier to use but generally much faster. I just hate being forced to put absolutely everything into a stupid primitive list.

    Oh and I've found that Direct3D has major issues with modifying and accessing texture data directly, which would be necessary for something like this.

    1. Re:Yeah, maybe by pmjordan · · Score: 3, Informative

      Meh, I'll bite. Direct3D uses OOP to the extent that it's actually useful. The various graphics resources (geometry buffers, textures, shaders, etc.) are logically represented as objects. The various different classes of textures are implemented as derived classes that inherit from a 'base texture' class. I suppose instead of calling Direct3DDevice::SetTexture(int, Direct3DBaseTexture*) they could have made SetTexture() a polymorph member function of textures, but either way works practically equally well, and the texture stage index makes more sense in the context of a device than a texture directly.

      Contrast this with doing the same thing in OpenGL:
      1. (if necessary) switch to the correct OpenGL context.
      2. (if necessary) switch to the correct texture stage.
      3. Bind the texture.

      To me, that's an obvious win for the OOP (Direct3D) version, but there you go. OK, so (1) will only be necessary in very special circumstances, but (2) is practically always necessary, avoiding it tends to be more work than not.

      The point of a production library is not to demonstrate design patterns, but to apply the most appropriate techniques to whatever it is abstracting. If you consider a library's API incomplete or inferior just because it doesn't utilise polymorph multiple inheritance from virtual template base classes, you might want to consider a career as a computer science professor, a few of them will actually agree with you.

      I'm also not really sure what C++ features you're missing. OK, so instead of exception handling they use return values, which I personally consider more appropriate in this case. Feel free to disagree on that point.

      You still failed to miss the point I was trying to make: OpenGL's could benefit a lot from a better API. As it is, all the newer features are added-on hacks that add obfuscation by introducing statefulness at the API(!) level.

      by Anonymous Coward

      Good work stuffing your foot in your mouth.

      *chuckles* Ah, kids these days.

      ~phil

  5. In the same boat by KirkH · · Score: 2, Interesting

    We're actually considering going this route with an app here at work. It's a GUI-intensive app that spends most of its time drawing to the screen using custom MFC controls. It's fast enough most of the time but begins bogging down when we try to push through too much data.

    Anyone have any experience going the DirectX route? Would it possibly be faster than what we're doing today? I assumed from my experience with the interfaces on games (Unreal Tournament, etc) that DX would be slower.

    1. Re:In the same boat by chris09876 · · Score: 2, Interesting

      One of the issues (especially if you're planning on deploying the app) is that your customers will need graphics cards. I know it sounds obvious, but a company I worked for about 2 years ago did the same thing. Most of their customer machines didn't have current graphics cards, and they were unwilling to buy them (which is strange, seeing as the software was selling for like $10,000). In the end, we ended up just giving away an nvidia card with every license. It worked, but that's an issue you should probably be aware of. We weren't, and it caught us off guard.

  6. CoreImage by cjwl · · Score: 5, Informative

    Check out Apple's upcoming CoreImage system if you're interested in uses of a video card for things other than video games:

    http://www.apple.com/macosx/tiger/coreimage.html/

    1. Re:CoreImage by shaka999 · · Score: 2, Funny

      Whew, I was starting to doubt the power of slashdot. I had read 5 posts without a mac reference.

      --
      One should not theorize before one has data. -Sherlock Holmes-
    2. Re:CoreImage by flabbergast · · Score: 2, Informative

      If you really want to get away from video games you should also check out GPGPU. Its a site dedicated to general processing on GPUs. There is also a lot of research done in this area, such as a DB run on a graphics card as well as a lot computational geometry problems. Also, Stanford has developed a more straightforward C-like language to do GPGPU. Pretty cool stuff.

  7. Wake up! by NYhXc · · Score: 4, Funny

    WOW, that's the ugliest interface I ever saw at a video editing program!

    --
    This is what I am
    I can't make it stop
    No matter how much I wanna change
    I can't make it go away
  8. OpenGL by Glock27 · · Score: 5, Insightful
    OpenGL stands for "Open Graphics Library". Microsoft did Direct3D as a way to lock 3D content into the Microsoft platform. Only id Software's stance on OpenGL for gaming saved the day. At the time, even Microsoft admitted that OpenGL was more appropriate for "professional" 3D apps like CAD. Now I'm sure they'd like to lure developers into using Direct3D for professional apps, just as this developer has done.

    Developers should use OpenGL in preference to Direct3D if they want cross-platform compatibility, or simply to use a better API. One way to do this that provides a lot of flexibility is to choose a high-level scene graph library that uses OpenGL or Direct3D at a low level.

    OpenGL apps run on Windows, MacOS and Linux. OpenGL has always been "For More Than Just Gamers".

    --
    Galileo: "The Earth revolves around the Sun!"
    Score: -1 100% Flamebait
    1. Re:OpenGL by Anonymous Coward · · Score: 2, Informative

      The benefit to DirectX is that it does so much for the developer, it takes care of sound/input/networking. All of which aren't fantastically easy to recreate, unfortunately.

      When a DirectX game gets ported to OS X or any other platform you'll often find that the multiplayer is limited to the platform you're using.

      Perhaps someone can suggest some other libraries/frameworks for input/sound/networking. There's GLUT for input, but it's pretty simple so it might not work for everyone.

    2. Re:OpenGL by robocrop · · Score: 5, Insightful
      Filtering through the "open source" - and therefore anything with the word "open" in it - fanatacism:

      Microsoft did Direct3D as a way to lock 3D content into the Microsoft platform. Only id Software's stance on OpenGL for gaming saved the day.

      First, while I certainly won't defend MS's business practices, it's more than a bit short-sighted to say MS only created D3D to "lock" developers onto Windows. MS wanted to grow Windows as a gaming platform (beyond crap like WinG) so they made their own accelerated API. One could certainly argue that the existence of D3D has pushed OpenGL to stay modern and competitive, so has been twofold beneficial.

      Second, where does this nonsense about id saving OpenGL come from? OpenGL has always had plenty of users - as you mention it is consistently used in CAD tools. There is no valid reason, other than fanboyism, to believe that OpenGL would have died if Carmack hadn't used it in his games. And there are other people who have used OpenGL to make their games work on multiple platforms (which, by the way, is usually a very hard sell to your publisher).

      Developers should use OpenGL in preference to Direct3D if they want cross-platform compatibility, or simply to use a better API

      What a smooth, effortless transition from fact to propaganda.

      As a person who has written numerous game engines, I can attest to the fact that OpenGL is - for me - not a better API. It is convoluted and over-complicated by the very fact that it is an "open" standard, decided upon by a committee of people who wouldn't know good design if it bit them in the rear.

      Just the fact that most of the features easily found in D3D cannot be accessed in OpenGL, years after their invention, without the use of custom extensions is enough to throw me off the API.

      If you want to use OpenGL that's your right. But it is not an objectively better API any more than Mac is objectively better than PC, Linux objectively better than Windows, or any of the other /. propaganda that we consistently read.

    3. Re:OpenGL by Glock27 · · Score: 2, Interesting
      What a smooth, effortless transition from fact to propaganda.

      Gee, I guess I should have added an "IMNSHO".

      As a person who has written numerous game engines, I can attest to the fact that OpenGL is - for me - not a better API. It is convoluted and over-complicated by the very fact that it is an "open" standard, decided upon by a committee of people who wouldn't know good design if it bit them in the rear.

      I certainly disagree with this statement. I suppose you could make an argument that a C API vs. COM is a matter of taste. I think the simplicity of the C API (which is also slightly more efficient) is elegant.

      Just the fact that most of the features easily found in D3D cannot be accessed in OpenGL, years after their invention, without the use of custom extensions is enough to throw me off the API.

      The counterpoint to this is that hardware companies using OpenGL can expose new functionality without ARB approval. That has many beneficial effects, including the ability of game developers to use said new features in production games before the ARB gets around to deciding on the "best" official implementation.

      DirectX developers, on the other hand, get to wait for Microsoft to release a new DirectX version. Guess which I find preferable?

      If you want to use OpenGL that's your right. But it is not an objectively better API any more than Mac is objectively better than PC, Linux objectively better than Windows, or any of the other /. propaganda that we consistently read.

      I'd say there are excellent cases to be made that "Mac is better than PC" and "Linux is better than Windows". However, the real problem is that "better" is a vague term. I should have been more specific. Let's try again:

      OpenGL is a more elegant, leaner, and better designed API than Direct3D. Its cross-platform availability is simply icing on the cake. OpenGL will ultimately bury Direct3D. All IMNSHO, of course.

      Happy now? :-)

      --
      Galileo: "The Earth revolves around the Sun!"
      Score: -1 100% Flamebait
  9. Has it really gotten to the point by the_skywise · · Score: 3, Insightful
    That it's faster to render the 3D controls than to do a 2D paint of them? Even the article points out that it restricts the user to specific hardware configurations and shuts out traditionally popular cards for video editing. All for a "purty" interface.
    The underlying workings of 3D Edit mean that it is picky what platform it runs on. There's a long list of compatible graphics cards on Tenomichi's website at http://www.tenomichi.com/Compatible.htm. Essentially, a DirectX 9 adapter is required, which currently doesn't include any of Matrox's graphics cards.
  10. AA required? by Geccoman · · Score: 3, Interesting

    From the article: "It's even necessary to turn on anti-aliasing in the graphics card drivers to smooth the on-screen elements of the interface."

    I can see this needing a little more horsepower to really run great. I love the effect of AA, but my meager P4 2.4 can't always take the extra processing required. I wish they had tested the program on a lesser machine than a Dual Xeon. =0

    --
    I'm on a chair.
    1. Re:AA required? by maxbang · · Score: 2, Funny

      Oh god I hope AA isn't required. I'm incapable of editing video without my bitter lager.

      --
      I also reply below your current threshold.
  11. Well, maybe not today, but... by Faust7 · · Score: 5, Funny

    Is it just me, or has almost every second story today had some kind of spurious leading comment tagged on to the end?

    "Perhaps this is the end of Microsoft?"
    "Perhaps this is Apple's rebirth?"
    "Perhaps Sun is growing up?"
    "Perhaps Firefox really is taking over?"
    "Perhaps Linux really is taking over?"
    "Perhaps games are sacrificing gameplay for graphics?"
    "Perhaps RIAA/MPAA execs really do eat babies?"
    "Perhaps AMD's stuff is better than Intel's?"
    "Perhaps Bush really is an autistic monkey?"

  12. consumer level?! by Anita+Coney · · Score: 5, Insightful

    Did the poster even read the review? The machine 3D Edit was tested on had dual Xeon CPUs running at 3.06GHz with 1MByte L3 cache, water cooling, 2 gigs of RAM, 15,000rpm SCSI hard drives, and a Radeon X800 XT.

    Exactly how many CONSUMERS have THAT system?!

    --
    If someone says he and his monkey have nothing to hide, they almost certainly do.
    1. Re:consumer level?! by LiquidCoooled · · Score: 5, Funny

      I used to.

      Then I found out it still wouldn't run Longhorn, so I sold it.

      All I got left is this damned t-shirt.

      --
      liqbase :: faster than paper
  13. Flanders, star wipe! by PoderOmega · · Score: 2, Funny

    I can see it now: millions of home videos will have a star wipe between every shot!

  14. Video Shader by sklib · · Score: 5, Interesting

    A friend of mine who used to work at ATI made a video shader demo that shows some neat video effects you can do in just a pixel shader -- i.e. render 1 rectangle that fills the screen with the video as your texture, and do all the "fun" stuff in a pixel shader. The ATI developer page that links to the binary is here.

    If you look at the requirements for that demo, it wants a radeon 9500, which means that cards have bene powerful enough to do these things for years. I wouldn't be surprized if apple's video editing tools used the video card to composite scenes off-screen. Probably the same thing for newer versions of Premiere.

    --
    -S
  15. I've used it as 3D Map Renderer for Numerical Data by freejamesbrown · · Score: 2, Interesting

    It's as good as anything, imho. The learning curve can be a pain depending on backgrounds and what technologies you are coding in. DX9 has a lot of .NET stuff that's sorta solid, yet still has a little bit of a beta quality to the API if you ask me. I got my job done and people were happy. (This is of course, as of a year and a half ago... so things like documentation have probably gotten way better.)

    If you are in MFC land, DirectX isn't a bad choice. Of course, I'll always have a soft spot for OpenGL, but platform situations are often out of our control.

    m.

  16. Matrox RT2000/RT2500 by 1984 · · Score: 2, Interesting

    The (now venerable) Matrox RT2000/2500 made use of the 3D features of the graphics card for video processing. There was still an additional board doing a lot of the work, but it was the same basic notion.

    It was very impressive playing with real-time 3D transitions, flips, (one) alpha channel and so on at DV res one a standard PC. IIRC Final Cut HD depends similarly on the graphics board to be able to edit HD content on a Mac without additional hardware.

  17. Re:Ugly UI, Functional UI by amalcon · · Score: 4, Interesting

    I have a friend who works for Sun Microsystems, and he tells me they're working on a 3D version of JDS (don't get me wrong, a desktop system is the LAST thing I'd want to see Java used for, but that's not the point). Among other things, you can rotate a window, say, 80 degrees and stick it in a corner. It's then still recognizable, but it doesn't take up much space. You can also turn things around and write notes on the back. This is a REAL use of 3D in a graphical shell. Now, if only somebody would take their idea and implement it in C++ (or some other language with a goal other than portability).

    --
    -Amalcon
  18. Yes, for more than just gamers. by MarkGriz · · Score: 2, Funny

    If history is any guide, it's great for DoS and remote exploits too

    --
    Beauty is in the eye of the beerholder.
  19. You missed the point.... by WARM3CH · · Score: 2, Informative
    ...All for a "purty" interface...
    The point about this program is not about using DX 9.0c accelerator cards to draw the GUI, but to accelerate the effects engine of the program using pixel shader 3.0 insturctions. A modern graphics card can run filters and nonlinear effects MUCH faster than the faster CPU. Now, with nVidia cards you have 32 bits floating point numbers for each of the RGBA channels of a pixel which is quite enough for many signal processing algorithms while ATI's 24 bits floting point numbers are a bit limiting.
  20. Motion by ibentmywookie · · Score: 3, Informative

    Not to mention Motion, which uses OpenGL to apply effects to video in real time.

    --
    -- The doctor said I wouldn't get so many nose bleeds if I just kept my finger out of there!
  21. Already done by IoN_PuLse · · Score: 2, Informative

    Ever heard of Blender or Jahshaka?

  22. Re:DirectX Website by ckelly5 · · Score: 2, Informative

    umm

    http://www.microsoft.com/windows/directx/default.a spx

    try that ;)

  23. Re:Sys requirements... by SenseiLeNoir · · Score: 3, Informative

    Currently, Transitions use a lot of software rendering techniques for generating effects such as transparency, 3D flyovers, and composition.

    Traditionally, using software rendering, a simple 10 minuite clip can take 1 hour to render. Just over the weekend, I created a 8 minuite "moving slideshow" video clip from Still photos, and titles, which consited of photos gently moving in and out, and cross fading, and titles being added to it. A very simple composition task, yet it took my Athlon 2500+ over 40 minuites to render frame by frame into High Quality MPEG2 for DVD using software rendering.

    Few years ago, it was suggested that maybe a 3D card can be used to assist in that, so the blunt of the rendering was done on a 3D card, and then frame by frame captured from the frame buffer to create a final AVI/MPEG of the composition.

    The presumption was that frames of the video or Stills can be used as Textures, and the power of the Graphics card to render it all

    Also it can be used for Real-Time composition of effects, as you can hook up a video recorder to the output, and directly record onto tape.

    This technology was used extensivly in the Matrox RT2000 and beyond. The RT2000 was a professional video editing suite which consists of a Modified Matrox G400 graphics card (called the G400 flex) and a RT2000 video in/out card, which did realtime DV/MPEG encoding/decoding, and had firewire/analogue connections.

    The RT system used the Matrox G400 Flex to perform the realtime compositing and rendering, and is powerfull enough to do the same effects in realtime, then send back to the RT card to directly send to DV tape, or MPEG2 file.

    Then in 2000, ATi shown a proof of concept software using a normal Radeon card to render two video sequences onto a spinning cube in realtime, which was really stunning to look at.

    So i assume this is further development is the realisation of this proof of concept.

    As for WHY all this is nessasary, well for professional video editors, it gives the ability to have instant high quality previews, and fast rendering, which saves so much time, hence increases productivity.

    --
    Have a nice day!
  24. Re:Ugly UI, Functional UI by bagel2ooo · · Score: 2, Informative

    I'm not sure, but I feel this (http://www.sun.com/software/looking_glass/) may be what you are talking about. I actually got a compile working (despite my hatred of Java.) It does appear to be kind of sluggish but the idea of it is quite nice. I wasn't able to get it to load anything but from the demos of seen (taken with a grain of salt) it is an idea whose time came a couple of years ago but was never implemented. To anyone who has a spare *n?x machine and a bit of curiosity; I suggest you throw it on there and browse around. I haven't taken a look for 2 months so it's likely polished enough to have a lot of the kinks I didn't like worked out. Just bare in mind it is pre-alpha iirc.

    --
    ( o ) one could say I'm rather baked
  25. Re:Ugly UI, Functional UI by illumin8 · · Score: 2, Informative

    I have a friend who works for Sun Microsystems, and he tells me they're working on a 3D version of JDS (don't get me wrong, a desktop system is the LAST thing I'd want to see Java used for, but that's not the point). Among other things, you can rotate a window, say, 80 degrees and stick it in a corner. It's then still recognizable, but it doesn't take up much space. You can also turn things around and write notes on the back. This is a REAL use of 3D in a graphical shell. Now, if only somebody would take their idea and implement it in C++ (or some other language with a goal other than portability).

    You're talking about Project Looking Glass, which is still in alpha, but will eventually bring a true 3d interface to the Linux desktop. It truly looks like a revolutionary interface, and you can see a video demo of Satan himself (Jonathan Schwartz) ;-P demoing it here.

    Some developers are already beginning to contribute to the project, which is open sourced. You can find more details and even download a developer preview of the release at this website.

    I downloaded the developer preview and briefly got it up and running on my system. I'm running Suse 9.2, and it requires an ATI or Nvidia 3d card with DRI support enabled in your X config.

    --
    "When the president does it, that means it's not illegal." - Richard M. Nixon
  26. PCI Express, not Direct X by tinrobot · · Score: 2, Interesting

    The real power for video editing will come as PCI Express takes over.

    The reason - unlike AGP, the PCI express bus is truly bidirectional, and allows for a whole lot more data to be sent to the card from the application. If you went to Siggraph, you would have already seen vendors ready to take advantage of this added bandwidth. You'll see HDTV editing, 3D Rendering, and many other apps moved to the GPUs of high end graphics cards using PCI express. As to the interface, well, Direct X is a possibility, but a lot of card vendors have an interest in promoting their own standards.