• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.

Archived

This topic is now archived and is closed to further replies.

DrKappa

OpenGL
OpenGL 2.0

18 posts in this topic

I just downloaded 3DLabs proposal doc about OpenGL 2.0 and had a brief look at it, and I have to say I''m confused. It should be clear that OpenGL as it is today cannot keep the pace with DirectX. The nature of DirectX, an omni-comprehensive API, makes it a step forward a 3d-graphic-only one like OpenGL. Even Direct3d, the real OpenGL competitor, is now a giant compared to what OGL is. DX is full-featured, OGL is not. The way proposed extensions has increased is a crazy mechanism which MUST be stopped. To have something like 230/240 extensions is just perverse. To have to deal with extensions based upon another extension which replaced an old extension could seriously make a lot of developers move to D3D. Not considering that this is no more the original "clean" API everybody appreciated. When the same feature is implemented in two separated extensions created by two competiting manufacturers, I don''t know if I''m talking about an API anymore. DX was once complex to initialize. Now it is more frustrating to check a list of 200+ extensions linked to a 10 years old API. I said I''m confused. I''m confused because I''m not sure OpenGL should follow DirectX. Original OpenGL was intended to be an high-end API. Nobody could buy a 1000$ PC and get OGL running at full framerate in 92. OpenGL was an API supported by high end chipset manufacturers which decided to unite themselves in order to get stronger. Unluckly things has changed during the past 10 years. DirectX emerged as a way for Microsoft to add advanced and realtime 3d graphic support for win32 OSes. It''s an API focused on low and mid end machines. The great market behind DX is the entertainment market. XBox could enforce DX dominion even more, and at this time there''s no clear response on OGL side. If you look at the list of manufacturers present in ARB, you immediately notice all companies producing chipsets used as reference by game developers are there. As for me it is not about where OpenGL is about to go, but where such companies are about to go. If there''s a clear intention to support only low and mid end markets, then OpenGL could share the same target applications with DX, realying upon the intrinsic limitation of DX: to be a win32-only API. Otherwise, if such companies decided to enter in high-end market, OpenGL would have the real chance to get back to 92 and be the definite standard for high-end market, being still able to provide support for 200/400$ chipsets. By doing so, OpenGL could attract a lot of developers implementng custom engines. Such engines could power a blockbuster game as well as a professional 3d tool. My final question is: what do you think about an ideal OpenGL 2.0? Should it follow DX steps or not?
0

Share this post


Link to post
Share on other sites
I can''t comment as I haven''t read the spec but honestly, I like OpenGL the way it is. I''ve tried learning DirectX and it seemed messy to me. Maybe it''s because I was younger, or didn''t have the devotion I do now, or didn''t have the right reference but still. OpenGL, to me, is very clean and easy to implement. Aside from that, it''s very powerful from what I''ve seen and can be run great with a video card in the $150 range.

I like it the way it is.

Make improvments, but don''t change the architexture.

- Mike
0

Share this post


Link to post
Share on other sites
I think it was about time they got back into the driver seat and stopped trying to follow MS. As the presentation said the graphics card has changed dramatically since 91 and they need to dramatically change the api in order to take full advantages of the changes. The first versions will be backwards compatable and in a few years when most cards support 2.0 then they can dump the legacy code and kick ass with a lean and mean api. A standard shading language is a must and I do like being able to control what is in memory, even if it does end up being a hint. The change is needed and I think it looks great.

The fanatic is incorruptible: if he kills for an idea, he can just as well get himself killed for one; in either case, tyrant or martyr, he is a monster.
--EM Cioran

Opere Citato
0

Share this post


Link to post
Share on other sites
I downloaded the presentation yesterday. I agree with about 50% of the things they propose. A standard shader language is pretty important, and this would take a big load off of both NVidia and ATI, who seem to want to standardize their existing languages anyway (read the ARB notes). The example Stanford C-Style shader language looked pretty nice also.

Although, I think they want to change too many basic things that already work fine. Also, what is with their obsession with time keeping? If someone can point out why that would be useful, it may help me understand it .

