📜 ⬆️ ⬇️

OpenGl vs DirectX episode II

And what in the past four days no one wrote about the development of the theme habrahabr.ru/blogs/development/80236 ? =)

The guys from Wolfire during this time wrote a reaction to negative reviews (you can read the original at blog.wolfire.com/2010/01/DirectX-vs-OpenGL-revisited )

The main ideas are:
')


- OpenGL from the start of design makes it easier to “touch” all available platforms (Win, Lin, Mac, Wii, PS3 ..). In the case of "you need only XBox and port on Windows" - definitely DirectX. Like, the rest is more convenient \ no - holivar, exactly the same as about Windows vs Linux (popular vs open).

- No matter how thoughtful DX-developed (and this was one of the arguments against), there are TUL for analyzing OpenGL runtime! =) (NVIDIA PerfKit, GPU PerfStudio, ShaderAnalyzer; MacOS: developer.apple.com/graphicsimaging/opengl/opengl_serious.html )

- DirectX API - high-level, and through OpenGL, you can do any very low-level. Therefore, for example, for hardcore in PS3 performance it is better to use OpenGL right away. Here trade-off about the speed of getting the release code vs speed in runtime.

- They are told: “true-boys” do not fool around and push support for both OpenGL and DirectX into the application right away. Wolfire answer, yes, that's cool. But again, if the abstraction layer is projected through openGL, then the cross-platform begins to be tested from the very beginning and is free, and then there is something else to do and then, under the expediency of the situation.

- If there is a common API for different platforms with the same Hardware, then porting is easy. If there are very high-level solutions like DirectX, then for other platforms you will have to do most of the work yourself, which is spent on creating a certain amount of DirectX functionality that is not supported by those platforms. (OpenGL, SDL and OpenAL beating up Direct3D, DirectInput and XAudio).

- DirectX10 - yes, good. But while it is available to 48.94% of users (http://store.steampowered.com/hwsurvey), you will have to render the grind under DX9.

- In DirectX there are additional libraries (XInput / DirectInput, XAudio 2), yes. But you can easily use them when using OpenGL, the graphical API has no influence. But then again, for cross-platform and OpenSource - SDL and OpenAL.

- If you have a problem that you can’t download .dds from the OpenGL code, then do not worry - DirectX will not save you either. Sell ​​your grandmother's property and buy Unreal3.0, and never again try to write your own engine.

- AAA is made on DirectX due to the effect of popularity (powerful PR, including non-gambling game journalists with comparative screenshots in your pocket as always =), and the popularity is generated by many imposed speculations, superstitions and seemingly almost tangible risks.

“As long as DX11 cards become popular, until then, most likely, an OpenGL solution similar to the D3D11 tessellation on the same hardware will appear.

... well, and there are a couple more points that I have not described, for it is time to run =).

What do you think?

Source: https://habr.com/ru/post/82682/


All Articles