No GL3 and no newsletter yet...

Not sure about blender, but softimage is used by the Valve guys (Half Life etc). (I come from a Maya house however)

ruysch - I am failing to see why you signed up to these forums. You only seem interested in convincing other people to “see the light” of your Direct3D decision.

Well DirectX is the promised land. I prefer DirectX though that doesnt mean I exclusively use it; like most others in the graphics industry I started out with OpenGL. I just fail to see why the OpenGL standard time over fails to anticipate the evolution of the industry.

They should have settled for something less than OpenGL 3.0 far ago and instead have provided a usefull standard which the industry could have embraced instead of this continuous awaiting for something which is likely to end up with nothing but a reflection of current hardware.

I personally would like OpenGL to learn from DirectX, that doesnt mean OpenGL should adobt everything as the holy grail but there certainly is a lot to be learned.

Actually, 3ds Max has (or had at least, haven’t used it for a while) support for 3 rendering back-ends: OpenGL, Heidi (software) and Direct3D. The last one was added later on and OpenGL is still default. I don’t see how that makes D3D the “base renderer” for Max.

I am not sure how serious products such as blender and softimage is in the content creation industry? Perhaps you could elaboreate on which game studios uses blender or softimage?

Blender is probably getting there but has some bridges to jump over. Softimage|XSI is used by well known studio’s. Blur is one that springs to my mind while typing this. Also, you’re again talking about games.

Why this secrecy?

Now that’s a very good question :slight_smile: I’ll buy anyone with an answer a beer.

Not to be rude or anything, but aint most of us in the gaming industry? The people I know in the movie industry are hardly using graphics hardware at all, mostly the use software based renderer’s.

I am not sure how serious products such as blender and softimage is in the content creation industry? Perhaps you could elaboreate on which game studios uses blender or softimage?

Blender is occasionally used as a previs tool, but isn’t used for production in very many places. But XSI is a popular 3D modeling/animation package, right up there with Maya and 3DS Max.

Also think of it, go back 5 years… OpenGL was the defacto standard!

Huh? Since when? D3D has been more popular than OpenGL in gaming since D3D 5 or so. Certainly by D3D 8, it was the dominant gaming graphics API.

Well, on Windows.

in the long run I dont see a place for OpenGL simply because it evolves too slow, and because the IHVs arent focused on OpenGL at all.

Well, that’s a leap of logic. Essentially, you’re assuming the GL 3.0 delay is because IHVs have effectively stopped caring about it, rather than for some other reason. It’s not an unreasonable assumption, but it is no more or less grounded than any other assumption about why GL 3.0 was delayed.

There is virtually no information on OpenGL 3.0

No, there’s plenty of information on GL 3.0. What there isn’t is recent info on it (more than 6 months since the last substantive update), nor is there anything close to a timetable as to when the specification would be released.

I personally would like OpenGL to learn from DirectX

Personally, I don’t. I mean, there are some nice things in D3D, but there are some abstractions that are simply unnecessary. Better to start from a direction where you look at D3D, but don’t necessarily do things that D3D does simply because D3D does them. That is, you build a good API by looking at what the hardware needs and what abstracts it correctly (which OpenGL pre-3.0 has never really done).

OK, we ge it. Microsoft is a rich company.

Sqrt[-1], v-man, korval, komat, -NiCo-, knackered, and all, thanks for all the posts … this has been a great thread, but I think you all are falling for ruysch’s troll bait. As for ruysch, grow some balls and post either using your real name, or add your real name to your profile.

However this thread is just getting too fun to skip out of posting on.

PC games, DX10 only market seems a no-go for any major publishers because Vista never caught on, and the vast majority of gamers still run XP. Also piracy seems to be driving majority of companies (US and non-MMO) out of the PC market and perhaps into consoles. For consoles, PS3 is DX9 level and 360 is not at full DX10 level. So all games, especially those intending to be profitable by porting to multiple platforms, still need a DX9 level (in terms of technology) engine. Lets keep in mind that a majority of the game industry still does not use DX. Look at the sum of PS2, PSP, PS3, Wii, and other game platforms/titles compared to XBox/360.

Now lets get back to GL. Apple is slowly catching up to having good GL support. Anyone check what features are now in 10.5.2? I believe EXT_gpu_program4 is supported on NVidia 8 series (also heard that CUDA was ported to OSX as well). How is, with 10.5.2, all the DX9 level functionality for GL on OSX with ATI cards? Given that ATI/AMD isn’t adding EXT_gpu_program4 type support for HD anytime soon, DX10 level functionality on ATI cards is going to be stalled as well until after GL3. I think Apple works with the IHV’s to build drivers, so probably no DX10 level support on ATI cards from Apple any time soon as well.

So lets face it, the entire industry is stalled on DX9 level features (except for niche markets).