Anyway, to sum up my opinion: As long as OpenGL provides high performance 2D/3D graphics in multiple operating systems, I''ll continue to use it .

[Resist Windows XP''s Invasive Production Activation Technology!]
0

Share this post


Link to post
Share on other sites
the openml is a good thing. about opengl 2.0 personally I dont think its gone far enuf, comparing it to d3d, its aimed at d3d10/11 when it should be aiming for d3d13/14. where this gonna leave us in 2005. opengl 3.0?
0

Share this post


Link to post
Share on other sites
OpenML

The fanatic is incorruptible: if he kills for an idea, he can just as well get himself killed for one; in either case, tyrant or martyr, he is a monster.
--EM Cioran

Opere Citato

Edited by - GKW on September 25, 2001 12:47:20 AM
0

Share this post


Link to post
Share on other sites
quote:
Original post by Null and Void
Although, I think they want to change too many basic things that already work fine. Also, what is with their obsession with time keeping? If someone can point out why that would be useful, it may help me understand it .



THis is also due to OpenML. In order to synchronize video and audio they have a time keeping system which they are going to extend into opengl.

The fanatic is incorruptible: if he kills for an idea, he can just as well get himself killed for one; in either case, tyrant or martyr, he is a monster.
--EM Cioran

Opere Citato
0

Share this post


Link to post
Share on other sites
"Even Direct3d, the real OpenGL competitor, is now a giant compared to what OGL is."

May be, I am not an expert.
I would ask you a simple question.
Are you able to understand which API has been used to develop a 3d game, just playing it?
My gut feeling is that direct x must have some advantages vs opengl .
It is hard for me to believe that most of professional software houses use direct x,just because of the tremendous Microsoft marketing power.
A comparison giant \ dwerf it seem to me however a bit exagerate.
A part from the above considerations it is a matter of fact that opengl is much, much, much easier to use then direct x and I am sure not to exagerate.
In conclusion the amateur \ shareware game developer comunity definitly need opengl.
I will continue using opengl 1.1 and I do hope the 3d card manufactures will support OGL even in the future


0

Share this post


Link to post
Share on other sites
quote:
it is a matter of fact that opengl is much, much, much easier to use then direct x and I am sure not to exagerate.

I hope you''ve actually used DirectX 8 before making a comment like that... I had been using OpenGL for quite a while, but I decided to try DX. I had no problem whatsoever. And that old argument that DX is much harder to initialize than OpenGL isn''t true anymore. But later I switched back to OpenGL again, simply because I liked it better. I think that as long as OpenGL and DX has about the same performance, it''s all about personal preference (And portability and stuff like that). If OpenGL ever becomes some sort of amateur\shareware API, I''ll be the first one to return to the dark side

And to those who doubt OpenGL:s greatness, I can only say one thing: Doom 3!
0

Share this post


Link to post
Share on other sites
Well i started with DX (7!) and i really liked it, it was very easy to understand and initialize (kinda) but it was all in VB so is really easy, but now that i was threating with C++, heck DX is HARD to initialize some times, structures and classes are confusing, OpenGL is easy API, just glVertex3f(x, y, z) and that''s all, one single vertex with 1 line of code and 3 variables!

Sure OpenGL 1.1 is an Old Version of OpenGL and IT''S Anoying to check all the list of the ARB extensions (i tryed myself and i get a headche), anyway it should be cool OpenGL 2, with all ARB extensions included and everything updated for new GPUs and CPUs!

Anyway No Comments this time

W-Buffer
0

Share this post


Link to post
Share on other sites
DrKappa: "When the same feature is implemented in two separated extensions created by two competiting manufacturers, I don''t know if I''m talking about an API anymore."

Sorry for the relatively pointless post, but that comment immediately reminded me that DX8.0 is NVIDIA''s DX, while DX8.1 is ATI''s DX.

--Buzzy
0

Share this post


