├── .bazelrc ├── .bazelversion ├── .codespell-ignore ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── ci │ ├── after_make.sh │ ├── packages-jammy.apt │ ├── packages-noble.apt │ └── packages.apt └── workflows │ ├── bazel.yml │ ├── ci.bazelrc │ ├── ci.yml │ ├── package_xml.yml │ ├── pr-collection-labeler.yml │ ├── triage.yml │ └── windows.yaml ├── .gitignore ├── AUTHORS ├── BUILD.bazel ├── CMakeLists.txt ├── CONTRIBUTING.md ├── Changelog.md ├── LICENSE ├── MODULE.bazel ├── Migration.md ├── NEWS ├── README.md ├── api.md.in ├── coverage.ignore.in ├── cppcheck.suppress.in ├── doc ├── CMakeLists.txt └── ogre_1-9.tag.xml.tgz ├── examples ├── actor_animation │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── README.md │ ├── example_config.hh.in │ └── media │ │ ├── cmu-13_26.bvh │ │ └── walk.dae ├── boundingbox_camera │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── duck.dae │ │ └── duck.png ├── camera_tracking │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── custom_scene_viewer │ ├── CMakeLists.txt │ ├── DemoWindow.cc │ ├── DemoWindow.hh │ ├── ManualSceneDemo.cc │ ├── ManualSceneDemo.hh │ ├── SceneBuilder.cc │ ├── SceneBuilder.hh │ ├── TestTypes.hh │ ├── example_config.hh.in │ └── media │ │ ├── brick_normal.jpg │ │ └── tiles.jpg ├── custom_shaders │ ├── CMakeLists.txt │ ├── custom_shaders.cc │ ├── example_config.hh.in │ └── media │ │ ├── depth_fragment_shader.glsl │ │ ├── depth_vertex_shader.glsl │ │ ├── fragment_shader.glsl │ │ └── vertex_shader.glsl ├── custom_shaders_uniforms │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── fragment_shader.glsl │ │ ├── fragment_shader.metal │ │ ├── fragment_shader_330.glsl │ │ ├── vertex_shader.glsl │ │ ├── vertex_shader.metal │ │ └── vertex_shader_330.glsl ├── depth_camera │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── duck.dae │ │ └── duck.png ├── frustum_visual │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── global_illumination │ ├── CMakeLists.txt │ ├── GiConfig.hh │ ├── Main.cc │ ├── Sdl2Window.cc │ ├── Sdl2Window.hh │ └── example_config.hh.in ├── heightmap │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── city_terrain.jpg │ │ ├── dirt_diffusespecular.png │ │ ├── flat_normal.png │ │ ├── fungus_diffusespecular.png │ │ ├── grass_diffusespecular.png │ │ ├── heightmap_bowl.png │ │ ├── moon.tif │ │ ├── moon_diffuse.png │ │ ├── moon_normal.png │ │ └── volcano.tif ├── hello_world_plugin │ ├── CMakeLists.txt │ ├── HelloWorldPlugin.cc │ └── README.md ├── lidar_visual │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── README.md │ └── example_config.hh.in ├── lux_core_engine │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── LuxCoreEngine.cc │ ├── LuxCoreEngineCamera.cc │ ├── LuxCoreEngineCamera.hh │ ├── LuxCoreEngineGeometry.cc │ ├── LuxCoreEngineGeometry.hh │ ├── LuxCoreEngineLight.cc │ ├── LuxCoreEngineLight.hh │ ├── LuxCoreEngineMaterial.cc │ ├── LuxCoreEngineMaterial.hh │ ├── LuxCoreEngineMesh.cc │ ├── LuxCoreEngineMesh.hh │ ├── LuxCoreEngineMeshFactory.cc │ ├── LuxCoreEngineMeshFactory.hh │ ├── LuxCoreEngineNode.cc │ ├── LuxCoreEngineNode.hh │ ├── LuxCoreEngineObject.cc │ ├── LuxCoreEngineObject.hh │ ├── LuxCoreEngineRenderTarget.cc │ ├── LuxCoreEngineRenderTarget.hh │ ├── LuxCoreEngineRenderTypes.hh │ ├── LuxCoreEngineScene.cc │ ├── LuxCoreEngineScene.hh │ ├── LuxCoreEngineSensor.cc │ ├── LuxCoreEngineSensor.hh │ ├── LuxCoreEngineVisual.cc │ ├── LuxCoreEngineVisual.hh │ ├── Main.cc │ ├── README.md │ └── media │ │ ├── duck.dae │ │ └── duck.png ├── mesh_viewer │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── AmbulanceStretcher.glb │ │ ├── duck.dae │ │ └── duck.png ├── mouse_picking │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── ogre2_demo │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── backpack.dae │ │ ├── backpack.png │ │ ├── duck.dae │ │ ├── duck.png │ │ ├── fort_point.dds │ │ ├── pump.dae │ │ ├── pump_albedo.png │ │ ├── pump_metallic.png │ │ ├── pump_normal.png │ │ ├── pump_roughness.png │ │ └── skybox_lowres.dds ├── particles_demo │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── duck.dae │ │ ├── duck.png │ │ ├── smoke.png │ │ └── smokecolors.png ├── projector │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ └── stereo_projection_pattern_high_res_red.png ├── render_pass │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── segmentation_camera │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── duck.dae │ │ └── duck.png ├── simple_demo │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── simple_demo_qml │ ├── CMakeLists.txt │ ├── GzRenderer.cc │ ├── GzRenderer.hh │ ├── Main.cc │ ├── Main.qml │ ├── Main.qrc │ ├── ThreadRenderer.cpp │ └── ThreadRenderer.h ├── text_geom │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── thermal_camera │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── duck.dae │ │ └── duck.png ├── transform_control │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── view_control │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── visualization_demo │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── waves │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ ├── Main.cc │ ├── example_config.hh.in │ └── media │ │ ├── GerstnerWaves_fs.glsl │ │ ├── GerstnerWaves_fs.metal │ │ ├── GerstnerWaves_fs_330.glsl │ │ ├── GerstnerWaves_vs.glsl │ │ ├── GerstnerWaves_vs.metal │ │ ├── GerstnerWaves_vs_330.glsl │ │ ├── mesh.dae │ │ ├── skybox_lowres.dds │ │ └── wave_normals.dds └── wide_angle_camera │ ├── CMakeLists.txt │ ├── GlutWindow.cc │ ├── GlutWindow.hh │ └── Main.cc ├── include ├── CMakeLists.txt └── gz │ ├── CMakeLists.txt │ └── rendering │ ├── ArrowVisual.hh │ ├── AxisVisual.hh │ ├── BoundingBox.hh │ ├── BoundingBoxCamera.hh │ ├── CMakeLists.txt │ ├── COMVisual.hh │ ├── Camera.hh │ ├── CameraLens.hh │ ├── Capsule.hh │ ├── CompositeVisual.hh │ ├── DepthCamera.hh │ ├── DistortionPass.hh │ ├── FrustumVisual.hh │ ├── GaussianNoisePass.hh │ ├── Geometry.hh │ ├── GizmoVisual.hh │ ├── GlobalIlluminationBase.hh │ ├── GlobalIlluminationCiVct.hh │ ├── GlobalIlluminationVct.hh │ ├── GpuRays.hh │ ├── GraphicsAPI.hh │ ├── Grid.hh │ ├── Heightmap.hh │ ├── HeightmapDescriptor.hh │ ├── Image.hh │ ├── InertiaVisual.hh │ ├── InstallationDirectories.hh │ ├── JointVisual.hh │ ├── LensFlarePass.hh │ ├── LidarVisual.hh │ ├── Light.hh │ ├── LightVisual.hh │ ├── Marker.hh │ ├── Material.hh │ ├── Mesh.hh │ ├── MeshDescriptor.hh │ ├── MoveToHelper.hh │ ├── NativeWindow.hh │ ├── Node.hh │ ├── Object.hh │ ├── OrbitViewController.hh │ ├── OrthoViewController.hh │ ├── ParticleEmitter.hh │ ├── PixelFormat.hh │ ├── Projector.hh │ ├── RayQuery.hh │ ├── RenderEngine.hh │ ├── RenderEngineManager.hh │ ├── RenderEnginePlugin.hh │ ├── RenderEngineVulkanExternalDeviceStructs.hh │ ├── RenderPass.hh │ ├── RenderPassSystem.hh │ ├── RenderTarget.hh │ ├── RenderTypes.hh │ ├── RenderingIface.hh │ ├── Scene.hh │ ├── SegmentationCamera.hh │ ├── Sensor.hh │ ├── ShaderParam.hh │ ├── ShaderParams.hh │ ├── ShaderType.hh │ ├── Storage.hh │ ├── Text.hh │ ├── ThermalCamera.hh │ ├── TransformController.hh │ ├── TransformType.hh │ ├── Utils.hh │ ├── ViewController.hh │ ├── Visual.hh │ ├── WideAngleCamera.hh │ ├── WireBox.hh │ ├── base │ ├── BaseArrowVisual.hh │ ├── BaseAxisVisual.hh │ ├── BaseBoundingBoxCamera.hh │ ├── BaseCOMVisual.hh │ ├── BaseCamera.hh │ ├── BaseCapsule.hh │ ├── BaseDepthCamera.hh │ ├── BaseDistortionPass.hh │ ├── BaseFrustumVisual.hh │ ├── BaseGaussianNoisePass.hh │ ├── BaseGeometry.hh │ ├── BaseGizmoVisual.hh │ ├── BaseGlobalIlluminationVct.hh │ ├── BaseGpuRays.hh │ ├── BaseGrid.hh │ ├── BaseHeightmap.hh │ ├── BaseInertiaVisual.hh │ ├── BaseJointVisual.hh │ ├── BaseLensFlarePass.hh │ ├── BaseLidarVisual.hh │ ├── BaseLight.hh │ ├── BaseLightVisual.hh │ ├── BaseMarker.hh │ ├── BaseMaterial.hh │ ├── BaseMesh.hh │ ├── BaseNativeWindow.hh │ ├── BaseNode.hh │ ├── BaseObject.hh │ ├── BaseParticleEmitter.hh │ ├── BaseProjector.hh │ ├── BaseRayQuery.hh │ ├── BaseRenderEngine.hh │ ├── BaseRenderPass.hh │ ├── BaseRenderTarget.hh │ ├── BaseRenderTypes.hh │ ├── BaseScene.hh │ ├── BaseSegmentationCamera.hh │ ├── BaseSensor.hh │ ├── BaseStorage.hh │ ├── BaseText.hh │ ├── BaseThermalCamera.hh │ ├── BaseVisual.hh │ ├── BaseWideAngleCamera.hh │ ├── BaseWireBox.hh │ ├── SceneExt.hh │ └── base.hh.in │ ├── config.hh.in │ └── rendering.hh.in ├── ogre ├── include │ ├── CMakeLists.txt │ └── gz │ │ ├── CMakeLists.txt │ │ └── rendering │ │ ├── CMakeLists.txt │ │ └── ogre │ │ ├── OgreArrowVisual.hh │ │ ├── OgreAxisVisual.hh │ │ ├── OgreCOMVisual.hh │ │ ├── OgreCamera.hh │ │ ├── OgreCapsule.hh │ │ ├── OgreConversions.hh │ │ ├── OgreDepthCamera.hh │ │ ├── OgreDistortionPass.hh │ │ ├── OgreDynamicLines.hh │ │ ├── OgreDynamicRenderable.hh │ │ ├── OgreFrustumVisual.hh │ │ ├── OgreGaussianNoisePass.hh │ │ ├── OgreGeometry.hh │ │ ├── OgreGizmoVisual.hh │ │ ├── OgreGpuRays.hh │ │ ├── OgreGrid.hh │ │ ├── OgreHeightmap.hh │ │ ├── OgreIncludes.hh │ │ ├── OgreInertiaVisual.hh │ │ ├── OgreJointVisual.hh │ │ ├── OgreLensFlarePass.hh │ │ ├── OgreLidarVisual.hh │ │ ├── OgreLight.hh │ │ ├── OgreLightVisual.hh │ │ ├── OgreMarker.hh │ │ ├── OgreMaterial.hh │ │ ├── OgreMaterialSwitcher.hh │ │ ├── OgreMesh.hh │ │ ├── OgreMeshFactory.hh │ │ ├── OgreNode.hh │ │ ├── OgreObject.hh │ │ ├── OgreObjectInterface.hh │ │ ├── OgreParticleEmitter.hh │ │ ├── OgreProjector.hh │ │ ├── OgreRTShaderSystem.hh │ │ ├── OgreRayQuery.hh │ │ ├── OgreRenderEngine.hh │ │ ├── OgreRenderPass.hh │ │ ├── OgreRenderTarget.hh │ │ ├── OgreRenderTargetMaterial.hh │ │ ├── OgreRenderTypes.hh │ │ ├── OgreScene.hh │ │ ├── OgreSelectionBuffer.hh │ │ ├── OgreSensor.hh │ │ ├── OgreStorage.hh │ │ ├── OgreText.hh │ │ ├── OgreThermalCamera.hh │ │ ├── OgreVisual.hh │ │ ├── OgreWideAngleCamera.hh │ │ ├── OgreWireBox.hh │ │ └── ogre.hh.in └── src │ ├── CMakeLists.txt │ ├── OgreArrowVisual.cc │ ├── OgreAxisVisual.cc │ ├── OgreCOMVisual.cc │ ├── OgreCamera.cc │ ├── OgreCapsule.cc │ ├── OgreConversions.cc │ ├── OgreDepthCamera.cc │ ├── OgreDistortionPass.cc │ ├── OgreDynamicLines.cc │ ├── OgreDynamicRenderable.cc │ ├── OgreFrustumVisual.cc │ ├── OgreGaussianNoisePass.cc │ ├── OgreGeometry.cc │ ├── OgreGizmoVisual.cc │ ├── OgreGpuRays.cc │ ├── OgreGrid.cc │ ├── OgreHeightmap.cc │ ├── OgreInertiaVisual.cc │ ├── OgreJointVisual.cc │ ├── OgreLensFlarePass.cc │ ├── OgreLidarVisual.cc │ ├── OgreLight.cc │ ├── OgreLightVisual.cc │ ├── OgreMarker.cc │ ├── OgreMaterial.cc │ ├── OgreMaterialSwitcher.cc │ ├── OgreMesh.cc │ ├── OgreMeshFactory.cc │ ├── OgreNode.cc │ ├── OgreObject.cc │ ├── OgreObjectInterface.cc │ ├── OgreParticleEmitter.cc │ ├── OgreProjector.cc │ ├── OgreRTShaderSystem.cc │ ├── OgreRayQuery.cc │ ├── OgreRenderEngine.cc │ ├── OgreRenderPass.cc │ ├── OgreRenderTarget.cc │ ├── OgreRenderTargetMaterial.cc │ ├── OgreScene.cc │ ├── OgreSelectionBuffer.cc │ ├── OgreSensor.cc │ ├── OgreText.cc │ ├── OgreThermalCamera.cc │ ├── OgreVisual.cc │ ├── OgreWideAngleCamera.cc │ ├── OgreWireBox.cc │ └── media │ ├── CMakeLists.txt │ ├── fonts │ ├── CMakeLists.txt │ ├── README.md │ ├── console.ttf │ ├── font_matisse_itc.png │ ├── gz-rendering.fontdef │ ├── liberation-sans │ │ ├── LiberationSans-Bold.ttf │ │ ├── LiberationSans-BoldItalic.ttf │ │ ├── LiberationSans-Italic.ttf │ │ ├── LiberationSans-Regular.ttf │ │ └── SIL Open Font License.txt │ └── roboto │ │ ├── LICENSE.txt │ │ ├── Roboto-Black.ttf │ │ ├── Roboto-BlackItalic.ttf │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-BoldItalic.ttf │ │ ├── Roboto-Italic.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-LightItalic.ttf │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-MediumItalic.ttf │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Thin.ttf │ │ └── Roboto-ThinItalic.ttf │ ├── materials │ ├── CMakeLists.txt │ ├── programs │ │ ├── CMakeLists.txt │ │ ├── camera_distortion_map_fs.glsl │ │ ├── camera_distortion_map_vs.glsl │ │ ├── depth_fragment_shader.glsl │ │ ├── depth_points_fs.glsl │ │ ├── depth_points_vs.glsl │ │ ├── depth_vertex_shader.glsl │ │ ├── fragment_shader.glsl │ │ ├── gaussian_noise_fs.glsl │ │ ├── gaussian_noise_vs.glsl │ │ ├── gpu_rays_1st_pass_fs.glsl │ │ ├── gpu_rays_1st_pass_vs.glsl │ │ ├── gpu_rays_2nd_pass_fs.glsl │ │ ├── gpu_rays_2nd_pass_vs.glsl │ │ ├── heat_source_fs.glsl │ │ ├── lens_flare_fs.glsl │ │ ├── lens_flare_vs.glsl │ │ ├── plain_color_fs.glsl │ │ ├── plain_color_vs.glsl │ │ ├── point_fs.glsl │ │ ├── point_vs.glsl │ │ ├── shadow_caster_fp.glsl │ │ ├── shadow_caster_vp.glsl │ │ ├── thermal_camera_fs.glsl │ │ ├── vertex_shader.glsl │ │ ├── wide_lens_map_fp.glsl │ │ └── wide_lens_map_vs.glsl │ ├── scripts │ │ ├── CMakeLists.txt │ │ ├── distortion.compositor │ │ ├── distortion.material │ │ ├── gaussian_noise.compositor │ │ ├── gaussian_noise.material │ │ ├── gpu_rays.material │ │ ├── lens_flare.compositor │ │ ├── lens_flare.material │ │ ├── picker.material │ │ ├── point_cloud_point.material │ │ ├── pssm.material │ │ ├── thermal.material │ │ ├── thermal_camera.compositor │ │ ├── wide_angle_camera.material │ │ └── wide_camera_lens_map.compositor │ └── textures │ │ ├── CMakeLists.txt │ │ └── projection_filter.png │ └── rtshaderlib150 │ ├── CMakeLists.txt │ ├── FFPLib_Common.glsl │ ├── FFPLib_Fog.glsl │ ├── FFPLib_Lighting.glsl │ ├── FFPLib_Texturing.glsl │ ├── FFPLib_Transform.glsl │ ├── SGXLib_IntegratedPSSM.glsl │ ├── SGXLib_NormalMapLighting.glsl │ ├── SGXLib_PerPixelLighting.glsl │ └── SampleLib_ReflectionMap.glsl ├── ogre2 ├── include │ ├── CMakeLists.txt │ └── gz │ │ ├── CMakeLists.txt │ │ └── rendering │ │ ├── CMakeLists.txt │ │ └── ogre2 │ │ ├── Ogre2ArrowVisual.hh │ │ ├── Ogre2AxisVisual.hh │ │ ├── Ogre2BoundingBoxCamera.hh │ │ ├── Ogre2COMVisual.hh │ │ ├── Ogre2Camera.hh │ │ ├── Ogre2Capsule.hh │ │ ├── Ogre2Conversions.hh │ │ ├── Ogre2DepthCamera.hh │ │ ├── Ogre2DynamicRenderable.hh │ │ ├── Ogre2FrustumVisual.hh │ │ ├── Ogre2GaussianNoisePass.hh │ │ ├── Ogre2Geometry.hh │ │ ├── Ogre2GizmoVisual.hh │ │ ├── Ogre2GlobalIlluminationCiVct.hh │ │ ├── Ogre2GlobalIlluminationVct.hh │ │ ├── Ogre2GpuRays.hh │ │ ├── Ogre2Grid.hh │ │ ├── Ogre2GzOgreRenderingMode.hh │ │ ├── Ogre2Heightmap.hh │ │ ├── Ogre2Includes.hh │ │ ├── Ogre2InertiaVisual.hh │ │ ├── Ogre2JointVisual.hh │ │ ├── Ogre2LensFlarePass.hh │ │ ├── Ogre2LidarVisual.hh │ │ ├── Ogre2Light.hh │ │ ├── Ogre2LightVisual.hh │ │ ├── Ogre2Marker.hh │ │ ├── Ogre2Material.hh │ │ ├── Ogre2MaterialSwitcher.hh │ │ ├── Ogre2Mesh.hh │ │ ├── Ogre2MeshFactory.hh │ │ ├── Ogre2NativeWindow.hh │ │ ├── Ogre2Node.hh │ │ ├── Ogre2Object.hh │ │ ├── Ogre2ObjectInterface.hh │ │ ├── Ogre2ParticleEmitter.hh │ │ ├── Ogre2Projector.hh │ │ ├── Ogre2RayQuery.hh │ │ ├── Ogre2RenderEngine.hh │ │ ├── Ogre2RenderPass.hh │ │ ├── Ogre2RenderTarget.hh │ │ ├── Ogre2RenderTargetMaterial.hh │ │ ├── Ogre2RenderTypes.hh │ │ ├── Ogre2Scene.hh │ │ ├── Ogre2SegmentationCamera.hh │ │ ├── Ogre2SelectionBuffer.hh │ │ ├── Ogre2Sensor.hh │ │ ├── Ogre2Storage.hh │ │ ├── Ogre2ThermalCamera.hh │ │ ├── Ogre2Visual.hh │ │ ├── Ogre2WideAngleCamera.hh │ │ ├── Ogre2WireBox.hh │ │ └── ogre2.hh.in └── src │ ├── CMakeLists.txt │ ├── Ogre2ArrowVisual.cc │ ├── Ogre2AxisVisual.cc │ ├── Ogre2BoundingBoxCamera.cc │ ├── Ogre2BoundingBoxMaterialSwitcher.cc │ ├── Ogre2BoundingBoxMaterialSwitcher.hh │ ├── Ogre2COMVisual.cc │ ├── Ogre2Camera.cc │ ├── Ogre2Capsule.cc │ ├── Ogre2Conversions.cc │ ├── Ogre2DepthCamera.cc │ ├── Ogre2DynamicRenderable.cc │ ├── Ogre2FrustumVisual.cc │ ├── Ogre2GaussianNoisePass.cc │ ├── Ogre2Geometry.cc │ ├── Ogre2GizmoVisual.cc │ ├── Ogre2GlobalIlluminationCiVct.cc │ ├── Ogre2GlobalIlluminationVct.cc │ ├── Ogre2GpuRays.cc │ ├── Ogre2Grid.cc │ ├── Ogre2GzHlmsPbsPrivate.cc │ ├── Ogre2GzHlmsPbsPrivate.hh │ ├── Ogre2GzHlmsSharedPrivate.cc │ ├── Ogre2GzHlmsSharedPrivate.hh │ ├── Ogre2GzHlmsSphericalClipMinDistance.cc │ ├── Ogre2GzHlmsSphericalClipMinDistance.hh │ ├── Ogre2GzHlmsTerraPrivate.cc │ ├── Ogre2GzHlmsTerraPrivate.hh │ ├── Ogre2GzHlmsUnlitPrivate.cc │ ├── Ogre2GzHlmsUnlitPrivate.hh │ ├── Ogre2Heightmap.cc │ ├── Ogre2InertiaVisual.cc │ ├── Ogre2JointVisual.cc │ ├── Ogre2LensFlarePass.cc │ ├── Ogre2LidarVisual.cc │ ├── Ogre2Light.cc │ ├── Ogre2LightVisual.cc │ ├── Ogre2Marker.cc │ ├── Ogre2Material.cc │ ├── Ogre2MaterialSwitcher.cc │ ├── Ogre2Mesh.cc │ ├── Ogre2MeshFactory.cc │ ├── Ogre2NativeWindow.cc │ ├── Ogre2Node.cc │ ├── Ogre2Object.cc │ ├── Ogre2ObjectInterface.cc │ ├── Ogre2ParticleEmitter.cc │ ├── Ogre2ParticleNoiseListener.cc │ ├── Ogre2ParticleNoiseListener.hh │ ├── Ogre2Projector.cc │ ├── Ogre2RayQuery.cc │ ├── Ogre2RenderEngine.cc │ ├── Ogre2RenderPass.cc │ ├── Ogre2RenderTarget.cc │ ├── Ogre2RenderTargetMaterial.cc │ ├── Ogre2Scene.cc │ ├── Ogre2SegmentationCamera.cc │ ├── Ogre2SegmentationMaterialSwitcher.cc │ ├── Ogre2SegmentationMaterialSwitcher.hh │ ├── Ogre2SelectionBuffer.cc │ ├── Ogre2Sensor.cc │ ├── Ogre2ThermalCamera.cc │ ├── Ogre2Visual.cc │ ├── Ogre2WideAngleCamera.cc │ ├── Ogre2WireBox.cc │ ├── media │ ├── 2.0 │ │ └── scripts │ │ │ └── materials │ │ │ ├── Common │ │ │ ├── Copyback.material │ │ │ ├── DPSM.material │ │ │ ├── DepthUtils.material │ │ │ ├── EsmGaussianBlurLogFilter.material │ │ │ ├── EsmGaussianBlurLogFilter.material.json │ │ │ ├── GLSL │ │ │ │ ├── Copyback_1xFP32_ps.glsl │ │ │ │ ├── Copyback_3xFP32_ps.glsl │ │ │ │ ├── Copyback_4xFP32_2DArray_ps.glsl │ │ │ │ ├── Copyback_4xFP32_ps.glsl │ │ │ │ ├── CubeToDpm_4xFP16_ps.glsl │ │ │ │ ├── CubeToDpsm_ps.glsl │ │ │ │ ├── DepthDownscaleMax_ps.glsl │ │ │ │ ├── EsmGaussianBlurLogFilter_cs.glsl │ │ │ │ ├── GaussianBlurBase_cs.glsl │ │ │ │ ├── GaussianBlurLogFilterBase_cs.glsl │ │ │ │ ├── GaussianBlurLogFilter_ps.glsl │ │ │ │ ├── HiddenAreaMeshVr_ps.glsl │ │ │ │ ├── HiddenAreaMeshVr_vs.glsl │ │ │ │ ├── MipmapsGaussianBlur_cs.glsl │ │ │ │ ├── PccDepthCompressor_ps.glsl │ │ │ │ ├── QuadCameraDirNoUV_vs.glsl │ │ │ │ ├── QuadCameraDir_vs.glsl │ │ │ │ ├── Quad_vs.glsl │ │ │ │ ├── RadialDensityMask_ps.glsl │ │ │ │ ├── RadialDensityMask_vs.glsl │ │ │ │ ├── Resolve_1xFP32_Subsample0_ps.glsl │ │ │ │ ├── SkyCubemap_ps.glsl │ │ │ │ └── SkyEquirectangular_ps.glsl │ │ │ ├── Metal │ │ │ │ ├── Copyback_1xFP32_ps.metal │ │ │ │ ├── Copyback_3xFP32_ps.metal │ │ │ │ ├── Copyback_4xFP32_2DArray_ps.metal │ │ │ │ ├── Copyback_4xFP32_ps.metal │ │ │ │ ├── CubeToDpm_4xFP16_ps.metal │ │ │ │ ├── CubeToDpsm_ps.metal │ │ │ │ ├── DepthDownscaleMax_ps.metal │ │ │ │ ├── EsmGaussianBlurLogFilter_cs.metal │ │ │ │ ├── GaussianBlurBase_cs.metal │ │ │ │ ├── GaussianBlurLogFilterBase_cs.metal │ │ │ │ ├── GaussianBlurLogFilter_ps.metal │ │ │ │ ├── HiddenAreaMeshVr_ps.metal │ │ │ │ ├── HiddenAreaMeshVr_vs.metal │ │ │ │ ├── MipmapsGaussianBlur_cs.metal │ │ │ │ ├── PccDepthCompressor_ps.metal │ │ │ │ ├── QuadCameraDirNoUV_vs.metal │ │ │ │ ├── QuadCameraDir_vs.metal │ │ │ │ ├── Quad_vs.metal │ │ │ │ ├── RadialDensityMask_ps.metal │ │ │ │ ├── RadialDensityMask_vs.metal │ │ │ │ ├── Resolve_1xFP32_Subsample0_ps.metal │ │ │ │ ├── SkyCubemap_ps.metal │ │ │ │ └── SkyEquirectangular_ps.metal │ │ │ ├── Mipmaps.material.json │ │ │ ├── Quad.program │ │ │ ├── brtfLutDfg.dds │ │ │ ├── ltcMatrix0.dds │ │ │ └── ltcMatrix1.dds │ │ │ └── Terra │ │ │ ├── GLSL │ │ │ ├── GpuNormalMapper_ps.glsl │ │ │ ├── TerraGaussianBlur_cs.glsl │ │ │ └── TerraShadowGenerator.glsl │ │ │ ├── GpuNormalMapper.compositor │ │ │ ├── GpuNormalMapper.material │ │ │ ├── Metal │ │ │ ├── GpuNormalMapper_ps.metal │ │ │ ├── TerraGaussianBlur_cs.metal │ │ │ └── TerraShadowGenerator.metal │ │ │ ├── TerraShadowGenerator.compositor │ │ │ └── TerraShadowGenerator.material.json │ ├── Compute │ │ └── Tools │ │ │ ├── Any │ │ │ └── sRGB.any │ │ │ ├── ClearUav.material.json │ │ │ ├── GLSL │ │ │ └── ClearUav_cs.glsl │ │ │ ├── HLSL │ │ │ └── ClearUav_cs.hlsl │ │ │ └── Metal │ │ │ └── ClearUav_cs.metal │ ├── Hlms │ │ ├── Common │ │ │ ├── Any │ │ │ │ ├── Cubemap_piece_all.any │ │ │ │ ├── DualParaboloid_piece_ps.any │ │ │ │ ├── ReverseDepthHelpers_piece_ps.any │ │ │ │ ├── ShadowCaster_piece_ps.any │ │ │ │ ├── ShadowCaster_piece_vs.any │ │ │ │ └── UnpackHelpers_piece_all.any │ │ │ ├── GLSL │ │ │ │ ├── CrossPlatformSettings_piece_all.glsl │ │ │ │ ├── Matrix_piece_all.glsl │ │ │ │ ├── QuaternionCode_piece_all.glsl │ │ │ │ ├── RenderDepthOnly_piece_ps.glsl │ │ │ │ └── UavCrossPlatform_piece_all.glsl │ │ │ ├── GLSLES │ │ │ │ ├── CrossPlatformSettings_piece_all.glsl │ │ │ │ ├── Matrix_piece_all.glsl │ │ │ │ ├── QuaternionCode_piece_all.glsl │ │ │ │ └── RenderDepthOnly_piece_ps.glsl │ │ │ ├── HLSL │ │ │ │ ├── CrossPlatformSettings_piece_all.hlsl │ │ │ │ ├── Matrix_piece_all.hlsl │ │ │ │ ├── QuaternionCode_piece_all.hlsl │ │ │ │ ├── RenderDepthOnly_piece_ps.hlsl │ │ │ │ └── UavCrossPlatform_piece_all.hlsl │ │ │ └── Metal │ │ │ │ ├── CrossPlatformSettings_piece_all.metal │ │ │ │ ├── Matrix_piece_all.metal │ │ │ │ ├── QuaternionCode_piece_all.metal │ │ │ │ ├── RenderDepthOnly_piece_ps.metal │ │ │ │ └── UavCrossPlatform_piece_all.metal │ │ ├── Gz │ │ │ ├── Pbs │ │ │ │ ├── 500.GzPbsStructs_piece_all.any │ │ │ │ ├── 800.GzPbsCode_piece_ps.any │ │ │ │ └── 800.GzPbsCode_piece_vs.any │ │ │ ├── SolidColor │ │ │ │ ├── 500.GzSolidColorStructs_piece_all.any │ │ │ │ ├── 800.GzSolidColor_piece_ps.any │ │ │ │ └── 800.GzSolidColor_piece_vs.any │ │ │ └── SphericalClipMinDistance │ │ │ │ ├── GzSphericalClipMinDistance_piece_vs.any │ │ │ │ └── SphericalClipMinDistanceStructs_piece_all.any │ │ ├── Pbs │ │ │ ├── Any │ │ │ │ ├── 200.TextureRegisters_piece_vs.any │ │ │ │ ├── AmbientLighting_piece_ps.any │ │ │ │ ├── AreaLights_LTC_piece_ps.any │ │ │ │ ├── AreaLights_piece_ps.any │ │ │ │ ├── ClearCoat_piece_ps.any │ │ │ │ ├── ForwardPlus_DecalsCubemaps_piece_ps.any │ │ │ │ ├── IrradianceField_piece_all.any │ │ │ │ ├── IrradianceField_piece_ps.any │ │ │ │ ├── IrradianceVolume_piece_ps.any │ │ │ │ ├── LightProfiles_piece_ps.any │ │ │ │ ├── Main │ │ │ │ │ ├── 200.BRDFs_piece_ps.any │ │ │ │ │ ├── 200.BlendModes_piece_ps.any │ │ │ │ │ ├── 200.DetailMaps_piece_ps.any │ │ │ │ │ ├── 200.ForwardPlus_piece_ps.any │ │ │ │ │ ├── 200.Textures_piece_ps.any │ │ │ │ │ ├── 500.Structs_piece_vs_piece_ps.any │ │ │ │ │ ├── 800.PixelShader_piece_ps.any │ │ │ │ │ └── 800.VertexShader_piece_vs.any │ │ │ │ ├── PlanarReflections_piece_all.any │ │ │ │ ├── PlanarReflections_piece_ps.any │ │ │ │ ├── Refractions_piece_ps.any │ │ │ │ ├── ShadowMapping_piece_all.any │ │ │ │ ├── ShadowMapping_piece_ps.any │ │ │ │ ├── ShadowMapping_piece_vs.any │ │ │ │ ├── UvModifierMacros_piece_ps.any │ │ │ │ ├── Vct_piece_all.any │ │ │ │ └── Vct_piece_ps.any │ │ │ ├── GLSL │ │ │ │ ├── Forward3D_piece_ps.glsl │ │ │ │ ├── PixelShader_ps.glsl │ │ │ │ └── VertexShader_vs.glsl │ │ │ ├── GLSLES │ │ │ │ ├── BRDFs_piece_ps.glsl │ │ │ │ ├── BlendModes_piece_ps.glsl │ │ │ │ ├── DetailMaps_piece_ps.glsl │ │ │ │ ├── Forward3D_piece_ps.glsl │ │ │ │ ├── IrradianceVolume_piece_ps.glsl │ │ │ │ ├── PixelShader_ps.glsl │ │ │ │ ├── Structs_piece_vs_piece_ps.glsl │ │ │ │ ├── Textures_piece_ps.glsl │ │ │ │ └── VertexShader_vs.glsl │ │ │ ├── HLSL │ │ │ │ ├── Forward3D_piece_ps.hlsl │ │ │ │ ├── PixelShader_ps.hlsl │ │ │ │ ├── Textures_piece_ps.hlsl │ │ │ │ └── VertexShader_vs.hlsl │ │ │ └── Metal │ │ │ │ ├── Forward3D_piece_ps.metal │ │ │ │ ├── PixelShader_ps.metal │ │ │ │ ├── Textures_piece_ps.metal │ │ │ │ └── VertexShader_vs.metal │ │ ├── Terra │ │ │ ├── Any │ │ │ │ ├── 200.Textures_piece_ps.any │ │ │ │ ├── 500.Structs_piece_vs_piece_ps.any │ │ │ │ ├── 800.PixelShader_piece_ps.any │ │ │ │ └── 800.VertexShader_piece_vs.any │ │ │ ├── GLSL │ │ │ │ ├── PbsTerraShadows │ │ │ │ │ └── PbsTerraShadows_piece_vs_piece_ps.glsl │ │ │ │ ├── PixelShader_ps.glsl │ │ │ │ └── VertexShader_vs.glsl │ │ │ ├── HLSL │ │ │ │ ├── PbsTerraShadows │ │ │ │ │ └── PbsTerraShadows_piece_vs_piece_ps.hlsl │ │ │ │ ├── PixelShader_ps.hlsl │ │ │ │ └── VertexShader_vs.hlsl │ │ │ ├── Metal │ │ │ │ ├── PbsTerraShadows │ │ │ │ │ └── PbsTerraShadows_piece_vs_piece_ps.metal │ │ │ │ ├── PixelShader_ps.metal │ │ │ │ └── VertexShader_vs.metal │ │ │ └── gz │ │ │ │ ├── 100.gz_CustomVs_piece_vs.any │ │ │ │ ├── 100.gz_CustomWeights_piece_ps.any │ │ │ │ └── 500.gz_Structs_piece_all.any │ │ └── Unlit │ │ │ ├── Any │ │ │ ├── 500.StructsUnlit_piece_all.any │ │ │ ├── 700.BlendModes_piece_ps.any │ │ │ ├── 800.PixelShader_piece_ps.any │ │ │ └── 800.VertexShader_piece_vs.any │ │ │ ├── GLSL │ │ │ ├── PixelShader_ps.glsl │ │ │ └── VertexShader_vs.glsl │ │ │ ├── GLSLES │ │ │ ├── BlendModes_piece_ps.glsl │ │ │ ├── PixelShader_ps.glsl │ │ │ ├── Structs_piece_vs_piece_ps.glsl │ │ │ └── VertexShader_vs.glsl │ │ │ ├── HLSL │ │ │ ├── PixelShader_ps.hlsl │ │ │ └── VertexShader_vs.hlsl │ │ │ └── Metal │ │ │ ├── PixelShader_ps.metal │ │ │ └── VertexShader_vs.metal │ ├── VCT │ │ ├── AabbCalcultor_cs.glsl │ │ ├── AabbCalcultor_cs.hlsl │ │ ├── AabbCalcultor_cs.metal │ │ ├── AabbCalcultor_piece_cs.any │ │ ├── AabbWorldSpace_cs.glsl │ │ ├── AabbWorldSpace_cs.hlsl │ │ ├── AabbWorldSpace_cs.metal │ │ ├── AabbWorldSpace_piece_cs.any │ │ ├── AnisotropicMipVctStep0_cs.glsl │ │ ├── AnisotropicMipVctStep0_cs.hlsl │ │ ├── AnisotropicMipVctStep0_cs.metal │ │ ├── AnisotropicMipVctStep0_piece_cs.any │ │ ├── AnisotropicMipVctStep1_cs.glsl │ │ ├── AnisotropicMipVctStep1_cs.hlsl │ │ ├── AnisotropicMipVctStep1_cs.metal │ │ ├── AnisotropicMipVctStep1_piece_cs.any │ │ ├── ImageVoxelizer │ │ │ ├── ImageVoxelizer_cs.glsl │ │ │ ├── ImageVoxelizer_cs.hlsl │ │ │ ├── ImageVoxelizer_cs.metal │ │ │ ├── ImageVoxelizer_piece_cs.any │ │ │ ├── VoxelPartialClear_cs.glsl │ │ │ ├── VoxelPartialClear_cs.hlsl │ │ │ ├── VoxelPartialClear_cs.metal │ │ │ └── VoxelPartialClear_piece_cs.any │ │ ├── LightInjection_cs.glsl │ │ ├── LightInjection_cs.hlsl │ │ ├── LightInjection_cs.metal │ │ ├── LightInjection_piece_cs.any │ │ ├── LightVctBounceInject_cs.glsl │ │ ├── LightVctBounceInject_cs.hlsl │ │ ├── LightVctBounceInject_cs.metal │ │ ├── LightVctBounceInject_piece_cs.any │ │ ├── VctTexDownsample.compositor │ │ ├── Visualizer │ │ │ ├── VoxelVisualizer.material │ │ │ ├── VoxelVisualizer_ps.glsl │ │ │ ├── VoxelVisualizer_ps.hlsl │ │ │ ├── VoxelVisualizer_ps.metal │ │ │ ├── VoxelVisualizer_vs.any │ │ │ ├── VoxelVisualizer_vs.glsl │ │ │ ├── VoxelVisualizer_vs.hlsl │ │ │ └── VoxelVisualizer_vs.metal │ │ ├── Voxelizer.material.json │ │ ├── Voxelizer_cs.glsl │ │ ├── Voxelizer_cs.hlsl │ │ ├── Voxelizer_cs.metal │ │ └── Voxelizer_piece_cs.any │ └── materials │ │ ├── programs │ │ ├── GLSL │ │ │ ├── depth_camera_final_fs.glsl │ │ │ ├── depth_camera_final_vs.glsl │ │ │ ├── depth_camera_fs.glsl │ │ │ ├── depth_camera_vs.glsl │ │ │ ├── gaussian_noise_depth_fs.glsl │ │ │ ├── gaussian_noise_fs.glsl │ │ │ ├── gaussian_noise_vs.glsl │ │ │ ├── gpu_rays_1st_pass_fs.glsl │ │ │ ├── gpu_rays_1st_pass_vs.glsl │ │ │ ├── gpu_rays_2nd_pass_fs.glsl │ │ │ ├── heat_signature_fs.glsl │ │ │ ├── lens_flare_fs.glsl │ │ │ ├── plain_color_fs.glsl │ │ │ ├── plain_color_vs.glsl │ │ │ ├── point_fs.glsl │ │ │ ├── point_vs.glsl │ │ │ ├── selection_buffer_fs.glsl │ │ │ ├── skybox_fs.glsl │ │ │ ├── skybox_vs.glsl │ │ │ ├── thermal_camera_fs.glsl │ │ │ ├── wide_lens_map_fp.glsl │ │ │ └── wide_lens_map_vs.glsl │ │ └── Metal │ │ │ ├── depth_camera_final_fs.metal │ │ │ ├── depth_camera_final_vs.metal │ │ │ ├── depth_camera_fs.metal │ │ │ ├── depth_camera_vs.metal │ │ │ ├── gaussian_noise_depth_fs.metal │ │ │ ├── gaussian_noise_fs.metal │ │ │ ├── gaussian_noise_vs.metal │ │ │ ├── gpu_rays_1st_pass_fs.metal │ │ │ ├── gpu_rays_1st_pass_vs.metal │ │ │ ├── gpu_rays_2nd_pass_fs.metal │ │ │ ├── heat_signature_fs.metal │ │ │ ├── lens_flare_fs.metal │ │ │ ├── plain_color_fs.metal │ │ │ ├── plain_color_vs.metal │ │ │ ├── point_fs.metal │ │ │ ├── point_vs.metal │ │ │ ├── selection_buffer_fs.metal │ │ │ ├── skybox_fs.metal │ │ │ ├── skybox_vs.metal │ │ │ ├── thermal_camera_fs.metal │ │ │ ├── wide_lens_map_fp.metal │ │ │ └── wide_lens_map_vs.metal │ │ ├── scripts │ │ ├── GpuRays.compositor │ │ ├── depth_camera.material │ │ ├── gaussian_noise.material │ │ ├── gpu_rays.material │ │ ├── lens_flare.compositor │ │ ├── lens_flare.material │ │ ├── picker.material │ │ ├── picker.program │ │ ├── point_cloud_point.material │ │ ├── selection_buffer.material │ │ ├── skybox.material │ │ ├── thermal.material │ │ ├── wide_angle_camera.compositor │ │ └── wide_angle_camera.material │ │ └── textures │ │ └── skybox.dds │ └── terrain │ └── Terra │ ├── CMakeLists.txt │ ├── include │ └── Terra │ │ ├── Hlms │ │ ├── OgreHlmsJsonTerra.h │ │ ├── OgreHlmsTerra.h │ │ ├── OgreHlmsTerraDatablock.h │ │ ├── OgreHlmsTerraPrerequisites.h │ │ └── PbsListener │ │ │ └── OgreHlmsPbsTerraShadows.h │ │ ├── Terra.h │ │ ├── TerraShadowMapper.h │ │ ├── TerraWorkspaceListener.h │ │ └── TerrainCell.h │ └── src │ ├── Hlms │ ├── OgreHlmsJsonTerra.cpp │ ├── OgreHlmsTerra.cpp │ ├── OgreHlmsTerraDatablock.cpp │ ├── OgreHlmsTerraDatablock.cpp.inc │ └── PbsListener │ │ └── OgreHlmsPbsTerraShadows.cpp │ ├── Terra.cpp │ ├── TerraShadowMapper.cpp │ ├── TerraWorkspaceListener.cpp │ └── TerrainCell.cpp ├── optix ├── include │ ├── CMakeLists.txt │ └── gz │ │ ├── CMakeLists.txt │ │ └── rendering │ │ └── optix │ │ ├── OptixArrowVisual.hh │ │ ├── OptixAxisVisual.hh │ │ ├── OptixBox.hh │ │ ├── OptixCamera.hh │ │ ├── OptixCone.hh │ │ ├── OptixConversions.hh │ │ ├── OptixCylinder.hh │ │ ├── OptixGeometry.hh │ │ ├── OptixGrid.hh │ │ ├── OptixIncludes.hh │ │ ├── OptixLight.hh │ │ ├── OptixLightManager.hh │ │ ├── OptixLightTypes.hh │ │ ├── OptixMaterial.hh │ │ ├── OptixMesh.hh │ │ ├── OptixMeshFactory.hh │ │ ├── OptixNode.hh │ │ ├── OptixObject.hh │ │ ├── OptixPrimitive.hh │ │ ├── OptixRayTypes.hh │ │ ├── OptixRenderEngine.hh │ │ ├── OptixRenderTarget.hh │ │ ├── OptixRenderTypes.hh │ │ ├── OptixScene.hh │ │ ├── OptixSensor.hh │ │ ├── OptixSphere.hh │ │ ├── OptixStorage.hh │ │ ├── OptixTextureFactory.hh │ │ ├── OptixVisual.hh │ │ └── optix.hh.in └── src │ ├── CMakeLists.txt │ ├── OptixArrowVisual.cc │ ├── OptixAxisVisual.cc │ ├── OptixBox.cc │ ├── OptixBox.cu │ ├── OptixCamera.cc │ ├── OptixCamera.cu │ ├── OptixCone.cc │ ├── OptixCone.cu │ ├── OptixConversions.cc │ ├── OptixCylinder.cc │ ├── OptixCylinder.cu │ ├── OptixErrorProgram.cu │ ├── OptixGeometry.cc │ ├── OptixGrid.cc │ ├── OptixLight.cc │ ├── OptixLightManager.cc │ ├── OptixMaterial.cc │ ├── OptixMaterial.cu │ ├── OptixMesh.cc │ ├── OptixMesh.cu │ ├── OptixMeshFactory.cc │ ├── OptixMissProgram.cu │ ├── OptixNode.cc │ ├── OptixObject.cc │ ├── OptixPrimitive.cc │ ├── OptixRenderEngine.cc │ ├── OptixRenderTarget.cc │ ├── OptixScene.cc │ ├── OptixSensor.cc │ ├── OptixSphere.cc │ ├── OptixSphere.cu │ ├── OptixTextureFactory.cc │ └── OptixVisual.cc ├── package.xml ├── src ├── ArrowVisual.cc ├── AxisVisual.cc ├── BoundingBox.cc ├── BoundingBoxCamera.cc ├── CMakeLists.txt ├── COMVisual.cc ├── Camera.cc ├── CameraLens.cc ├── Capsule.cc ├── CompositeVisual.cc ├── DepthCamera.cc ├── DistortionPass.cc ├── FrustumVisual.cc ├── GaussianNoisePass.cc ├── Geometry.cc ├── GizmoVisual.cc ├── GlobalIlluminationBase.cc ├── GlobalIlluminationCiVct.cc ├── GlobalIlluminationVct.cc ├── GpuRays.cc ├── GraphicsAPI.cc ├── GraphicsAPI_TEST.cc ├── Grid.cc ├── HeightmapDescriptor.cc ├── Image.cc ├── InertiaVisual.cc ├── InstallationDirectories.cc ├── JointVisual.cc ├── LensFlarePass.cc ├── LidarVisual.cc ├── Light.cc ├── LightVisual.cc ├── Marker.cc ├── Material.cc ├── Mesh.cc ├── MeshDescriptor.cc ├── MoveToHelper.cc ├── NativeWindow.cc ├── Node.cc ├── Object.cc ├── OrbitViewController.cc ├── OrthoViewController.cc ├── ParticleEmitter.cc ├── PixelFormat.cc ├── PixelFormat_TEST.cc ├── Projector.cc ├── RayQuery.cc ├── RenderEngine.cc ├── RenderEngineManager.cc ├── RenderEnginePlugin.cc ├── RenderPass.cc ├── RenderPassSystem.cc ├── RenderTarget.cc ├── RenderingIface.cc ├── Scene.cc ├── SegmentationCamera.cc ├── Sensor.cc ├── ShaderParam.cc ├── ShaderParam_TEST.cc ├── ShaderParams.cc ├── ShaderParams_TEST.cc ├── ShaderType.cc ├── ShaderType_TEST.cc ├── Text.cc ├── ThermalCamera.cc ├── TransformController.cc ├── Utils.cc ├── ViewController.cc ├── Visual.cc ├── WideAngleCamera.cc ├── WireBox.cc ├── base │ ├── BaseNativeWindow.cc │ ├── BaseObject.cc │ ├── BaseRenderEngine.cc │ ├── BaseScene.cc │ ├── CMakeLists.txt │ └── media │ │ ├── CMakeLists.txt │ │ └── materials │ │ ├── CMakeLists.txt │ │ └── textures │ │ ├── CMakeLists.txt │ │ └── com.png └── bazel │ └── InstallationDirectories.cc ├── test ├── CMakeLists.txt ├── common_test │ ├── ArrowVisual_TEST.cc │ ├── AxisVisual_TEST.cc │ ├── BoundingBoxCamera_TEST.cc │ ├── BoundingBox_TEST.cc │ ├── CMakeLists.txt │ ├── COMVisual_TEST.cc │ ├── Camera_TEST.cc │ ├── Capsule_TEST.cc │ ├── CommonRenderingTest.hh │ ├── FrustumVisual_TEST.cc │ ├── GaussianNoisePass_TEST.cc │ ├── GizmoVisual_TEST.cc │ ├── GlobalIllumination_TEST.cc │ ├── Grid_TEST.cc │ ├── Heightmap_TEST.cc │ ├── InertiaVisual_TEST.cc │ ├── JointVisual_TEST.cc │ ├── LensFlarePass_TEST.cc │ ├── LidarVisual_TEST.cc │ ├── LightVisual_TEST.cc │ ├── Light_TEST.cc │ ├── Marker_TEST.cc │ ├── Material_TEST.cc │ ├── MeshDescriptor_TEST.cc │ ├── Mesh_TEST.cc │ ├── MoveToHelper_TEST.cc │ ├── Node_TEST.cc │ ├── OrbitViewController_TEST.cc │ ├── OrthoViewController_TEST.cc │ ├── ParticleEmitter_TEST.cc │ ├── Projector_TEST.cc │ ├── RayQuery_TEST.cc │ ├── RenderEngineManager_TEST.cc │ ├── RenderEngine_TEST.cc │ ├── RenderPassSystem_TEST.cc │ ├── RenderTarget_TEST.cc │ ├── RenderingIface_TEST.cc │ ├── Scene_TEST.cc │ ├── SegmentationCamera_TEST.cc │ ├── Text_TEST.cc │ ├── ThermalCamera_TEST.cc │ ├── TransformController_TEST.cc │ ├── Utils_TEST.cc │ ├── Visual_TEST.cc │ └── WireBox_TEST.cc ├── gtest_vendor │ ├── CMakeLists.txt │ ├── LICENSE │ ├── gtest_vendor_version │ ├── include │ │ └── gtest │ │ │ ├── gtest-assertion-result.h │ │ │ ├── gtest-death-test.h │ │ │ ├── gtest-matchers.h │ │ │ ├── gtest-message.h │ │ │ ├── gtest-param-test.h │ │ │ ├── gtest-printers.h │ │ │ ├── gtest-spi.h │ │ │ ├── gtest-test-part.h │ │ │ ├── gtest-typed-test.h │ │ │ ├── gtest.h │ │ │ ├── gtest_pred_impl.h │ │ │ ├── gtest_prod.h │ │ │ └── internal │ │ │ ├── custom │ │ │ ├── README.md │ │ │ ├── gtest-port.h │ │ │ ├── gtest-printers.h │ │ │ └── gtest.h │ │ │ ├── gtest-death-test-internal.h │ │ │ ├── gtest-filepath.h │ │ │ ├── gtest-internal.h │ │ │ ├── gtest-param-util.h │ │ │ ├── gtest-port-arch.h │ │ │ ├── gtest-port.h │ │ │ ├── gtest-string.h │ │ │ └── gtest-type-util.h │ └── src │ │ ├── gtest-all.cc │ │ ├── gtest-assertion-result.cc │ │ ├── gtest-death-test.cc │ │ ├── gtest-filepath.cc │ │ ├── gtest-internal-inl.h │ │ ├── gtest-matchers.cc │ │ ├── gtest-port.cc │ │ ├── gtest-printers.cc │ │ ├── gtest-test-part.cc │ │ ├── gtest-typed-test.cc │ │ ├── gtest.cc │ │ └── gtest_main.cc ├── gz_rendering_test.cmake ├── integration │ ├── CMakeLists.txt │ ├── all_symbols_have_version.bash.in │ ├── base64.hh │ ├── base64.inl │ ├── boundingbox_camera.cc │ ├── camera.cc │ ├── depth_camera.cc │ ├── gpu_rays.cc │ ├── heightmap.cc │ ├── lidar_visual.cc │ ├── load_unload.cc │ ├── mesh.cc │ ├── projector.cc │ ├── render_pass.cc │ ├── scene.cc │ ├── segmentation_camera.cc │ ├── shadows.cc │ ├── sky.cc │ ├── thermal_camera.cc │ ├── waves.cc │ └── wide_angle_camera.cc ├── media │ ├── heightmap_bowl.png │ ├── materials │ │ ├── programs │ │ │ ├── GerstnerWaves_fs.glsl │ │ │ ├── GerstnerWaves_fs.metal │ │ │ ├── GerstnerWaves_fs_330.glsl │ │ │ ├── GerstnerWaves_vs.glsl │ │ │ ├── GerstnerWaves_vs.metal │ │ │ ├── GerstnerWaves_vs_330.glsl │ │ │ ├── simple_color_330_fs.glsl │ │ │ ├── simple_color_330_vs.glsl │ │ │ ├── simple_color_fs.glsl │ │ │ ├── simple_color_fs.metal │ │ │ ├── simple_color_vs.glsl │ │ │ └── simple_color_vs.metal │ │ └── textures │ │ │ ├── blue_texture.png │ │ │ ├── flat_normal.png │ │ │ ├── gray_texture.png │ │ │ ├── red_texture.png │ │ │ ├── skybox_lowres.dds │ │ │ ├── texture.png │ │ │ └── wave_normals.dds │ └── meshes │ │ ├── cmu-13_26.bvh │ │ ├── mesh.dae │ │ └── walk.dae ├── performance │ ├── CMakeLists.txt │ └── scene_factory.cc └── regression │ ├── CMakeLists.txt │ └── reload_engine.cc ├── tools └── gl-test.py ├── tutorials.md.in └── tutorials ├── 01_intro.md ├── 02_install.md ├── 03_rendering_plugins.md ├── 04_lightmap.md ├── 10_actor_animation_tutorial.md ├── 12_mesh_viewer_tutorial.md ├── 13_custom_scene_viewer.md ├── 14_camera_tracking_tutorial.md ├── 15_custom_shaders_tutorial.md ├── 17_render_pass_tutorial.md ├── 18_simple_demo_tutorial.md ├── 19_text_geom_tutorial.md ├── 20_particles_tutorial.md ├── 21_heightmap.md ├── 21_render_order.md ├── 21_transform_fbx_to_dae.md ├── 22_environment_map.md ├── 23_depth_camera_tutorial.md ├── 24_boundingbox_camera_tutorial.md ├── img ├── actor_animation.png ├── boundingbox_camera.png ├── boundingbox_camera_2d_full.png ├── boundingbox_camera_2d_visible.png ├── camera_tracking.png ├── custom_scene_viewer.png ├── custom_shaders_depth.png ├── custom_shaders_rgb.png ├── depth_camera_ogre.png ├── gazebo_scene_viewer.gif ├── gazebo_scene_viewer2_demo.gif ├── heightmaps.png ├── heightmaps_dem.png ├── lightmap_bake.jpg ├── lightmap_depot_render.png ├── lightmap_depot_saved.jpg ├── lightmap_import.png ├── lightmap_material_connection.jpg ├── lightmap_material_shader.png ├── lightmap_new_texture.png ├── lightmap_rendered.png ├── lightmap_unwrap.png ├── mesh_viewer.png ├── ogre2_sky_envmap.png ├── particles.gif ├── render_order_bad.png ├── render_order_good.png ├── render_pass.gif ├── simple_demo.gif ├── skybox_gimp_layers.png ├── text_geom.png └── transform_fbx_to_dae │ ├── edit_origin.gif │ ├── import_model.gif │ └── remove_elemets.gif └── index.md /.bazelrc: -------------------------------------------------------------------------------- 1 | common --enable_bzlmod 2 | common --lockfile_mode=off 3 | 4 | # Add C++17 compiler flags. 5 | build --cxxopt=-std=c++17 6 | build --host_cxxopt=-std=c++17 7 | 8 | build --force_pic 9 | build --strip=never 10 | build --strict_system_includes 11 | build --fission=dbg 12 | build --features=per_object_debug_info 13 | 14 | # Enable header processing, required for layering checks with parse_header. 15 | build --process_headers_in_dependencies 16 | -------------------------------------------------------------------------------- /.bazelversion: -------------------------------------------------------------------------------- 1 | 7.3.1 2 | -------------------------------------------------------------------------------- /.codespell-ignore: -------------------------------------------------------------------------------- 1 | padd 2 | inout 3 | lod 4 | LOD 5 | SEH 6 | Protobuf 7 | CMake 8 | normalLS -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | # More info: 2 | # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners 3 | 4 | * @iche033 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Request a new feature 4 | labels: enhancement 5 | --- 6 | 7 | 10 | 11 | ## Desired behavior 12 | 13 | 14 | ## Alternatives considered 15 | 16 | 17 | ## Implementation suggestion 18 | 20 | 21 | ## Additional context 22 | 24 | -------------------------------------------------------------------------------- /.github/ci/after_make.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh -l 2 | 3 | set -x 4 | 5 | make install 6 | 7 | Xvfb :1 -ac -noreset -core -screen 0 1280x1024x24 & 8 | export DISPLAY=:1.0 9 | export MESA_GL_VERSION_OVERRIDE=3.3 10 | -------------------------------------------------------------------------------- /.github/ci/packages-jammy.apt: -------------------------------------------------------------------------------- 1 | libogre-next-dev 2 | libogre-next-2.3-dev 3 | libvulkan-dev 4 | -------------------------------------------------------------------------------- /.github/ci/packages-noble.apt: -------------------------------------------------------------------------------- 1 | libogre-next-2.3-dev 2 | libvulkan-dev 3 | -------------------------------------------------------------------------------- /.github/ci/packages.apt: -------------------------------------------------------------------------------- 1 | freeglut3-dev 2 | libfreeimage-dev 3 | libglew-dev 4 | libgz-cmake4-dev 5 | libgz-common6-dev 6 | libgz-math8-dev 7 | libgz-math8-eigen3-dev 8 | libgz-plugin3-dev 9 | libgz-utils3-dev 10 | libogre-1.9-dev 11 | libxi-dev 12 | libxmu-dev 13 | uuid-dev 14 | xvfb 15 | -------------------------------------------------------------------------------- /.github/workflows/bazel.yml: -------------------------------------------------------------------------------- 1 | name: Bazel CI 2 | on: 3 | push: 4 | branches: [gz-rendering9, main] 5 | pull_request: 6 | branches: [gz-rendering9, main] 7 | 8 | concurrency: 9 | group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} 10 | cancel-in-progress: true 11 | 12 | jobs: 13 | test: 14 | uses: bazel-contrib/.github/.github/workflows/bazel.yaml@v7.2.2 15 | with: 16 | folders: | 17 | [ 18 | ".", 19 | ] 20 | exclude: | 21 | [ 22 | {"folder": ".", "bzlmodEnabled": false}, 23 | ] 24 | -------------------------------------------------------------------------------- /.github/workflows/ci.bazelrc: -------------------------------------------------------------------------------- 1 | # This file contains Bazel settings to apply on CI only. 2 | # It is referenced with a --bazelrc option in the call to bazel in ci.yaml 3 | 4 | # Debug where options came from 5 | build --announce_rc 6 | # This directory is configured in GitHub actions to be persisted between runs. 7 | # We do not enable the repository cache to cache downloaded external artifacts 8 | # as these are generally faster to download again than to fetch them from the 9 | # GitHub actions cache. 10 | build --disk_cache=~/.cache/bazel 11 | # Don't rely on test logs being easily accessible from the test runner, 12 | # though it makes the log noisier. 13 | test --test_output=errors 14 | # Allows tests to run bazelisk-in-bazel, since this is the cache folder used 15 | test --test_env=XDG_CACHE_HOME 16 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: Ubuntu CI 2 | 3 | on: 4 | pull_request: 5 | push: 6 | branches: 7 | - 'ign-rendering[0-9]' 8 | - 'gz-rendering[1-9]?[0-9]' 9 | - 'main' 10 | 11 | jobs: 12 | jammy-ci: 13 | runs-on: ubuntu-latest 14 | name: Ubuntu Jammy CI 15 | steps: 16 | - name: Checkout 17 | uses: actions/checkout@v4 18 | - name: Compile and test 19 | id: ci 20 | uses: gazebo-tooling/action-gz-ci@jammy 21 | with: 22 | codecov-enabled: true 23 | doxygen-enabled: true 24 | noble-ci: 25 | runs-on: ubuntu-latest 26 | name: Ubuntu Noble CI 27 | steps: 28 | - name: Checkout 29 | uses: actions/checkout@v4 30 | - name: Compile and test 31 | id: ci 32 | uses: gazebo-tooling/action-gz-ci@noble 33 | with: 34 | cppcheck-enabled: true 35 | cpplint-enabled: true 36 | -------------------------------------------------------------------------------- /.github/workflows/package_xml.yml: -------------------------------------------------------------------------------- 1 | name: Validate package.xml 2 | 3 | on: 4 | pull_request: 5 | 6 | jobs: 7 | package-xml: 8 | runs-on: ubuntu-latest 9 | name: Validate package.xml 10 | steps: 11 | - uses: gazebo-tooling/action-gz-ci/validate_package_xml@jammy 12 | -------------------------------------------------------------------------------- /.github/workflows/pr-collection-labeler.yml: -------------------------------------------------------------------------------- 1 | name: PR Collection Labeler 2 | 3 | on: pull_request_target 4 | 5 | jobs: 6 | pr_collection_labeler: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - name: Add collection labels 10 | if: github.event.action == 'opened' 11 | uses: gazebo-tooling/pr-collection-labeler@v1 12 | with: 13 | github-token: ${{ secrets.GITHUB_TOKEN }} 14 | -------------------------------------------------------------------------------- /.github/workflows/triage.yml: -------------------------------------------------------------------------------- 1 | on: 2 | issues: 3 | types: [opened] 4 | pull_request_target: 5 | types: [opened] 6 | name: Ticket opened 7 | jobs: 8 | assign: 9 | name: Add ticket to inbox 10 | runs-on: ubuntu-latest 11 | steps: 12 | - name: Add ticket to inbox 13 | uses: actions/add-to-project@v0.5.0 14 | with: 15 | project-url: https://github.com/orgs/gazebosim/projects/7 16 | github-token: ${{ secrets.TRIAGE_TOKEN }} 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # CMake folders 2 | build 3 | build_* 4 | 5 | # OS generated files 6 | .DS_Store 7 | *.swp 8 | 9 | # Bazel generated files 10 | bazel-* 11 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | OSRFoundation 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | See the [Gazebo contributing guide](https://gazebosim.org/docs/all/contributing). 2 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- 1 | http://gazebosim.org 2 | -------------------------------------------------------------------------------- /api.md.in: -------------------------------------------------------------------------------- 1 | ## Gazebo @GZ_DESIGNATION_CAP@ 2 | 3 | Gazebo @GZ_DESIGNATION_CAP@ is a component in Gazebo, a set of libraries 4 | designed to rapidly develop robot and simulation applications. 5 | 6 | ## License 7 | 8 | The code associated with this documentation is licensed under an [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0). 9 | 10 | This documentation is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). 11 | -------------------------------------------------------------------------------- /coverage.ignore.in: -------------------------------------------------------------------------------- 1 | ogre/* 2 | optix/* 3 | ogre2/src/terrain/Terra/* 4 | -------------------------------------------------------------------------------- /cppcheck.suppress.in: -------------------------------------------------------------------------------- 1 | *:*/Terra/*.h 2 | -------------------------------------------------------------------------------- /doc/ogre_1-9.tag.xml.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/doc/ogre_1-9.tag.xml.tgz -------------------------------------------------------------------------------- /examples/actor_animation/README.md: -------------------------------------------------------------------------------- 1 | # Actor animation 2 | 3 | Demo of skeleton animation. 4 | 5 | ## Build 6 | 7 | ~~~ 8 | cd examples/actor_animation 9 | mkdir build 10 | cd build 11 | cmake .. 12 | make 13 | ~~~ 14 | 15 | ## Use 16 | 17 | By default, the demo uses the Ogre 1 engine: 18 | 19 | ./actor_animation 20 | 21 | It's also possible to use Ogre 2, i.e. 22 | 23 | ./actor_animation ogre2 24 | 25 | -------------------------------------------------------------------------------- /examples/actor_animation/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/boundingbox_camera/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/boundingbox_camera/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/boundingbox_camera/media/duck.png -------------------------------------------------------------------------------- /examples/camera_tracking/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-camera-tracking) 3 | find_package(gz-rendering9 REQUIRED) 4 | 5 | find_package(GLUT REQUIRED) 6 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 7 | link_directories(${GLUT_LIBRARY_DIRS}) 8 | 9 | find_package(OpenGL REQUIRED) 10 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 11 | link_directories(${OpenGL_LIBRARY_DIRS}) 12 | 13 | if (NOT APPLE) 14 | find_package(GLEW REQUIRED) 15 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 16 | link_directories(${GLEW_LIBRARY_DIRS}) 17 | endif() 18 | 19 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 20 | 21 | add_executable(camera_tracking Main.cc GlutWindow.cc) 22 | 23 | target_link_libraries(camera_tracking 24 | ${GLUT_LIBRARIES} 25 | ${OPENGL_LIBRARIES} 26 | ${GLEW_LIBRARIES} 27 | ${GZ-RENDERING_LIBRARIES} 28 | ) 29 | -------------------------------------------------------------------------------- /examples/custom_scene_viewer/DemoWindow.hh: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #ifndef GZ_RENDERING_EXAMPLES_CUSTOM_SCENE_VIEWER_DEMOWINDOW_HH_ 18 | #define GZ_RENDERING_EXAMPLES_CUSTOM_SCENE_VIEWER_DEMOWINDOW_HH_ 19 | 20 | #include "TestTypes.hh" 21 | 22 | namespace ir = gz::rendering; 23 | 24 | /// \brief Run the demo 25 | /// \param[in] _Pointer to demo 26 | void run(ir::ManualSceneDemoPtr _demo); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /examples/custom_scene_viewer/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/custom_scene_viewer/media/brick_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/custom_scene_viewer/media/brick_normal.jpg -------------------------------------------------------------------------------- /examples/custom_scene_viewer/media/tiles.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/custom_scene_viewer/media/tiles.jpg -------------------------------------------------------------------------------- /examples/custom_shaders/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/custom_shaders/media/depth_fragment_shader.glsl: -------------------------------------------------------------------------------- 1 | varying float depth; 2 | 3 | void main() 4 | { 5 | // arbitrary camera far and near clip plane values for normalizing depth data 6 | // to produce a nice depth camera visualization effect 7 | float far = 10.0; 8 | float near = 0.1; 9 | gl_FragColor = vec4(vec3(depth / (far - near)), 1.0); 10 | 11 | } 12 | -------------------------------------------------------------------------------- /examples/custom_shaders/media/depth_vertex_shader.glsl: -------------------------------------------------------------------------------- 1 | varying float depth; 2 | 3 | void main() 4 | { 5 | gl_Position = ftransform(); 6 | vec4 point = gl_ModelViewMatrix * gl_Vertex; 7 | depth = -point.z; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /examples/custom_shaders/media/fragment_shader.glsl: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); 4 | } 5 | -------------------------------------------------------------------------------- /examples/custom_shaders/media/vertex_shader.glsl: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | gl_Position = ftransform(); 4 | } 5 | -------------------------------------------------------------------------------- /examples/custom_shaders_uniforms/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" -------------------------------------------------------------------------------- /examples/custom_shaders_uniforms/media/vertex_shader.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | varying vec4 interpolatedPosition; 19 | 20 | void main() 21 | { 22 | gl_Position = ftransform(); 23 | interpolatedPosition = gl_Position; 24 | } 25 | -------------------------------------------------------------------------------- /examples/custom_shaders_uniforms/media/vertex_shader_330.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #version 330 19 | 20 | in vec4 vertex; 21 | uniform mat4 worldviewproj_matrix; 22 | 23 | out gl_PerVertex 24 | { 25 | vec4 gl_Position; 26 | }; 27 | 28 | out vec4 interpolatedPosition; 29 | 30 | void main() 31 | { 32 | gl_Position = worldviewproj_matrix * vertex; 33 | interpolatedPosition = gl_Position; 34 | } 35 | 36 | -------------------------------------------------------------------------------- /examples/depth_camera/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/depth_camera/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/depth_camera/media/duck.png -------------------------------------------------------------------------------- /examples/frustum_visual/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-frustum-visual) 3 | find_package(gz-rendering9 REQUIRED) 4 | 5 | find_package(GLUT REQUIRED) 6 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 7 | link_directories(${GLUT_LIBRARY_DIRS}) 8 | 9 | find_package(OpenGL REQUIRED) 10 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 11 | link_directories(${OpenGL_LIBRARY_DIRS}) 12 | 13 | if (NOT APPLE) 14 | find_package(GLEW REQUIRED) 15 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 16 | link_directories(${GLEW_LIBRARY_DIRS}) 17 | endif() 18 | 19 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 20 | 21 | add_executable(frustum_visual Main.cc GlutWindow.cc) 22 | 23 | target_link_libraries(frustum_visual 24 | ${GLUT_LIBRARIES} 25 | ${OPENGL_LIBRARIES} 26 | ${GLEW_LIBRARIES} 27 | ${GZ-RENDERING_LIBRARIES} 28 | ) 29 | -------------------------------------------------------------------------------- /examples/global_illumination/GiConfig.hh: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #define GI_METHOD 1 18 | 19 | #if GI_METHOD == 1 20 | extern gz::rendering::GlobalIlluminationVctPtr g_gi; 21 | #else 22 | extern gz::rendering::GlobalIlluminationCiVctPtr g_gi; 23 | #endif 24 | -------------------------------------------------------------------------------- /examples/global_illumination/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/heightmap/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/heightmap/media/city_terrain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/city_terrain.jpg -------------------------------------------------------------------------------- /examples/heightmap/media/dirt_diffusespecular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/dirt_diffusespecular.png -------------------------------------------------------------------------------- /examples/heightmap/media/flat_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/flat_normal.png -------------------------------------------------------------------------------- /examples/heightmap/media/fungus_diffusespecular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/fungus_diffusespecular.png -------------------------------------------------------------------------------- /examples/heightmap/media/grass_diffusespecular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/grass_diffusespecular.png -------------------------------------------------------------------------------- /examples/heightmap/media/heightmap_bowl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/heightmap_bowl.png -------------------------------------------------------------------------------- /examples/heightmap/media/moon.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/moon.tif -------------------------------------------------------------------------------- /examples/heightmap/media/moon_diffuse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/moon_diffuse.png -------------------------------------------------------------------------------- /examples/heightmap/media/moon_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/moon_normal.png -------------------------------------------------------------------------------- /examples/heightmap/media/volcano.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/heightmap/media/volcano.tif -------------------------------------------------------------------------------- /examples/hello_world_plugin/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | 3 | find_package(gz-rendering9 REQUIRED) 4 | set(GZ_RENDERING_VER ${gz-rendering9_VERSION_MAJOR}) 5 | 6 | find_package(gz-plugin3 REQUIRED COMPONENTS all) 7 | set(GZ_PLUGIN_VER ${gz-plugin3_VERSION_MAJOR}) 8 | 9 | find_package(gz-common6 REQUIRED) 10 | set(GZ_COMMON_VER ${gz-common6_VERSION_MAJOR}) 11 | 12 | add_library(HelloWorldPlugin SHARED HelloWorldPlugin.cc) 13 | target_link_libraries(HelloWorldPlugin 14 | PUBLIC 15 | gz-rendering${GZ_RENDERING_VER}::gz-rendering${GZ_RENDERING_VER} 16 | gz-common${GZ_COMMON_VER}::gz-common${GZ_COMMON_VER} 17 | PRIVATE 18 | gz-plugin${GZ_PLUGIN_VER}::register 19 | ) 20 | -------------------------------------------------------------------------------- /examples/lidar_visual/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-lidar_visual) 3 | find_package(gz-rendering9 REQUIRED) 4 | 5 | include_directories(SYSTEM 6 | ${PROJECT_BINARY_DIR} 7 | ) 8 | 9 | find_package(GLUT REQUIRED) 10 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 11 | link_directories(${GLUT_LIBRARY_DIRS}) 12 | 13 | find_package(OpenGL REQUIRED) 14 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 15 | link_directories(${OpenGL_LIBRARY_DIRS}) 16 | 17 | if (NOT APPLE) 18 | find_package(GLEW REQUIRED) 19 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 20 | link_directories(${GLEW_LIBRARY_DIRS}) 21 | endif() 22 | 23 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 24 | 25 | configure_file (example_config.hh.in ${PROJECT_BINARY_DIR}/example_config.hh) 26 | 27 | add_executable(lidar_visual Main.cc GlutWindow.cc) 28 | 29 | target_link_libraries(lidar_visual 30 | ${GLUT_LIBRARIES} 31 | ${OPENGL_LIBRARIES} 32 | ${GLEW_LIBRARIES} 33 | ${GZ-RENDERING_LIBRARIES} 34 | ) -------------------------------------------------------------------------------- /examples/lidar_visual/README.md: -------------------------------------------------------------------------------- 1 | # Lidar Visual Example 2 | 3 | Demo of a lidar visualization using data from a GPU Rays sensor. 4 | A laser sensor model is used to detect objects in the rendering window 5 | environment and the collected data is visualized. 6 | 7 | ## Build 8 | 9 | ~~~ 10 | cd examples/lidar_visual 11 | mkdir build 12 | cd build 13 | cmake .. 14 | make 15 | ~~~ 16 | 17 | ## Use 18 | 19 | By default, the demo uses the Ogre 1 engine: 20 | 21 | ./lidar_visual 22 | 23 | It's also possible to use Ogre 2: 24 | 25 | ./lidar_visual ogre2 26 | 27 | -------------------------------------------------------------------------------- /examples/lidar_visual/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/lux_core_engine/LuxCoreEngineGeometry.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "LuxCoreEngineGeometry.hh" 18 | #include "LuxCoreEngineScene.hh" 19 | 20 | using namespace gz; 21 | using namespace rendering; 22 | 23 | ////////////////////////////////////////////////// 24 | LuxCoreEngineGeometry::LuxCoreEngineGeometry() {} 25 | -------------------------------------------------------------------------------- /examples/lux_core_engine/LuxCoreEngineSensor.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "LuxCoreEngineSensor.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | LuxCoreEngineSensor::LuxCoreEngineSensor() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | LuxCoreEngineSensor::~LuxCoreEngineSensor() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /examples/lux_core_engine/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/lux_core_engine/media/duck.png -------------------------------------------------------------------------------- /examples/mesh_viewer/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/mesh_viewer/media/AmbulanceStretcher.glb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/mesh_viewer/media/AmbulanceStretcher.glb -------------------------------------------------------------------------------- /examples/mesh_viewer/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/mesh_viewer/media/duck.png -------------------------------------------------------------------------------- /examples/mouse_picking/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-mouse-picking) 3 | find_package(gz-rendering9 REQUIRED) 4 | 5 | include_directories(SYSTEM 6 | ${PROJECT_BINARY_DIR} 7 | ) 8 | 9 | find_package(GLUT REQUIRED) 10 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 11 | link_directories(${GLUT_LIBRARY_DIRS}) 12 | 13 | find_package(OpenGL REQUIRED) 14 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 15 | link_directories(${OpenGL_LIBRARY_DIRS}) 16 | 17 | if (NOT APPLE) 18 | find_package(GLEW REQUIRED) 19 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 20 | link_directories(${GLEW_LIBRARY_DIRS}) 21 | endif() 22 | 23 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 24 | 25 | add_executable(mouse_picking Main.cc GlutWindow.cc) 26 | 27 | target_link_libraries(mouse_picking 28 | ${GLUT_LIBRARIES} 29 | ${OPENGL_LIBRARIES} 30 | ${GLEW_LIBRARIES} 31 | ${GZ-RENDERING_LIBRARIES} 32 | ) 33 | -------------------------------------------------------------------------------- /examples/ogre2_demo/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/ogre2_demo/media/backpack.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/backpack.png -------------------------------------------------------------------------------- /examples/ogre2_demo/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/duck.png -------------------------------------------------------------------------------- /examples/ogre2_demo/media/fort_point.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/fort_point.dds -------------------------------------------------------------------------------- /examples/ogre2_demo/media/pump_albedo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/pump_albedo.png -------------------------------------------------------------------------------- /examples/ogre2_demo/media/pump_metallic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/pump_metallic.png -------------------------------------------------------------------------------- /examples/ogre2_demo/media/pump_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/pump_normal.png -------------------------------------------------------------------------------- /examples/ogre2_demo/media/pump_roughness.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/pump_roughness.png -------------------------------------------------------------------------------- /examples/ogre2_demo/media/skybox_lowres.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/ogre2_demo/media/skybox_lowres.dds -------------------------------------------------------------------------------- /examples/particles_demo/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/particles_demo/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/particles_demo/media/duck.png -------------------------------------------------------------------------------- /examples/particles_demo/media/smoke.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/particles_demo/media/smoke.png -------------------------------------------------------------------------------- /examples/particles_demo/media/smokecolors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/particles_demo/media/smokecolors.png -------------------------------------------------------------------------------- /examples/projector/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/projector/media/stereo_projection_pattern_high_res_red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/projector/media/stereo_projection_pattern_high_res_red.png -------------------------------------------------------------------------------- /examples/render_pass/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-render-pass) 3 | 4 | find_package(gz-rendering9) 5 | 6 | find_package(GLUT REQUIRED) 7 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 8 | link_directories(${GLUT_LIBRARY_DIRS}) 9 | 10 | find_package(OpenGL REQUIRED) 11 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 12 | link_directories(${OpenGL_LIBRARY_DIRS}) 13 | 14 | if (NOT APPLE) 15 | find_package(GLEW REQUIRED) 16 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 17 | link_directories(${GLEW_LIBRARY_DIRS}) 18 | endif() 19 | 20 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 21 | 22 | add_executable(render_pass Main.cc GlutWindow.cc) 23 | 24 | target_link_libraries(render_pass 25 | ${GLUT_LIBRARIES} 26 | ${OPENGL_LIBRARIES} 27 | ${GLEW_LIBRARIES} 28 | ${GZ-RENDERING_LIBRARIES} 29 | ) 30 | -------------------------------------------------------------------------------- /examples/segmentation_camera/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/segmentation_camera/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/segmentation_camera/media/duck.png -------------------------------------------------------------------------------- /examples/simple_demo/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-simple-demo) 3 | 4 | find_package(gz-rendering9) 5 | 6 | find_package(GLUT REQUIRED) 7 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 8 | link_directories(${GLUT_LIBRARY_DIRS}) 9 | 10 | find_package(OpenGL REQUIRED) 11 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 12 | link_directories(${OpenGL_LIBRARY_DIRS}) 13 | 14 | if (NOT APPLE) 15 | find_package(GLEW REQUIRED) 16 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 17 | link_directories(${GLEW_LIBRARY_DIRS}) 18 | endif() 19 | 20 | if(NOT MSVC) 21 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 22 | endif() 23 | 24 | add_executable(simple_demo Main.cc GlutWindow.cc) 25 | 26 | target_link_libraries(simple_demo 27 | ${GLUT_LIBRARIES} 28 | ${OPENGL_LIBRARIES} 29 | ${GLEW_LIBRARIES} 30 | ${GZ-RENDERING_LIBRARIES} 31 | ) 32 | -------------------------------------------------------------------------------- /examples/simple_demo_qml/Main.qml: -------------------------------------------------------------------------------- 1 | import QtQuick 2.0 2 | import GzRendering 1.0 3 | 4 | Item { 5 | width: 800 6 | height: 600 7 | 8 | ThreadRenderer { 9 | id: renderer 10 | anchors.fill: parent 11 | anchors.margins: 10 12 | opacity: 0 13 | Component.onCompleted: renderer.opacity = 1; 14 | } 15 | 16 | Rectangle { 17 | id: labelFrame 18 | anchors.margins: -10 19 | radius: 5 20 | color: "white" 21 | border.color: "black" 22 | opacity: 0.8 23 | anchors.fill: label 24 | } 25 | 26 | Text { 27 | id: label 28 | anchors.bottom: renderer.bottom 29 | anchors.left: renderer.left 30 | anchors.right: renderer.right 31 | anchors.margins: 20 32 | wrapMode: Text.WordWrap 33 | text: "simple_demo_qml : the `simple_demo` example using gz-rendering and QML." 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /examples/simple_demo_qml/Main.qrc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Main.qml 5 | 6 | 7 | -------------------------------------------------------------------------------- /examples/text_geom/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-text-geom) 3 | 4 | find_package(gz-rendering9) 5 | 6 | find_package(GLUT REQUIRED) 7 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 8 | link_directories(${GLUT_LIBRARY_DIRS}) 9 | 10 | find_package(OpenGL REQUIRED) 11 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 12 | link_directories(${OpenGL_LIBRARY_DIRS}) 13 | 14 | if (NOT APPLE) 15 | find_package(GLEW REQUIRED) 16 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 17 | link_directories(${GLEW_LIBRARY_DIRS}) 18 | endif() 19 | 20 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 21 | 22 | add_executable(text_geom Main.cc GlutWindow.cc) 23 | 24 | target_link_libraries(text_geom 25 | ${GLUT_LIBRARIES} 26 | ${OPENGL_LIBRARIES} 27 | ${GLEW_LIBRARIES} 28 | ${GZ-RENDERING_LIBRARIES} 29 | ) 30 | 31 | -------------------------------------------------------------------------------- /examples/thermal_camera/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" 2 | -------------------------------------------------------------------------------- /examples/thermal_camera/media/duck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/thermal_camera/media/duck.png -------------------------------------------------------------------------------- /examples/transform_control/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-transform-control) 3 | find_package(gz-rendering9 REQUIRED) 4 | 5 | include_directories(SYSTEM 6 | ${PROJECT_BINARY_DIR} 7 | ) 8 | 9 | find_package(GLUT REQUIRED) 10 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 11 | link_directories(${GLUT_LIBRARY_DIRS}) 12 | 13 | find_package(OpenGL REQUIRED) 14 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 15 | link_directories(${OpenGL_LIBRARY_DIRS}) 16 | 17 | if (NOT APPLE) 18 | find_package(GLEW REQUIRED) 19 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 20 | link_directories(${GLEW_LIBRARY_DIRS}) 21 | endif() 22 | 23 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 24 | 25 | add_executable(transform_control Main.cc GlutWindow.cc) 26 | 27 | target_link_libraries(transform_control 28 | ${GLUT_LIBRARIES} 29 | ${OPENGL_LIBRARIES} 30 | ${GLEW_LIBRARIES} 31 | ${GZ-RENDERING_LIBRARIES} 32 | ) 33 | -------------------------------------------------------------------------------- /examples/view_control/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.22.1 FATAL_ERROR) 2 | project(gz-rendering-view-control) 3 | find_package(gz-rendering9 REQUIRED) 4 | 5 | find_package(GLUT REQUIRED) 6 | include_directories(SYSTEM ${GLUT_INCLUDE_DIRS}) 7 | link_directories(${GLUT_LIBRARY_DIRS}) 8 | 9 | find_package(OpenGL REQUIRED) 10 | include_directories(SYSTEM ${OpenGL_INCLUDE_DIRS}) 11 | link_directories(${OpenGL_LIBRARY_DIRS}) 12 | 13 | if (NOT APPLE) 14 | find_package(GLEW REQUIRED) 15 | include_directories(SYSTEM ${GLEW_INCLUDE_DIRS}) 16 | link_directories(${GLEW_LIBRARY_DIRS}) 17 | endif() 18 | 19 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-declarations") 20 | 21 | add_executable(view_control Main.cc GlutWindow.cc) 22 | 23 | target_link_libraries(view_control 24 | ${GLUT_LIBRARIES} 25 | ${OPENGL_LIBRARIES} 26 | ${GLEW_LIBRARIES} 27 | ${GZ-RENDERING_LIBRARIES} 28 | ) 29 | -------------------------------------------------------------------------------- /examples/waves/example_config.hh.in: -------------------------------------------------------------------------------- 1 | #define PROJECT_BINARY_PATH "${PROJECT_BINARY_DIR}" -------------------------------------------------------------------------------- /examples/waves/media/skybox_lowres.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/waves/media/skybox_lowres.dds -------------------------------------------------------------------------------- /examples/waves/media/wave_normals.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/examples/waves/media/wave_normals.dds -------------------------------------------------------------------------------- /include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(gz) 2 | -------------------------------------------------------------------------------- /include/gz/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(rendering) 2 | -------------------------------------------------------------------------------- /include/gz/rendering/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gz_install_all_headers() 2 | -------------------------------------------------------------------------------- /include/gz/rendering/base/base.hh.in: -------------------------------------------------------------------------------- 1 | // Automatically generated 2 | #include 3 | ${gz_headers} 4 | -------------------------------------------------------------------------------- /include/gz/rendering/rendering.hh.in: -------------------------------------------------------------------------------- 1 | // Automatically generated 2 | //#include 3 | ${gz_headers} 4 | -------------------------------------------------------------------------------- /ogre/include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(gz) 2 | -------------------------------------------------------------------------------- /ogre/include/gz/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(rendering) 2 | -------------------------------------------------------------------------------- /ogre/include/gz/rendering/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gz_install_all_headers(COMPONENT ogre) 2 | -------------------------------------------------------------------------------- /ogre/include/gz/rendering/ogre/ogre.hh.in: -------------------------------------------------------------------------------- 1 | // Automatically generated 2 | #include 3 | ${gz_headers} 4 | -------------------------------------------------------------------------------- /ogre/src/OgreArrowVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre/OgreArrowVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OgreArrowVisual::OgreArrowVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OgreArrowVisual::~OgreArrowVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre/src/OgreAxisVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre/OgreAxisVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OgreAxisVisual::OgreAxisVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OgreAxisVisual::~OgreAxisVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre/src/OgreGizmoVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre/OgreGizmoVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OgreGizmoVisual::OgreGizmoVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OgreGizmoVisual::~OgreGizmoVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre/src/OgreJointVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre/OgreJointVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OgreJointVisual::OgreJointVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OgreJointVisual::~OgreJointVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre/src/OgreParticleEmitter.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre/OgreParticleEmitter.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OgreParticleEmitter::OgreParticleEmitter() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OgreParticleEmitter::~OgreParticleEmitter() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre/src/OgreSensor.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre/OgreSensor.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OgreSensor::OgreSensor() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OgreSensor::~OgreSensor() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre/src/media/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(fonts) 2 | add_subdirectory(materials) 3 | add_subdirectory(rtshaderlib150) 4 | -------------------------------------------------------------------------------- /ogre/src/media/fonts/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB files "*ttf" "*png" "*fontdef") 2 | 3 | install(FILES ${files} DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/ogre/media/fonts) 4 | install(DIRECTORY liberation-sans DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/ogre/media/fonts) 5 | install(DIRECTORY roboto DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/ogre/media/fonts) 6 | -------------------------------------------------------------------------------- /ogre/src/media/fonts/README.md: -------------------------------------------------------------------------------- 1 | This package uses the following fonts: 2 | 3 | - Liberation Sans 4 | - https://en.wikipedia.org/wiki/Liberation_fonts 5 | - https://www.fontsquirrel.com/fonts/Liberation-Sans 6 | 7 | - Roboto 8 | - https://fonts.google.com/specimen/Roboto/about -------------------------------------------------------------------------------- /ogre/src/media/fonts/console.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/console.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/font_matisse_itc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/font_matisse_itc.png -------------------------------------------------------------------------------- /ogre/src/media/fonts/liberation-sans/LiberationSans-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/liberation-sans/LiberationSans-Bold.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/liberation-sans/LiberationSans-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/liberation-sans/LiberationSans-BoldItalic.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/liberation-sans/LiberationSans-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/liberation-sans/LiberationSans-Italic.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/liberation-sans/LiberationSans-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/liberation-sans/LiberationSans-Regular.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-Black.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-BlackItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-BlackItalic.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-Bold.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-BoldItalic.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-Italic.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-Light.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-LightItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-LightItalic.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-Medium.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-MediumItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-MediumItalic.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-Regular.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-Thin.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-Thin.ttf -------------------------------------------------------------------------------- /ogre/src/media/fonts/roboto/Roboto-ThinItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/fonts/roboto/Roboto-ThinItalic.ttf -------------------------------------------------------------------------------- /ogre/src/media/materials/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(programs) 2 | add_subdirectory(scripts) 3 | add_subdirectory(textures) 4 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB files "*.glsl") 2 | 3 | install(FILES ${files} DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/ogre/media/materials/programs) 4 | 5 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/camera_distortion_map_vs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | // Simple vertex shader; just setting things up for the real work to be done in 19 | // camera_distortion_fs.glsl. 20 | void main() 21 | { 22 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 23 | gl_TexCoord[0] = gl_MultiTexCoord0; 24 | } 25 | 26 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/depth_fragment_shader.glsl: -------------------------------------------------------------------------------- 1 | uniform float pNear; 2 | uniform float pFar; 3 | 4 | varying float depth; 5 | 6 | void main() 7 | { 8 | // This normalizes the depth value 9 | // gl_FragColor = vec4(vec3(depth / (pFar - pNear)), 1.0); 10 | 11 | // This returns the world position 12 | gl_FragColor = vec4(vec3(depth), 1.0); 13 | } 14 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/depth_points_fs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | varying vec4 eyePos; 19 | 20 | void main() 21 | { 22 | // convert to z up 23 | gl_FragColor = vec4(-eyePos.z, -eyePos.x, eyePos.y, 1.0); 24 | } 25 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/depth_points_vs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | varying vec4 eyePos; 19 | 20 | void main() 21 | { 22 | gl_Position = ftransform(); 23 | eyePos = gl_ModelViewMatrix * gl_Vertex; 24 | gl_TexCoord[0] = gl_MultiTexCoord0; 25 | } 26 | 27 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/depth_vertex_shader.glsl: -------------------------------------------------------------------------------- 1 | uniform vec4 texelOffsets; 2 | 3 | varying float depth; 4 | 5 | void main() 6 | { 7 | gl_Position = ftransform(); 8 | gl_Position.xy += texelOffsets.zw * gl_Position.w; 9 | depth = gl_Position.w; // copied from old gazebo 10 | } 11 | 12 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/fragment_shader.glsl: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | gl_FragColor = vec4(0.0, 1.0, 0.0, 1.0); 4 | } 5 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/gaussian_noise_vs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | // Simple vertex shader; just setting things up for the real work to be done in 19 | // gaussian_noise_fs.glsl. 20 | void main() 21 | { 22 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 23 | gl_TexCoord[0] = gl_MultiTexCoord0; 24 | } 25 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/gpu_rays_1st_pass_fs.glsl: -------------------------------------------------------------------------------- 1 | uniform float retro; 2 | 3 | uniform float near; 4 | uniform float far; 5 | uniform float max; 6 | uniform float min; 7 | 8 | varying vec4 point; 9 | 10 | void main() 11 | { 12 | float l = length(point.xyz); 13 | 14 | if (l > far) 15 | l = max; 16 | if (l < near) 17 | l = min; 18 | 19 | gl_FragColor = vec4(l, retro, 0, 1.0); 20 | } 21 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/gpu_rays_1st_pass_vs.glsl: -------------------------------------------------------------------------------- 1 | varying vec4 point; 2 | 3 | void main() 4 | { 5 | gl_Position = ftransform(); 6 | 7 | // Vertex in world space 8 | point = gl_ModelViewMatrix * gl_Vertex; 9 | } 10 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/gpu_rays_2nd_pass_fs.glsl: -------------------------------------------------------------------------------- 1 | uniform sampler2D tex1; 2 | uniform sampler2D tex2; 3 | uniform sampler2D tex3; 4 | 5 | uniform vec4 texSize; 6 | varying float tex; 7 | 8 | void main() 9 | { 10 | if ((gl_TexCoord[0].s < 0.0) || (gl_TexCoord[0].s > 1.0) || 11 | (gl_TexCoord[0].t < 0.0) || (gl_TexCoord[0].t > 1.0)) 12 | gl_FragColor = vec4(1,1,1,1); 13 | else 14 | { 15 | int int_tex = int(tex * 1000.0); 16 | if (int_tex == 0) 17 | //gl_FragColor=vec4(12,34,56,1); 18 | gl_FragColor = texture2D( tex1, gl_TexCoord[0].st); 19 | else 20 | if (int_tex == 1) 21 | //gl_FragColor=vec4(2,1,0,1); 22 | gl_FragColor = texture2D( tex2, gl_TexCoord[0].st); 23 | else 24 | //gl_FragColor=vec4(3,2,1,1); 25 | gl_FragColor = texture2D( tex3, gl_TexCoord[0].st); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/gpu_rays_2nd_pass_vs.glsl: -------------------------------------------------------------------------------- 1 | varying float tex; 2 | 3 | void main() 4 | { 5 | gl_Position = ftransform(); 6 | tex = gl_Vertex.x; 7 | gl_TexCoord[0] = gl_MultiTexCoord0; 8 | } 9 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/lens_flare_vs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | // Simple vertex shader; just setting things up for the real work to be done in 19 | // camera_distortion_fs.glsl. 20 | void main() 21 | { 22 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 23 | gl_TexCoord[0] = gl_MultiTexCoord0; 24 | } 25 | 26 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/plain_color_fs.glsl: -------------------------------------------------------------------------------- 1 | uniform vec4 inColor; 2 | 3 | void main() 4 | { 5 | gl_FragColor = inColor; 6 | } 7 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/plain_color_vs.glsl: -------------------------------------------------------------------------------- 1 | // Model Level Inputs 2 | uniform mat4 worldViewProj; 3 | 4 | // Vertex Inputs 5 | //in vec4 position; 6 | //in vec2 texCoord0; 7 | 8 | // Outputs 9 | // out vec4 oPosition; 10 | // out vec2 uv0; 11 | 12 | void main() 13 | { 14 | // Calculate output position 15 | //oPosition = worldViewProj * position; 16 | gl_Position = worldViewProj * gl_Vertex; 17 | 18 | // Simply copy the input vertex UV to the output 19 | //uv0 = texCoord0; 20 | gl_TexCoord[0] = gl_MultiTexCoord0; 21 | } 22 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/point_fs.glsl: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | void main() 4 | { 5 | gl_FragColor = gl_Color; 6 | } -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/point_vs.glsl: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // Generic vertex shader for point sprites 4 | // sets position and point size. 5 | // Works for perspective and orthographic projection. 6 | 7 | uniform mat4 worldviewproj_matrix; 8 | uniform float size; 9 | 10 | void main() 11 | { 12 | gl_Position = worldviewproj_matrix * gl_Vertex; 13 | gl_FrontColor = gl_Color; 14 | gl_PointSize = size; 15 | } 16 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/shadow_caster_fp.glsl: -------------------------------------------------------------------------------- 1 | // uniform vec4 depth_range; 2 | varying vec4 vertex_depth; 3 | 4 | void main() 5 | { 6 | float depth = (vertex_depth.z) / vertex_depth.w; 7 | 8 | // Linear 9 | // float depth = (vertex_depth.z - depth_range.x) / depth_range.w; 10 | 11 | gl_FragColor = vec4(depth, depth, depth, 1.0); 12 | } 13 | 14 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/shadow_caster_vp.glsl: -------------------------------------------------------------------------------- 1 | uniform mat4 world_view_proj_mat; 2 | uniform vec4 texel_offsets; 3 | 4 | varying vec4 vertex_depth; 5 | 6 | void main() 7 | { 8 | vertex_depth = world_view_proj_mat * gl_Vertex; 9 | gl_Position = vertex_depth; 10 | gl_Position.xy += texel_offsets.zw * gl_Position.w; 11 | } 12 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/vertex_shader.glsl: -------------------------------------------------------------------------------- 1 | void main() 2 | { 3 | gl_Position = ftransform(); 4 | } 5 | -------------------------------------------------------------------------------- /ogre/src/media/materials/programs/wide_lens_map_vs.glsl: -------------------------------------------------------------------------------- 1 | #version 120 2 | 3 | // aspect ratio 4 | uniform float ratio; 5 | 6 | varying vec2 frag_pos; 7 | 8 | void main() 9 | { 10 | gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; 11 | 12 | // get normalized fragment coordinate (3D to 2D window space transformation) 13 | frag_pos = gl_Position.xy/gl_Position.w*vec2(-1.0,-1.0/ratio); 14 | } 15 | -------------------------------------------------------------------------------- /ogre/src/media/materials/scripts/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB files "*.material" "*.compositor") 2 | 3 | install(FILES ${files} DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/ogre/media/materials/scripts) 4 | 5 | -------------------------------------------------------------------------------- /ogre/src/media/materials/scripts/picker.material: -------------------------------------------------------------------------------- 1 | vertex_program plaincolor_vs glsl 2 | { 3 | source plain_color_vs.glsl 4 | 5 | default_params 6 | { 7 | param_named_auto worldViewProj worldviewproj_matrix 8 | } 9 | } 10 | 11 | fragment_program plaincolor_fs glsl 12 | { 13 | source plain_color_fs.glsl 14 | 15 | default_params 16 | { 17 | param_named inColor float4 1 1 1 1 18 | } 19 | } 20 | 21 | material gz-rendering/plain_color 22 | { 23 | // Material has one technique 24 | technique 25 | { 26 | // This technique has one pass 27 | pass 28 | { 29 | fog_override true 30 | 31 | // Make this pass use the vertex shader defined above 32 | vertex_program_ref plaincolor_vs 33 | { 34 | } 35 | 36 | // Make this pass use the pixel shader defined above 37 | fragment_program_ref plaincolor_fs 38 | { 39 | param_named_auto inColor custom 1 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /ogre/src/media/materials/scripts/point_cloud_point.material: -------------------------------------------------------------------------------- 1 | 2 | vertex_program PointCloudVS glsl 3 | { 4 | source point_vs.glsl 5 | 6 | default_params 7 | { 8 | param_named_auto worldviewproj_matrix worldviewproj_matrix 9 | param_named size float 1.0 10 | } 11 | } 12 | 13 | fragment_program PointCloudFS glsl 14 | { 15 | source point_fs.glsl 16 | } 17 | 18 | material PointCloudPoint 19 | { 20 | technique 21 | { 22 | pass 23 | { 24 | point_size_attenuation on 25 | point_sprites on 26 | vertex_program_ref PointCloudVS {} 27 | fragment_program_ref PointCloudFS {} 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /ogre/src/media/materials/scripts/pssm.material: -------------------------------------------------------------------------------- 1 | vertex_program shadow_caster_vp_glsl glsl 2 | { 3 | source shadow_caster_vp.glsl 4 | 5 | default_params 6 | { 7 | param_named_auto world_view_proj_mat worldviewproj_matrix 8 | param_named_auto texel_offsets texel_offsets 9 | } 10 | } 11 | 12 | fragment_program shadow_caster_fp_glsl glsl 13 | { 14 | source shadow_caster_fp.glsl 15 | 16 | default_params 17 | { 18 | // param_named_auto depth_range shadow_scene_depth_range 19 | } 20 | } 21 | 22 | 23 | material PSSM/shadow_caster 24 | { 25 | technique 26 | { 27 | // all this will do is write depth and depth*depth to red and green 28 | pass 29 | { 30 | vertex_program_ref shadow_caster_vp_glsl 31 | { 32 | } 33 | 34 | fragment_program_ref shadow_caster_fp_glsl 35 | { 36 | } 37 | } 38 | } 39 | } 40 | 41 | -------------------------------------------------------------------------------- /ogre/src/media/materials/scripts/wide_angle_camera.material: -------------------------------------------------------------------------------- 1 | vertex_program WideLensMapVS glsl 2 | { 3 | source wide_lens_map_vs.glsl 4 | default_params 5 | { 6 | param_named ratio float 1 7 | } 8 | } 9 | 10 | fragment_program WideLensMapFS glsl 11 | { 12 | source wide_lens_map_fp.glsl 13 | default_params 14 | { 15 | param_named envMap int 0 16 | param_named c1 float 1 17 | param_named c2 float 1 18 | param_named c3 float 0 19 | param_named f float 1 20 | param_named fun float3 0 0 1 21 | param_named cutOffAngle float 3.14 22 | } 23 | } 24 | 25 | material WideLensMap 26 | { 27 | technique 28 | { 29 | pass 30 | { 31 | vertex_program_ref WideLensMapVS { } 32 | fragment_program_ref WideLensMapFS { } 33 | } 34 | } 35 | } 36 | 37 | 38 | -------------------------------------------------------------------------------- /ogre/src/media/materials/scripts/wide_camera_lens_map.compositor: -------------------------------------------------------------------------------- 1 | compositor WideCameraLensMap/ParametrisedMap 2 | { 3 | technique 4 | { 5 | target_output 6 | { 7 | input none 8 | pass render_quad 9 | { 10 | material WideLensMap 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /ogre/src/media/materials/textures/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB files "*.png") 2 | 3 | install(FILES ${files} DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/ogre/media/materials/textures) 4 | -------------------------------------------------------------------------------- /ogre/src/media/materials/textures/projection_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre/src/media/materials/textures/projection_filter.png -------------------------------------------------------------------------------- /ogre/src/media/rtshaderlib150/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set (files 2 | FFPLib_Common.glsl 3 | FFPLib_Fog.glsl 4 | FFPLib_Lighting.glsl 5 | FFPLib_Texturing.glsl 6 | FFPLib_Transform.glsl 7 | SampleLib_ReflectionMap.glsl 8 | SGXLib_IntegratedPSSM.glsl 9 | SGXLib_NormalMapLighting.glsl 10 | SGXLib_PerPixelLighting.glsl 11 | ) 12 | 13 | install(FILES ${files} DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/ogre/media/rtshaderlib150) 14 | 15 | -------------------------------------------------------------------------------- /ogre2/include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(gz) 2 | -------------------------------------------------------------------------------- /ogre2/include/gz/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(rendering) 2 | -------------------------------------------------------------------------------- /ogre2/include/gz/rendering/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | gz_install_all_headers(COMPONENT ogre2) 2 | -------------------------------------------------------------------------------- /ogre2/include/gz/rendering/ogre2/ogre2.hh.in: -------------------------------------------------------------------------------- 1 | // Automatically generated 2 | #include 3 | ${gz_headers} 4 | -------------------------------------------------------------------------------- /ogre2/src/Ogre2ArrowVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre2/Ogre2ArrowVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | Ogre2ArrowVisual::Ogre2ArrowVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | Ogre2ArrowVisual::~Ogre2ArrowVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre2/src/Ogre2AxisVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre2/Ogre2AxisVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | Ogre2AxisVisual::Ogre2AxisVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | Ogre2AxisVisual::~Ogre2AxisVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre2/src/Ogre2GizmoVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre2/Ogre2GizmoVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | Ogre2GizmoVisual::Ogre2GizmoVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | Ogre2GizmoVisual::~Ogre2GizmoVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre2/src/Ogre2JointVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre2/Ogre2JointVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | Ogre2JointVisual::Ogre2JointVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | Ogre2JointVisual::~Ogre2JointVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre2/src/Ogre2Sensor.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2018 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/ogre2/Ogre2Sensor.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | Ogre2Sensor::Ogre2Sensor() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | Ogre2Sensor::~Ogre2Sensor() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/Copyback_1xFP32_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( ogre_t0 ) uniform texture2D tex; 4 | vulkan( layout( ogre_s0 ) uniform sampler texSampler ); 5 | 6 | vulkan_layout( location = 0 ) 7 | in block 8 | { 9 | vec2 uv0; 10 | } inPs; 11 | 12 | vulkan_layout( location = 0 ) 13 | out float fragColour; 14 | 15 | void main() 16 | { 17 | fragColour = texture( vkSampler2D( tex, texSampler ), inPs.uv0 ).x; 18 | } 19 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/Copyback_3xFP32_ps.glsl: -------------------------------------------------------------------------------- 1 | #version 330 2 | 3 | uniform sampler2D tex; 4 | 5 | in block 6 | { 7 | vec2 uv0; 8 | } inPs; 9 | 10 | out vec3 fragColour; 11 | 12 | void main() 13 | { 14 | fragColour = texture( tex, inPs.uv0 ).xyz; 15 | } 16 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/Copyback_4xFP32_2DArray_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( ogre_t0 ) uniform texture2DArray tex; 4 | vulkan( layout( ogre_s0 ) uniform sampler texSampler ); 5 | 6 | vulkan( layout( ogre_P0 ) uniform Params { ) 7 | uniform float sliceIdx; 8 | vulkan( }; ) 9 | 10 | vulkan_layout( location = 0 ) 11 | in block 12 | { 13 | vec2 uv0; 14 | } inPs; 15 | 16 | vulkan_layout( location = 0 ) 17 | out vec4 fragColour; 18 | 19 | void main() 20 | { 21 | fragColour = texture( vkSampler2DArray( tex, texSampler ), vec3( inPs.uv0, sliceIdx ) ); 22 | } 23 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/Copyback_4xFP32_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( ogre_t0 ) uniform texture2D tex; 4 | vulkan( layout( ogre_s0 ) uniform sampler texSampler ); 5 | 6 | vulkan_layout( location = 0 ) 7 | in block 8 | { 9 | vec2 uv0; 10 | } inPs; 11 | 12 | vulkan_layout( location = 0 ) 13 | out vec4 fragColour; 14 | 15 | void main() 16 | { 17 | fragColour = texture( vkSampler2D( tex, texSampler ), inPs.uv0 ); 18 | } 19 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/CubeToDpm_4xFP16_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan( layout( ogre_P0 ) uniform Params { ) 4 | uniform float lodLevel; 5 | vulkan( }; ) 6 | 7 | vulkan_layout( ogre_t0 ) uniform textureCube cubeTexture; 8 | vulkan( layout( ogre_s0 ) uniform sampler cubeSampler ); 9 | 10 | vulkan_layout( location = 0 ) 11 | in block 12 | { 13 | vec2 uv0; 14 | } inPs; 15 | 16 | vulkan_layout( location = 0 ) 17 | out vec4 fragColour; 18 | 19 | void main() 20 | { 21 | vec3 cubeDir; 22 | cubeDir.x = mod( inPs.uv0.x, 0.5 ) * 4.0 - 1.0; 23 | cubeDir.y = inPs.uv0.y * 2.0 - 1.0; 24 | cubeDir.z = 0.5 - 0.5 * (cubeDir.x * cubeDir.x + cubeDir.y * cubeDir.y); 25 | cubeDir.z = inPs.uv0.x < 0.5 ? cubeDir.z : -cubeDir.z; 26 | 27 | fragColour.xyzw = textureLod( vkSamplerCube( cubeTexture, cubeSampler ), cubeDir.xyz, lodLevel ).xyzw; 28 | } 29 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/CubeToDpsm_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( ogre_t0 ) uniform textureCube depthTexture; 4 | vulkan( layout( ogre_s0 ) uniform sampler cubeSampler ); 5 | 6 | vulkan_layout( location = 0 ) 7 | in block 8 | { 9 | vec2 uv0; 10 | } inPs; 11 | 12 | in vec4 gl_FragCoord; 13 | //out float gl_FragDepth; 14 | 15 | #ifdef OUTPUT_TO_COLOUR 16 | vulkan_layout( location = 0 ) 17 | out float fragColour; 18 | #endif 19 | 20 | void main() 21 | { 22 | vec3 cubeDir; 23 | 24 | cubeDir.x = mod( inPs.uv0.x, 0.5 ) * 4.0 - 1.0; 25 | cubeDir.y = inPs.uv0.y * 2.0 - 1.0; 26 | cubeDir.z = 0.5 - 0.5 * (cubeDir.x * cubeDir.x + cubeDir.y * cubeDir.y); 27 | 28 | cubeDir.z = inPs.uv0.x < 0.5 ? cubeDir.z : -cubeDir.z; 29 | 30 | float depthValue = textureLod( vkSamplerCube( depthTexture, cubeSampler ), cubeDir.xyz, 0 ).x; 31 | 32 | #ifdef OUTPUT_TO_COLOUR 33 | fragColour = depthValue; 34 | #else 35 | gl_FragDepth = depthValue; 36 | #endif 37 | } 38 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/DepthDownscaleMax_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( ogre_t0 ) uniform texture2D depthTexture; 4 | 5 | in vec4 gl_FragCoord; 6 | //out float gl_FragDepth; 7 | 8 | void main() 9 | { 10 | float fDepth0 = texelFetch( depthTexture, ivec2(gl_FragCoord.xy * 2.0), 0 ).x; 11 | float fDepth1 = texelFetch( depthTexture, ivec2(gl_FragCoord.xy * 2.0) + ivec2( 0, 1 ), 0 ).x; 12 | float fDepth2 = texelFetch( depthTexture, ivec2(gl_FragCoord.xy * 2.0) + ivec2( 1, 0 ), 0 ).x; 13 | float fDepth3 = texelFetch( depthTexture, ivec2(gl_FragCoord.xy * 2.0) + ivec2( 1, 1 ), 0 ).x; 14 | 15 | //gl_FragDepth = texelFetch( depthTexture, ivec2(gl_FragCoord.xy * 2.0), 0 ).x; 16 | gl_FragDepth = max( max( fDepth0, fDepth1 ), max( fDepth2, fDepth3 ) ); 17 | } 18 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/HiddenAreaMeshVr_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( location = 0 ) 4 | out vec4 fragColour; 5 | 6 | void main() 7 | { 8 | fragColour = vec4( 0 ); 9 | } 10 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/HiddenAreaMeshVr_vs.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | #extension GL_ARB_shader_viewport_layer_array : require 4 | 5 | #define float2 vec2 6 | #define float3 vec3 7 | #define float4 vec4 8 | 9 | #define float4x4 mat4 10 | #define mul( x, y ) ((x) * (y)) 11 | 12 | vulkan( layout( ogre_P0 ) uniform Params { ) 13 | uniform float4x4 projectionMatrix; 14 | uniform float2 rsDepthRange; 15 | vulkan( }; ) 16 | 17 | vulkan_layout( OGRE_POSITION ) in vec4 vertex; 18 | 19 | vulkan_layout( location = 0 ) 20 | out gl_PerVertex 21 | { 22 | vec4 gl_Position; 23 | }; 24 | 25 | void main() 26 | { 27 | gl_Position.xy = mul( projectionMatrix, float4( vertex.xy, 0.0f, 1.0f ) ).xy; 28 | gl_Position.z = rsDepthRange.x; 29 | gl_Position.w = 1.0f; 30 | gl_ViewportIndex = int( vertex.z ); 31 | } 32 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/QuadCameraDirNoUV_vs.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( OGRE_POSITION ) in vec2 vertex; 4 | vulkan_layout( OGRE_NORMAL ) in vec3 normal; 5 | 6 | vulkan( layout( ogre_P0 ) uniform Params { ) 7 | uniform vec2 rsDepthRange; 8 | uniform mat4 worldViewProj; 9 | vulkan( }; ) 10 | 11 | out gl_PerVertex 12 | { 13 | vec4 gl_Position; 14 | }; 15 | 16 | vulkan_layout( location = 0 ) 17 | out block 18 | { 19 | vec3 cameraDir; 20 | } outVs; 21 | 22 | void main() 23 | { 24 | gl_Position.xy = (worldViewProj * vec4( vertex.xy, 0, 1.0f )).xy; 25 | gl_Position.z = rsDepthRange.y; 26 | gl_Position.w = 1.0f; 27 | outVs.cameraDir.xyz = normal.xyz; 28 | } 29 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/QuadCameraDir_vs.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( OGRE_POSITION ) in vec3 vertex; 4 | vulkan_layout( OGRE_NORMAL ) in vec3 normal; 5 | vulkan_layout( OGRE_TEXCOORD0 ) in vec2 uv0; 6 | 7 | vulkan( layout( ogre_P0 ) uniform Params { ) 8 | uniform mat4 worldViewProj; 9 | vulkan( }; ) 10 | 11 | out gl_PerVertex 12 | { 13 | vec4 gl_Position; 14 | }; 15 | 16 | vulkan_layout( location = 0 ) 17 | out block 18 | { 19 | vec2 uv0; 20 | vec3 cameraDir; 21 | } outVs; 22 | 23 | void main() 24 | { 25 | gl_Position = worldViewProj * vec4( vertex, 1.0 ); 26 | outVs.uv0.xy = uv0.xy; 27 | outVs.cameraDir.xyz = normal.xyz; 28 | } 29 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/Quad_vs.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( OGRE_POSITION ) in vec3 vertex; 4 | vulkan_layout( OGRE_TEXCOORD0 ) in vec2 uv0; 5 | 6 | vulkan( layout( ogre_P0 ) uniform Params { ) 7 | uniform mat4 worldViewProj; 8 | vulkan( }; ) 9 | 10 | out gl_PerVertex 11 | { 12 | vec4 gl_Position; 13 | }; 14 | 15 | vulkan_layout( location = 0 ) 16 | out block 17 | { 18 | vec2 uv0; 19 | } outVs; 20 | 21 | void main() 22 | { 23 | gl_Position = worldViewProj * vec4( vertex, 1.0 ); 24 | outVs.uv0.xy = uv0.xy; 25 | } 26 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/RadialDensityMask_vs.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | #extension GL_ARB_shader_viewport_layer_array : require 4 | 5 | #ifdef VULKAN 6 | #define gl_VertexID gl_VertexIndex 7 | #endif 8 | 9 | vulkan_layout( OGRE_POSITION ) in vec2 vertex; 10 | 11 | vulkan( layout( ogre_P0 ) uniform Params { ) 12 | uniform float ogreBaseVertex; 13 | uniform vec2 rsDepthRange; 14 | uniform mat4 worldViewProj; 15 | vulkan( }; ) 16 | 17 | out gl_PerVertex 18 | { 19 | vec4 gl_Position; 20 | }; 21 | 22 | void main() 23 | { 24 | gl_Position.xy = (worldViewProj * vec4( vertex.xy, 0, 1.0f )).xy; 25 | gl_Position.z = rsDepthRange.x; 26 | gl_Position.w = 1.0f; 27 | gl_ViewportIndex = (gl_VertexID - ogreBaseVertex) >= (3 * 4) ? 1 : 0; 28 | } 29 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/Resolve_1xFP32_Subsample0_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( ogre_t0 ) uniform texture2DMS tex; 4 | 5 | vulkan_layout( location = 0 ) 6 | in block 7 | { 8 | vec2 uv0; 9 | } inPs; 10 | 11 | vulkan_layout( location = 0 ) 12 | out float fragColour; 13 | 14 | in vec4 gl_FragCoord; 15 | 16 | void main() 17 | { 18 | fragColour = texelFetch( tex, ivec2( gl_FragCoord.xy ), 0 ).x; 19 | } 20 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/SkyCubemap_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( ogre_t0 ) uniform textureCube skyCubemap; 4 | vulkan( layout( ogre_s0 ) uniform sampler samplerState ); 5 | 6 | vulkan_layout( location = 0 ) 7 | in block 8 | { 9 | vec3 cameraDir; 10 | } inPs; 11 | 12 | vulkan_layout( location = 0 ) 13 | out vec4 fragColour; 14 | 15 | void main() 16 | { 17 | //Cubemaps are left-handed 18 | fragColour = texture( vkSamplerCube( skyCubemap, samplerState ), 19 | vec3( inPs.cameraDir.xy, -inPs.cameraDir.z ) ); 20 | } 21 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/GLSL/SkyEquirectangular_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | #define float2 vec2 4 | #define float3 vec3 5 | 6 | #define PI 3.14159265359f 7 | 8 | vulkan_layout( ogre_t0 ) uniform texture2DArray skyEquirectangular; 9 | vulkan( layout( ogre_s0 ) uniform sampler samplerState ); 10 | 11 | vulkan( layout( ogre_P0 ) uniform Params { ) 12 | uniform float sliceIdx; 13 | vulkan( }; ) 14 | 15 | vulkan_layout( location = 0 ) 16 | in block 17 | { 18 | vec3 cameraDir; 19 | } inPs; 20 | 21 | vulkan_layout( location = 0 ) 22 | out vec4 fragColour; 23 | 24 | float atan2(in float y, in float x) 25 | { 26 | return x == 0.0 ? sign(y)*PI/2 : atan(y, x); 27 | } 28 | 29 | void main() 30 | { 31 | float3 cameraDir = normalize( inPs.cameraDir ); 32 | float2 longlat; 33 | longlat.x = atan2( cameraDir.x, -cameraDir.z ) + PI; 34 | longlat.y = acos( cameraDir.y ); 35 | float2 uv = longlat / float2( 2.0f * PI, PI ); 36 | fragColour = texture( vkSampler2DArray( skyEquirectangular, samplerState ), vec3( uv.xy, 0 ) ); 37 | } 38 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/Copyback_1xFP32_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | }; 8 | 9 | fragment float main_metal 10 | ( 11 | PS_INPUT inPs [[stage_in]], 12 | texture2d myTexture [[texture(0)]], 13 | sampler mySampler [[sampler(0)]] 14 | ) 15 | { 16 | return myTexture.sample( mySampler, inPs.uv0 ).x; 17 | } 18 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/Copyback_3xFP32_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | }; 8 | 9 | fragment float3 main_metal 10 | ( 11 | PS_INPUT inPs [[stage_in]], 12 | texture2d myTexture [[texture(0)]], 13 | sampler mySampler [[sampler(0)]] 14 | ) 15 | { 16 | return myTexture.sample( mySampler, inPs.uv0 ).xyz; 17 | } 18 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/Copyback_4xFP32_2DArray_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | }; 8 | 9 | fragment float4 main_metal 10 | ( 11 | PS_INPUT inPs [[stage_in]], 12 | texture2d_array myTexture [[texture(0)]], 13 | sampler mySampler [[sampler(0)]], 14 | constant float &sliceIdx [[buffer(PARAMETER_SLOT)]] 15 | ) 16 | { 17 | return myTexture.sample( mySampler, inPs.uv0, (uint)sliceIdx ).xyzw; 18 | } 19 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/Copyback_4xFP32_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | }; 8 | 9 | fragment float4 main_metal 10 | ( 11 | PS_INPUT inPs [[stage_in]], 12 | texture2d myTexture [[texture(0)]], 13 | sampler mySampler [[sampler(0)]] 14 | ) 15 | { 16 | return myTexture.sample( mySampler, inPs.uv0 ).xyzw; 17 | } 18 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/CubeToDpm_4xFP16_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | }; 8 | 9 | fragment half4 main_metal 10 | ( 11 | PS_INPUT inPs [[stage_in]], 12 | 13 | texturecube cubeTexture [[texture(0)]], 14 | sampler samplerState [[sampler(0)]], 15 | 16 | constant float &lodLevel [[buffer(PARAMETER_SLOT)]] 17 | ) 18 | { 19 | float3 cubeDir; 20 | 21 | cubeDir.x = fmod( inPs.uv0.x, 0.5 ) * 4.0 - 1.0; 22 | cubeDir.y = inPs.uv0.y * 2.0 - 1.0; 23 | cubeDir.z = 0.5 - 0.5 * (cubeDir.x * cubeDir.x + cubeDir.y * cubeDir.y); 24 | 25 | cubeDir.z = inPs.uv0.x < 0.5 ? cubeDir.z : -cubeDir.z; 26 | 27 | return cubeTexture.sample( samplerState, cubeDir.xyz, level(lodLevel) ).xyzw; 28 | } 29 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/CubeToDpsm_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | }; 8 | 9 | struct PS_OUTPUT 10 | { 11 | #if OUTPUT_TO_COLOUR 12 | float depth [[color(0)]]; 13 | #else 14 | float depth [[depth(any)]]; 15 | #endif 16 | }; 17 | 18 | fragment PS_OUTPUT main_metal 19 | ( 20 | PS_INPUT inPs [[stage_in]], 21 | 22 | texturecube depthTexture [[texture(0)]], 23 | sampler samplerState [[sampler(0)]] 24 | ) 25 | { 26 | float3 cubeDir; 27 | 28 | cubeDir.x = fmod( inPs.uv0.x, 0.5 ) * 4.0 - 1.0; 29 | cubeDir.y = inPs.uv0.y * 2.0 - 1.0; 30 | cubeDir.z = 0.5 - 0.5 * (cubeDir.x * cubeDir.x + cubeDir.y * cubeDir.y); 31 | 32 | cubeDir.z = inPs.uv0.x < 0.5 ? cubeDir.z : -cubeDir.z; 33 | 34 | PS_OUTPUT outPs; 35 | outPs.depth = depthTexture.sample( samplerState, cubeDir.xyz, level(0) ).x; 36 | return outPs; 37 | } 38 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/DepthDownscaleMax_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | }; 8 | 9 | struct PS_OUTPUT 10 | { 11 | float depth [[depth(any)]]; 12 | }; 13 | 14 | fragment PS_OUTPUT main_metal 15 | ( 16 | PS_INPUT inPs [[stage_in]], 17 | 18 | depth2d depthTexture [[texture(0)]], 19 | 20 | float4 gl_FragCoord [[position]] 21 | ) 22 | { 23 | uint2 iFragCoord = (uint2)(gl_FragCoord.xy * 2.0); 24 | float fDepth0 = depthTexture.read( iFragCoord ); 25 | float fDepth1 = depthTexture.read( iFragCoord + uint2( 0, 1 ) ); 26 | float fDepth2 = depthTexture.read( iFragCoord + uint2( 1, 0 ) ); 27 | float fDepth3 = depthTexture.read( iFragCoord + uint2( 1, 1 ) ); 28 | 29 | PS_OUTPUT outPs; 30 | //outPs.depth =depthTexture.read( uint2(gl_FragCoord.xy * 2.0) ).x; 31 | outPs.depth = max( max( fDepth0, fDepth1 ), max( fDepth2, fDepth3 ) ); 32 | return outPs; 33 | } 34 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/HiddenAreaMeshVr_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | fragment float4 main_metal() 5 | { 6 | return float4( 0, 0, 0, 0 ); 7 | } 8 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/HiddenAreaMeshVr_vs.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct VS_INPUT 5 | { 6 | float4 position [[attribute(VES_POSITION)]]; 7 | }; 8 | 9 | struct PS_INPUT 10 | { 11 | float4 gl_Position [[position]]; 12 | uint gl_ViewportIndex [[viewport_array_index]]; 13 | }; 14 | 15 | struct Params 16 | { 17 | float4x4 projectionMatrix; 18 | float2 rsDepthRange; 19 | }; 20 | 21 | vertex PS_INPUT main_metal 22 | ( 23 | VS_INPUT input [[stage_in]], 24 | constant Params &p [[buffer(PARAMETER_SLOT)]] 25 | ) 26 | { 27 | PS_INPUT outVs; 28 | 29 | outVs.gl_Position.xy = ( p.projectionMatrix * float4( input.position.xy, 0.0f, 1.0f ) ).xy; 30 | outVs.gl_Position.z = p.rsDepthRange.x; 31 | outVs.gl_Position.w = 1.0f; 32 | outVs.gl_ViewportIndex = uint( input.position.z ); 33 | 34 | return outVs; 35 | } 36 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/QuadCameraDirNoUV_vs.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct VS_INPUT 5 | { 6 | float4 position [[attribute(VES_POSITION)]]; 7 | float3 normal [[attribute(VES_NORMAL)]]; 8 | }; 9 | 10 | struct PS_INPUT 11 | { 12 | float3 cameraDir; 13 | 14 | float4 gl_Position [[position]]; 15 | }; 16 | 17 | struct Params 18 | { 19 | float2 rsDepthRange; 20 | float4x4 worldViewProj; 21 | }; 22 | 23 | vertex PS_INPUT main_metal 24 | ( 25 | VS_INPUT input [[stage_in]], 26 | constant Params &p [[buffer(PARAMETER_SLOT)]] 27 | ) 28 | { 29 | PS_INPUT outVs; 30 | 31 | outVs.gl_Position.xy= ( p.worldViewProj * float4( input.position.xy, 0.0f, 1.0f ) ).xy; 32 | outVs.gl_Position.z = p.rsDepthRange.y; 33 | outVs.gl_Position.w = 1.0f; 34 | outVs.cameraDir = input.normal; 35 | 36 | return outVs; 37 | } 38 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/QuadCameraDir_vs.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct VS_INPUT 5 | { 6 | float4 position [[attribute(VES_POSITION)]]; 7 | float3 normal [[attribute(VES_NORMAL)]]; 8 | float2 uv0 [[attribute(VES_TEXTURE_COORDINATES0)]]; 9 | }; 10 | 11 | struct PS_INPUT 12 | { 13 | float2 uv0; 14 | float3 cameraDir; 15 | 16 | float4 gl_Position [[position]]; 17 | }; 18 | 19 | vertex PS_INPUT main_metal 20 | ( 21 | VS_INPUT input [[stage_in]], 22 | constant float4x4 &worldViewProj [[buffer(PARAMETER_SLOT)]] 23 | ) 24 | { 25 | PS_INPUT outVs; 26 | 27 | outVs.gl_Position = ( worldViewProj * input.position ).xyzw; 28 | outVs.uv0 = input.uv0; 29 | outVs.cameraDir = input.normal; 30 | 31 | return outVs; 32 | } 33 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/Quad_vs.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct VS_INPUT 5 | { 6 | float4 position [[attribute(VES_POSITION)]]; 7 | float2 uv0 [[attribute(VES_TEXTURE_COORDINATES0)]]; 8 | }; 9 | 10 | struct PS_INPUT 11 | { 12 | float2 uv0; 13 | float4 gl_Position [[position]]; 14 | }; 15 | 16 | vertex PS_INPUT main_metal 17 | ( 18 | VS_INPUT input [[stage_in]], 19 | constant float4x4 &worldViewProj [[buffer(PARAMETER_SLOT)]] 20 | ) 21 | { 22 | PS_INPUT outVs; 23 | 24 | outVs.gl_Position = ( worldViewProj * input.position ).xyzw; 25 | outVs.uv0 = input.uv0; 26 | 27 | return outVs; 28 | } 29 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/RadialDensityMask_vs.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct VS_INPUT 5 | { 6 | float4 position [[attribute(VES_POSITION)]]; 7 | }; 8 | 9 | struct PS_INPUT 10 | { 11 | float4 gl_Position [[position]]; 12 | uint gl_ViewportIndex [[viewport_array_index]]; 13 | }; 14 | 15 | struct Params 16 | { 17 | float ogreBaseVertex; 18 | float2 rsDepthRange; 19 | float4x4 worldViewProj; 20 | }; 21 | 22 | vertex PS_INPUT main_metal 23 | ( 24 | VS_INPUT input [[stage_in]], 25 | constant Params &p [[buffer(PARAMETER_SLOT)]], 26 | 27 | uint gl_VertexID [[vertex_id]] 28 | ) 29 | { 30 | PS_INPUT outVs; 31 | 32 | outVs.gl_Position.xy= ( p.worldViewProj * float4( input.position.xy, 0.0f, 1.0f ) ).xy; 33 | outVs.gl_Position.z = p.rsDepthRange.x; 34 | outVs.gl_Position.w = 1.0f; 35 | outVs.gl_ViewportIndex = gl_VertexID >= (3 * 4) ? 1 : 0; 36 | 37 | return outVs; 38 | } 39 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/Resolve_1xFP32_Subsample0_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float2 uv0; 7 | float4 gl_FragCoord [[position]]; 8 | }; 9 | 10 | fragment float main_metal 11 | ( 12 | PS_INPUT inPs [[stage_in]], 13 | texture2d_ms myTexture [[texture(0)]] 14 | ) 15 | { 16 | return myTexture.read( uint2( inPs.gl_FragCoord.xy ), 0 ).x; 17 | } 18 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/SkyCubemap_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | struct PS_INPUT 5 | { 6 | float3 cameraDir; 7 | }; 8 | 9 | fragment float4 main_metal 10 | ( 11 | PS_INPUT inPs [[stage_in]], 12 | texturecube skyCubemap [[texture(0)]], 13 | sampler samplerState [[sampler(0)]] 14 | ) 15 | { 16 | //Cubemaps are left-handed 17 | return skyCubemap.sample( samplerState, float3( inPs.cameraDir.xy, -inPs.cameraDir.z ) ).xyzw; 18 | } 19 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/Metal/SkyEquirectangular_ps.metal: -------------------------------------------------------------------------------- 1 | #include 2 | using namespace metal; 3 | 4 | #define PI 3.14159265359f 5 | 6 | struct PS_INPUT 7 | { 8 | float3 cameraDir; 9 | }; 10 | 11 | fragment float4 main_metal 12 | ( 13 | PS_INPUT inPs [[stage_in]], 14 | texture2d_array skyEquirectangular [[texture(0)]], 15 | sampler samplerState [[sampler(0)]], 16 | 17 | constant float &sliceIdx [[buffer(PARAMETER_SLOT)]] 18 | ) 19 | { 20 | float3 cameraDir = normalize( inPs.cameraDir ); 21 | float2 longlat; 22 | longlat.x = atan2( cameraDir.x, -cameraDir.z ) + PI; 23 | longlat.y = acos( cameraDir.y ); 24 | float2 uv = longlat / float2( 2.0f * PI, PI ); 25 | 26 | return skyEquirectangular.sample( samplerState, uv.xy, uint( sliceIdx ) ).xyzw; 27 | } 28 | -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/brtfLutDfg.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre2/src/media/2.0/scripts/materials/Common/brtfLutDfg.dds -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/ltcMatrix0.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre2/src/media/2.0/scripts/materials/Common/ltcMatrix0.dds -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Common/ltcMatrix1.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre2/src/media/2.0/scripts/materials/Common/ltcMatrix1.dds -------------------------------------------------------------------------------- /ogre2/src/media/2.0/scripts/materials/Terra/GpuNormalMapper.compositor: -------------------------------------------------------------------------------- 1 | compositor_node Terra/GpuNormalMapper 2 | { 3 | in 0 rt_output 4 | 5 | target rt_output 6 | { 7 | pass render_quad 8 | { 9 | material Terra/GpuNormalMapper 10 | } 11 | 12 | pass generate_mipmaps 13 | { 14 | } 15 | } 16 | } 17 | 18 | workspace Terra/GpuNormalMapperWorkspace 19 | { 20 | connect_output Terra/GpuNormalMapper 0 21 | } 22 | 23 | compositor_node Terra/GpuNormalMapperU16 24 | { 25 | in 0 rt_output 26 | 27 | target rt_output 28 | { 29 | pass render_quad 30 | { 31 | material Terra/GpuNormalMapperU16 32 | } 33 | 34 | pass generate_mipmaps 35 | { 36 | } 37 | } 38 | } 39 | 40 | workspace Terra/GpuNormalMapperWorkspaceU16 41 | { 42 | connect_output Terra/GpuNormalMapperU16 0 43 | } 44 | -------------------------------------------------------------------------------- /ogre2/src/media/Compute/Tools/Any/sRGB.any: -------------------------------------------------------------------------------- 1 | 2 | @piece( DeclSRgbFuncs ) 3 | INLINE float toSRGB( float x ) 4 | { 5 | return (x < 0.0031308 ? x * 12.92 : 1.055 * pow( x, 0.41666 ) - 0.055 ); 6 | } 7 | 8 | INLINE float4 toSRGB( float4 x ) 9 | { 10 | return float4( toSRGB( x.x ), toSRGB( x.y ), toSRGB( x.z ), x.w ); 11 | } 12 | 13 | INLINE float fromSRGB( float x ) 14 | { 15 | return x <= 0.040449907f ? x / 12.92f : pow( (x + 0.055) / 1.055, 2.4 ); 16 | } 17 | 18 | INLINE float4 fromSRGB( float4 x ) 19 | { 20 | return float4( fromSRGB( x.x ), fromSRGB( x.y ), fromSRGB( x.z ), x.w ); 21 | } 22 | @end 23 | -------------------------------------------------------------------------------- /ogre2/src/media/Compute/Tools/ClearUav.material.json: -------------------------------------------------------------------------------- 1 | { 2 | "compute" : 3 | { 4 | "Compute/Tools/ClearUav" : 5 | { 6 | "threads_per_group" : [32, 2, 1], 7 | "thread_groups" : [4, 4, 4], 8 | 9 | "source" : "ClearUav_cs", 10 | "inform_shader_of_texture_data_change" : true, 11 | 12 | "thread_groups_based_on_uav" : 13 | { 14 | "slot" : 0, 15 | "divisor" : [ 1, 1, 1 ] 16 | }, 17 | 18 | "uav_units" : 1 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Common/Any/DualParaboloid_piece_ps.any: -------------------------------------------------------------------------------- 1 | 2 | //#include "SyntaxHighlightingMisc.h" 3 | @piece( DeclDualParaboloidFunc ) 4 | 5 | /// Converts UVW coordinates that would be used for sampling a cubemap, 6 | /// and returns UV coordinates to sample a dual paraboloid in 2D 7 | INLINE float2 mapCubemapToDpm( float3 cubemapDir ) 8 | { 9 | cubemapDir = normalize( cubemapDir ); 10 | float2 retVal; 11 | retVal.x = (cubemapDir.x / (1.0 + abs( cubemapDir.z ))) * 0.25 + 12 | (cubemapDir.z < 0.0 ? 0.75 : 0.25 ); 13 | retVal.y = (cubemapDir.y / (1.0 + abs( cubemapDir.z ))) * 0.5 + 0.5; 14 | return retVal; 15 | } 16 | 17 | @end /// DeclDualParaboloidFunc 18 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Common/Any/ReverseDepthHelpers_piece_ps.any: -------------------------------------------------------------------------------- 1 | 2 | @piece( DeclReverseDepthMacros ) 3 | @property( hlms_no_reverse_depth ) 4 | #define OGRE_DEPTH_CMP_GE( a, b ) (a) >= (b) 5 | #define OGRE_DEPTH_DEFAULT_CLEAR 1.0 6 | @else 7 | #define OGRE_DEPTH_CMP_GE( a, b ) (a) <= (b) 8 | #define OGRE_DEPTH_DEFAULT_CLEAR 0.0 9 | @end 10 | @end 11 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Common/Any/UnpackHelpers_piece_all.any: -------------------------------------------------------------------------------- 1 | 2 | @piece( UnpackHelpers ) 3 | INLINE float2 unpackUshort2ToFloat2( uint value ) 4 | { 5 | return float2( value & 0xFFFFu, value >> 16u ); 6 | } 7 | @end 8 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Common/GLSL/RenderDepthOnly_piece_ps.glsl: -------------------------------------------------------------------------------- 1 | @property( hlms_render_depth_only && !alpha_test && !hlms_shadows_esm && !macOS) 2 | @set( hlms_disable_stage, 1 ) 3 | @end 4 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Common/GLSLES/RenderDepthOnly_piece_ps.glsl: -------------------------------------------------------------------------------- 1 | @property( 0 && hlms_render_depth_only && !alpha_test && !hlms_shadows_esm && !macOS) 2 | @set( hlms_disable_stage, 1 ) 3 | @end 4 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Common/HLSL/UavCrossPlatform_piece_all.hlsl: -------------------------------------------------------------------------------- 1 | 2 | @piece( DeclUavCrossPlatform ) 3 | 4 | #define OGRE_imageLoad2D( inImage, iuv ) inImage[uint2( iuv )] 5 | #define OGRE_imageLoad2DArray( inImage, iuvw ) inImage[uint3( iuvw )] 6 | 7 | #define OGRE_imageWrite2D1( outImage, iuv, value ) outImage[uint2( iuv )] = value 8 | #define OGRE_imageWrite2D2( outImage, iuv, value ) outImage[uint2( iuv )] = (value).xy 9 | #define OGRE_imageWrite2D4( outImage, iuv, value ) outImage[uint2( iuv )] = value 10 | 11 | #define OGRE_imageLoad3D( inImage, iuv ) inImage[uint3( iuv )] 12 | 13 | #define OGRE_imageWrite3D1( outImage, iuv, value ) outImage[uint3( iuv )] = value.x 14 | #define OGRE_imageWrite3D4( outImage, iuv, value ) outImage[uint3( iuv )] = value 15 | 16 | #define OGRE_imageWrite2DArray1( outImage, iuvw, value ) outImage[uint3( iuvw )] = value.x 17 | #define OGRE_imageWrite2DArray4( outImage, iuvw, value ) outImage[uint3( iuvw )] = value 18 | 19 | #define __sharedOnlyBarrier GroupMemoryBarrierWithGroupSync() 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Common/Metal/RenderDepthOnly_piece_ps.metal: -------------------------------------------------------------------------------- 1 | 2 | @property( !hlms_render_depth_only || (hlms_shadowcaster && (exponential_shadow_maps || hlms_shadowcaster_point)) ) 3 | @piece( output_type )PS_OUTPUT@end 4 | @end @property( !(!hlms_render_depth_only || (hlms_shadowcaster && (exponential_shadow_maps || hlms_shadowcaster_point))) ) 5 | @piece( output_type )void@end 6 | @end 7 | 8 | @property( hlms_render_depth_only && !alpha_test && !hlms_shadows_esm ) 9 | @set( hlms_disable_stage, 1 ) 10 | @end 11 | 12 | @piece( DeclOutputType ) 13 | struct PS_OUTPUT 14 | { 15 | @property( !hlms_shadowcaster ) 16 | float4 colour0 [[ color(@counter(rtv_target)) ]]; 17 | @else 18 | @property( !hlms_render_depth_only ) 19 | float colour0 [[ color(@counter(rtv_target)) ]]; 20 | @end 21 | @property( hlms_render_depth_only ) 22 | float colour0 [[ depth(any) ]]; 23 | @end 24 | @end 25 | 26 | @insertpiece( ExtraOutputTypes ) 27 | }; 28 | @end 29 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/Pbs/500.GzPbsStructs_piece_all.any: -------------------------------------------------------------------------------- 1 | // This file interfaces all modular pieces into one 2 | 3 | // Order in custom_passBuffer MUST be the same as they're added to 4 | // GzHlmsPbs::customizations 5 | @piece( custom_passBuffer ) 6 | @insertpiece( custom_passBuffer_spherical_clip_min_distance ) 7 | @insertpiece( custom_passBuffer_terra ) 8 | @end 9 | 10 | @piece( custom_VStoPS ) 11 | @insertpiece( custom_VStoPS_solid_color ) 12 | @insertpiece( custom_VStoPS_terra ) 13 | @end 14 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/Pbs/800.GzPbsCode_piece_ps.any: -------------------------------------------------------------------------------- 1 | // This file interfaces all modular pieces into one 2 | 3 | @piece( custom_ps_posExecution ) 4 | @insertpiece( custom_ps_posExecution_solid_color ) 5 | @end 6 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/Pbs/800.GzPbsCode_piece_vs.any: -------------------------------------------------------------------------------- 1 | // This file interfaces all modular pieces into one 2 | 3 | @piece( custom_vs_uniformDeclaration ) 4 | @insertpiece( custom_vs_uniformDeclaration_solid_color ) 5 | @insertpiece( custom_vs_uniformDeclaration_terra ) 6 | @end 7 | 8 | @piece( custom_vs_posExecution ) 9 | @insertpiece( custom_vs_posExecution_solid_color ) 10 | @insertpiece( custom_vs_posExecution_spherical_clip_min_distance ) 11 | @insertpiece( custom_vs_posExecution_terra ) 12 | @end 13 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/SolidColor/500.GzSolidColorStructs_piece_all.any: -------------------------------------------------------------------------------- 1 | // Used by SegmentedCamera & SelectionBuffer 2 | @property( gz_render_solid_color ) 3 | 4 | @piece( custom_VStoPS_solid_color ) 5 | FLAT_INTERPOLANT( float4 gzSolidColour, @counter(texcoord) ); 6 | @end 7 | 8 | @end 9 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/SolidColor/800.GzSolidColor_piece_ps.any: -------------------------------------------------------------------------------- 1 | @property( gz_render_solid_color ) 2 | 3 | @piece( custom_ps_posExecution_solid_color ) 4 | 5 | @property( gz_render_solid_color_textured ) 6 | if( inPs.gzSolidColour.w >= 0.0f ) 7 | { 8 | outPs_colour0 = inPs.gzSolidColour; 9 | } 10 | else 11 | { 12 | @property( diffuse_map ) 13 | float4 diffuse = SampleDiffuse( textureMaps@value( diffuse_map_idx ), 14 | samplerState@value(diffuse_map_sampler), 15 | UV_DIFFUSE( inPs.uv@value(uv_diffuse).xy ), 16 | texIndex_diffuseIdx ); 17 | outPs_colour0 = float4( inPs.gzSolidColour.xyz, 18 | -inPs.gzSolidColour.w - 0.5f ) * diffuse; 19 | @else 20 | outPs_colour0 = float4( inPs.gzSolidColour.xyz, 21 | -inPs.gzSolidColour.w - 0.5f ); 22 | @end 23 | } 24 | @else 25 | outPs_colour0 = inPs.gzSolidColour; 26 | @end 27 | @end 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/SolidColor/800.GzSolidColor_piece_vs.any: -------------------------------------------------------------------------------- 1 | @property( gz_render_solid_color ) 2 | 3 | @property( syntax != metal ) 4 | @piece( custom_vs_uniformDeclaration_solid_color ) 5 | // Uniforms that change per Item/Entity 6 | CONST_BUFFER( GzPerObjectData, @value(GzPerObjectDataSlot) ) 7 | { 8 | @property( fast_shader_build_hack ) 9 | float4 gzPerObjectData[2]; 10 | @else 11 | float4 gzPerObjectData[4096]; 12 | @end 13 | }; 14 | @end 15 | @else 16 | @piece( custom_vs_uniformDeclaration_solid_color ) 17 | , constant float4 *gzPerObjectData [[buffer(CONST_SLOT_START+@value(GzPerObjectDataSlot))]] 18 | @end 19 | @end 20 | 21 | @piece( custom_vs_posExecution_solid_color ) 22 | outVs.gzSolidColour = gzPerObjectData[inVs_drawId]; 23 | @end 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/SphericalClipMinDistance/GzSphericalClipMinDistance_piece_vs.any: -------------------------------------------------------------------------------- 1 | @property( gz_spherical_clip_min_distance ) 2 | @piece( custom_vs_posExecution_spherical_clip_min_distance ) 3 | @property( gz_spherical_clip_needs_worldPos ) 4 | // Unlit didn't declare this 5 | float3 worldPos = (gl_Position * passBuf.invViewProj).xyz; 6 | @end 7 | 8 | // Ogre 2.2 should use outVs_clipDistanceN for compatibility with all 9 | // APIs 10 | // Rare case of geometry without normals. 11 | outVs_clipDistance@value(gz_spherical_clip_idx) = 12 | distance( worldPos.xyz, passBuf.gzCameraPos.xyz ) - 13 | passBuf.gzMinClipDistance; 14 | @end 15 | @end 16 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Gz/SphericalClipMinDistance/SphericalClipMinDistanceStructs_piece_all.any: -------------------------------------------------------------------------------- 1 | @property( gz_spherical_clip_min_distance ) 2 | @piece( custom_passBuffer_spherical_clip_min_distance ) 3 | #define gzMinClipDistance gzMinClipDistance_gzCameraPos.x 4 | #define gzCameraPos gzMinClipDistance_gzCameraPos.yzw 5 | float4 gzMinClipDistance_gzCameraPos; 6 | 7 | @property( gz_spherical_clip_needs_worldPos ) 8 | float4x4 invViewProj; 9 | @end 10 | @end 11 | @end 12 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Any/IrradianceField_piece_all.any: -------------------------------------------------------------------------------- 1 | #include "/media/matias/Datos/SyntaxHighlightingMisc.h" 2 | 3 | @property( irradiance_field ) 4 | 5 | @piece( DeclIrradianceFieldStruct ) 6 | struct IrradianceField 7 | { 8 | float4 viewToIrradianceFieldRow0; 9 | float4 viewToIrradianceFieldRow1; 10 | float4 viewToIrradianceFieldRow2; 11 | 12 | float2 numProbesAggregated; 13 | float padding0; 14 | float padding1; 15 | 16 | float depthBorderedRes; 17 | float depthFullWidth; 18 | float2 depthInvFullResolution; 19 | 20 | float irradBorderedRes; 21 | float irradFullWidth; 22 | float2 irradInvFullResolution; 23 | }; 24 | @end 25 | 26 | @piece( DeclIrradianceFieldUniform ) 27 | IrradianceField irradianceField; 28 | @end 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Any/Main/200.DetailMaps_piece_ps.any: -------------------------------------------------------------------------------- 1 | // detail_maps_diffuse & detail_maps_normal are either 0 or 4 2 | 3 | @pmax( NumDetailMaps, detail_maps_diffuse, detail_maps_normal ) 4 | @foreach( NumDetailMaps, n ) 5 | @property( detail_offsets@n ) 6 | @piece( offsetDetail@n ) * material.detailOffsetScale[@n].zw + material.detailOffsetScale[@n].xy@end 7 | @end 8 | @end 9 | 10 | @piece( detail_swizzle0 )x@end; 11 | @piece( detail_swizzle1 )y@end; 12 | @piece( detail_swizzle2 )z@end; 13 | @piece( detail_swizzle3 )w@end; 14 | 15 | /* 16 | Down below we perform: 17 | if( detail_maps_normal ) 18 | second_valid_detail_map_nm = first_valid_detail_map_nm + 1; 19 | else 20 | second_valid_detail_map_nm = 0; 21 | */ 22 | @property( detail_maps_normal ) 23 | @add( second_valid_detail_map_nm, first_valid_detail_map_nm, 1 ) 24 | @end @property( !detail_maps_normal ) 25 | @set( second_valid_detail_map_nm, 0 ) 26 | @end 27 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Any/PlanarReflections_piece_all.any: -------------------------------------------------------------------------------- 1 | 2 | //#include "SyntaxHighlightingMisc.h" 3 | 4 | @property( has_planar_reflections ) 5 | 6 | @piece( DeclPlanarReflUniforms ) 7 | float4 planarReflections[@value(has_planar_reflections)]; 8 | float4x4 planarReflProjectionMat; 9 | float4 invMaxDistanceToPlanarRefl; 10 | @end 11 | 12 | @end ///has_planar_reflections 13 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Any/ShadowMapping_piece_all.any: -------------------------------------------------------------------------------- 1 | 2 | //#include "SyntaxHighlightingMisc.h" 3 | 4 | @property( !hlms_shadowcaster ) 5 | @piece( DeclNormalOffsetBiasFunc ) 6 | @foreach( 2, m ) 7 | // Perform normal offset bias. See https://github.com/OGRECave/ogre-next/issues/100 8 | INLINE float3 getNormalOffsetBias( float3 worldNormal, float3 viewSpaceNormal, 9 | float3 lightDir, float shadowMapTexSize, 10 | float depthRange, float normalOffsetBias 11 | @property( @m == 0 ) 12 | ) 13 | @else 14 | , float2 minUV, float2 maxUV ) 15 | @end 16 | { 17 | float tmpNdotL = saturate( dot( lightDir.xyz, viewSpaceNormal.xyz ) ); 18 | 19 | @property( @m == 1 ) 20 | shadowMapTexSize /= maxUV.x - minUV.x; 21 | @end 22 | 23 | return ( ( 1.0f - tmpNdotL ) * normalOffsetBias * worldNormal.xyz * shadowMapTexSize ); 24 | } 25 | @end 26 | @end 27 | @end 28 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Any/UvModifierMacros_piece_ps.any: -------------------------------------------------------------------------------- 1 | @piece( DeclareUvModifierMacros ) 2 | #define UV_DIFFUSE(x) (x) 3 | #define UV_NORMAL(x) (x) 4 | #define UV_SPECULAR(x) (x) 5 | #define UV_ROUGHNESS(x) (x) 6 | #define UV_DETAIL_WEIGHT(x) (x) 7 | #define UV_DETAIL0(x) (x) 8 | #define UV_DETAIL1(x) (x) 9 | #define UV_DETAIL2(x) (x) 10 | #define UV_DETAIL3(x) (x) 11 | #define UV_DETAIL_NM0(x) (x) 12 | #define UV_DETAIL_NM1(x) (x) 13 | #define UV_DETAIL_NM2(x) (x) 14 | #define UV_DETAIL_NM3(x) (x) 15 | #define UV_EMISSIVE(x) (x) 16 | @insertpiece( custom_ps_uv_modifier_macros ) 17 | @end 18 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Any/Vct_piece_all.any: -------------------------------------------------------------------------------- 1 | 2 | @property( vct_num_probes ) 3 | 4 | @piece( DeclVctStruct ) 5 | struct VctProbeParams 6 | { 7 | // .xyz vctResolution 8 | // .w = cascadeMaxLod 9 | float4 vctInvResolution_cascadeMaxLod[@value( vct_num_probes )]; 10 | @property( vct_num_probes > 1 ) 11 | // fromPreviousProbeToNext[probeIdx-1][0].w = cascadeFinalMultiplier 12 | // fromPreviousProbeToNext[probeIdx-1][1].w = invNumLods 13 | float4 fromPreviousProbeToNext[@value( vct_num_probes ) - 1][2]; 14 | @end 15 | 16 | float specSdfMaxMip; 17 | float specularSdfFactor; 18 | float blendFade; 19 | float multiplier; 20 | 21 | float4 ambientUpperHemi; // .w is padding 22 | float4 ambientLowerHemi; // .w is padding 23 | 24 | float4 xform_row0; 25 | float4 xform_row1; 26 | float4 xform_row2; 27 | 28 | float4 invXform_row0; 29 | float4 invXform_row1; 30 | float4 invXform_row2; 31 | }; 32 | @end 33 | @piece( DeclVctUniform ) 34 | VctProbeParams vctProbeParams; 35 | @end 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/GLSL/Forward3D_piece_ps.glsl: -------------------------------------------------------------------------------- 1 | @property( hlms_forwardplus ) 2 | 3 | @property( hlms_enable_decals ) 4 | @piece( DeclDecalsSamplers ) 5 | @property( syntax == glslvk ) 6 | layout( ogre_s@value(decalsSampler) ) uniform sampler decalsSampler; 7 | @end 8 | @property( hlms_decals_diffuse )vulkan_layout( ogre_t@value(decalsDiffuseTex) ) uniform texture2DArray decalsDiffuseTex;@end 9 | @property( hlms_decals_normals )vulkan_layout( ogre_t@value(decalsNormalsTex) ) uniform texture2DArray decalsNormalsTex;@end 10 | @property( hlms_decals_diffuse == hlms_decals_emissive ) 11 | #define decalsEmissiveTex decalsDiffuseTex 12 | @end 13 | @property( hlms_decals_emissive && hlms_decals_diffuse != hlms_decals_emissive ) 14 | vulkan_layout( ogre_t@value(decalsEmissiveTex) ) uniform texture2DArray decalsEmissiveTex; 15 | @end 16 | @end 17 | @end 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/GLSLES/DetailMaps_piece_ps.glsl: -------------------------------------------------------------------------------- 1 | // detail_maps_diffuse & detail_maps_normal are either 0 or 4 2 | 3 | @pmax( NumDetailMaps, detail_maps_diffuse, detail_maps_normal ) 4 | @foreach( NumDetailMaps, n ) 5 | @property( detail_offsets@n ) 6 | @piece( offsetDetail@n ) * material.detailOffsetScale[@n].zw + material.detailOffsetScale[@n].xy@end 7 | @end 8 | @end 9 | 10 | @piece( detail_swizzle0 )x@end; 11 | @piece( detail_swizzle1 )y@end; 12 | @piece( detail_swizzle2 )z@end; 13 | @piece( detail_swizzle3 )w@end; 14 | 15 | /* 16 | Down below we perform: 17 | if( detail_maps_normal ) 18 | second_valid_detail_map_nm = first_valid_detail_map_nm + 1; 19 | else 20 | second_valid_detail_map_nm = 0; 21 | */ 22 | @property( detail_maps_normal ) 23 | @add( second_valid_detail_map_nm, first_valid_detail_map_nm, 1 ) 24 | @end @property( !detail_maps_normal ) 25 | @set( second_valid_detail_map_nm, 0 ) 26 | @end 27 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/HLSL/Forward3D_piece_ps.hlsl: -------------------------------------------------------------------------------- 1 | @property( hlms_forwardplus ) 2 | 3 | @property( hlms_enable_decals ) 4 | @piece( DeclDecalsSamplers ) 5 | SamplerState decalsSampler : register(s@value(decalsSampler)); 6 | @property( hlms_decals_diffuse )Texture2DArray decalsDiffuseTex : register(t@value(decalsDiffuseTex));@end 7 | @property( hlms_decals_normals )Texture2DArray decalsNormalsTex : register(t@value(decalsNormalsTex));@end 8 | @property( hlms_decals_diffuse == hlms_decals_emissive ) 9 | #define decalsEmissiveTex decalsDiffuseTex 10 | @end 11 | @property( hlms_decals_emissive && hlms_decals_diffuse != hlms_decals_emissive ) 12 | Texture2DArray decalsEmissiveTex : register(t@value(decalsEmissiveTex)); 13 | @end 14 | @end 15 | @end 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/HLSL/Textures_piece_ps.hlsl: -------------------------------------------------------------------------------- 1 | 2 | @property( !hlms_render_depth_only && !hlms_shadowcaster ) 3 | @piece( ExtraOutputTypes ) 4 | @property( hlms_gen_normals_gbuffer ) 5 | float4 normals : SV_Target@counter(rtv_target); 6 | @end 7 | @property( hlms_prepass ) 8 | float2 shadowRoughness : SV_Target@counter(rtv_target); 9 | @end 10 | @end 11 | @end 12 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Metal/Forward3D_piece_ps.metal: -------------------------------------------------------------------------------- 1 | @property( hlms_forwardplus ) 2 | 3 | @property( hlms_enable_decals ) 4 | @piece( DeclDecalsSamplers ) 5 | , sampler decalsSampler [[sampler(@value(decalsSampler))]] 6 | @property( hlms_decals_diffuse ), texture2d_array decalsDiffuseTex [[texture(@value(decalsDiffuseTex))]]@end 7 | @property( hlms_decals_normals ), texture2d_array decalsNormalsTex [[texture(@value(decalsNormalsTex))]]@end 8 | @property( hlms_decals_diffuse == hlms_decals_emissive ) 9 | #define decalsEmissiveTex decalsDiffuseTex 10 | @end 11 | @property( hlms_decals_emissive && hlms_decals_diffuse != hlms_decals_emissive ) 12 | , texture2d_array decalsEmissiveTex [[texture(@value(decalsEmissiveTex))]] 13 | @end 14 | @end 15 | @end 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Pbs/Metal/Textures_piece_ps.metal: -------------------------------------------------------------------------------- 1 | 2 | @property( !hlms_render_depth_only && !hlms_shadowcaster ) 3 | @piece( ExtraOutputTypes ) 4 | @property( hlms_gen_normals_gbuffer ) 5 | float4 normals [[ color(@counter(rtv_target)) ]]; 6 | @end 7 | @property( hlms_prepass ) 8 | float2 shadowRoughness [[ color(@counter(rtv_target)) ]]; 9 | @end 10 | @end 11 | @end 12 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Terra/Any/200.Textures_piece_ps.any: -------------------------------------------------------------------------------- 1 | 2 | //#include "SyntaxHighlightingMisc.h" 3 | 4 | @padd( roughness_map0_sampler, samplerStateStart ) 5 | @padd( roughness_map1_sampler, samplerStateStart ) 6 | @padd( roughness_map2_sampler, samplerStateStart ) 7 | @padd( roughness_map3_sampler, samplerStateStart ) 8 | 9 | @padd( metalness_map0_sampler, samplerStateStart ) 10 | @padd( metalness_map1_sampler, samplerStateStart ) 11 | @padd( metalness_map2_sampler, samplerStateStart ) 12 | @padd( metalness_map3_sampler, samplerStateStart ) 13 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Terra/gz/100.gz_CustomVs_piece_vs.any: -------------------------------------------------------------------------------- 1 | 2 | @piece( custom_vs_posExecution_terra ) 3 | outVs.localHeight = worldPos.z - cellData.pos.y; 4 | @end 5 | -------------------------------------------------------------------------------- /ogre2/src/media/Hlms/Terra/gz/500.gz_Structs_piece_all.any: -------------------------------------------------------------------------------- 1 | 2 | #include "/media/matias/Datos/SyntaxHighlightingMisc.h" 3 | 4 | @piece( custom_materialBuffer ) 5 | float4 ignWeightsMinHeight; 6 | float4 ignWeightsMaxHeight; 7 | @end 8 | 9 | @piece( custom_VStoPS_terra ) 10 | INTERPOLANT( float localHeight, @counter(texcoord) ); 11 | 12 | // added to prevent crash when decals are in the scene 13 | INTERPOLANT( float3 normal, @counter(texcoord) ); 14 | @end 15 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/AabbWorldSpace_cs.glsl: -------------------------------------------------------------------------------- 1 | @insertpiece( SetCrossPlatformSettings ) 2 | 3 | @insertpiece( PreBindingsHeaderCS ) 4 | 5 | @property( syntax == glsl ) 6 | #define ogre_U0 binding = 0 7 | @end 8 | 9 | layout( std430, ogre_U0 ) restrict buffer instanceBufferLayout 10 | { 11 | InstanceBuffer instanceBuffer[]; 12 | }; 13 | 14 | layout( local_size_x = @value( threads_per_group_x ), 15 | local_size_y = @value( threads_per_group_y ), 16 | local_size_z = @value( threads_per_group_z ) ) in; 17 | 18 | @property( syntax == glsl ) 19 | ReadOnlyBufferF( 1, AabbBuffer, inMeshAabb ); 20 | @else 21 | ReadOnlyBufferF( 0, AabbBuffer, inMeshAabb ); 22 | @end 23 | 24 | @insertpiece( HeaderCS ) 25 | 26 | //in uvec3 gl_NumWorkGroups; 27 | //in uvec3 gl_WorkGroupID; 28 | //in uvec3 gl_LocalInvocationID; 29 | //in uvec3 gl_GlobalInvocationID; 30 | //in uint gl_LocalInvocationIndex; 31 | 32 | void main() 33 | { 34 | @insertpiece( BodyCS ) 35 | } 36 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/AabbWorldSpace_cs.hlsl: -------------------------------------------------------------------------------- 1 | @insertpiece( SetCrossPlatformSettings ) 2 | 3 | @insertpiece( PreBindingsHeaderCS ) 4 | 5 | RWStructuredBuffer instanceBuffer : register(u0); 6 | 7 | StructuredBuffer inMeshAabb : register(t0); 8 | 9 | @insertpiece( HeaderCS ) 10 | 11 | //in uvec3 gl_NumWorkGroups; 12 | //in uvec3 gl_WorkGroupID; 13 | //in uvec3 gl_LocalInvocationID; 14 | //in uvec3 gl_GlobalInvocationID; 15 | //in uint gl_LocalInvocationIndex; 16 | 17 | [numthreads(@value( threads_per_group_x ), @value( threads_per_group_y ), @value( threads_per_group_z ))] 18 | void main 19 | ( 20 | uint3 gl_GlobalInvocationID : SV_DispatchThreadId 21 | ) 22 | { 23 | @insertpiece( BodyCS ) 24 | } 25 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/AabbWorldSpace_cs.metal: -------------------------------------------------------------------------------- 1 | @insertpiece( SetCrossPlatformSettings ) 2 | 3 | #define PARAMS_ARG_DECL , device InstanceBuffer *instanceBuffer, device AabbBuffer *inMeshAabb 4 | #define PARAMS_ARG , instanceBuffer, inMeshAabb 5 | 6 | @insertpiece( PreBindingsHeaderCS ) 7 | 8 | @insertpiece( HeaderCS ) 9 | 10 | //in uvec3 gl_NumWorkGroups; 11 | //in uvec3 gl_WorkGroupID; 12 | //in uvec3 gl_LocalInvocationID; 13 | //in uvec3 gl_GlobalInvocationID; 14 | //in uint gl_LocalInvocationIndex; 15 | 16 | kernel void main_metal 17 | ( 18 | device InstanceBuffer *instanceBuffer [[buffer(UAV_SLOT_START+0)]], 19 | 20 | device AabbBuffer *inMeshAabb [[buffer(TEX_SLOT_START+0)]], 21 | 22 | ushort3 gl_GlobalInvocationID [[thread_position_in_grid]] 23 | ) 24 | { 25 | @insertpiece( BodyCS ) 26 | } 27 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/AnisotropicMipVctStep0_cs.hlsl: -------------------------------------------------------------------------------- 1 | @insertpiece( SetCrossPlatformSettings ) 2 | 3 | #define OGRE_imageWrite3D4( outImage, iuv, value ) outImage[uint3( iuv )] = value 4 | 5 | Texture3D inLightLowerMip : register(t0); 6 | Texture3D inVoxelNormalTex : register(t1); 7 | RWTexture3D<@insertpiece(uav0_pf_type)> outLightHigherMip0 : register(u0); 8 | RWTexture3D<@insertpiece(uav1_pf_type)> outLightHigherMip1 : register(u1); 9 | RWTexture3D<@insertpiece(uav2_pf_type)> outLightHigherMip2 : register(u2); 10 | 11 | @insertpiece( HeaderCS ) 12 | 13 | uniform int higherMipHalfWidth; 14 | 15 | #define p_higherMipHalfWidth higherMipHalfWidth 16 | 17 | [numthreads(@value( threads_per_group_x ), @value( threads_per_group_y ), @value( threads_per_group_z ))] 18 | void main( uint3 gl_GlobalInvocationID : SV_DispatchThreadId ) 19 | { 20 | @insertpiece( BodyCS ) 21 | } 22 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/AnisotropicMipVctStep0_cs.metal: -------------------------------------------------------------------------------- 1 | @insertpiece( SetCrossPlatformSettings ) 2 | 3 | #define OGRE_imageWrite3D4( outImage, iuv, value ) outImage.write( value, iuv ) 4 | 5 | @insertpiece( HeaderCS ) 6 | 7 | #define p_higherMipHalfWidth higherMipHalfWidth 8 | 9 | kernel void main_metal 10 | ( 11 | texture3d inLightLowerMip [[texture(0)]], 12 | texture3d inVoxelNormalTex [[texture(1)]], 13 | texture3d<@insertpiece(uav0_pf_type), access::write> outLightHigherMip0 [[texture(UAV_SLOT_START+0)]], 14 | texture3d<@insertpiece(uav1_pf_type), access::write> outLightHigherMip1 [[texture(UAV_SLOT_START+1)]], 15 | texture3d<@insertpiece(uav2_pf_type), access::write> outLightHigherMip2 [[texture(UAV_SLOT_START+2)]], 16 | 17 | constant int &higherMipHalfWidth [[buffer(PARAMETER_SLOT)]], 18 | 19 | ushort3 gl_GlobalInvocationID [[thread_position_in_grid]] 20 | ) 21 | { 22 | @insertpiece( BodyCS ) 23 | } 24 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/AnisotropicMipVctStep1_cs.hlsl: -------------------------------------------------------------------------------- 1 | @insertpiece( SetCrossPlatformSettings ) 2 | 3 | #define OGRE_imageWrite3D4( outImage, iuv, value ) outImage[uint3( iuv )] = value 4 | 5 | Texture3D inLightLowerMip0 : register(t0); 6 | Texture3D inLightLowerMip1 : register(t1); 7 | Texture3D inLightLowerMip2 : register(t2); 8 | 9 | RWTexture3D<@insertpiece(uav0_pf_type)> outLightHigherMip0 : register(u0); 10 | RWTexture3D<@insertpiece(uav1_pf_type)> outLightHigherMip1 : register(u1); 11 | RWTexture3D<@insertpiece(uav2_pf_type)> outLightHigherMip2 : register(u2); 12 | 13 | uniform int4 higherMipHalfRes_lowerMipHalfWidth; 14 | 15 | #define p_higherMipHalfRes higherMipHalfRes_lowerMipHalfWidth.xyz 16 | #define p_lowerMipHalfWidth higherMipHalfRes_lowerMipHalfWidth.w 17 | 18 | @insertpiece( HeaderCS ) 19 | 20 | [numthreads(@value( threads_per_group_x ), @value( threads_per_group_y ), @value( threads_per_group_z ))] 21 | void main( uint3 gl_GlobalInvocationID : SV_DispatchThreadId ) 22 | { 23 | @insertpiece( BodyCS ) 24 | } 25 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/VctTexDownsample.compositor: -------------------------------------------------------------------------------- 1 | 2 | compositor_node VctTexDownsampleNode 3 | { 4 | in 0 downsampleTex 5 | 6 | target downsampleTex 7 | { 8 | pass render_quad 9 | { 10 | execution_mask 0x01 11 | 12 | load 13 | { 14 | all dont_care 15 | } 16 | store 17 | { 18 | //We only care about the contents of the colour target 19 | depth dont_care 20 | stencil dont_care 21 | } 22 | 23 | material Ogre/Copy/4xFP32_2DArray 24 | } 25 | 26 | pass render_quad 27 | { 28 | execution_mask 0x02 29 | 30 | load 31 | { 32 | all dont_care 33 | } 34 | store 35 | { 36 | //We only care about the contents of the colour target 37 | depth dont_care 38 | stencil dont_care 39 | } 40 | 41 | material Ogre/Copy/4xFP32 42 | } 43 | } 44 | } 45 | 46 | workspace VctTexDownsampleWorkspace 47 | { 48 | connect_output VctTexDownsampleNode 0 49 | } 50 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/Visualizer/VoxelVisualizer_ps.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | vulkan_layout( location = 0 ) 4 | in block 5 | { 6 | flat vec4 voxelColour; 7 | } inPs; 8 | 9 | layout(location = 0, index = 0) out vec4 outColour; 10 | 11 | void main() 12 | { 13 | outColour.xyzw = inPs.voxelColour.xyzw; 14 | } 15 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/Visualizer/VoxelVisualizer_ps.hlsl: -------------------------------------------------------------------------------- 1 | 2 | struct PS_INPUT 3 | { 4 | nointerpolation float4 voxelColour : TEXCOORD0; 5 | }; 6 | 7 | float4 main( PS_INPUT inPs ) : SV_Target 8 | { 9 | return inPs.voxelColour; 10 | } 11 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/Visualizer/VoxelVisualizer_ps.metal: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | using namespace metal; 4 | 5 | struct PS_INPUT 6 | { 7 | float4 voxelColour [[flat]]; 8 | }; 9 | 10 | fragment float4 main_metal 11 | ( 12 | PS_INPUT inPs [[stage_in]] 13 | ) 14 | { 15 | return inPs.voxelColour; 16 | } 17 | -------------------------------------------------------------------------------- /ogre2/src/media/VCT/Visualizer/VoxelVisualizer_vs.hlsl: -------------------------------------------------------------------------------- 1 | 2 | #define INLINE 3 | 4 | #define OGRE_Load3D( tex, iuv, lod ) tex.Load( int4( iuv, lod ) ) 5 | 6 | #define inVs_vertexId input.vertexId 7 | #define outVs_Position outVs.gl_Position 8 | 9 | Texture3D voxelTex : register(t0); 10 | #ifdef SEPARATE_OPACITY 11 | uniform Texture3D otherTex : register(t1); 12 | #endif 13 | 14 | uniform float4x4 worldViewProjMatrix; 15 | uniform uint vertexBase; 16 | uniform uint3 voxelResolution; 17 | 18 | #define p_worldViewProjMatrix worldViewProjMatrix 19 | #define p_vertexBase vertexBase 20 | #define p_voxelResolution voxelResolution 21 | 22 | struct VS_INPUT 23 | { 24 | uint vertexId : SV_VertexID; 25 | }; 26 | 27 | struct PS_INPUT 28 | { 29 | nointerpolation float4 voxelColour : TEXCOORD0; 30 | 31 | float4 gl_Position : SV_Position; 32 | }; 33 | 34 | #define HEADER 35 | #include "VoxelVisualizer_vs.any" 36 | #undef HEADER 37 | 38 | PS_INPUT main( VS_INPUT input ) 39 | { 40 | PS_INPUT outVs; 41 | #include "VoxelVisualizer_vs.any" 42 | 43 | return outVs; 44 | } 45 | -------------------------------------------------------------------------------- /ogre2/src/media/materials/programs/GLSL/plain_color_fs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | 19 | #version ogre_glsl_ver_330 20 | 21 | vulkan( layout( ogre_P0 ) uniform Params { ) 22 | uniform vec4 inColor; 23 | vulkan( }; ) 24 | 25 | vulkan_layout( location = 0 ) 26 | out vec4 fragColor; 27 | 28 | void main() 29 | { 30 | fragColor = inColor; 31 | } 32 | -------------------------------------------------------------------------------- /ogre2/src/media/materials/programs/GLSL/point_fs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #version ogre_glsl_ver_330 19 | 20 | vulkan_layout( location = 0 ) 21 | in block 22 | { 23 | vec3 ptColor; 24 | } inPs; 25 | 26 | vulkan_layout( location = 0 ) 27 | out vec4 fragColor; 28 | 29 | void main() 30 | { 31 | fragColor = vec4(inPs.ptColor.x, inPs.ptColor.y, inPs.ptColor.z, 1); 32 | } 33 | -------------------------------------------------------------------------------- /ogre2/src/media/materials/programs/Metal/skybox_fs.metal: -------------------------------------------------------------------------------- 1 | // The code in this file is adapted from OGRE Samples. The OGRE's license and 2 | // copyright header is included in skybox.material. 3 | // See: ogre-next/Samples/2.0/scripts/materials/Common/Metal/SkyCubemap_ps.metal 4 | 5 | #include 6 | using namespace metal; 7 | 8 | struct PS_INPUT 9 | { 10 | float3 cameraDir; 11 | }; 12 | 13 | fragment float4 main_metal 14 | ( 15 | PS_INPUT inPs [[stage_in]], 16 | texturecube skyCubemap [[texture(0)]], 17 | sampler samplerState [[sampler(0)]] 18 | ) 19 | { 20 | //Cubemaps are left-handed 21 | return skyCubemap.sample( samplerState, float3( inPs.cameraDir.xy, -inPs.cameraDir.z ) ).xyzw; 22 | } 23 | -------------------------------------------------------------------------------- /ogre2/src/media/materials/scripts/lens_flare.compositor: -------------------------------------------------------------------------------- 1 | compositor_node LensFlareNode 2 | { 3 | in 0 rt_input 4 | in 1 rt_output 5 | 6 | target rt_output 7 | { 8 | pass render_quad 9 | { 10 | // No clear since this pass overwrites all content 11 | load 12 | { 13 | all dont_care 14 | } 15 | store 16 | { 17 | depth dont_care 18 | stencil dont_care 19 | } 20 | 21 | profiling_id "LensFlare Effect" 22 | 23 | // kLensFlareNodePassQuad 24 | identifier 98744413 25 | 26 | material LensFlare 27 | 28 | input 0 rt_input 29 | } 30 | } 31 | 32 | out 0 rt_output 33 | out 1 rt_input 34 | } 35 | -------------------------------------------------------------------------------- /ogre2/src/media/materials/scripts/picker.material: -------------------------------------------------------------------------------- 1 | 2 | material gz-rendering/plain_color 3 | { 4 | // Material has one technique 5 | technique 6 | { 7 | // This technique has one pass 8 | pass 9 | { 10 | fog_override true 11 | 12 | // Make this pass use the vertex shader defined above 13 | vertex_program_ref plaincolor_vs 14 | { 15 | } 16 | 17 | // Make this pass use the pixel shader defined above 18 | fragment_program_ref plaincolor_fs 19 | { 20 | param_named_auto inColor custom 1 21 | } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /ogre2/src/media/materials/textures/skybox.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/ogre2/src/media/materials/textures/skybox.dds -------------------------------------------------------------------------------- /optix/include/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(gz) 2 | -------------------------------------------------------------------------------- /optix/include/gz/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(rendering) 2 | -------------------------------------------------------------------------------- /optix/include/gz/rendering/optix/OptixIncludes.hh: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #ifndef GZ_RENDERING_OPTIX_OPTIXINCLUDES_HH_ 18 | #define GZ_RENDERING_OPTIX_OPTIXINCLUDES_HH_ 19 | 20 | // #include 21 | #include 22 | 23 | #endif 24 | -------------------------------------------------------------------------------- /optix/include/gz/rendering/optix/optix.hh.in: -------------------------------------------------------------------------------- 1 | // Automatically generated 2 | #include 3 | ${gz_headers} 4 | -------------------------------------------------------------------------------- /optix/src/OptixArrowVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/optix/OptixArrowVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OptixArrowVisual::OptixArrowVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OptixArrowVisual::~OptixArrowVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /optix/src/OptixAxisVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/optix/OptixAxisVisual.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OptixAxisVisual::OptixAxisVisual() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OptixAxisVisual::~OptixAxisVisual() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /optix/src/OptixErrorProgram.cu: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include 18 | #include 19 | 20 | rtDeclareVariable(float3, color, , ); 21 | rtDeclareVariable(uint2, launchIndex, rtLaunchIndex, ); 22 | rtBuffer buffer; 23 | 24 | RT_PROGRAM void Error() 25 | { 26 | buffer[launchIndex] = color; 27 | } 28 | -------------------------------------------------------------------------------- /optix/src/OptixMissProgram.cu: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include 18 | #include 19 | #include "gz/rendering/optix/OptixRayTypes.hh" 20 | 21 | rtDeclareVariable(float3, color, , ); 22 | rtDeclareVariable(OptixRadianceRayData, payload, rtPayload, ); 23 | 24 | RT_PROGRAM void Miss() 25 | { 26 | payload.color = color; 27 | } 28 | -------------------------------------------------------------------------------- /optix/src/OptixSensor.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | #include "gz/rendering/optix/OptixSensor.hh" 18 | 19 | using namespace gz; 20 | using namespace rendering; 21 | 22 | ////////////////////////////////////////////////// 23 | OptixSensor::OptixSensor() 24 | { 25 | } 26 | 27 | ////////////////////////////////////////////////// 28 | OptixSensor::~OptixSensor() 29 | { 30 | } 31 | -------------------------------------------------------------------------------- /src/ArrowVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/ArrowVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | ArrowVisual::~ArrowVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/AxisVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/AxisVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | AxisVisual::~AxisVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/BoundingBoxCamera.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/BoundingBoxCamera.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | BoundingBoxCamera::~BoundingBoxCamera() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/COMVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/COMVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | COMVisual::~COMVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Camera.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Camera.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Camera::~Camera() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Capsule.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Capsule.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Capsule::~Capsule() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/CompositeVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/CompositeVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | CompositeVisual::~CompositeVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/DepthCamera.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/DepthCamera.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | DepthCamera::~DepthCamera() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/DistortionPass.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/DistortionPass.hh" 19 | 20 | using namespace gz; 21 | using namespace rendering; 22 | 23 | ////////////////////////////////////////////////// 24 | DistortionPass::DistortionPass() = default; 25 | 26 | ////////////////////////////////////////////////// 27 | DistortionPass::~DistortionPass() = default; 28 | -------------------------------------------------------------------------------- /src/FrustumVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2025 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | 19 | #include "gz/rendering/FrustumVisual.hh" 20 | 21 | using namespace gz; 22 | using namespace rendering; 23 | 24 | ////////////////////////////////////////////////// 25 | FrustumVisual::FrustumVisual() = default; 26 | 27 | ////////////////////////////////////////////////// 28 | FrustumVisual::~FrustumVisual() = default; 29 | -------------------------------------------------------------------------------- /src/GaussianNoisePass.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | 19 | #include "gz/rendering/GaussianNoisePass.hh" 20 | 21 | using namespace gz; 22 | using namespace rendering; 23 | 24 | ////////////////////////////////////////////////// 25 | GaussianNoisePass::GaussianNoisePass() = default; 26 | 27 | ////////////////////////////////////////////////// 28 | GaussianNoisePass::~GaussianNoisePass() = default; 29 | -------------------------------------------------------------------------------- /src/Geometry.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Geometry.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Geometry::~Geometry() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/GizmoVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/GizmoVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | GizmoVisual::~GizmoVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/GpuRays.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/GpuRays.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | GpuRays::~GpuRays() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Grid.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Grid.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Grid::~Grid() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/InertiaVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/InertiaVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | InertiaVisual::~InertiaVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/JointVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/JointVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | JointVisual::~JointVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/LensFlarePass.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | 19 | #include "gz/rendering/LensFlarePass.hh" 20 | 21 | using namespace gz; 22 | using namespace rendering; 23 | 24 | ////////////////////////////////////////////////// 25 | LensFlarePass::LensFlarePass() = default; 26 | 27 | ////////////////////////////////////////////////// 28 | LensFlarePass::~LensFlarePass() = default; 29 | -------------------------------------------------------------------------------- /src/LidarVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | 19 | #include "gz/rendering/LidarVisual.hh" 20 | 21 | using namespace gz; 22 | using namespace rendering; 23 | 24 | ////////////////////////////////////////////////// 25 | LidarVisual::LidarVisual() = default; 26 | 27 | ////////////////////////////////////////////////// 28 | LidarVisual::~LidarVisual() = default; 29 | -------------------------------------------------------------------------------- /src/Light.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Light.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Light::~Light() = default; 24 | 25 | DirectionalLight::~DirectionalLight() = default; 26 | 27 | PointLight::~PointLight() = default; 28 | 29 | SpotLight::~SpotLight() = default; 30 | 31 | } // namespace gz::rendering 32 | -------------------------------------------------------------------------------- /src/LightVisual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/LightVisual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | LightVisual::~LightVisual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Marker.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2019 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | 19 | #include "gz/rendering/Marker.hh" 20 | 21 | using namespace gz; 22 | using namespace rendering; 23 | 24 | ////////////////////////////////////////////////// 25 | Marker::Marker() = default; 26 | 27 | ////////////////////////////////////////////////// 28 | Marker::~Marker() = default; 29 | -------------------------------------------------------------------------------- /src/Material.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Material.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Material::~Material() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Mesh.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Mesh.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Mesh::~Mesh() = default; 24 | 25 | SubMesh::~SubMesh() = default; 26 | 27 | } // namespace gz::rendering 28 | 29 | -------------------------------------------------------------------------------- /src/NativeWindow.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/NativeWindow.hh" 19 | 20 | using namespace gz; 21 | using namespace rendering; 22 | 23 | ////////////////////////////////////////////////// 24 | NativeWindow::NativeWindow() = default; 25 | 26 | ////////////////////////////////////////////////// 27 | NativeWindow::~NativeWindow() = default; 28 | 29 | -------------------------------------------------------------------------------- /src/Node.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Node.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Node::~Node() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Object.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Object.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Object::~Object() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/ParticleEmitter.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/ParticleEmitter.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | ParticleEmitter::~ParticleEmitter() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Projector.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Projector.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Projector::~Projector() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/RayQuery.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/RayQuery.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | RayQuery::~RayQuery() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/RenderEngine.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/RenderEngine.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | RenderEngine::~RenderEngine() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/RenderPass.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/RenderPass.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | RenderPass::~RenderPass() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/RenderTarget.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/RenderTarget.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | RenderTarget::~RenderTarget() = default; 24 | 25 | RenderTexture::~RenderTexture() = default; 26 | 27 | RenderWindow::~RenderWindow() = default; 28 | 29 | } // namespace gz::rendering 30 | -------------------------------------------------------------------------------- /src/SegmentationCamera.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/SegmentationCamera.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | SegmentationCamera::~SegmentationCamera() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Sensor.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Sensor.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Sensor::~Sensor() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Text.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Text.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Text::~Text() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/ThermalCamera.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/ThermalCamera.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | ThermalCamera::~ThermalCamera() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/ViewController.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/ViewController.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | ViewController::~ViewController() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/Visual.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/Visual.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | Visual::~Visual() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/WideAngleCamera.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/WideAngleCamera.hh" 19 | 20 | namespace gz::rendering 21 | { 22 | 23 | WideAngleCamera::~WideAngleCamera() = default; 24 | 25 | } // namespace gz::rendering 26 | -------------------------------------------------------------------------------- /src/WireBox.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2020 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | 19 | #include "gz/rendering/WireBox.hh" 20 | 21 | using namespace gz; 22 | using namespace rendering; 23 | 24 | ////////////////////////////////////////////////// 25 | WireBox::WireBox() 26 | { 27 | } 28 | 29 | ////////////////////////////////////////////////// 30 | WireBox::~WireBox() 31 | { 32 | } 33 | -------------------------------------------------------------------------------- /src/base/BaseNativeWindow.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2023 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include "gz/rendering/base/BaseNativeWindow.hh" 19 | 20 | using namespace gz; 21 | using namespace rendering; 22 | 23 | ////////////////////////////////////////////////// 24 | BaseNativeWindow::BaseNativeWindow() = default; 25 | 26 | ////////////////////////////////////////////////// 27 | BaseNativeWindow::~BaseNativeWindow() = default; 28 | 29 | -------------------------------------------------------------------------------- /src/base/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # GLOB all the source files 2 | file(GLOB source_files "*.cc") 3 | list(SORT source_files) 4 | 5 | set(tmp_sources) 6 | 7 | foreach(source_file ${source_files}) 8 | get_filename_component(source ${source_file} NAME) 9 | list(APPEND tmp_sources base/${source}) 10 | endforeach() 11 | 12 | set (sources ${sources} 13 | ${tmp_sources} 14 | PARENT_SCOPE 15 | ) 16 | 17 | add_subdirectory(media) 18 | 19 | -------------------------------------------------------------------------------- /src/base/media/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(materials) 2 | -------------------------------------------------------------------------------- /src/base/media/materials/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(textures) 2 | -------------------------------------------------------------------------------- /src/base/media/materials/textures/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB files "*.png") 2 | 3 | install(FILES ${files} DESTINATION ${GZ_RENDERING_RELATIVE_RESOURCE_PATH}/media/materials/textures) 4 | 5 | -------------------------------------------------------------------------------- /src/base/media/materials/textures/com.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/src/base/media/materials/textures/com.png -------------------------------------------------------------------------------- /src/bazel/InstallationDirectories.cc: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2025 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include 19 | 20 | namespace gz 21 | { 22 | namespace rendering 23 | { 24 | inline namespace GZ_RENDERING_VERSION_NAMESPACE { 25 | 26 | // Generate an install prefix specifically for bazel build. 27 | std::string getInstallPrefix() 28 | { 29 | return "."; 30 | } 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /test/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include(gz_rendering_test.cmake) 2 | 3 | add_subdirectory(gtest_vendor) 4 | add_subdirectory(integration) 5 | add_subdirectory(performance) 6 | add_subdirectory(regression) 7 | add_subdirectory(common_test) 8 | -------------------------------------------------------------------------------- /test/gtest_vendor/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(gtest STATIC ${CMAKE_CURRENT_SOURCE_DIR}/src/gtest-all.cc) 2 | add_library(gtest_main STATIC ${CMAKE_CURRENT_SOURCE_DIR}/src/gtest_main.cc) 3 | 4 | target_include_directories(gtest 5 | SYSTEM PUBLIC 6 | ${CMAKE_CURRENT_SOURCE_DIR}/include 7 | PRIVATE 8 | ${CMAKE_CURRENT_SOURCE_DIR} 9 | ${CMAKE_CURRENT_SOURCE_DIR}/src 10 | ) 11 | target_link_libraries(gtest_main gtest) 12 | -------------------------------------------------------------------------------- /test/gtest_vendor/gtest_vendor_version: -------------------------------------------------------------------------------- 1 | commit 9406a60c7839052e4944ea4dbc8344762a89f9bd (HEAD -> main, origin/main, origin/HEAD) 2 | Author: Abseil Team 3 | Date: Mon Jun 27 13:15:39 2022 -0700 4 | 5 | Mark internal-only function as having internal linkage. 6 | 7 | PiperOrigin-RevId: 457550818 8 | Change-Id: I9046801b64ce4581d742d650451332fd56489632 9 | -------------------------------------------------------------------------------- /test/integration/all_symbols_have_version.bash.in: -------------------------------------------------------------------------------- 1 | # Returns non-zero exit code if there are symbols which don't contain the project major version 2 | 3 | LIBPATH=$1 4 | VERSIONED_NS=v@PROJECT_VERSION_MAJOR@ 5 | GZ_PROJECT=@GZ_DESIGNATION@ 6 | 7 | # Sanity check - there should be at least one symbol 8 | NUM_SYMBOLS=$(nm $LIBPATH | grep -e "gz.*$GZ_PROJECT" | wc -l) 9 | 10 | if [ $NUM_SYMBOLS -eq 0 ] 11 | then 12 | echo >&2 "ERROR: Did not find any symbols in the project library" 13 | exit 1 14 | fi 15 | 16 | # There must be no unversioned symbols 17 | UNVERSIONED_SYMBOLS=$(nm $LIBPATH | grep -e "gz.*$GZ_PROJECT" | grep -e "$VERSIONED_NS" -v) 18 | UNVERSIONED_SYMBOL_CHARS=$(printf "$UNVERSIONED_SYMBOLS" | wc -m) 19 | 20 | if [ $UNVERSIONED_SYMBOL_CHARS -ne 0 ] 21 | then 22 | echo >&2 "ERROR: Found unversioned symbols:\n$UNVERSIONED_SYMBOLS" 23 | exit 1 24 | fi 25 | 26 | echo "No unversioned symbols found (num versioned symbols:$NUM_SYMBOLS)" 27 | exit 0 28 | -------------------------------------------------------------------------------- /test/integration/base64.hh: -------------------------------------------------------------------------------- 1 | // 2 | // base64 encoding and decoding with C++. 3 | // Version: 1.01.00 4 | // 5 | // Copyright (C) 2004-2017 René Nyffenegger 6 | // 7 | 8 | #pragma once 9 | 10 | #include 11 | #include 12 | 13 | /// \brief Takes a binary input and outputs a string in base64 14 | /// \param[in] _bytesToEncode binary data to encode 15 | /// \param[in] _len length in bytes of _bytesToEncode 16 | /// \param[out] _outBase64 String with base64-encoded of input 17 | void Base64Encode(const void *_bytesToEncode, size_t _len, 18 | std::string &_outBase64); 19 | 20 | /// \brief Takes a base64-encoded string and turns it back into binary 21 | /// \param _s base64-encoded string 22 | /// \return Decoded binary data 23 | std::vector Base64Decode(const std::string &_s); 24 | -------------------------------------------------------------------------------- /test/media/heightmap_bowl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/heightmap_bowl.png -------------------------------------------------------------------------------- /test/media/materials/programs/simple_color_330_fs.glsl: -------------------------------------------------------------------------------- 1 | #version ogre_glsl_ver_330 2 | 3 | /* 4 | * Copyright (C) 2022 Open Source Robotics Foundation 5 | * 6 | * Licensed under the Apache License, Version 2.0 (the "License"); 7 | * you may not use this file except in compliance with the License. 8 | * You may obtain a copy of the License at 9 | * 10 | * http://www.apache.org/licenses/LICENSE-2.0 11 | * 12 | * Unless required by applicable law or agreed to in writing, software 13 | * distributed under the License is distributed on an "AS IS" BASIS, 14 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 | * See the License for the specific language governing permissions and 16 | * limitations under the License. 17 | * 18 | */ 19 | 20 | vulkan_layout( location = 0 ) 21 | out vec4 fragColor; 22 | 23 | void main() 24 | { 25 | fragColor = vec4(1.0, 0.0, 0.0, 1.0); 26 | } 27 | -------------------------------------------------------------------------------- /test/media/materials/programs/simple_color_fs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | void main() 19 | { 20 | gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0); 21 | } 22 | -------------------------------------------------------------------------------- /test/media/materials/programs/simple_color_fs.metal: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | #include 19 | using namespace metal; 20 | 21 | 22 | fragment float4 main_metal 23 | ( 24 | ) 25 | { 26 | return float4(1, 0, 0, 1); 27 | } 28 | -------------------------------------------------------------------------------- /test/media/materials/programs/simple_color_vs.glsl: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2022 Open Source Robotics Foundation 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | * 16 | */ 17 | 18 | void main() 19 | { 20 | gl_Position = ftransform(); 21 | } 22 | -------------------------------------------------------------------------------- /test/media/materials/textures/blue_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/materials/textures/blue_texture.png -------------------------------------------------------------------------------- /test/media/materials/textures/flat_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/materials/textures/flat_normal.png -------------------------------------------------------------------------------- /test/media/materials/textures/gray_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/materials/textures/gray_texture.png -------------------------------------------------------------------------------- /test/media/materials/textures/red_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/materials/textures/red_texture.png -------------------------------------------------------------------------------- /test/media/materials/textures/skybox_lowres.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/materials/textures/skybox_lowres.dds -------------------------------------------------------------------------------- /test/media/materials/textures/texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/materials/textures/texture.png -------------------------------------------------------------------------------- /test/media/materials/textures/wave_normals.dds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/test/media/materials/textures/wave_normals.dds -------------------------------------------------------------------------------- /test/performance/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(TEST_TYPE "PERFORMANCE") 2 | 3 | set(tests 4 | scene_factory 5 | ) 6 | 7 | foreach(test ${tests}) 8 | gz_rendering_test( 9 | TYPE ${TEST_TYPE} 10 | SOURCE ${test} 11 | LIB_DEPS 12 | gz-plugin${GZ_PLUGIN_VER}::loader 13 | gz-common${GZ_COMMON_VER}::gz-common${GZ_COMMON_VER} 14 | ${PROJECT_LIBRARY_TARGET_NAME} 15 | ) 16 | endforeach() 17 | -------------------------------------------------------------------------------- /test/regression/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | set(TEST_TYPE "REGRESSION") 2 | 3 | gz_rendering_test( 4 | TYPE ${TEST_TYPE} 5 | SOURCE reload_engine 6 | LIB_DEPS 7 | gz-plugin${GZ_PLUGIN_VER}::loader 8 | gz-common${GZ_COMMON_VER}::gz-common${GZ_COMMON_VER} 9 | ${PROJECT_LIBRARY_TARGET_NAME} 10 | ) 11 | 12 | -------------------------------------------------------------------------------- /tools/gl-test.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from OpenGL.GLUT import * 3 | import sys 4 | 5 | glutInit(sys.argv) 6 | 7 | # Select type of Display mode: 8 | # Double buffer 9 | # RGBA color 10 | # Depth buffer 11 | # Alpha blending 12 | glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH | GLUT_ALPHA) 13 | 14 | # get a 640 x 480 window 15 | glutInitWindowSize(640, 480) 16 | 17 | # the window starts at the upper left corner of the screen 18 | glutInitWindowPosition(0, 0) 19 | 20 | # Open a window 21 | window = glutCreateWindow("Testing DRI") 22 | -------------------------------------------------------------------------------- /tutorials/img/actor_animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/actor_animation.png -------------------------------------------------------------------------------- /tutorials/img/boundingbox_camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/boundingbox_camera.png -------------------------------------------------------------------------------- /tutorials/img/boundingbox_camera_2d_full.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/boundingbox_camera_2d_full.png -------------------------------------------------------------------------------- /tutorials/img/boundingbox_camera_2d_visible.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/boundingbox_camera_2d_visible.png -------------------------------------------------------------------------------- /tutorials/img/camera_tracking.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/camera_tracking.png -------------------------------------------------------------------------------- /tutorials/img/custom_scene_viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/custom_scene_viewer.png -------------------------------------------------------------------------------- /tutorials/img/custom_shaders_depth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/custom_shaders_depth.png -------------------------------------------------------------------------------- /tutorials/img/custom_shaders_rgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/custom_shaders_rgb.png -------------------------------------------------------------------------------- /tutorials/img/depth_camera_ogre.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/depth_camera_ogre.png -------------------------------------------------------------------------------- /tutorials/img/gazebo_scene_viewer.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/gazebo_scene_viewer.gif -------------------------------------------------------------------------------- /tutorials/img/gazebo_scene_viewer2_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/gazebo_scene_viewer2_demo.gif -------------------------------------------------------------------------------- /tutorials/img/heightmaps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/heightmaps.png -------------------------------------------------------------------------------- /tutorials/img/heightmaps_dem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/heightmaps_dem.png -------------------------------------------------------------------------------- /tutorials/img/lightmap_bake.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_bake.jpg -------------------------------------------------------------------------------- /tutorials/img/lightmap_depot_render.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_depot_render.png -------------------------------------------------------------------------------- /tutorials/img/lightmap_depot_saved.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_depot_saved.jpg -------------------------------------------------------------------------------- /tutorials/img/lightmap_import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_import.png -------------------------------------------------------------------------------- /tutorials/img/lightmap_material_connection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_material_connection.jpg -------------------------------------------------------------------------------- /tutorials/img/lightmap_material_shader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_material_shader.png -------------------------------------------------------------------------------- /tutorials/img/lightmap_new_texture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_new_texture.png -------------------------------------------------------------------------------- /tutorials/img/lightmap_rendered.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_rendered.png -------------------------------------------------------------------------------- /tutorials/img/lightmap_unwrap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/lightmap_unwrap.png -------------------------------------------------------------------------------- /tutorials/img/mesh_viewer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/mesh_viewer.png -------------------------------------------------------------------------------- /tutorials/img/ogre2_sky_envmap.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/ogre2_sky_envmap.png -------------------------------------------------------------------------------- /tutorials/img/particles.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/particles.gif -------------------------------------------------------------------------------- /tutorials/img/render_order_bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/render_order_bad.png -------------------------------------------------------------------------------- /tutorials/img/render_order_good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/render_order_good.png -------------------------------------------------------------------------------- /tutorials/img/render_pass.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/render_pass.gif -------------------------------------------------------------------------------- /tutorials/img/simple_demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/simple_demo.gif -------------------------------------------------------------------------------- /tutorials/img/skybox_gimp_layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/skybox_gimp_layers.png -------------------------------------------------------------------------------- /tutorials/img/text_geom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/text_geom.png -------------------------------------------------------------------------------- /tutorials/img/transform_fbx_to_dae/edit_origin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/transform_fbx_to_dae/edit_origin.gif -------------------------------------------------------------------------------- /tutorials/img/transform_fbx_to_dae/import_model.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/transform_fbx_to_dae/import_model.gif -------------------------------------------------------------------------------- /tutorials/img/transform_fbx_to_dae/remove_elemets.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gazebosim/gz-rendering/cd6009ee6f6a80fb41e54ddb8e805330111660fd/tutorials/img/transform_fbx_to_dae/remove_elemets.gif -------------------------------------------------------------------------------- /tutorials/index.md: -------------------------------------------------------------------------------- 1 | # Introduction 2 | 3 | Placeholder 4 | --------------------------------------------------------------------------------