{"push_id":3065159088,"size":5,"distinct_size":4,"ref":"refs/heads/ge_render_data","head":"9961bcfdc175d9605752d3426b36e991bf70516e","before":"a63b938ff3881c8ed08751caef16ae9453bf801f","commits":[{"sha":"ec5cd72cc88951946d7418c6490f906576d68c75","author":{"name":"tristan","email":"2be88ae07a73b8c2a75656d36b1412903f7f78b8@upbge.org"},"message":"UPBGE: Refactor texture renderers and fix planar and stereo.\n\nOne common issue of the texture renderer is the management of multiple\nviewports (as for stereo). For renderer as cube map it doesn't matter\nbecause none data from the viewport (view, projection) is used for the\ncube faces, but planar does. Planar renderer use the camera of the\ncurrent viewport to figure out a mirror view matrix and use a projection\nmatrix near to the one of the viewport.\n\nIn case of stereo a planar renderer must be rendered twice for the both\nstereo viewports. Previously it was achieved by separating the planar\nin dependant renderer category and render this category in each viewport\nrender (RenderCamera function), but it implies to interrupt the render\nof the viewport by unbinding its off screen.\nAlso in futur it would be interesting to create all the render data\nand execute all the renders after without determining for who the\nrasterizer is rendering.\n\nAt first point, the planars will all be rendered before the viewport\nand use unique textures that will be selected in the viewport rendering.\nEach of these textures are stored by layers (RAS_TextureRenderer::Layer)\nwhich contain the render faces (Face class). Two situations are\npossible:\n- the renderer shares its layers along viewport, only one layer is\n  available.\n- the renderer use a unique layer per viewport.\n\nThe function RAS_TextureRenderer::EnsureLayers constructs the layers\nif needed and return the usage of the layers : shared or unique.\n\nWhen a layer is created, its constructor create a new GPUTexture\nusing the bind code from GPU_create_gl_tex and passing it to\nGPU_texture_from_bindcode. Finally the texture is attached to the\nframe buffers of the faces.\n\nThe renderer manager proceed the rendering per renderer, then per layer,\nthen per face. The render data changed to support this system.\nFirst of all the camera data are now stored in the scene render data\nand not per frame data. Also they are organized per eyes and frame\ndata use a list of eyes to specify which cameras could be rendered\nfor a frame. Each camera render data stores an unique index, this\nindex is used as renderer layer index.\nWhen rendering, the camera data index is passed to RAS_BucketManager::Renderbuckets\nwhich is used in fonction PrepareBuckets and KX_BlenderMaterial::Prepare\ncalling for each texture ApplyRenderer. This last function, in case\nof renderer, get the bind code of the renderer depending on the\nviewport index and copy this bind code for the next texture binding.\n\nFinally the texture users are not needed anymore in RAS_TextureRenderer\nas the renderer now create themselves the textures and changing the\nmipmapping or the anisotropic filtering explicitly call the recreation\nof the textures now.","distinct":false,"url":"https://api.github.com/repos/UPBGE/blender/commits/ec5cd72cc88951946d7418c6490f906576d68c75"},{"sha":"26d7ad0dcc845e2c063df62f22bd43e7f046d6c5","author":{"name":"Porteries Tristan","email":"bc4c45b520458c245d6c1c76f422f9a22df3d4ad@gmail.com"},"message":"init\n\nAvoid temporary camera for shadows.\n\ntemp\n\ntemp\n\ntemp","distinct":true,"url":"https://api.github.com/repos/UPBGE/blender/commits/26d7ad0dcc845e2c063df62f22bd43e7f046d6c5"},{"sha":"8cf33638dc440944257492a6dcbdb92705dc9529","author":{"name":"Porteries Tristan","email":"bc4c45b520458c245d6c1c76f422f9a22df3d4ad@gmail.com"},"message":"temp","distinct":true,"url":"https://api.github.com/repos/UPBGE/blender/commits/8cf33638dc440944257492a6dcbdb92705dc9529"},{"sha":"be1a1b119eeb6b8ace7ecc7e7a54c4f19b4f859e","author":{"name":"Porteries Tristan","email":"bc4c45b520458c245d6c1c76f422f9a22df3d4ad@gmail.com"},"message":"temp","distinct":true,"url":"https://api.github.com/repos/UPBGE/blender/commits/be1a1b119eeb6b8ace7ecc7e7a54c4f19b4f859e"},{"sha":"9961bcfdc175d9605752d3426b36e991bf70516e","author":{"name":"tristan","email":"2be88ae07a73b8c2a75656d36b1412903f7f78b8@upbge.org"},"message":"Fix planar matrix and clip plane.\n\nApply matrix before setting clipping plane.","distinct":true,"url":"https://api.github.com/repos/UPBGE/blender/commits/9961bcfdc175d9605752d3426b36e991bf70516e"}]}
{"actor":{"display_login":"panzergame"}}