-
Notifications
You must be signed in to change notification settings - Fork 7
Extra Tools
There are some helpful command line tools that are compiled alongside the main library. After installation the tools are globally available to be called.
Prints the rmagine version. Should match the CMakeLists version.
user@pc:~/rmagine/build$ ./bin/rmagine_version
2.2.1
For every implemented computing device we compile a benchmark executable that simulates a Velodyne LiDAR sensor in a given mesh and prints out some useful run time statisitics. Thus, we can compare the run times of different implementations on several computers. The CPU / Embree version can be tested like this:
user@pc:~/rmagine/build$ ./bin/rmagine_benchmark_cpu ../dat/sphere.ply
Rmagine Benchmark CPU (Embree)
Inputs:
- mesh: ../dat/sphere.ply
Unit: 1 Velodyne scan (velo) = 14400 Rays
- range of last ray: 0.998762
-- Starting Benchmark --
[ 129% - 2215.605926 velos/s, mean: 2387.607002 velos/s]
Result: 2387.607002 velos/s
Analogously, the GPU benchmark can be started as follows:
user@pc:~/rmagine/build$ ./bin/rmagine_benchmark_gpu ../dat/sphere.ply
[RMagine - CudaContext] CUDA Driver Version / Runtime Version: 12.2.0 / 12.2.0
[RMagine - CudaContext] Construct context on device 0 - NVIDIA GeForce RTX 2060
[RMagine - OptixContext] Init Optix (7.3.0). Required GPU driver >= 465.84
Rmagine Benchmark GPU (OptiX)
Inputs:
- mesh: ../dat/sphere.ply
Unit: 1 Velodyne scan (velo) = 14400 Rays
Last Ray:
- range: 0.998762
-- Starting Benchmark --
[ 100% - 231941.938409 velos/s, mean: 231987.481164 velos/s]
Result: 231987.481164 velos/s
Prints useful information about the contents of a mesh file. Internally it is just printing the meta information of the assimp buffers.
user@pc:~/rmagine/build$ ./bin/rmagine_map_info ../dat/two_cubes.dae
Rmagine Map Info
Inputs:
- filename: ../dat/two_cubes.dae
Meshes: 2
Mesh 0
- name: Cube_001-mesh
- vertices, faces: 36, 12
- primitives: TRIANGLE
- normals: yes
- vertex color channels: 0
- uv channels: 1
- bones: 0
- material index: 1
- tangents and bitangents: no
- aabb: AABB [v[0,0,0] - v[0,0,0]]
Mesh 1
- name: Cube-mesh
- vertices, faces: 36, 12
- primitives: TRIANGLE
- normals: yes
- vertex color channels: 0
- uv channels: 1
- bones: 0
- material index: 0
- tangents and bitangents: no
- aabb: AABB [v[0,0,0] - v[0,0,0]]
Textures: 0
Scene Graph:
- name: Scene
- transform:
M4x4[
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
]
- meshes: 0
- children: 4
Node 0
- name: Cube_001
- transform:
M4x4[
1 0 0 5.01877
0 1 0 3.78582
0 0 1 1.01026
0 0 0 1
]
- meshes: 1
- mesh ref 0 -> 0
- children: 0
Node 1
- name: Camera
- transform:
M4x4[
0.685921 -0.324014 0.651558 7.35889
0.727676 0.305421 -0.61417 -6.92579
0 0.895396 0.445271 4.95831
0 0 0 1
]
- meshes: 0
- children: 0
Node 2
- name: Light
- transform:
M4x4[
-0.290865 -0.771101 0.566393 4.07624
0.955171 -0.199883 0.218391 1.00545
-0.0551891 0.604525 0.794672 5.90386
0 0 0 1
]
- meshes: 0
- children: 0
Node 3
- name: Cube
- transform:
M4x4[
1.64731 1.34142 -0.299005 5.7392
-1.28721 1.34237 -1.06938 -4.66034
-0.481559 1.00054 1.83561 1.69496
0 0 0 1
]
- meshes: 1
- mesh ref 0 -> 1
- children: 0
Generate different meshes for quick testing. Show the possible options by entering
user@pc:~/rmagine/build$ ./bin/rmagine_synthetic
Rmagine Synthetic
Usage: ./bin/rmagine_synthetic mesh_type mesh_file
- mesh_type: plane | cube | sphere | cylinder
rmagine_synthetic plane plane.ply |
rmagine_synthetic cube cube.ply |
rmagine_synthetic sphere sphere.ply |
rmagine_synthetic cylinder cylinder.ply |
Getting Started
Library
Extra