[[BackLinksMenu]] [[TicketQuery(summary=GROUP_SCENES_R2, format=table, col=summary|owner|status|type|component|priority|effort|importance, rows=description|analysis_owners|analysis_reviewers|analysis_score|design_owners|design_reviewers|design_score|implementation_owners|implementation_reviewers|implementation_score|test_owners|test_reviewers|test_score|)]] = Analysis = == Overview == This task should improve the hardware part of the scenes implementation. == Task requirements == * Document the committed code in the second_resource_refactoring branch in some nice place. * Design and implement an efficient algorithm for performing scene effects in the JOGL implementation of the Scenes. * Implement 1-2 sample effects like shadow and blur if possible. * Try to fix the .so, .dll problems or at least propose how to deal with this problem. * Improve the SceneDemoTest to have effects. * Rename SceneDemoTest to a more clever thing (: * Coach meddle some JOGL (: * Add demos for JOGL usage. == Task result == * Working and demo-able scene effects in the JOGL implementation. * Improved and renamed SceneDemoTest with effects. * JOGLy enlightened meddle. * Documentation of the done work from previous revisions and this one also. == Implementation idea == * Use FBOs. * Use shaders. * Upload all buffers in FBOs in VRAM and manipulate them there. == Related == [wiki:GROUP_SCENES_R0] [wiki:GROUP_SCENES_R1] == How to demo == * Show the improved SceneDemo with effects. * Run Sophie with some effects (this is mostly independent from this task because a runnable Sophie is other people's tasks (:) = Design = * offscreen rendering * FBO * FBODemo * shaders * JoglShaderProgram * /resources/shaders * ShaderDemo * /resources/test-shaders * ElementHelpers refactoring: * getEffectiveVisibleArea * getEffectiveResponsibleArea * SceneEffects * ImmArea getVisibleArea(ImmArea sourceArea) * ImmArea getResponsibleArea(ImmArea sourceArea) * void applyTo(GL2 gl, ImmMatrix effectiveTransform) * Misc * SceneUtil -> JoglSceneUtil * GL2 instead of GLAutoDrawable = Implementation = ^(Describe and link the implementation results here (from the wiki or the repository).)^ = Testing = ^(Place the testing results here.)^ = Comments = * what about PBOs and video? Uploading asynchronously the video to textures in VRAM could be much faster? * what about having two Scenes and the same TextureRegistry? Resizing one Scene will destroy texture bindings of the first scene?