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?"
For more THAN just Gamers.
You create your own reality - Leave mine to me.
Using DirectX to create a horribly non-standard and ugly interface? Meh, it's been done before.
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!
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/
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
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
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.
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?"
The coolest voice ever.
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.
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
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
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!
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!
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