The core of DX9 feature level (take out DX9 vertex texture fetch, because it was too slow on NVidia’s 6 and 7 hardware, and not supported by ATi at the time) works rather well on GL right now! About the only really stupid thing on GL’s part is not having support for pre-compiled shaders (which basically kills it for any game which has the material/shader combination explosion problem). But otherwise GL2 still currently kicks ass!

So now lets look at the short term future.

GL3 isn’t going to be an important performance update for DX9 level programming. No new features, really just lower draw call overhead (hopefully), fine grain buffer locking, and better control of GPU<->CPU transfers (which we can already do well in GL2). We’ve got perhaps 3-6 years left on this console generation, stuck with DX9 level GPUs. So GL3+ and DX10+ makes no difference there. PC only games are becoming rarer, and Vista is not building market share fast enough, so GL3+/DX10+ isn’t going to really make much of a difference there either for a while. Apple takes a while to catch up to any new GL stuff, so GL3 isn’t going to be important on Mac any time soon either. You can currently use DX10 feature level on NVidia 8+9 series GPUs simply by using the GL2.1 EXTensions. So GL3 isn’t important there either.

Now how about the future.

Right now there is a tremendous need to iron out a GL API which will properly transform !!!AND UNIFY!!! the industry past DX9 level features and into the highly programmable parallel GPU of the future.

How do you best do this?

Intel is getting serious about Larrabee (bought Project Offset team + lots of really smart people like Tom Forsyth, etc). Larrabee looks to be highly programmable, and doesn’t match well with the current GL pipeline. Its strengths seem to require a new type of API. NVidia, the current dominate in market share for the highend, still has a bunch of features which would be highly useful for graphics which are not exposed in GL. For example shader local memory store (exposed in CUDA). And perhaps a read/write surface cache is planned (programmable ROP perhaps?) as it is in the CUDA/PTX docs, but not yet implemented in CUDA. ATI/AMD provides a 1/4 speed scatter capability (programmable ROP?) in CTM which is not exposed in GL.

So if you were the ARB what would you do? With Intel entering the market in the GL3 lifespan with a seriously divergent product how would you respond? How do you balance the strengths of all the vendors and create a core API to move forward? How do you mold GLSL into something which will work for all the vendors (especially Larrabee)?

So no news might actually really be a good thing, in that perhaps ARB is taking advantage of the current market conditions (DX9 being all that really can be used and GL2 working fine there), and fixing up GL3 for a more generalized parallel GPU of the future?

i am only waiting for the news that GL3 is beeing released at SIGGRAPH 2008.

thinking back, who did not think ‘which year’ as they said september 30th last year. :wink:

D3D for me is just something to look at in a side project because for me portability over multiple operating systems and hardware platforms is much more important. in addition D3D has nothing to offer for really professional use like hardware sync or quad buffer stereo so is really never is a real option to switch but to learn from for me.

as mentioned earlier when the current GL is used with a reduced modern funtion set and current extensions it is, in my opinion, a quiet clean interface and capable of everything D3D10 has to offer. with the reduced function set i mean reducing it to stuff like FBOs, VBOs, shader objects. when using the current GL this way all i can hope for GL3 is a much more cleaner API for just this use (and everything points this way).

so i am happy with the current GL and can only to a certain point understand the bashing of if. sure the lack of the GL3 spec and any information of its current state is most annoying, but till then i can work with what i have quiet good.

GL3 isn’t going to be an important performance update for DX9 level programming.

Errant nonsense. It is not hard to fall off the fast path in GL 2.1. Indeed, I imagine that most users of 2.1 can’t even find the true fast path, as it requires lots of testing by the end user.

Making the fast path the only path is one of the primary goals of GL 3.0.

Given that ATI/AMD isn’t adding EXT_gpu_program4 type support for HD anytime soon

How do you know that? I always assumed that the general feature freeze for GL 2.1 was to promote GL 3.0 and Mt. Evans when it came out. That is, ATi took its meager GL development and focused it on preparing for GL 3.0.

And don’t forget: ATi just finished a complete rewrite of their GL drivers; that basically stalled any real GL development for a good 6-12 months. And that rewrite was probably looked at in terms of making sure that the low-level code was ready for GL 3.0.

Right now there is a tremendous need to iron out a GL API which will properly transform !!!AND UNIFY!!! the industry past DX9 level features and into the highly programmable parallel GPU of the future.

Um, I don’t see anything particular special about later-gen GPUs (even Larrabee) from a graphics API perspective. Oh, if you’re talking about them writing an API for accessing a GPU at a low level, then maybe there’s a need for a unified API there. However, this is fundamentally different from a graphics API. The needs of the two tasks are different, with precious little overlap.

