GEM4D Version 22.214.171.124 available for download
Updated: Dec 15, 2019
Version 126.96.36.199 adds significant upgrades to various aspects such as the graphics engine, export support for OBJ-files with textures, picking accuracy, clipping improvements and data importing. Thanks for the support, suggestions and comments from DK, JS, CL, RC, KdP, DG, KD AJ, RT, JP, AJ, ND, KB, GB, FB, SC, SO, LH, DdC, GS, DR, BE, JS, IS, JV, KL, MB, KM, MC, JdS, TN, AM, EJ, AB, BM, FN, OW, ES and FC.
Updated version of the graphics engine that improves the scene quality even further.
"Ribbon => Image => Wavefront texture files => Save after transformation" export an OBJ-file with the texture information - see discussion below.
The mouse picking logic was redone for the default "Left toolbar => Surface" snapping mode. Previously, the picking coordinate was not always exactly on top of the picked surface or line, but a location that exactly aligns with the surface or line is now selected.
"Right toolbar => Clipping" was extended and now also clips drill hole collar and survey information.
The "Ribbon => Images" layout was changed to better suit the functionality.
The layout of many toolboxes in the right toolbar were changed to be consistent with other areas of the program.
Pressing the "Right toolbar => Clipping => Left/Right arrows" now result in a smooth kick-in of continuous clipping progression.
From the previous version, missing data cells were automatically filled with "NaN" (Not a Number) values as earlier versions removed lines with missing data, but that resulted in data loss. The change to NaN resulted that Marker iso-surfaces and mesh colouring did not occur when the selected column contained any NaN-values. Many thanks to RC for bringing this to my attention! The changes made should now automatically produce the outcome the user have in mind.
In Windows 7, scene flickering and black-outs occurs with some graphics cards when the mouse cursor left the scene area - fixed. Windows can be finicky, so let me know if this persists on some computers.
"Right toolbar => Scaling => Scale vector along each axis" did not carry over to the other axes when "Uniform scaling" was selected as expected - fixed.
Attempting to scale objects with "Right toolbar => Scaling" when only images were in the scene caused errors - fixed.
"Marker => Iso-surface and Colour mapping => Iso-surface/Colour meshes" did not work as expected when there were NaN in the selected column - fixed.
"Top toolbar => Mark Point => Convert markers to DXF" "Top toolbar => Map Discs => Convert discs to DXF" "Top toolbar => Measure => Convert lines to DXF" saved the DXF-file, but did not automatically load the information back as expected - fixed.
Discussion: Photogrammetry, transformations and retaining textures
Now that GEM4D can save re-positioned photogrammetry meshes with the associated textures after transformations, the transformation options can be used to full advantage. I currently use 3DF Zephyr (https://www.3dflow.net/3df-zephyr-pro-3d-models-from-photos/), which have a free version for personal and evaluation purposes, but purchase a pay version for commercial usage.
After a textured mesh is solved in 3D Zephyr, export as a Wavefront OBJ-file. Two associated files (MTL & JPG) are automatically generated. Move the three files into a separate folder with a descriptive name. Load the OBJ-file in GEM4D with "Ribbon => Image => Wavefront texture files => Load OBJ, MTL and JPG". To position, rotate and scale the OBJ-file, also load a mesh of the location which is in the local coordinate system. The OBJ-file can now be spatially transformed (scaled/rotated/moved) in GEM4D.
Step 1 - Roughly move, scale and rotate the OBJ-file
Use the "Move", "Rotate" and "Scale" options in the right toolbar to roughly position the OBJ-mesh close to the mesh that is already in the mine coordinate system (target coordinate system). The screenshot below was after the OBJ-mesh was roughly oriented and placed such that common points can be visually identified and picked, as surveyed coordinates were not available.
Step 2 - Complete 3 coordinates in the two coordinate systems
Mouse pick three coordinates to define the relationship between the two coordinate systems. The three points are then be used to calculate the transformation matrix to place the OBJ-object in the correct location, orientation and scale. The three coordinates in the top "Coordinates to target" section could also be surveyed points and the text boxes filled in by hand.
Step 3 - Accept the values and mouse pick on the OBJ-object
Accept the two sets of coordinates by pressing the "Accept and pick object" button and mouse pick on the OBJ-object to transform the mesh to the correct location, orientation and scale. If the coordinates were picked by hand and the result not satisfactory, just repeat the process as many times as needed. The transformation matrix is not trivial to calculate, so please let me know if some circumstances fail to transform correctly.
Most importantly, have fun!
Tip: I found textures are clearer when the shading is set to low with "Ribbon => Settings => Lightning and shading => Contrast => Low", or I sometimes even remove all shading with "Ribbon => Settings => Lightning and shading => Shading=> None".