Advertisement Jump to content
Sign in to follow this  
KrinosX

OpenGL Its all about DirectX and OpenGL?

This topic is 1867 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi guys,

 

I don't even know it is the right place to post my question, but.. lets go.

 

I was wondering if all the platforms supports DirectX and or OpenGL.

 

Let try me clarify my doubts:

I know the Windows support DirectX ( also support OpenGL), as do XBOX and Windows Phone ( maybe ).

 

As far as I know, the other platforms like: MacOS X, iOS ( iPhone, iPad, etc ), Android, Linux, etc supports OpenGL ( or OpenGL ES for mobiles ).

 

But, how about PlayStation 3, PlayStation 4? Play Station Vita? Wii, Game Cube, Nintendo 3DS etc etc etc?

 

What is its drawing API? It support some kind of OpenGL? There is other drawing APIs for consoles? Some proprietary API for each platform?

 

I know the most engines will convert code to platform native code, like Unity3d, you write your game with Unity and it compile your code and generate all the native code ( or something like that ) for iPhone, Xbox, PS, etc... but.. I want to know at low level... what Unity like engines use to convert code to platform specific?

 

And if you use something like 'PlayStatin SDK' ( I dont even know if it exists ), how do you develop your graphics?

 

Well, thanks in advance for any replies.

 

ps: Sry about my english, I am not a native speaker/writer.

 

Share this post


Link to post
Share on other sites
Advertisement

Playstation 3 provides SDK which you have to use to make games for it. Chances are it's not DirectX nor OpenGL (I don't have it so don't know), probably same situation with PS4, PSVita and other consoles. They use more or less same GPU architecture so it'll have same theory: vertex buffers, index buffers, shaders, etc.

Edited by Zaoshi Kaba

Share this post


Link to post
Share on other sites

Thanks for your reply Zaoshi!!

 

So, its a good idea to write a 'wrapper' layer to graphics API if you want to write a cross platform game engine... right? :)

Someone who use Playstation SDK and/or some 'Nintendo SDK'  may share some knowledge?? 

Thanks!! :D

Share this post


Link to post
Share on other sites

Thanks for your reply Zaoshi!!

 

So, its a good idea to write a 'wrapper' layer to graphics API if you want to write a cross platform game engine... right? smile.png

Someone who use Playstation SDK and/or some 'Nintendo SDK'  may share some knowledge?? 

Thanks!! biggrin.png

 

yeah, you want to have your own wrapper around the different graphics apis (libgcm for ps3, libgnm for ps4, dx11, dx for xbob, ogl, etc.)
Coming up with the right level of abstraction can take some time, you need to learn the differences in between the APIs pretty well to get it right, but overall not too difficult. 
 

As Zaoshi mentioned, the constructs are pretty similar in between all major graphics apis. Some things are still a touch different such as constant management (gles2 vs dx11 /ogl3+ vs consoles), console graphics apis also usually expose alot more than is typically available on pc through dx and ogl.

Share this post


Link to post
Share on other sites

The "western" console uses an enhanced version of their known graphics API and the "oriental" one uses its own completely new API, nobody can disclose more, I'm afraid:D Dunno about the other "oriental" console. However the concepts are really the same, also the shading languages are extremely similar, so you can wrap it and port it quite easily.

Share this post


Link to post
Share on other sites
Humm, interesting... with the names given by ATEFred I was able to research something ( 'googled it' ) and found some references to LibGCM for PS3... 
 
It is a derivation from OpenGL ES 1.0 as far as I was able to find... so... its a 'OpenGL like' library... with its differences I imagine, but no something complete new...
 
Sometime ago I read something about programming graphics for old consoles ( Atari, Master System, etc ) and it was very.. hummm how can I say... primitive way to develop... OpenGL and DirectX were a big evolution, but I think they are the 'top of mind' technology for now...
 
I am a bit curious about what cannot be 'disclosed' for now as pcmaster says... but I think the 'insiders' ( the pro game developers, the guys who works for the industry ) may know some new platform coming... hope someday it become public and or I can find my place in game industry smile.png
 
Thanks guys for the information given!!
 
much appreciated!
Edited by krinosx

Share this post


Link to post
Share on other sites
I would guess xbox one uses some sort of directx11 api (not sure, just based on the used hardware and microsoft being the manufacturer :)) I believe it was similar with the xbox 360, that used xna.

Share this post


Link to post
Share on other sites

In general, developers have much lower-level access to graphics programming constructs than on less-specialized platforms like PCs, tablets, or smartphones. So, rather than having an API which gives you nice calls for drawing collections of vertices and which takes care of graphics memory management and threading in its own special way (in conjunction with the OS, Drivers and Hardware), instead you get to do things like building raw command-lists and DMA'ing them to the GPU, and being responsible for managing graphics memory on your own, and ensuring all your threads play nice together. Its this free-wheeling quality, together with less abstraction overhead that allows game consoles to perform several times better than would a PC with identical hardware.

 

AMD's upcoming Mantle API is supposed to bring many of these abilities to the PC-space, although Mantle will necessarily have to play well with the OS/driver model, and pay a higher--although less than D3D or OpenGL--abstraction penalty than consoles do. I expect the mantle programming model to fall somewhere just past the mid-point between PC APIs and console-style APIs, and performance benefit to fall at about the same. I also expect that such a model is much more difficult to grok than D3D or OpenGL for the average graphics programmer, and that the naive graphics programmer will be able to shoot himself in the foot with far more frequency than with D3D or OpenGL--so performance wins will in no way be guaranteed.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!