The absolute most that you could expect to see is some generalization of shaders, where shaders are fairly freeform. Inputs and outputs of shader “stages” being pipeable through various different stuff and so forth. However, this does nothing for any graphics hardware that actually exists today; that hardware is DX10.1 in terms of features, and thus can’t take advantage of any of that high-end pipelining, yet is still trapped in the GL 2.1 land-of-horrible-API.

The goal of the GL 3.0 graphics API was to be backwards compatible with all GL 2.0-capable hardware (obviously not BC with the API). If you start taking that off the table, there’s absolutely no point in switching to an API that can’t be used until hardware that won’t exist for 1.5 years comes out.

As I mentioned DirectX isnt the promised land. The trick is to learn the good parts of DirectX and perhaps ask why is it that DirectX has catch on so rapidly…

I think precompiled binary shaders is a good example of something which is practical and extremly usefull in real-applications.
The fact that GL hasnt adoped this to me indicates that the standard does not take end users serious.

Another lesson to learn from DirectX is rapid API evolution, the hardware evolves rapidly, and the standard should have seen even five years ago that the trend would be more and more programmable, and we are likely not done with that department yet. Having the ability to combine vertex, geoemtry and fragment shaders in a single effect is a nice feature; being able to set states inside the effect is very usefull. Decoupling the sampler from texture, thats a nice touch, again why cant we get simple stuff like that, simple and practical usefull!

Why hasnt there been an effort to make an add on library to OpenGL which takes some of the nicer things from D3DX. For such a library to be effective some of the IHV’s could perhaps back up the library. It could be a thin-library which didnt depend on anything but what OpenGL exposed. The library should as D3DX not aim at replacing internal tools used by developers, but still having a SSE2, or SSE4 (depending on your compile target) optimized math libary is nice too have…

But then again, the general feeling seems like OpenGL as a standard is on the right way. I only hope you are correct.
For me DirectX and OpenGL are just graphics API’s, I would like to have em both, but I fear the time where there is only one graphics API.

Actually, you said

:slight_smile:

Agreed.

Although rapid API evolution is a good thing, it can clutter the API specification. Off course, it shouldn’t be too slow either hint-to-ARB :slight_smile:

Agreed.

Although a library like that would be a good thing, I’m fairly happy with the combination of libraries I use now (matrix libraries, image libraries, boost library,…). So maybe a list of related existig libraries would already be a good idea :slight_smile:

The philosophy of gl is to only provide the core API, not helper APIs (glu is the only exception). Most of the things you mention are not core-features in D3D either, but MS has the philosophy that they should provide as many helping tools as possible. That is their strength, but it is really only possible, when you are limited to one platform and to one genre. MS doesn’t provide a multi-platform API and they are focused on games, because that’s what D3D is meant for.

OpenGL is meant for scientific simulations, CAD, etc. and some people actually use it for games too. The needs of all these groups are so vastly different, that you cannot provide tools that would be useful for many people. So it makes more sense to let people create their tools themselves. For the few people who make games it looks like OpenGL would have bad tools-support, but that is only compared with D3D, which is focused on games for windows.

When you actually create a professional game-engine with D3D, you won’t use most of the things that MS provides and build your own tools anyway. So, in the end there is not a big difference, even with games. But simply looking at the two APIs and comparing their differences will give you a wrong impression, because OpenGL is not solely intended for games and thus has other design and support philosophies.

On the other hand, OpenGL is so old right now, that, as mentioned above, it is only suitable to do D3D9-stuff and nothing beyond that. D3D had a rewrite every few years and it was amazing how long it took until it actually reached OpenGL’s quality. The problem is, today nobody wants to start writing a renderer with an API that is clearly dated and not future-proof anymore. If i needed to do a graphics-project right now with the current features, i would use OpenGL 2.1, no problem. But what i want to do is to write a renderer, that i design and write today and use in the next 3-5 years only extending it piece by piece.
To do that, i need a clean API. That is why i am impatiently waiting for OpenGL 3.0. My programs are currently all stalled at the graphics-front, because i don’t want to waste my time at writing a 2.1 renderer (and REWRITING everything later).

Every D3D rewrite took a few years with a team of people, sitting in one location, working on the new API all day. I wonder which super-powers the ARB-people have, that they thought they would do a complete rewrite in just a few months.

Jan.

It makes me smile when arguments start to degenerate into the “philosophy” of OpenGL :slight_smile: It’s used a bit like a shield you raise each time you don’t want to answer about an important missing functionality. We refuse to hear anything about querying video memory usage, but meanwhile, it’s possible to query the amount of temporary registers or max instructions in shaders, for example… oh the irony.

We have an extensions mechanism that works under many OS. Why not an external library using the same idea ?

