Torque3D OpenGL Status
by Luis Anton Rebollo · in Torque 3D Professional · 02/24/2013 (1:33 pm) · 175 replies
I am working with BeamNG in port Torque3D to OpenGL. When finished there will be a merge with GG repository.
I will be updating this thread at least once a week.
Repository: Github.com/BeamNG/Torque3D/tree/dev_linux_opengl
* On Windows you need to check TORQUE_OPENGL option.
The problems of speed it was a few months ago were due to drivers. Sounds like a good OpenGL performance is linked to new cards/drivers. NVidia of Kepler architectures (Geforce 600-700) not sure on AMD.
I appreciate any donation to help the project.
.




I will be updating this thread at least once a week.
Repository: Github.com/BeamNG/Torque3D/tree/dev_linux_opengl
Status:
- Is a research & learn branch, lots of unfinised and ugly code. It will check and clean all code before repo merge with GG
- Basic Lighting & Advanced Lighting render correctly (more or less) all effects.
- There may be errors or differences with other implementations of OpenGL. They will be corrected later.
- No Oculus rift port to glsl.
How to compile:
* Use this manual.* On Windows you need to check TORQUE_OPENGL option.
Reporting bugs:
If possible, Github is a great place to post issues to a forum.Torque 3D Version:
This branch is based on Torque3D 3.5 development.OpenGL performance:
I check the code in a new Gerforce 750ti and T3D works just as fast in Opengl/Directx9.The problems of speed it was a few months ago were due to drivers. Sounds like a good OpenGL performance is linked to new cards/drivers. NVidia of Kepler architectures (Geforce 600-700) not sure on AMD.
I appreciate any donation to help the project.
.



About the author
I'm working on a port of Torque3D to OpenGL and Linux/SteamOS
#162
05/23/2014 (3:16 am)
Thank you very much for taking the time to review the commit :D
#163
Let me preface with a hearty thank you for all the hard work.
I am having a problem with OpenGL getting added to one of the adapters types. I am running on Windows 7 64 bit GeForce GTX 650. I passed the argument -openGL. And I also tried the options menu. It just doesn't show up as an option. DX9 and the null device are the only adapters that show up in the list. I cloned your OpenGL git repository.
Thank you Luis.
Sorry to be a bother.
05/27/2014 (8:46 pm)
Hey Luis,Let me preface with a hearty thank you for all the hard work.
I am having a problem with OpenGL getting added to one of the adapters types. I am running on Windows 7 64 bit GeForce GTX 650. I passed the argument -openGL. And I also tried the options menu. It just doesn't show up as an option. DX9 and the null device are the only adapters that show up in the list. I cloned your OpenGL git repository.
Thank you Luis.
Sorry to be a bother.
#164
05/28/2014 (8:32 am)
@luis just been looking at your instancing implementation, and I'm a bit confused. You seem to use a mix of glBindVertexBuffer & glVertexBindingDivisor, and glVertexAttribDivisor. But from what I understand only glVertexAttribDivisor is required to specify an advancing element. Is there any reason you went with this mixed approach?
#165
I sorta have a similar problem, OpenGL just won't seem to work on Windows, and when I try to load a level, it just crashes.
05/28/2014 (8:43 am)
@AntonyI sorta have a similar problem, OpenGL just won't seem to work on Windows, and when I try to load a level, it just crashes.
#166
I think your problem is my fault. :P
I just did not have added info on how to compile the branch. Apologies.
Try this manual and CHECK OPENGL OPTION.
@James.
Use only glVertexAttribDivisor.
glBindVertexBuffer/glVertexBindingDivisor are part of a try with OpenGL4 GL_ARB_vertex_attrib_binding implementation with VAOs, but i have lots of problems and never finished.
In future are going to by removed and replaced with a shader storage buffer version (bye bye vertex buffers).
@Chis.
Thx for test.
Can you follow this github.com/LuisAntonRebollo/Torque3D/wiki/Reportingissues. I need more infor for solve your problem.
05/28/2014 (9:28 am)
@AntonyI think your problem is my fault. :P
I just did not have added info on how to compile the branch. Apologies.
Try this manual and CHECK OPENGL OPTION.
@James.
Use only glVertexAttribDivisor.
glBindVertexBuffer/glVertexBindingDivisor are part of a try with OpenGL4 GL_ARB_vertex_attrib_binding implementation with VAOs, but i have lots of problems and never finished.
In future are going to by removed and replaced with a shader storage buffer version (bye bye vertex buffers).
@Chis.
Thx for test.
Can you follow this github.com/LuisAntonRebollo/Torque3D/wiki/Reportingissues. I need more infor for solve your problem.
#167
EDIT: Figured out the problem. Turns out I wasn't binding the vertex attribute since the vertex format used when creating the shader wasn't including the instanced format.
05/29/2014 (8:45 am)
@Luis figured as much. Though personally I have yet to get instancing actually working in my version (not dev_linux_opengl). It seems the transform data is no getting through to the shader even though I setup the transform values buffer in the vertex attribute. Unfortunately as with most things in OpenGL land this is almost impossible to debug. Very strange! :(EDIT: Figured out the problem. Turns out I wasn't binding the vertex attribute since the vertex format used when creating the shader wasn't including the instanced format.
#168
Updated dev_linux_opengl to Torque3D development branch.
Remember we need to use CMake for activate OpenGL.
06/08/2014 (7:35 am)
Quote:Figured out the problem@James, :D
Updated dev_linux_opengl to Torque3D development branch.
Remember we need to use CMake for activate OpenGL.
#169
I'm working on a thin layer that abstracts OpenGL version and the differences between basic/important ARB extensions. Will be useful for future OpenGL ES port
Will be based on OpenGL 4.5 with direct state access, no more bind to modify.
I hope to have it finished next week.
08/24/2014 (2:28 am)
Hi all :)I'm working on a thin layer that abstracts OpenGL version and the differences between basic/important ARB extensions. Will be useful for future OpenGL ES port
Will be based on OpenGL 4.5 with direct state access, no more bind to modify.
I hope to have it finished next week.
#170
08/24/2014 (2:51 pm)
Sounds fantastic! Can't wait to see it in action :).
#171
08/25/2014 (5:38 am)
Hmm OpenGL 4.5? Maybe I am missunderstanding what this means, but the Linux port of Torque3D already has issues running on Intel cards due to the mesa drivers not supporting a sufficiently high version of OpenGL... if it was to be increased further, Gallium3D AMD drivers (and possibly catalyst AMD drivers) might also be cut out for the time being leaving only the Nvidia binary ones.
#172
08/25/2014 (10:03 pm)
Most useful situation would be two layers. 3.2 core and 4.5. Mac also has this problem of needing older GL versions.
#173
Pushed a fix to github.com/BeamNG/Torque3D/tree/dev_linux_opengl for resolve problem with normal maps.
08/31/2014 (9:50 am)
@Julius, we are continue using OpenGL 3.2 but using a layer similar to OpenGL 4.5 interface.Pushed a fix to github.com/BeamNG/Torque3D/tree/dev_linux_opengl for resolve problem with normal maps.
#174
09/03/2014 (1:08 pm)
Ok great, lets hope the intel mesa drivers catch up to OGL3.2 at some point.
#175
if someone want to test it... http://forums.torque3d.org/viewtopic.php?f=15&t=148#p1175
05/04/2015 (11:13 am)
Torque 3D 3.7rc Linux and OpenGL support.if someone want to test it... http://forums.torque3d.org/viewtopic.php?f=15&t=148#p1175
Associate James Urquhart