Jump to content

Why OpenGL?


VeTaL
 Share

Recommended Posts

This is general question, so i ask it in the general forum.

 

First of all, the picture of Leadwerks is really great. I saw a lot of great videos on YouTube, and here are our videos.

Maybe, some of you saw this videos, but i want to say, whats impress me:

First touch:

Texturing:

 

On the other hand, Leadwerks doesn't start on some machines (notebook GeForce Go 7300), give some artifacts(on ati x1950 and 7950gt), and grass gave 3 FPS (on 7600 gt):

41448486.jpg

 

Third one is great optimization. I read Josh's blog and watch appearing new features, so i can say that this engine is very potential.

 

So, the question: why OpenGL? Why not DirectX, wich is tested, used and supported widely? Don't you afraid that user would have artifacts like that on their machines?

Working on LeaFAQ :)

Link to comment
Share on other sites

DirectX has actually more bugs than the OpenGL drivers. It used to the the other way around, but since now most developers use OpenGL, they have pushed the development a lot. Even Blitz3D which uses DX7, doesn't work on Windows 7 64-bit anymore, with OpenGL it would still work.

 

DirectX 10+ doesn't work on XP, which most people still have. I don't think Microsoft will ever release a good OS again, since the development has been going in the wrong direction since Bill Gates left, so it only can get worse. My next OS when XP doesn't work anymore will be probably Debian. Until then, I have good time to make a native Linux version of LE.

 

DX also doesn't work on Mac, Linux, consoles, phones, pads, and any other platforms. OpenGL does.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Thanks for your answer, high compatibility of the other platforms is a very large plus.

 

But what about those users, who havent enough powered computers(or maybe its a driver bug, or something like that)? For example, for launching Leadwerks on that machine (notebook GeForce Go 7300), i needed to shut down lights at all, looking like this is because of differed shading. Cant you increase Leadwerks's compatibility by adding some poor lights or something like that?

Working on LeaFAQ :)

Link to comment
Share on other sites

It's not a driver bug, but there is no DirectX engine on the market which is completely dynamic like LE, and uses GPU for almost everything. CryENGINE 3 might be the closest match.

 

You can do many settings to make it faster on low-end graphics cards.

Some examples:

1) Use static lights

2) Use smaller window resolution (big FPS boost!)

3) Use smaller shadowmaps

4) Use smaller camera range

5) Use spotlights instead of pointlights where possible (6 times less render passes)

6) Disable post-processing effects

7) Use inaccurate physics mode

8) Always use Flip(0) and set vsync=force off in nvidia control panel

9) Enable more optimizations in VC++ (favor speed, SSE2, 4 byte alignment, etc...)

10) Remove all inline statements from C++ code (can make big FPS improvement, since compiler knows better when to use inline and when not!)

11) Always use double type for floating point numbers (up to 5 times faster than float type)

12) Always use bool type instead of int type (up to 2 times faster)

13) Use rivatuner to raise the clock speed of your ati/nvidia GPU (it might explode, so use at your own risk, and watch the temperature!)

14) Install Windows XP SP3 32-bit, it's the fastest Windows for OpenGL games (25% faster than Vista, 15% faster than Win7)

15) Install the latest graphics drivers (new nvidia drivers have 85% speed increase for some games)

16) Use LOD models and make the LOD range smaller (50 meters at least)

17) Use same model as often you can, instead of different models (more GPU instancing)

18) Disable unneeded services and processes in Windows XP (18 processes is enough that everything works)

19) Send me money so I have more motivation to write full C++ version of LE which works on Linux (Linux GNU C++ is 2.5 times faster than VC++, VC++ is 2.5 times faster than BlitzMax) :)

20) Disable vegetation and terrain shadows

21) Use billboards for vegetation

22) Disable unneeded water reflection render components

23) Design your levels smart! Make sure in heavy density areas some walls always occlude the camera view, also use zig zag corridors ( _|¨ ) to seperate big areas from eachothers

24) Use the hierarchical entity group occlusion system

25) Disable two sided meshes in mat file (cullface=1, it's the default setting when not specified)

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Great recommendations, i'll save this page.

 

But i'm talking about those users, who have not too old videocards GeForce Go 7300 is higher then

Leadwerks Engine requires a minimum of an NVidia GEForce 6 or ATI Radeon X2000 series graphics card.

I noted that all geforce 7 line have troubles with launching.

 

Also, what about artifacts wich was found on ati x1950 (screenshot needed?), would you at least try to fix it?

 

PS: also, i can add to your great table that drivers update is also very important

 

PSS: maybe moderators would pin this tread or add to wiki? Its very useful for everyone, i think.

Working on LeaFAQ :)

Link to comment
Share on other sites

DirectX isn't widely used or supported. DirectX 9 is used on the XBox 360, and for a lot of Windows games. DirectX 10 is supported on Windows Vista and 7, and used in very few games. DirectX 11 is used in maybe three games, and only runs on Vista and 7.

 

OpenGL has the same features as DirectX, runs on Windows XP, Vista, 7, Mac, Linux, Wii, iPhone, and PS3, and doesn't change every three years. A few years ago the choice to use OpenGL was made more out of convenience, but now it is clear that OpenGL is a better API to use. OpenGL even supports Windows better than DirectX does.

 

If you have a bug report please post it in the bug tracker. If you have a question about performance with a specific application please post an example so we can try it ourselves.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

DirectX isn't widely used or supported.

I'm speaking about Windows users. I see that it supports many other platforms, but the most powerful engines( CryEngine, Unreal ) is written on DirectX... Well, IDTech use OpenGl.

Also, i was surprised:

there are 142 engines at devmasters database, wich support OpenGL or OpenGl + DirectX

and 151 engines , wich support DirectX or DirectX + OpenGL

Working on LeaFAQ :)

Link to comment
Share on other sites

DirectX isn't widely used or supported.

Really ... I haven't played a game on the PC in the last 3 years that hasn't been using DirectX. Granted most were using predominately DirectX9 features and the odd one supported both DirectX and OpenGL. Not that I have anything against OpenGL, I think it's great but that statement doesn't equate with my experience at all!

 

But with regard to running Leadwerks on 7000 series cards, that really hasn't been practical since about version 2.2. I had no choice but upgrade my previous 7900 card as lots of features just didn't work anymore or ran so slowly as to be impracticable.

Intel Core i5 2.66 GHz, Asus P7P55D, 8Gb DDR3 RAM, GTX460 1Gb DDR5, Windows 7 (x64), LE Editor, GMax, 3DWS, UU3D Pro, Texture Maker Pro, Shader Map Pro. Development language: C/C++

Link to comment
Share on other sites

If you have a bug report please post it in the bug tracker. If you have a question about performance with a specific application please post an example so we can try it ourselves.

No-no, i created this thread not because of bugs or i have something against OpenGL, but i wanted to know, why you chose it... and looking like i understand now.

Working on LeaFAQ :)

Link to comment
Share on other sites

Unreal Engine isn't DirectX. Unreal Engine is three different renderers written in DirectX or OpenGL, depending on the platform.

 

A few years ago it made more sense to use DirectX. That isn't the case now.

 

What version to use? DX9? Do you want a new DX9 engine in 2010? If you want DirectX 11, that means no support for XP, which is still the most popular version of Windows, even among Steam users. Then when support for more platforms is added, the entire renderer has to be rewritten. That also means no support for Shader Model 3 cards.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

DirectX isn't widely used or supported. DirectX 9 is used on the XBox 360, and for a lot of Windows games. DirectX 10 is supported on Windows Vista and 7, and used in very few games. DirectX 11 is used in maybe three games, and only runs on Vista and 7.

 

