free software for debugging shaders - debugging

Are there any free software tools to debug GLSL shaders?

Try glslDevil

Just adding this answer for future readers:
On OS X, if you have the Developer Tools installed (a free download for the most current OS version), one of the many tools aside from Xcode is the OpenGL Shader Builder which :
[...] is a tool for developing and debugging programs for the graphics processing unit (GPU). It can help you visualize and preview shader objects without the complexity of surrounding code.
[...] You can use the shader builder with programs written with OpenGL Shading Language or with older-style ARB vertex and fragment programs. OpenGL Shader Builder also supports geometry shaders, a recent addition to the OpenGL specification.
Emphasis added

Related

Which version of OpenGL is supported by WebGL?

I am in the process of reading WebGL and going through some tutorials .
But I think I had to learn OpenGL explicitly in order to work with WebGL more efficiently.
But there are many versions of OpenGL and this wiki link shows that WebGL uses OpenGL 2.0 but the latest version of OpenGL is 4.5 .
Can anybody suggest how to know which version of OpenGL is supported through some script in WebGL ,if possible.
WebGL is based on the OpenGL ES 2.0 API, however, there are some limitations they have adopted for increased availability.
The APIs of (modern) OpenGL, OpenGL ES, and WebGL, while not the same, are all closely related. If you know one, the usage of the other two is quite similar. In fact, you may be able to reuse a large amount of code between the three. So, knowing OpenGL would certainly help you implement a WebGL application, however, learning WebGL first is also plausible.
WebGL is not based on OpenGL. It is based on OpenGL ES 2.0. The same OpenGL ES found on Android and iOS.
There's significant differences between OpenGL and OpenGL ES. While OpenGL ES is a subset of OpenGL it is missing the old deprecated fixed function pipeline that so many people continue to use and so many outdated tutorials (like Nehe GL, still teach)
What's the fixed function pipeline? Anything having to do with glVertex, glColor, glNormal, glLight, glPushMatrix, glPopMatrix, glMatrixMode, etc... in GLSL using any of the variables that access the fixed function data like gl_Vertex, gl_Normal, gl_Color, gl_MultiTexCoord, gl_FogCoord, gl_ModelViewMatrix and the various other matrices from the fixed function pipeline.
Those are all removed from OpenGL ES 2.0 and therefore don't exist in WebGL
WebGL is based on OpenGL-ES 2.0

How to setup Development environment in Netbeans Windows OPENGL.?

I am trying to develop one sample opengl 3D application using Netbeans with MingW.
How to compile opengl sample code in netbeans.?
what is shader language(GLSL) in opengl.?
Can i run GLSL code in netbeans.?
How to compile opengl sample code in netbeans?
Just like any other program as well. Only addition is, that you must configure the OpenGL API interface library as another dependency. Since you didn't specify which language you use I can not tell you how it's named. For regular Windows programs written in C or C++ the name is opengl32.lib and it's part of the standard compiler environment.
Netbeans is a Java IDE, so I suppose you want Java. Then the de-facto standard binding library would be LWJGL.
what is shader language(GLSL) in opengl?
The programming language in which shaders are written. Shaders are programs that are executed by the GPU for every primitive and pixel drawn to the framebuffer. GLSL compilation is done by the OpenGL driver, your program just passes the GLSL code into a function of OpenGL, namely glShaderSource
Can i run GLSL code in netbeans?
No because GLSL is not a regular programming language that produces executables you'd "run" in the classical sense.

OpenGL software rendering alternatives

I need to software render OpenGL in Windows and have already found about Mesa3D, which doesn't provide DLLs and I'm having some pain to build... Are there alternatives available?
That depends on what OpenGL version you wish to accelerate. Depending on your needs, there are some alternatives available. I've listed those I'm aware of below:
OpenGL 1.0 & 1.1
Windows (since Windows NT 3.5) actually includes an OpenGL software implementation to begin with. If you haven't installed any other software rasterizer, this ought to be your default implementation. The Microsoft software rasterizer supports either OpenGL 1.0 or 1.1, depending on your platform, but will not accelerate anything newer than that. If your desired OpenGL version is covered by 1.0 or 1.1 (however unlikely), the solution should be sufficient. I'm unsure as to what extent the default Windows OpenGL software implementation covers the OpenGL ES 1.x frameworks through its OpenGL 1.0 or 1.1 support.
OpenGL 1.4
Furthermore, in Windows Vista, Microsoft included an emulation layer which may translate OpenGL into Direct3D; thus supporting up-to OpenGL 1.4. Additionally, this should mean that Windows Vista (and up?) runtimes may accelerate most parts of OpenGL SC. I've never used this emulator myself, and was quite surprised to hear about it, but it may be of interest to someone having to run one of these old frameworks in a Windows environment.
Note that the standard Windows OpenGL software rasterizer (OpenGL 1.0 or 1.1) is also included in Windows Vista and above.
OpenGL ES 2.0
Additionally, there's the ANGLE project which accelerates WebGL and OpenGL ES 2.0 by translating OpenGL ES 2.0 invocations to DirectX 9 and 11. Their development notes also mention that an OpenGL ES 3.0 solution is in the works. Never having used ANGLE, I cannot offer a verdict.
OpenGL 3.1
In addition to those mentioned above, Mesa 3D (which supports up to OpenGL 3.1) feature three software implementations:
swrast
softpipe
llvmpipe
Since I know very little of swrast (the original Mesa project software rasterizer) and softpipe (a reference driver) I'll refrain from going into these. The third implementation, llvmpipe, and probably the one that may interest you the most, is a high-speed software implementation that uses multithreading and JIT compilation to speed up simulation with native- and SIMD instructions.
I have used Swiftshader from Transgaming for a production project before and I must say, it was brilliant. A tad costly, but brilliant.
As far as I've searched, the only other option is using WebGL software renderer, that as of today only Chrome supports. Direct3D has the reference driver (which is really unstable) and Swiftshader, which is good and expensive.
After some more headaches I managed to build Mesa3D for Windows, but only an old version which had still some support for it. At least, it has an awesome performance.

Using OpenGL ES on the Mac

Is it possible and not too complicated to use OpenGL ES for OS X development. I have been writing Mac applications for three years now and I am ready to start learning about OpenGL, but I want use OpenGL ES because there is a lot of information about using it with Xcode and Objective-C and from some of the code samples I found it seems easier to learn than the full OpenGL.
Thanks!
OpenGL-ES 1.1 is a true subset of OpenGL-2, ES-2 is a subset of OpenGL-3, the main difference is, how the context is created and managed. However context creation and management happen outside of OpenGL actually. So as long as you stick to OpenGL-ES, minus extensions specific to ES (i.e. OES extensions) you can do with an ordinary OpenGL context of the right version.
There are OpenGL-ES compatibility profiles, but those just disable functionality, don't add new one.

Free OpenGL-accelerated GNUPlot-like tool for Mac OS X?

I am using GNUplot to plot large volumes of data that I want to visualize in 3D - e.g., using the pm3d option. This is very slow rendering in software - is there free software that will do this using OpenGL or something?
ROOT will do this.
This beast is one of the major analysis and visualization tools used in the nuclear and particle physics communities these days. It can move a lot of data fast, and has fairly sophisticated set of visualization tools, and supports OpenGL. You can do the work in compiled c++ code, in the cint interpreter, or using the python bindings.
The big downside is that you may have to read a lot of documentation before you're ready to begin.

Resources