-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update internal texture formats used by gpu lidar #468
Conversation
Signed-off-by: Ian Chen <ichen@osrfoundation.org>
Codecov Report
@@ Coverage Diff @@
## ign-rendering6 #468 +/- ##
==================================================
+ Coverage 53.57% 53.60% +0.03%
==================================================
Files 194 194
Lines 19634 19645 +11
==================================================
+ Hits 10519 10531 +12
+ Misses 9115 9114 -1
Continue to review full report at Codecov.
|
- Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
Can confirm this works with Metal shaders. |
- Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
@ahcorde can I get a review for this PR? thanks. |
- Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Add parameter "metal" and a member variable useMetalRenderSystem to Ogre2RenderEngine - Modify LoadPlugins to load the Metal render system if enabled - Modify CreateRenderSystem to select the Metal render system - Modify RegisterHlms to load the Metal resources - Add missing Metal shaders for the Terra (from Ogre2) - Add Metal shader for skybox - Update skybox material to support universal shaders - Create subdirectories for GLSL and Metal in media/materials/programs and update Ogre2RenderEngine with new resource locations - Add Metal and unified shaders to each material - Add placeholders for a number of shaders to prevent compile errors when running examples - Minor formatting changes to plain_color, point and skybox Metal shaders. - Port depth_camera_vs and selection_buffer_fs to Metal - The mouse_picker, ogre2_demo and transform_control demos now work correctly. - Shader formatting - replace tabs with whitespace - Port gaussian_noise vertex and pixel shaders from the GLSL counterparts - The ogre2_demo and render_pass examples now work correctly. - Port thermal_camera pixel shader - Correct error in thermal material script - Port thermal_camera pixel shaders from the GLSL counterparts - The thermal_camera examples now runs but further requires testing - Add stubs for the remaining vertex and pixel shaders to port from GLSL - Port heat_signature pixel shader - Initial ports of depth_camera and gpu_rays shaders - On Metal the compositor in Ogre2GpuRay has a pixel format exception - Texture sampling for depth_camera_final_fs.metal is not using the equivalent of OpenGL's texelFetch - Fix fragment program specifier in gaussian noise material - Unified shader had incorrect specifier - Fix depth camera vertex shader not found in selection buffer material - This is the same issue as fixed in gazebosim#456 - Switch to user RGBA format for internal textures in gpu ray sensor - Complete port of gpu rays 1st pass shader - Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 - Add a method to render targets and cameras to retrieve the Metal texture id - These functions provide the Metal equivalent of GLId() and RenderTextureGLId() for OpenGL. - The argument is the address of a pointer to void* as the object required for Metal is an objective-c type id<MTLTexture> which we do not want exposed in the interface - There is a runtime dependency on an upstream change to ogre-next: OGRECave/ogre-next@3b11873 - cherry-pick 8fc230c - Ensure line length limits are adhered to. - Fix inconsistent parameter name in RenderTextureMetalId - Fix an inconsistent parameter name causing a CI failure. - Fix unused parameter warning in RenderTextureMetalId - Fix an unused parameter warning causing a CI failure. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Add parameter "metal" and a member variable useMetalRenderSystem to Ogre2RenderEngine - Modify LoadPlugins to load the Metal render system if enabled - Modify CreateRenderSystem to select the Metal render system - Modify RegisterHlms to load the Metal resources - Add missing Metal shaders for the Terra (from Ogre2) - Add Metal shader for skybox - Update skybox material to support universal shaders - Create subdirectories for GLSL and Metal in media/materials/programs and update Ogre2RenderEngine with new resource locations - Add Metal and unified shaders to each material - Add placeholders for a number of shaders to prevent compile errors when running examples - Minor formatting changes to plain_color, point and skybox Metal shaders. - Port depth_camera_vs and selection_buffer_fs to Metal - The mouse_picker, ogre2_demo and transform_control demos now work correctly. - Shader formatting - replace tabs with whitespace - Port gaussian_noise vertex and pixel shaders from the GLSL counterparts - The ogre2_demo and render_pass examples now work correctly. - Port thermal_camera pixel shader - Correct error in thermal material script - Port thermal_camera pixel shaders from the GLSL counterparts - The thermal_camera examples now runs but further requires testing - Add stubs for the remaining vertex and pixel shaders to port from GLSL - Port heat_signature pixel shader - Initial ports of depth_camera and gpu_rays shaders - On Metal the compositor in Ogre2GpuRay has a pixel format exception - Texture sampling for depth_camera_final_fs.metal is not using the equivalent of OpenGL's texelFetch - Fix fragment program specifier in gaussian noise material - Unified shader had incorrect specifier - Fix depth camera vertex shader not found in selection buffer material - This is the same issue as fixed in gazebosim#456 - Switch to user RGBA format for internal textures in gpu ray sensor - Complete port of gpu rays 1st pass shader - Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 - Add a method to render targets and cameras to retrieve the Metal texture id - These functions provide the Metal equivalent of GLId() and RenderTextureGLId() for OpenGL. - The argument is the address of a pointer to void* as the object required for Metal is an objective-c type id<MTLTexture> which we do not want exposed in the interface - There is a runtime dependency on an upstream change to ogre-next: OGRECave/ogre-next@3b11873 - cherry-pick 8fc230c - Ensure line length limits are adhered to. - Fix inconsistent parameter name in RenderTextureMetalId - Fix an inconsistent parameter name causing a CI failure. - Fix unused parameter warning in RenderTextureMetalId - Fix an unused parameter warning causing a CI failure. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
- Add parameter "metal" and a member variable useMetalRenderSystem to Ogre2RenderEngine - Modify LoadPlugins to load the Metal render system if enabled - Modify CreateRenderSystem to select the Metal render system - Modify RegisterHlms to load the Metal resources - Add missing Metal shaders for the Terra (from Ogre2) - Add Metal shader for skybox - Update skybox material to support universal shaders - Create subdirectories for GLSL and Metal in media/materials/programs and update Ogre2RenderEngine with new resource locations - Add Metal and unified shaders to each material - Add placeholders for a number of shaders to prevent compile errors when running examples - Minor formatting changes to plain_color, point and skybox Metal shaders. - Port depth_camera_vs and selection_buffer_fs to Metal - The mouse_picker, ogre2_demo and transform_control demos now work correctly. - Shader formatting - replace tabs with whitespace - Port gaussian_noise vertex and pixel shaders from the GLSL counterparts - The ogre2_demo and render_pass examples now work correctly. - Port thermal_camera pixel shader - Correct error in thermal material script - Port thermal_camera pixel shaders from the GLSL counterparts - The thermal_camera examples now runs but further requires testing - Add stubs for the remaining vertex and pixel shaders to port from GLSL - Port heat_signature pixel shader - Initial ports of depth_camera and gpu_rays shaders - On Metal the compositor in Ogre2GpuRay has a pixel format exception - Texture sampling for depth_camera_final_fs.metal is not using the equivalent of OpenGL's texelFetch - Fix fragment program specifier in gaussian noise material - Unified shader had incorrect specifier - Fix depth camera vertex shader not found in selection buffer material - This is the same issue as fixed in gazebosim#456 - Switch to user RGBA format for internal textures in gpu ray sensor - Complete port of gpu rays 1st pass shader - Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 - Add a method to render targets and cameras to retrieve the Metal texture id - These functions provide the Metal equivalent of GLId() and RenderTextureGLId() for OpenGL. - The argument is the address of a pointer to void* as the object required for Metal is an objective-c type id<MTLTexture> which we do not want exposed in the interface - There is a runtime dependency on an upstream change to ogre-next: OGRECave/ogre-next@3b11873 - cherry-pick 8fc230c - Ensure line length limits are adhered to. - Fix inconsistent parameter name in RenderTextureMetalId - Fix an inconsistent parameter name causing a CI failure. - Fix unused parameter warning in RenderTextureMetalId - Fix an unused parameter warning causing a CI failure. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
* [Metal] enable loading of the Metal render system for ogre2 - Add parameter "metal" and a member variable useMetalRenderSystem to Ogre2RenderEngine - Modify LoadPlugins to load the Metal render system if enabled - Modify CreateRenderSystem to select the Metal render system - Modify RegisterHlms to load the Metal resources - Add missing Metal shaders for the Terra (from Ogre2) Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] enable metal render system for some examples Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] add Metal shader for skybox and update material - Add Metal shader for skybox - Update skybox material to support universal shaders - Create subdirectories for GLSL and Metal in media/materials/programs and update Ogre2RenderEngine with new resource locations Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] add Metal and unified shaders to each material (wip) - Add Metal and unified shaders to each material - Add placeholders for a number of shaders to prevent compile errors when running examples Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] enable metal render system for remaining examples [do not merge] - Note: these changes will need to be modified / reverted before merging Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] update examples to accept optional command line option "metal" - Examples accept an additional command line option metal when specifying the ogre2 render engine. - Pass parameters to the createCamera function. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] fix formatting on example ogre2_demo Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] revert changes to example text_geom - This example is for ogre only (not ogre2) Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] update formatting of shaders - Minor formatting changes to plain_color, point and skybox Metal shaders. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] port depth_camera and selection_buffer shaders - Port depth_camera_vs and selection_buffer_fs to Metal - The mouse_picker, ogre2_demo and transform_control demos now work correctly. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] shader formatting - replace tabs with whitespace Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] port gaussian_noise shaders - Port gaussian_noise vertex and pixel shaders from the GLSL counterparts - The ogre2_demo and render_pass examples now work correctly. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] port thermal_camera pixel shader - Correct error in thermal material script - Port thermal_camera pixel shaders from the GLSL counterparts - The thermal_camera examples now runs but further requires testing Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] add placeholders for remaining shaders - Add stubs for the remaining vertex and pixel shaders to port from GLSL Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] port heat_signature pixel shader Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] port depth_camera and gpu_rays shaders [wip] - Initial ports of depth_camera and gpu_rays shaders - This is work in progress: - On Metal the compositor in Ogre2GpuRay has a pixel format exception - Texture sampling for depth_camera_final_fs.metal is not using the equivalent of OpenGL's texelFetch Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] update custom_scene_viewer example to accept optional command line option "metal" Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] fix fragment program specifier in gaussian noise material - Unified shader had incorrect specifier Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] fix depth camera vertex shader not found in selection buffer material - This is the same issue as fixed in #456 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * switch to user RGBA format for internal textures in gpu ray sensor Signed-off-by: Ian Chen <ichen@osrfoundation.org> * [Metal] complete port of gpu rays 1st pass shader - Complete port of the GPU Rays shader - This depends upon the pixel format fix in #468 Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] update shaders to fix lidar near plane clipping - Update Metal shaders to match changes made in PR #356 - Update CrossPlatformSettings_piece to #define outVs_gl_ClipDistance - Update Ign_piece_vs_any to use cross platform version of gl_ClipDistance Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * Fix style for code check - Remove line end whitespace causing CI to fail. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] incorporate review feedback - Revert debug output in Ogre2RenderEngine - Fix codecheck issue with variable declaration shadows previous local - Revert changes to simple_demo_qml - Move useMetalRenderSystem to Ogre2RenderEnginePrivate Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] introduce enum for graphics interface - Add enum class GraphicsAPI to RenderEngine.hh - Add utils class GraphicsAPIUtils for setting enum from string - Update Ogre2RenderEngine to use GraphicsAPI enum - Update examples to use GraphicsAPI enum Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] refactor enum for graphics interface - Move GraphicsAPI to own file Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] fix examples - Fix custom_scene_viewer Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] fix class description - Fix code check - Change GraphicsAPIUtils class documentation - Improve graphics API check in Ogre2RenderEngine Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> * [Metal] fix codecheck - Fix code check - uninitialised variable warning Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com> Co-authored-by: Ian Chen <ichen@osrfoundation.org>
- Add parameter "metal" and a member variable useMetalRenderSystem to Ogre2RenderEngine - Modify LoadPlugins to load the Metal render system if enabled - Modify CreateRenderSystem to select the Metal render system - Modify RegisterHlms to load the Metal resources - Add missing Metal shaders for the Terra (from Ogre2) - Add Metal shader for skybox - Update skybox material to support universal shaders - Create subdirectories for GLSL and Metal in media/materials/programs and update Ogre2RenderEngine with new resource locations - Add Metal and unified shaders to each material - Add placeholders for a number of shaders to prevent compile errors when running examples - Minor formatting changes to plain_color, point and skybox Metal shaders. - Port depth_camera_vs and selection_buffer_fs to Metal - The mouse_picker, ogre2_demo and transform_control demos now work correctly. - Shader formatting - replace tabs with whitespace - Port gaussian_noise vertex and pixel shaders from the GLSL counterparts - The ogre2_demo and render_pass examples now work correctly. - Port thermal_camera pixel shader - Correct error in thermal material script - Port thermal_camera pixel shaders from the GLSL counterparts - The thermal_camera examples now runs but further requires testing - Add stubs for the remaining vertex and pixel shaders to port from GLSL - Port heat_signature pixel shader - Initial ports of depth_camera and gpu_rays shaders - On Metal the compositor in Ogre2GpuRay has a pixel format exception - Texture sampling for depth_camera_final_fs.metal is not using the equivalent of OpenGL's texelFetch - Fix fragment program specifier in gaussian noise material - Unified shader had incorrect specifier - Fix depth camera vertex shader not found in selection buffer material - This is the same issue as fixed in gazebosim#456 - Switch to user RGBA format for internal textures in gpu ray sensor - Complete port of gpu rays 1st pass shader - Complete port of the GPU Rays shader - This depends upon the pixel format fix in gazebosim#468 - Add a method to render targets and cameras to retrieve the Metal texture id - These functions provide the Metal equivalent of GLId() and RenderTextureGLId() for OpenGL. - The argument is the address of a pointer to void* as the object required for Metal is an objective-c type id<MTLTexture> which we do not want exposed in the interface - There is a runtime dependency on an upstream change to ogre-next: OGRECave/ogre-next@3b11873 - cherry-pick 8fc230c - Ensure line length limits are adhered to. - Fix inconsistent parameter name in RenderTextureMetalId - Fix an inconsistent parameter name causing a CI failure. - Fix unused parameter warning in RenderTextureMetalId - Fix an unused parameter warning causing a CI failure. Signed-off-by: Rhys Mainwaring <rhys.mainwaring@me.com>
🦟 Bug fix
Summary
Metal does not support
RGB32_FLOAT
format, see #461 (comment).So switching to use supported texture formats:
cubeUVTexture
:RGB32_FLOAT
->RGBA32_FLOAT
firstPassTextures
:RGB32_FLOAT
->RG32_FLOAT
secondPassTexture
:RGB32_FLOAT
->RGBA32_FLOAT
RG32_FLOAT
to save some memoryChecklist
codecheck
passed (See contributing)Note to maintainers: Remember to use Squash-Merge