OpenGL has the same features as DirectX, runs on Windows XP, Vista, 7, Mac, Linux, Wii, iPhone, and PS3, and doesn't change every three years. A few years ago the choice to use OpenGL was made more out of convenience, but now it is clear that OpenGL is a better API to use. OpenGL even supports Windows better than DirectX does.

 

I think Josh has been drinking Lumooja juice. I really don't care either way because they both suck to work directly with but how can you make a comment saying DirectX isn't widely used or supported? DX is highly used and highly supported in the game world. Otherwise I agree with everything you said, but that comment was just silly.

 

 

And we aren't suggesting you use DX, we are suggesting that the comment wasn't accurate.

 

 

Unreal Engine isn't DirectX. Unreal Engine is three different renderers written in DirectX or OpenGL, depending on the platform

 

And if running on the Windows platform it would use DX correct? Since 99% of gamers use Windows, it's save to basically say it uses DX. I know some games let you pick if you want to use DX or OGL.

 

The compatibility thing was a risk MS was willing to take. They want to push their OS forward and with that comes things like this. Once the dust settles DX will still be the more popular because you have a real company backing it. A company who makes money when others succeed so they do more to support it (for a price that is)

Link to comment
Share on other sites

DirectX means (or should mean, since it does so with OpenGL also!) the latest version of DirectX, and there are almost no users who can run DirectX 11 games (only some ATI users with Win 7). nVidia has no DirectX 11 cards, and won't have in the next few years either (I think GTX 350 will be the first DirectX 11 card from nVidia).

 

All nVidia and ATI users with any Windows version can run OpenGL 3.1 or 3.2, which is partially better than DirectX 11.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

DX is highly used and highly supported in the game world.

How many DirectX 10 and 11 games are there? I can only think of a few.

 

-Wii (OpenGL)

-XBox 360 (DirectX 9)

-PlayStation 3 (OpenGL)

-iPhone (OpenGL)

-Windows XP (OpenGL, DirectX 9)

-Windows Vista (OpenGL, DirectX 9, 10, 11)

-Windows 7 (OpenGL, DirectX 9, 10, 11)

-Mac (OpenGL)

-Linux (OpenGL)

 

OpenGL even supports Windows better than DirectX does. To support the same features we do with the same hardware, we would have to write two different renderers with two versions of DirectX, and they would be made obsolete when the next complete rewrite of DirectX came out.

My job is to make tools you love, with the features you want, and performance you can't live without.

Link to comment
Share on other sites

How many DirectX 10 and 11 games are there? I can only think of a few.

 

-Wii (OpenGL)

-XBox 360 (DirectX 9)

-PlayStation 3 (OpenGL)

-iPhone (OpenGL)

-Windows XP (OpenGL, DirectX 9)

-Windows Vista (OpenGL, DirectX 9, 10, 11)

-Windows 7 (OpenGL, DirectX 9, 10, 11)

-Mac (OpenGL)

-Linux (OpenGL)

 

OpenGL even supports Windows better than DirectX does. To support the same features we do with the same hardware, we would have to write two different renderers with two versions of DirectX, and they would be made obsolete when the next complete rewrite of DirectX came out.

 

How is this even a relative point to your argument? You are planning on expanding to the XBOX 360 and LE ONLY works on Windows. You would have been much better off to have used DirectX 9.

 

The Wii will never be able to support LE. Mac and Linux are extremely small markets.

Link to comment
Share on other sites

You can run OpenGL on XBOX 360 also, since you can run Linux on it (just need to remove the firmware protection (which is software protection only), or install an older firmware which still allowed to run Linux ).

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

DirectX means (or should mean, since it does so with OpenGL also!) the latest version of DirectX

 

I think maybe this is where the confusion is. I don't agree with that statement since some people are still using older version to make games.

 

If this is where you and Josh as coming from, then I get your point, but the new version just need time for the users to catch up OS wise.

 

I should also say that I was specifically talking PC gaming and not console. To many parameters need to be defined when talking about this stuff.

 

 

