Gl multiple render targets and/or geometry shader feedback loops
Hello. Has anyone been able to get geometry shader GPU-only feedback loops in Max 6? Meaning, the ability to generate data in a geometry shader and then use that same data on the next render pass *and* that data stays on the GPU…its isn’t passed back to the CPU.
This might be related to multiple render targets. I’m now to this place in the rabbit hole…and particle systems.
It would help to know the GLSL version supported by Cycling. I asked but was
unable to get a response in the Jitter forum. I did some testing using the
"# version YYY" command that goes inside the shader. For example, version 1.2
of GLSL would be "120" for YYY. If that is all that is supported, then the
GLSL is 8 years out of date according to this page of GLSL releases:
My testing indicates that "120" (Open GL v. 2.1) is supported. If someone knows
something to the contrary, please let us know. I think feedback loops through
buffer handling may be possible within the GPU with the later GLSL releases, but
I am not positive of this.
@diablodale: I noticed on an older message that you stated:
"Max 6.1 and earlier do not support tessellation shaders. They only supportGLSL is 1.2. You might be able to get features of higher levels of GLSL using the "#extension GL_xxxxx : enable" statement in a shader."
I found only one example on the web of such use in Max but I am sure there are others.
Andrew Benson created an explosion effect and he includes #extension GL_EXT_geometry_shader4 : enable
to use a geometry shader.
I would like to try what you are requesting, but the above leads to the question: how does one
know what extensions to put in a JXS shader based on the GLSL syntax required to achieve an
effect? For instance, the above GL_EXT extension should handle any GLSL syntax that is involved
with geometry shading. However, there are hundreds of extensions possible. Is it a matter of which
are supported by my Nvidia card? If so, I have the GLSL 4.1 pdf manual (this is what is supported
on my card) but I am still unsure of what #extensions to put in a JXS based on capability within the language.
I tried "#extension all: enable" but Max didn’t like that – that might have been a perfect solution.
The OpenGL Extensions Viewer certainly helps to know what is supported in a general way.