cinder / Cinder

Cinder is a community-developed, free and open source library for professional-quality creative coding in C++.
http://libcinder.org
Other
5.34k stars 945 forks source link

glNext: gl::Batch::AttributeMapping by location ID #805

Closed BanTheRewind closed 9 years ago

BanTheRewind commented 9 years ago

Please look here:

https://github.com/BanTheRewind/Cinder/blob/glNext_DeferredInstanced/samples/_opengl/DeferredShadingAdvanced/src/DeferredShadingAdvancedApp.cpp#L199-L216

I'm trying to use a mat4 as a per instance attribute. In vanilla OpenGL, this is done on the CPU side using four vertex attributes. I would get the location of the mat4, then increment by one for each set of four floats. But because the second in AttributeMapping must be a string, I can't set my locations using Cinder's API. It would be nice to have the option to map CUSTOMn attributes to GLints

ryanbartley commented 9 years ago

This functionality is in progress. It is a part of a larger update that I'm almost finished with. Should be able to pr on Tuesday.

BanTheRewind commented 9 years ago

Thanks much.

In trying to optimize shadows for the deferred engine, I found that a shadow caster geometry pass with a shadow map is really the best way to go. Single-pass techniques yielded only marginal performance gain and had some limitations that made them hard to look good. As long as I have to draw shadow casters twice, I may as well do it efficiently. :)

I also have the deferred shading advanced sample running in the Rift. So I'll be switching a lot of stuff to instanced.

Anywho... just wanted to share what the use case is here. Looking forward to he update.

On Sat, Apr 4, 2015 at 12:53 PM, Ryan Bartley notifications@github.com wrote:

This functionality is in progress. It is a part of a larger update that I'm almost finished with. Should be able to pr on Tuesday.

Reply to this email directly or view it on GitHub: https://github.com/cinder/Cinder/issues/805#issuecomment-89650292

BanTheRewind commented 9 years ago

Hey, just wondering how this is going. I'm wrapping up my last few optimizations on the DeferredShadingAdvanced sample. I just have a few performance tweaks on the bloom and AO passes before I move onto instanced drawing. Then I can finally call this one good. :)

On Sat, Apr 4, 2015 at 1:41 PM, Stephen Schieberl bantherewind@gmail.com wrote:

Thanks much.

In trying to optimize shadows for the deferred engine, I found that a shadow caster geometry pass with a shadow map is really the best way to go. Single-pass techniques yielded only marginal performance gain and had some limitations that made them hard to look good. As long as I have to draw shadow casters twice, I may as well do it efficiently. :)

I also have the deferred shading advanced sample running in the Rift. So I'll be switching a lot of stuff to instanced.

Anywho... just wanted to share what the use case is here. Looking forward to he update.

On Sat, Apr 4, 2015 at 12:53 PM, Ryan Bartley notifications@github.com wrote:

This functionality is in progress. It is a part of a larger update that I'm almost finished with. Should be able to pr on Tuesday.

— Reply to this email directly or view it on GitHub https://github.com/cinder/Cinder/issues/805#issuecomment-89650292.

ryanbartley commented 9 years ago

I got hindered this week due to work. I'm finishing up what appears to be a bug in amd gpus. When that's solved today, it should be ready to go.

BanTheRewind commented 9 years ago

Awesome, thanks much!

On Sat, Apr 11, 2015 at 2:45 PM, Ryan Bartley notifications@github.com wrote:

I got hindered this week due to work. I'm finishing up what appears to be a bug in amd gpus. When that's solved today, it should be ready to go.

Reply to this email directly or view it on GitHub: https://github.com/cinder/Cinder/issues/805#issuecomment-91932250