Link to post
Share on other sites
Let me start with some comments:
- Anything you can do with Direct3D can you do with OpenGL. Saying that D3D is a giant compared to OpenGL does not make sense to me.
- Direct3D was following OpenGL and not the other way around. The original D3D had some bad goals but after that was OpenGL the ideal.
- Today is the development of both D3D and OpenGL driven by the advancements in hardware.
- The rapid improvements of hardware makes the market totally different than it was 92. Cheap graphic cards is very powerfull.

The big question is how the RISC like operations will be supported in future versions of core OpenGL. I do not belive that the D3D hack to do this for the current hardware gives the best answer. It may be a good investment to let it take some time so that the alternatives can be evaluated.

The new hw will be more programmable but I do not see a future there most graphic code is done on such a low level. We will probably get the low level code from the manufacturers and others sources on the internet and use them like library functions. That may also eliminate the need for extensions.
0

Share this post


Link to post
Share on other sites
quote:
Original post by AlbertoT
"Even Direct3d, the real OpenGL competitor, is now a giant compared to what OGL is."

May be, I am not an expert.
I would ask you a simple question.
Are you able to understand which API has been used to develop a 3d game, just playing it?
My gut feeling is that direct x must have some advantages vs opengl .
It is hard for me to believe that most of professional software houses use direct x,just because of the tremendous Microsoft marketing power.
A comparison giant \ dwerf it seem to me however a bit exagerate.
A part from the above considerations it is a matter of fact that opengl is much, much, much easier to use then direct x and I am sure not to exagerate.
In conclusion the amateur \ shareware game developer comunity definitly need opengl.
I will continue using opengl 1.1 and I do hope the 3d card manufactures will support OGL even in the future





Maybe my comparison giant/dwarf is exagerated.
By the way as I said directX is omnicomrehensive, while ogl is not. Programmable GPUs and other advanced features are supported by directx, while we cannot say the same for opengl. DirectX gets updated every year, while OpenGL is still a revision of the original 1992 API (DirectX had at least 3 major improvements: version 3, 5 and 8).
The future of DirectX is shiny. XBox is a great help.
The future of OpenGl seems misty, as 3dlabs paper points out: OpenGL needs to change as soon as possible.

If it could be true that now a lot of developers are still supporting opengl, maybe directx will be more appealing when having to port games from/to xbox. When programmable gpus will be present in almost every pc used for playing games, opengl could loose other developers.
Maybe it''s not giant/dwarf today, but tomorrow? If 3dlabs distributed such a paper maybe they fear something like that.
0

Share this post


Link to post
Share on other sites
quote:
Original post by buzzy_b
DrKappa: "When the same feature is implemented in two separated extensions created by two competiting manufacturers, I don''t know if I''m talking about an API anymore."

Sorry for the relatively pointless post, but that comment immediately reminded me that DX8.0 is NVIDIA''s DX, while DX8.1 is ATI''s DX.

--Buzzy


I could be wrong, but as far as I know Microsoft creates vertex and pixel shaders specs. DX 8.0 supported version 1.1 while 8.1 supports version 1.4. To say that RADEON 8500 is the only board supporting vertex shaders 1.4 doesn''t mean DX 8.1 is ATI''s DX.
Then, the same code works on all hardware, while shaders extensions provded by ati and nvidia for opengl aren''t compatible. You have to write code twice.
0

Share this post


Link to post
Share on other sites
about the xbox using d3d remember the gamecube uses opengl + the ps2 can use it.
whats gonna be more of a sucess gc or xbox. every single study has said they will sell in this order of sales ps2 -> gc -> xbox
choosing d3d cause the xbox uses it aint a smart move.

>> Programmable GPUs and other advanced features are supported by directx, while we cannot say the same for opengl.<<

u could actually do these with opengl before u could with d3d, in fact name one feature that came out for d3d than opengl.

0

Share this post


Link to post
Share on other sites
quote:
Original post by DrKappa
[quote]Then, the same code works on all hardware, while shaders extensions provded by ati and nvidia for opengl aren''t compatible. You have to write code twice.


As of the EXT_vertex_shader extension, there is a relatively multi-platform extension for vertex programming. Assuming you''re reffering to vertex shaders (shader has more than one definition), and also assuming that both ATI and nVidia agree to support it (which is highly likely).
0