The iPhone and PS3 would be the only things to be concerned about that don't use DX. The others are so small that it wouldn't even be worth your time to port. Even in that the iPhone would need to basically be a cut down version, which Josh doesn't even seem to want to support lower end graphics cards, much less a phone. So really the PS3 would be the only legit concern.

 

But like I said, I really care personally. As long as it works on Windows I'm happy.

Link to comment
Share on other sites

I think it's kinda logical. If I say I'm gonna buy a Mercedes, I don't even think of any older model. Or If I say I'm gonna buy a bottle of milk...

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Anyone who is familiar with the PC gaming platform knows that typically game developers take up to 2 years to fully utilise any new version of DirectX so no surprise there are no fully DirectX11 compliant games as yet; although quite a few are using some features. DirectX 10 was never taken up by developers as it really offered little that couldn't still be achieved by DirectX 9 and also was restricted to Vista at the time which, as we all know, was a still born gaming OS! I find this knock DirectX attitude somewhat childish as its equally as capable of producing quality game engines as OpenGL and some of the best game engines have been developed using it.

 

As far as serious gaming platforms are concerned there are currently just 3 ... Xbox360, Playstation3 and Windows and of those 3 two are dominated by DirectX

Intel Core i5 2.66 GHz, Asus P7P55D, 8Gb DDR3 RAM, GTX460 1Gb DDR5, Windows 7 (x64), LE Editor, GMax, 3DWS, UU3D Pro, Texture Maker Pro, Shader Map Pro. Development language: C/C++

Link to comment
Share on other sites

DirectX was made because Windows 95 didn't allow direct memory access, which DOS did. Windows NT had OpenGL:

http://en.wikipedia.org/wiki/DirectX#History

 

OpenGL allows Windows to have direct memory access to the GPU, which DirectX still doesn't do today.

 

So you could say Windows 95 and DirectX was just an emergency hack (because Windows NT had problems running DOS programs) which should have never have existed, since they already had OpenGL working on WinNT.

 

It took them indeed until Windows XP before they had finally managed to run DOS programs under Windows NT, but the damage was already done. John Carmack asked in an open letter to Bill Gates to stop developing DirectX, but Bill didn't understand this, and kept doing the wrong things.

Ryzen 9 RX 6800M ■ 16GB XF8 Windows 11 ■
Ultra ■ LE 2.53DWS 5.6  Reaper ■ C/C++ C# ■ Fortran 2008 ■ Story ■
■ Homepage: https://canardia.com ■

Link to comment
Share on other sites

Despite what you OpenGL fanboys say, most game engines that use both OpenGL and DirectX perform much better while using DirectX on Windows (hack or not). DirectX IS the better API for Windows development (drivers are better as well). OpenGL is better for cross-platform development.

Link to comment
Share on other sites

It took them indeed until Windows XP before they had finally managed to run DOS programs under Windows NT, but the damage was already done. John Carmack asked in an open letter to Bill Gates to stop developing DirectX, but Bill didn't understand this, and kept doing the wrong things.

 

And in the mean time games that have made billions of dollars have been made using DX. I don't anyone really cares what John Carmack told Bill Gates. Bill ignored it for good reason. Are you honestly telling us you put more worth into John Carmack's request to stop DX than Bill's idea to make it what it is?

Link to comment
Share on other sites

i will say most of the reason LE does not work on older hardware is not to do with Opengl but the lvl of glsh it using.

so it like trying to run directx 10 games on you card you find it be slow on a go7300 unless you turn off everything.

you can do the same with opengl but it engine need to be design for that low lvl spec

Asus ROG STRIX B350-F GAMMING

AMD Ryzen 7 1700x

32 gb ddr4

15 TB raid 5 HD

Nvidia EVGA 1060GTX

Win10 64bit

Link to comment
Share on other sites

Carmack has actually had some pretty good stuff to say lately about DirectX. I personally can't understand what the point of using OpenGL is if your two target platforms are XBOX and Windows. Makes no sense to me. DirectX 9 is capable of everything being done in LE right now.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...