Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Mimic DirectX11 Binding System in OpenGL.


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
4 replies to this topic

#1 BornToCode   Members   -  Reputation: 936

Like
1Likes
Like

Posted 21 May 2013 - 01:01 AM

I guess the topic says it all. I am working on a wrapper which looks very similar to DX11 but uses OpenGL in teh backend instead. I am trying to simulate the Binding system that directX11 uses in OpenGL. Currently the way i am doing it is that if you want to use the same resource for different stages in the pipeline i find myself duplicating the buffers for each Bind instead of reusing the same Index, and whenever one of the index change it updates all the other buffers to match the data in the one that change. I am just posting this to see if anyone might have a better idea on how to approach this, or if this will be even possible under opengl since each resource can only be mapped to an single object type.



Sponsor:

#2 TheChubu   Crossbones+   -  Reputation: 4583

Like
0Likes
Like

Posted 21 May 2013 - 01:45 AM

No idea but it sounds like an interesting project.


"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

 

My journals: dustArtemis ECS framework and Making a Terrain Generator


#3 dmatter   Crossbones+   -  Reputation: 3262

Like
0Likes
Like

Posted 21 May 2013 - 06:47 AM

Not sure I entirely understand the specific issue, but I can at least say that Valve wrap OpenGL in the same way. If that's any help.

Edited by dmatter, 21 May 2013 - 06:47 AM.


#4 Hodgman   Moderators   -  Reputation: 31186

Like
0Likes
Like

Posted 21 May 2013 - 07:04 AM

What part of the D3D11 behaviour are you trying to implement exactly? "The binding system" is a bit vague. From the sounds of it, you're specifically looking for D3D11's concept of a "view", to allow one bit of memory to be interpreted as different kinds of objects?



#5 BornToCode   Members   -  Reputation: 936

Like
0Likes
Like

Posted 21 May 2013 - 07:49 AM

What part of the D3D11 behaviour are you trying to implement exactly? "The binding system" is a bit vague. From the sounds of it, you're specifically looking for D3D11's concept of a "view", to allow one bit of memory to be interpreted as different kinds of objects?

That is correct Hogman. I am trying to implement the whole view concept of D3D11. But like i said in OpenGL there is no way to create a buffer and interpret that buffer as multiple different type of resource since you usually have to define the buffer type in glBindBuffer. So to get around that right now, i am duplicating the resource for n binds. Then whenever any of the bind index change it updates all the other binds. Also i end up with duplicating resources which i am trying to avoid. The other option would be to copy the resource to some system memory. Then before binding a resource to a stage i can change the resource type and resource and access it that way. Doing it in Software is not a problem, I mean the hardware supports it, otherwise directx11 would not be able to do it, but for opengl that is not exposed. That is the thing i hate with closed API. Why not just give us straight access to the hardware like Carmack says in one of this interviews.

 

Not sure I entirely understand the specific issue, but I can at least say that Valve wrap OpenGL in the same way. If that's any help.

What i am actually doing is a writting a 3D Api that looks identical to DirectX11. But what makes it better than DirectX in my opinion is that it is an Header Only and it is build around an Plug in system. Right now i am writting the opengl renderer pluging for it. The whole purpose of this project is that it will be used in my engine, also it will be open source and hopefully someone will be able to write a plugin for ps4 and the next xbox. So whenever someone wants to use the API they do not need an bunch of libraries and headers. All they need is the Beast.h header which contains all the interfaces definitions that needs to be implemented by whoever is implementng the plugings. So at the end you have one code that can be plug to any renderer writting withing the contraint of the provided interface. The interface is also written with extension in mind. Also Valve system is alot easier to implement since their implementation is based of the direct x 9 api which had no concept of Views.


Edited by BornToCode, 21 May 2013 - 08:19 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS