Improve consistency and visual appearance of predefined OCCT materials in various rendering modes, including ray-tracing:
- Increase the specular exponents (shininesses) for metallic surfaces: Brass, Bronze, Copper, Gold, Pewter, Silver, Steel, Chrome, Aluminum.
- Revise specular colors for metals: Copper, Gold, Aluminum, Silver (according to "Real-Time Rendering, 3rd Edition", AK Peters 2008).
- Increase diffuse reflection of metals: Silver, Aluminum, Chrome (to make them brighter in OpenGL mode).
- Extend Material definition by Refraction Index.
Advanced rendering methods based on shaders or ray-tracing can utilize it to produce refraction effects.
In addition:
- Introduce three translucent materials: Water, Glass, and Diamond.
- Add Charcoal for modeling dark diffuse surfaces.
Add new TCL-based sample (materials.tcl) and test case (tests/v3d/materials/bug24855).
From now on, the panning behavior of V3d_View completely corresponds to equal operations with camera. There is no more confusing "Center" property and "ProjectionShift" which were used to introduce composite panning, while respecting view referential points: At, Eye unchanged. The V3d_View::FitAll approach has been rewritten to do "fit all" geometrically, operating with frustum, to make it working for both orthographic and perspective projections.
1) Getting rid of ProjectionShift and Center property:
- Removed ProjectionShift property of Graphic3d_Camera.
- Removed confusing Center property of V3d_View (related to projection shift).
- Removed redundant code related to the Center property of V3d_View.
- Removed WindowLimit method of Graphic3d_Camera - no more used.
2) Improvements of fit all and selector:
- Improved FitAll operation of V3d_View and reused it in NIS_View - the perspective projection is now handled correctly.
- Revised code of Select3D_Projector class - can be defined with any given projection and model-view matrices.
- Modified StdSelect_ViewerSelector3d and ensured that panning, zooming and going into the view do not lead to unwanted re-projection of sensitives. The handling of perspective selection is revised.
- Take into account graphical boundaries of infinite structure on ZFitAll.
3) Improvements of camera:
- Introduced new z range scale parameter for V3d_View::AutoZFit. See, V3d_View::AutoZFitMode.
- Allow negative ZNear, ZFar for orthographic camera to avoid clipping of viewed model.
- Moved camera ZNear, ZFar validity checks to V3d_View level.
- Use more meaningful Standard_ShortReal relative precision for ZNear, ZFar ranges computed by ZFitAll.
- Use Standard_Real type for camera projection and orientation matrices.
- Extended camera to generate both Standard_Real and Standard_ShortReal transformation matrices using the same matrix evaluation methods and converted input parameters.
Correcting picking tests for perspective view
Modify v3d face test cases for 1px changes in face picking
Modified test cases for new arguments of vviewparams DRAWEXE command
Upgrade of draw-commands + a new draw-command calling conversion of a shape into voxels.
Resolved of a problem of failure of non-regression tests on voxels (vis/bug19820).
Implemented a new method using separating axis theorem to compute triangle-box intersection. Based on the intersection result the decision whether to set the voxel is made.
Adjustment of lines (removal of extra-spaces).
Adding test cases for voxel testing
Call to locate_data_file moved from catch statement in test scripts to ensure that missing data file is correctly reported as SKIPPED status of the test.
TODO statements with single word 'Exception' made bit more specific ("**" added).
Test bugs/caf/buc60846 removed as it is aimed to test inexistent component (Sketcher).
TODO removed in test bugs/fclasses/bug22611 -- the missing command must be added or test removed.
Test bugs/step/bug133_4 removed as duplicate of bugs/step/bug133_2.
Command vinit added in test bugs/vis/bug23226 to ensure that viewer is properly initialized before command vvbo, and relevant TODO statements removed.
Redundant FAILED patterns removed in parse.rules in groups perf and v3d as they break appropriate handling of missing data files.
Added QA command OCC22611 to improve test case bugs/fclasses/bug22611.
Modified test case buc60898 (shape was renamed) and moved to folder moddata_3 to avoid checkshape in end file.
Test case vis/bug23226 was modified using function checkcolor.