Hello Michael and Carsten, I'm also interested in this topic and would like to ask if you have found a solution to the problem.
Additionally, do you have any idea if it is possible to use the DepthPeelingStage in conjunction to the DefferedShadingStage? Best, Johannes On 02.04.2015 16:40, Carsten Neumann wrote: > Hello Michael, > > On Thu, Apr 2, 2015 at 8:28 AM, Michael Raab <michael-r...@gmx.de> wrote: >> for deferred shading purposes I would like to separate opaque from >> translucent objects as I would like to render translucent objects in a >> separate forward pass after the deferred shading phase for opaque objects. >> If I investigated that correctly, after the call to recurseFromThis() in >> DeferredShadingStage::scheduleGBufferPass() the active partition should hold >> two filled lists of functors, an opaque and a translucent one. >> I thought of the following sequence: >> 1.) Copy the current partition (including the mentioned lists) >> 2.) Clear translucent list from active partion >> 3.) Clear opaque list in cloned partition >> 4.) Schedule shading pass >> 5.) Push cloned partition >> 6.) Draw the 3 partitions in sequence >> >> The things that need to be implemented from my point of view should be: >> - a clone function for partitions >> - a push-method using partion pointers >> - clear functions for opaque and translucent functor list >> >> Do you see any problems I'm not aware of? Did I miss something? > > hmm, IIRC RenderPartitions are allocated off of pools to avoid having > to hit the system memory allocated too often and to allow for reuse of > the storage allocated by their members (e.g. allow reuse of any > std::vectors they contain) and in general requesting a new partition > also sets it up to be rendered. > The lists of opaque and translucent objects are subtrees of the > DrawTree that the partitions build up when traversing the scene. The > nodes of the DrawTree are also allocated from pools (usually quite a > few DrawTreeNodes are needed each frame) and probably don't have > existing API to duplicate them (especially duplicate them on a > different pool). > I guess it's possible to do what you are describing, there are some > details (like the pool allocation) that may need some working around. > > Cheers, > Carsten > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 _______________________________________________ Opensg-users mailing list Opensg-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensg-users