In the worst case, we could release a “D3DX-like” library for Windows only and ignore users of other O.S. Yeah, that’s not cool for them, but it’s at least an improvement for the majority of users, and especially beginners under Windows. It’s better than saying “if we can’t do it for all OS, let’s not to it at all” IMO. Remember that today’s beginners might be tomorrow’s professional, so anything that can make OpenGL more accessible to them is good for OpenGL’s future.

Y.

There has actually be quite a shift in favorite graphics API in the researcher community, take a look at a lot of the work being done at SIGGRAPH for example, more and more wellknown researchers have taken on DirectX. Which in it self might not be significant, but the problem is that they are likely replace OpenGL related courses at Universities with DirectX as the primary platform.

There is a lot of serious signs that OpenGLs influence is seriously diminishing. But then again alot of the forum users seem to be very happy with how things are. So I will refrain from mingle in the debate. The debate has been here before, back then the same religions speeches was given. Microsoft is evil, OpenGL is multi platform, (is it really ? I mean can I use OpenGL on any of the consoles… or should I use a Sony approved OpenGL ES?)
Damn this debate is seriously in the religious lane!

Well, I’m certainly not in the gaming industry, and there’s a whole lot to do before you can actually start using that software based renderer to spit out sexy renderings.

Think about all the modellers and sculpters who use graphics hardware to the bone to display their high resolution meshes, or digital painters, or animators who create storyboard/previz material first using the preview frames in their viewports and then slowly replace them with the final software based renderings.

Without graphics hardware, artists would not be able to make all those great looking end results.

Microsoft is evil, OpenGL is multi platform, (is it really ? I mean can I use OpenGL on any of the consoles… or should I use a Sony approved OpenGL ES?)

First, no one has been saying that MS is evil, only that they have lots of resources. And it is in their interest to use those resources for their own platform.

Second, when people generally talk about multi platform they don’t mean Windows and consoles. They mean Windows, Linux, Mac, Solaris, SGI, BSD, mobile devices, and yes, also consles. In the professional world these other platforms are very significant. I personally use Solaris daily.

Do you even know what APIs are available for the PS3? There’s libgcm, Sony’s proprietary API written for their hardware. There’s also PSGL (Playstation OpenGL, written on top of libgcm) that they added support for for more portability. ( Reference )

Why didn’t Sony write a D3D layer? Why don’t mobile devices use a D3D “ES” API?

If Kronos puts the amount of effort into GL3 such that it becomes as durable as GL1.x-GL2.x then that would be a really Good Thing. Unlike DX, there wouldn’t be a need to rewrite it every few years.

For mobile devices you are to use OpenGL ES… Cant find a mobile device which actually supports say OpenGL 2.1 sure you can use ES but thats an entire different API.

My point on consoles is that there is no standard but what the vendors create. Sony has theirs, Nintendo has theirs and Microsoft is theirs… so again I cant see which console people are referring to when the say that OpenGL is multi platform.

And do not give me that years old record on multi OS, because again and again that failles in practice.

Again you fail to understand that DirectX was not developed by Microsoft alone. Like HLSL and Cg it was a joined effort between the IHV’s, AMD, ATI, NVIDIA and Intel. Which are core members of Kronos, they wanted DirectX first! I actually fail to see the successes of Kronos… Because clearly the core members are not devoted to OpenGL but to DirectX.

Yeah, were were just giving each other significant glances and laughing incessantly.

That’s nice.

The question is : what do you want from GL or Khronos?

  1. You want it to be multiplatform?
    Anyone can implement it on their platform. It is not Khronos’s fault if it is not available on XBox.
    There is nothing to improve in this regard.

  2. D3D is being used by Univesity researchers.
    It is not GL’s fault. This is just a end user’s choice.

  3. You want a SDK, utilities and etc.
    Forget about it. There are various libs out there and SDK from NV and ATI. Perhaps in your eyes, it will never be as good as what MS offers.

and finally, you mention Linux and OSX are not significant.
Thus, you are a Windows only guy. Why the heck would anyone not use DX in this case?
Maybe you simply like the GL API?

Yes, there are many parts of the OpenGL API that I not only like but love, I like the clean way you can handle the most basic stuff. I like the frame buffer object extension.

There are parts of GLSL I like, I personally hope they will allow binary shaders and state handling inside a common block. And that they will have a precompiler ready for 3.0

What I mean with multi platform is that in the end its up to the vendors if they are willing to sacrifice driver developers for your particular platform (i.e see how ATI has thrown in the towel
and open-sourced their driver development for linux) or look at apples lack of progress in implementing extensions which the hardware actually is capable of doing. Again and again OpenGL is a the mercy of the IHVs.

Clearly both NVIDIA and ATI has SDK’s but then again it has also become apparent that both companies are devoting their time for DirectX. My point is OpenGL lacks a company devoted to the survival of the standard. Kronos isnt enough because the major players in Kronos is exactly NVIDIA and ATI an they do not seem to focus on OpenGL.