Share this post


Link to post
Share on other sites
what troubles me with this proposal is, like Zedzeek also said, that they arent aiming far enough.
Basically everything in there is just trying to resolve current problems, like mess with all the extensions, lack of shader language etc.
But in 1992 when OGL1.0 was finished, they looked much more far ahead. I mean where was consumer hardware that could do all that stuff in base GL then ? But we do have first iterations of hardware with programmable shaders now, so they are playing catchup game, and im afraid its not going to be enough.
For example, this proposal doesnt say anything about scenegraph or higher-order surfaces, both could potentially become hardware accelerated in very near future. Floating point framebuffers, displacement mapping and other methods of geometry compression etc... Im certain these will be included in DX as soon as hardware supports them.
In short, the presentation is a progress but it not by far sufficient to hold its own for another eight years.
0

Share this post


Link to post
Share on other sites
"For example, this proposal doesnt say anything about scenegraph or higher-order surfaces, both could potentially become hardware accelerated in very near future."

higher-order surfaces can and should be implemented using vertex programs, and new tesselation algorithms are constantly developed.
OpenGL is a rasterizer API, so a scenegraph won''t be included.
0

Share this post


Link to post
Share on other sites

  • Similar Content

    • By Toastmastern
      So it's been a while since I took a break from my whole creating a planet in DX11. Last time around I got stuck on fixing a nice LOD.
      A week back or so I got help to find this:
      https://github.com/sp4cerat/Planet-LOD
      In general this is what I'm trying to recreate in DX11, he that made that planet LOD uses OpenGL but that is a minor issue and something I can solve. But I have a question regarding the code
      He gets the position using this row
      vec4d pos = b.var.vec4d["position"]; Which is then used further down when he sends the variable "center" into the drawing function:
      if (pos.len() < 1) pos.norm(); world::draw(vec3d(pos.x, pos.y, pos.z));  
      Inside the draw function this happens:
      draw_recursive(p3[0], p3[1], p3[2], center); Basically the 3 vertices of the triangle and the center of details that he sent as a parameter earlier: vec3d(pos.x, pos.y, pos.z)
      Now onto my real question, he does vec3d edge_center[3] = { (p1 + p2) / 2, (p2 + p3) / 2, (p3 + p1) / 2 }; to get the edge center of each edge, nothing weird there.
      But this is used later on with:
      vec3d d = center + edge_center[i]; edge_test[i] = d.len() > ratio_size; edge_test is then used to evaluate if there should be a triangle drawn or if it should be split up into 3 new triangles instead. Why is it working for him? shouldn't it be like center - edge_center or something like that? Why adding them togheter? I asume here that the center is the center of details for the LOD. the position of the camera if stood on the ground of the planet and not up int he air like it is now.

      Full code can be seen here:
      https://github.com/sp4cerat/Planet-LOD/blob/master/src.simple/Main.cpp
      If anyone would like to take a look and try to help me understand this code I would love this person. I'm running out of ideas on how to solve this in my own head, most likely twisted it one time to many up in my head
      Thanks in advance
      Toastmastern
       
       
    • By fllwr0491
      I googled around but are unable to find source code or details of implementation.
      What keywords should I search for this topic?
      Things I would like to know:
      A. How to ensure that partially covered pixels are rasterized?
         Apparently by expanding each triangle by 1 pixel or so, rasterization problem is almost solved.
         But it will result in an unindexable triangle list without tons of overlaps. Will it incur a large performance penalty?
      B. A-buffer like bitmask needs a read-modiry-write operation.
         How to ensure proper synchronizations in GLSL?
         GLSL seems to only allow int32 atomics on image.
      C. Is there some simple ways to estimate coverage on-the-fly?
         In case I am to draw 2D shapes onto an exisitng target:
         1. A multi-pass whatever-buffer seems overkill.
         2. Multisampling could cost a lot memory though all I need is better coverage.
            Besides, I have to blit twice, if draw target is not multisampled.
       
    • By mapra99
      Hello

      I am working on a recent project and I have been learning how to code in C# using OpenGL libraries for some graphics. I have achieved some quite interesting things using TAO Framework writing in Console Applications, creating a GLUT Window. But my problem now is that I need to incorporate the Graphics in a Windows Form so I can relate the objects that I render with some .NET Controls.

      To deal with this problem, I have seen in some forums that it's better to use OpenTK instead of TAO Framework, so I can use the glControl that OpenTK libraries offer. However, I haven't found complete articles, tutorials or source codes that help using the glControl or that may insert me into de OpenTK functions. Would somebody please share in this forum some links or files where I can find good documentation about this topic? Or may I use another library different of OpenTK?

      Thanks!
    • By Solid_Spy
      Hello, I have been working on SH Irradiance map rendering, and I have been using a GLSL pixel shader to render SH irradiance to 2D irradiance maps for my static objects. I already have it working with 9 3D textures so far for the first 9 SH functions.
      In my GLSL shader, I have to send in 9 SH Coefficient 3D Texures that use RGBA8 as a pixel format. RGB being used for the coefficients for red, green, and blue, and the A for checking if the voxel is in use (for the 3D texture solidification shader to prevent bleeding).
      My problem is, I want to knock this number of textures down to something like 4 or 5. Getting even lower would be a godsend. This is because I eventually plan on adding more SH Coefficient 3D Textures for other parts of the game map (such as inside rooms, as opposed to the outside), to circumvent irradiance probe bleeding between rooms separated by walls. I don't want to reach the 32 texture limit too soon. Also, I figure that it would be a LOT faster.
      Is there a way I could, say, store 2 sets of SH Coefficients for 2 SH functions inside a texture with RGBA16 pixels? If so, how would I extract them from inside GLSL? Let me know if you have any suggestions ^^.
    • By KarimIO
      EDIT: I thought this was restricted to Attribute-Created GL contexts, but it isn't, so I rewrote the post.
      Hey guys, whenever I call SwapBuffers(hDC), I get a crash, and I get a "Too many posts were made to a semaphore." from Windows as I call SwapBuffers. What could be the cause of this?
      Update: No crash occurs if I don't draw, just clear and swap.
      static PIXELFORMATDESCRIPTOR pfd = // pfd Tells Windows How We Want Things To Be { sizeof(PIXELFORMATDESCRIPTOR), // Size Of This Pixel Format Descriptor 1, // Version Number PFD_DRAW_TO_WINDOW | // Format Must Support Window PFD_SUPPORT_OPENGL | // Format Must Support OpenGL PFD_DOUBLEBUFFER, // Must Support Double Buffering PFD_TYPE_RGBA, // Request An RGBA Format 32, // Select Our Color Depth 0, 0, 0, 0, 0, 0, // Color Bits Ignored 0, // No Alpha Buffer 0, // Shift Bit Ignored 0, // No Accumulation Buffer 0, 0, 0, 0, // Accumulation Bits Ignored 24, // 24Bit Z-Buffer (Depth Buffer) 0, // No Stencil Buffer 0, // No Auxiliary Buffer PFD_MAIN_PLANE, // Main Drawing Layer 0, // Reserved 0, 0, 0 // Layer Masks Ignored }; if (!(hDC = GetDC(windowHandle))) return false; unsigned int PixelFormat; if (!(PixelFormat = ChoosePixelFormat(hDC, &pfd))) return false; if (!SetPixelFormat(hDC, PixelFormat, &pfd)) return false; hRC = wglCreateContext(hDC); if (!hRC) { std::cout << "wglCreateContext Failed!\n"; return false; } if (wglMakeCurrent(hDC, hRC) == NULL) { std::cout << "Make Context Current Second Failed!\n"; return false; } ... // OGL Buffer Initialization glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT); glBindVertexArray(vao); glUseProgram(myprogram); glDrawElements(GL_TRIANGLES, indexCount, GL_UNSIGNED_SHORT, (void *)indexStart); SwapBuffers(GetDC(window_handle));  
  • Popular Now