GeeXLab 0.3.0 Released, Geometry and Tessellation Shaders, Live Coding (***Updated: v0.3.2***)
- 1 – GeeXLab 0.3.0 Overview
- 2 – GeeXLab 0.3.0 Download
- 3 – What is GeeXLab?
- 4 – GeeXLab 0.3.0 Changelog
1 – GeeXLab 0.3.0 Release Highlights
Two versions a year, it’s not bad! GeeXLab 0.3.0 is the second update of 2011 but comes with two major new things.
First, the support of geometry and tessellation shaders has been added. Then you can now use all shader stages of the rendering pipeline:
VS > TCS > TES > GS > PS
where VS = vertex shader, TCS = tessellation control shader, TES = tessellation evaluation shader, GS = geometry shader and PS = pixel (or fragment) shader (see HERE for more details about the rendering pipeline).
Vertex and pixel shaders are available since OpenGL 2. Geometry shaders have been added with OpenGL 3 and tessellation shaders are one of the new features of OpenGL 4.
Tessellation is possible in GeeXLab via the compatibility profile (see Core And Compatibility in Contexts). In short the compatibility profile allows to mix old OpenGL functionalities (OpenGL < 3) with modern OpenGL functionalities (OpenGL >= 3). Compatibility profile is a blessing because it makes it possible to quickly integrate and support latest OpenGL features in applications that have been created before modern OpenGL era. We can now control the transistors that form the tessellation engine of the GPU and that’s the important thing 😉
The following picture shows a tessellated sphere in GeeXLab:
I will post later an article about how use tessellation and geometry shaders in OpenGL / GeeXLab.
The second important feature is the adding of live coding support. Live coding allows you to tweak the scene in an interactive manner: you change one character in one of the live coding boxes and you immediately get the feedback. Live coding is available for scripting (Python and Lua) as well as for GLSL shaders. And I can tell you, live coding is really coooool!
Live coding in a tunnel demo
Full live coding (scripts + shaders) is a feature of the Ultim8 version (or PRO version). However, the Free version allows you to play with the live coding of the first GLSL program of the scene. Enough in many situations…
2 – GeeXLab 0.3.2 Download
You can download GeeXLab here:
GeeXLab 0.3.2 – Win32 installer / setup:
Remark: two versions are packed in the installer: GeeXLab_Lua and GeeXLab_Python_Lua. The version of GeeXLab with Python support requires the Python 2.6 32-bit installer (or Python 2.7 32-bit installer or Python 3.2 32-bit) even on 64-bit OSes.
The code samples pack is available HERE.
Shader library is available HERE.
All GeeXLab news including tutorials and demos: GeeXLab News.
For Twitter addicts, you can follow GeeXLab tweets here: @GeeXLab.
3 – What is GeeXLab?
GeeXLab is a tool (we can call it a demotool) for quick coding and prototyping of real time 3D scenes. GeeXLab can be seen as a real time 3D scene browser (like Firefox for html scripts). You code your 3D scene in one or several source code files, you load the main scene file in GeeXLab and GeeXLab displays the scene. That’s all. GeeXLab language uses a simple mixture of XML, Lua and/or Python and GLSL. All rendering is done with the OpenGL API. For an overview of GeeXLab, just read this article.
4 – GeeXLab 0.3.0, 0.3.1 and 0.3.2 Changelogs
GeeXLab 0.3.2 changelog (2011.11.11)
- Bugfix: max window width and heigth were limited to 1024 pixels due to a modification in GeeXLab 0.3.0
GeeXLab 0.3.1 changelog (2011.10.31)
- Bugfix: openctm.dll caused some crashes from time to time at GeeXLab startup. OpenCTM lib is now included in the 3D engine.
GeeXLab 0.3.0 changelog (2011.10.25)
- New: added support of live coding in GPU shader programs (free and pro versions, free version limited to one GLSL shader program) as well as in Python and Lua scripting (pro version only).
- New: added SetTessellationState() to HYP_Mesh lib (Python, Lua). To use in conjunction with tessellation shaders.
- New: added tessellation boolen attribute to mesh node (xml).
- New: added support of tessellation shaders (with OpenGL 4 compatibility profile).
- New: added support of geometry shaders.
- New: added HYP_UniformBuffer lib (Lua).
- New: added AllocVertexStream(), FreeVertexStream(), FreeAllVertexStreams(), SetVertexStreamElement() and UpdateVertexStreamUniformBuffer() to HYP_Object lib (Lua).
- New: added AddUniformBuffer() and ClearAllUniformBuffers() to HYP_GpuProgram (Lua).
- New: added SetUniform_4x4f_CameraViewMatrix and SetUniform_4x4f_CameraProjectionMatrix to HYP_GpuProgram lib (Lua and Python).
- New: added PixmapFullUpdate() to HYP_Texture lib (Lua).
- New: added filtering_mode attribute to attach_texture_color element of render_texture node (xml).
- New: added DisplayMouseCursor() in HYP_Input lib (Python and Lua).
- New: added DrawConsoleMessages() to HYP_Utils lib (Lua).
- New: added RenderShadowVolumeDebug(), SetShadowVolumeLengthDebug() and RenderShadowVolumeSilhouetteDebug() to HYP_Mesh (Python , Lua).
- Change: in Ultim8 version, more screen resolutions in the startup box.
- Updated with Lua 5.1.4.
- Updated Python 2.7.2 and Python 3.2.
- Updated ZoomGPU (used by HYP_ZoomGPU lib, Python and Lua).
- Updated oZone3D engine (GLEW 1.7.0, FreeImage 3.1.5).
- Change: updated PhysX plugin with PhysX SDK 18.104.22.168.
- Removed: dump_lua_vm_stack attribute of scene node (XML).
- Removed: ShowMouseCursor and HideMouseCursor functions from HYP_Input lib (Python and Lua).
- Bugfix: fixed a multi-threading bug that hung GeeXLab during the shutdown stage from time to time.