[PD] How do I squeeze more performance out of Gem?
cyrille henry
ch at chnry.net
Thu Mar 10 09:22:05 CET 2011
hello,
i'm glad you find the bottleneck.
but that's what i was afraid of : 2 side lighting are baddly suported on new nvidia hardware (at least on linux).
(i mean : it's not only on my computer. it use to work fine).
But you should be able to get the same lighting with this option.
this option only force to compute color 2 time per pixel : not only for the visible face, but for both face of the object.
So, if you got different lighting result, you just have to reverse some light orientation.
i never test performances optimisation using shaders for light.
cheers
c
Le 10/03/2011 06:20, John Harrison a écrit :
> Ok so I did something stupid with the [GEMglLightModeli GL_LIGHT_MODEL_TWO_SIDE GL_FALSE] test which that I connected it to a [gemhead] instead of [gemhead 1]. When I corrected that I did find that indeed the performance changes drastically for the better. OTOH I couldn't get satisfactory lighting for my environment. It's a good technique for me to remember and I could probably make it work even for this project with enough experimentation of lighting sources and direction but...
>
> it seems clear to me on my system at least with GL_LIGHT_MODEL_TWO_SIDE set to its default GL_TRUE the bottleneck is the lighting and any gains with a display list or model are lost because of the lighting issue. However I'm finding that I get satisfactory performance and appearance by changing the sphere to have 10 segments instead of 30. With a 10 segment sphere I can make 1000 spheres and straight-line curves at 20fps at about 70% draw on a CPU core. That works for me! :-)
>
> I was curious if for a future project there might be a way I could make a shader that would emulate the local lighting effect and do it more efficiently. Serious exploration with shaders definitely needs to be in my future.
>
> In any case, thanks for all the help!
>
> -John
>
> On Wed, Mar 9, 2011 at 1:55 PM, cyrille henry <ch at chnry.net <mailto:ch at chnry.net>> wrote:
>
> with lighting on, things did not really change with the model or display list, but rendering sphere is 2 time slower.
>
> here is the sphere.
>
> Cyrille
>
> Le 09/03/2011 20:44, John Harrison a écrit :
>
> It appears I'm actually getting better results from [gemlist] too with lighting off. But how do your results change with lighting on? For me, with lighting on, they seem about the same.
>
> If you have your sphere.obj model with 900 triangles handy, I'd love to try it.
>
> -John
>
> On Wed, Mar 9, 2011 at 12:19 PM, cyrille henry <ch at chnry.net <mailto:ch at chnry.net> <mailto:ch at chnry.net <mailto:ch at chnry.net>>> wrote:
>
> here, at 20fps, no lighting, i can draw about 500 model with your sphere.obj.
> 1000 sphere 30, and about 3500 display list of sphere 30.
> using an other sphere.obj with about 900 triangles, i've got the same performance than with the display list.
>
> it really is strange that the sphere is the fastest on your computer.
>
> Cyrille
>
>
> Le 09/03/2011 19:08, John Harrison a écrit :
>
> Using Cyrille's test patch for speed which he sent into the list a week or so ago, I tried creating multiple spheres, gemlists, and models. The sphere is getting the best performance results, unfortunately. Attached is my test patch. I just connected [repeat] to either [sphere] [GEMglCallList] or [model] in the patch. The sphere model I used has probably got way too many points (just found it on the 'net) but my hope was that as the vertices were static it wouldn't matter.
>
> http://www.eecs.umich.edu/~guskov/eecs598-1/sphere.obj <http://www.eecs.umich.edu/%7Eguskov/eecs598-1/sphere.obj> <http://www.eecs.umich.edu/%7Eguskov/eecs598-1/sphere.obj>
>
>
> maybe one with less vertices will help. I can try...
>
> -John
>
> On Wed, Mar 9, 2011 at 9:48 AM, chris clepper <cgclepper at gmail.com <mailto:cgclepper at gmail.com> <mailto:cgclepper at gmail.com <mailto:cgclepper at gmail.com>> <mailto:cgclepper at gmail.com <mailto:cgclepper at gmail.com> <mailto:cgclepper at gmail.com <mailto:cgclepper at gmail.com>>>> wrote:
>
> A model is the way to go since the vertex data is static. Ideally for situations like this there would be one object that loads a single model and several clients that just call the display list. Although there is a lot of memory on GPUs now so 200 models of a sphere won't take up that much.
>
> On Wed, Mar 9, 2011 at 10:32 AM, John Harrison <johnharrisonwsu at gmail.com <mailto:johnharrisonwsu at gmail.com> <mailto:johnharrisonwsu at gmail.com <mailto:johnharrisonwsu at gmail.com>> <mailto:johnharrisonwsu at gmail.com <mailto:johnharrisonwsu at gmail.com> <mailto:johnharrisonwsu at gmail.com <mailto:johnharrisonwsu at gmail.com>>>> wrote:
>
>
>
>
>
> On Wed, Mar 9, 2011 at 1:59 AM, cyrille henry <ch at chnry.net <mailto:ch at chnry.net> <mailto:ch at chnry.net <mailto:ch at chnry.net>> <mailto:ch at chnry.net <mailto:ch at chnry.net> <mailto:ch at chnry.net <mailto:ch at chnry.net>>> <mailto:ch at chnry.net <mailto:ch at chnry.net> <mailto:ch at chnry.net <mailto:ch at chnry.net>> <mailto:ch at chnry.net <mailto:ch at chnry.net> <mailto:ch at chnry.net <mailto:ch at chnry.net>>>>> wrote:
>
> hello,
>
> - try using a display list to render a sphere, so that every point don't have to be send for every sphere.
> see exemple 09.openGL/02.displaylist
> you can also use a model with a sphere.obj to have the same result.
>
> if the spheres are all moving at once, would a display list still help? Seems like recompilation would have to happen for every sphere for every frame? I haven't tried the model yet...
>
> yes, the display list will help to render 1 single sphere.
> you have to call it 200 times.
>
>
> Ok I'm seeing a huge performance difference between using 200 of [sphere <size-doesn't-matter> 20] and [sphere <size-doesn't-matter> 30]. Huge. So if I want to keep the sphere with 30 points, I'm thinking gemlist or model are my answer. I'll try both and report back, unless you have a strong recommendation for one or the other to save me time.
>
> This list is awesome. Where else could I find help like this? :-)
>
> -John
>
> _______________________________________________
>
> Pd-list at iem.at <mailto:Pd-list at iem.at> <mailto:Pd-list at iem.at <mailto:Pd-list at iem.at>> <mailto:Pd-list at iem.at <mailto:Pd-list at iem.at> <mailto:Pd-list at iem.at <mailto:Pd-list at iem.at>>> mailing list
>
>
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>
>
>
>
>
>
> _______________________________________________
>
> Pd-list at iem.at <mailto:Pd-list at iem.at> mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>
>
>
>
> --
> John
> http://alumni.media.mit.edu/~harrison/
>
>
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
More information about the Pd-list
mailing list