1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-19 13:40:49 +03:00
Commit Graph

3750 Commits

Author SHA1 Message Date
akz
da23f05b56 0028741: Visualization, TKOpenGl - eliminate GL errors within Core Profile in OpenGl_View::copyBackToFront() 2018-03-17 12:55:11 +03:00
isk
8688073317 0028734: Visualization, OpenGl_Texture - fix initialization of 1D texture
OpenGl_Texture::Init() - fixed proxy check for 1D textures.
Declarations.glsl - defined occTexture1D/3D aliases similar to occTexture2D.
2018-03-17 12:55:05 +03:00
apl
d584664886 0027925: Visualization - implement order-independent transparency algorithm within rasterization rendering
Weighted, Blended Order-Independent Transparency algorithm has been added rasterization pipeline.
In contrast to classical blending transparency it makes transparent objects look independent
from point of view. It also gives better depth occlusion when being used together with a weight factor
based on value of a GL depth buffer. The feature supports desktop OpenGL, OpenGL ES 3.0, ANGLE
and can be used together with MSAA on desktop GL.

To be used it require availability of:
1) Shaders pipeline.
2) Floating point color format for framebuffer (GL_ARB_color_buffer_float).
3) Multiple render targets (GL_ARB_draw_buffers).

Patch does not modify API and does not require application porting.
It adds new rendering options to Graphic3d_RenderingParams structure:
a) Transparency method from enumeration.
b) Scalar factor [0-1] controlling influence of a fragment's depth to its visibility.

Patch also simplifies processing of transparent objects for standard method:
rendering priority of transparent graphical structures is managed automatically,
therefore there is no need to care about it at application's side.
2018-03-17 12:54:59 +03:00
kgv
d7d86dff21 0028647: Visualization, OpenGl_AspectMarker - invalid marker size on re-setting aspect without redraw
OpenGl_AspectMarker::Resources::BuildSprites(), fixed uninitialized theMarkerSize
in case if aspect has been already initialized for specified marker type.

Draw Harness command vaspects has been extended with new options -setMarkerType and -setMarkerSize.
2018-03-17 12:54:49 +03:00
kgv
46b0e7f06e 0028625: Visualization, OpenGl_FrameBuffer - initialize Render Buffer with stencil 2018-03-17 12:54:43 +03:00
kgv
ae61392c9b 0028615: Visualization, TKOpenGl - enabling MSAA leads to black screen on OpenGL ES
Removed redundant macros check.
2018-03-17 12:54:28 +03:00
kgv
1b6e3821be 0028487: Visualization, TKOpenGl - add option for rendering with lower resolution
Graphic3d_RenderingParams::RenderResolutionScale - added new option
defining scale factor for allocating off-screen rendering buffers
relative to native resolution of window buffer.

Scale factor can be below 1.0 (lower resolution) or higher (as analog of super sampling),
but can not be combined with MSAA settings.

Draw Harness command vrenderparams has been extended with option -rendScale
managing introduced option Graphic3d_RenderingParams::RenderResolutionScale.

vcaps has been extended with option -useWindowBuffer for managing
OpenGl_Caps::useSystemBuffer option.

vrepaint has been extended with option -immediate
for testing immediate layer redraw

OpenGl_View::blitBuffers() - eliminate compiler warning on Android
2018-03-17 12:54:18 +03:00
dbp
3f86417580 0028218: Visualization, Path Tracing - Redesign path tracing materials to support two-layered model
Existing OCCT path tracing engine used very simple additive material (BSDF) model, so it was possible to reproduce
behavior only of very basic materials such as metal, glass, or plastic. However, some important in CAD industry
materials like car paint or ceramic could not be modeled well. In this patch, OCCT BSDF was significantly improved
by replacing additive model with two-layered scattering model. Therefore, we have base diffuse, glossy, or transmissive
layer, covered by one glossy/specular coat. The layers themselves have no thickness; they can simply reflect light or
transmits it to the layer under it. Balancing different combinations of layer properties can produce a wide range of
different effects. At the same time, disabling the first (coat) layer allows to keep full compatibility with previously
supported scattering model. All new parameters are available via 'vbsdf' command.

Location of new sample for few material examples:
samples\tcl\pathtrace_materials.tcl

Fix shader compilation issue.

Fix test case sample_ball_alpha.

Shaders_PathtraceBase_fs.pxx - regenerate resource from origin
2018-03-17 12:54:08 +03:00
kgv
ca9c3e9ad5 0028441: Coding Rules - move out nested Image_PixMap::ImgFormat enumeration to dedicated enum Image_Format
Enumeration Image_PixMap::ImgFormat, previously declared as nested
enumeration within class *Image_PixMap*,
has been moved to global namespace as Image_Format following OCCT coding rules.

The enumeration values have suffix Image_Format_ and preserve
previous name scheme for easy renaming of old values.
E.g. Image_PixMap::ImgGray become Image_Format_Gray.
Old definitions are preserved as depreacated aliases to the new ones.

# Conflicts:
#	dox/dev_guides/upgrade/upgrade.md
2018-03-17 12:53:57 +03:00
kgv
3bd4878b2b 0028466: Visualization, OpenGl_Context - read GPU memory using WGL_AMD_gpu_association extension 2018-03-17 12:52:31 +03:00
kgv
a239e7517f 0028400: Visualization, Graphic3d_MaterialAspect - remove undocumented and unsupported flag EnvReflexion() 2018-03-17 12:50:23 +03:00
vsv
1fa6d35be5 0028401: Configuration - unresolved symbol OpenGl_VertexBuffer::unbindFixedColor() 2018-03-17 12:50:16 +03:00
dbp
e38607e11f 0028129: Visualization, Path Tracing - Improve interactivity in "steady" rendering mode
Re-basing the patch on current master.
2018-03-17 12:50:08 +03:00
kgv
2a73aad993 0028263: Coding Rules - clean up definition of the class Graphic3d_MaterialAspect
Fixed uninitialized fields in several classes.
Body of trivial methods have been moved to class definition (header file).
Ensure that non-primitive types are returned by reference, when possible.
Removed unused class Prs3d_PlaneSet.
2018-03-17 12:50:04 +03:00
dbp
4d4534f798 0028369: Visualization, Path Tracing - Expose radiance clamping setting in path tracing mode
New parameter was added in the vrenderparams command:
vrenderparams -maxrad <value>
2018-03-17 12:49:08 +03:00
kgv
d1d00b9072 0028306: Visualization - viewer crashes if style for shaded display is set to HATCH
Fixed NULL-dereference in OpenGl_Context::SetPolygonHatchStyle().
2018-03-17 12:48:53 +03:00
snn
77def84e7f BRep history added for hidden faces remove tool support 2018-03-16 12:19:08 +03:00
gka
962dbe0c3b 0029526: Test Harness command "ReadIges" does not support "read.iges.onlyvisible" mode
In the Test Harness command "ReadIges" there is added taking into account value of the parameter "read.only.visible"
2018-02-26 17:53:07 +03:00
gka
2fc16f39cf Bug#209: Some IGES Files do not import correctly to OCCT 7.1
To read only visible roots from IGES file in the XCAF document Test Harness command "ReadIges" was modified to take into account value of the Test Harness parameter "read.iges.onlyvisible".
2018-02-26 16:32:30 +03:00
snn
93cfd787c4 Semantic name Get/Set functions added to XCAFDimTolObjects_*Object classes. Added XGetGDTSemanticName/XSetGDTSemanticName draw commands. 2018-02-26 15:16:18 +03:00
kgv
a7f965ccb8 Compatibility with obsolete MSVC compilers - added PRId64 macros 2018-02-16 17:30:14 +03:00
jgv
2031d84f45 Support of implementation of the algorithm for replacing faces in shape with new faces based on other surfaces - PatchFaces. For that:
- Add the flag UseInfini in the method BRepOffset_Tool::EnLargeFace, defining whether it is needed to use infinite enlarge of a face or not.

- Add the method TopExp::MapShapesAndUniqueAncestors().

- Increase the value of extension in EnlargeGeometry to provide proper intersection of adjacent faces.
2018-02-09 16:05:37 +03:00
nbv
61f2ce47cd 0028492: Boolean common does not produce expected result
Generation of 3D-steps shorter than 3D tolerance has been allowed in the fix to build Walking-line.

Now, 3D-step is limited by Precision::Confusion value.
2018-02-09 15:44:56 +03:00
ika
e9cdb53fb6 0028449: Data Exchange - Wrong orientation of Annotation Plane in GD&T
Fix orientation.
update test cases
2018-01-12 18:22:08 +03:00
ika
fbce3fd81a 0029362: Data Exchange - Crash during reading step file
Additional check for wires into searching of attached shapes,
Fix Dimension value processing,
Update test cases.
2017-12-07 12:05:36 +03:00
kgv
23f3b6e741 0029262: Visualization - AIS_InteractiveContext::Load() does not register Object in the Viewer
AIS_InteractiveContext::Load() now loads the object regardless specified selection mode and decomposition flag.
AIS_InteractiveContext::Load() and ::KeepTemporary() now register object in the Viewer
in the same way as ::Display() does.

Draw Harness command vdisplay has been extended with new flag -erased to load object into context in erased state.
2017-10-25 17:54:35 +03:00
kgv
c3b64127f1 0029067: Visualization, AIS_ColoredShape - visibility of sub-shapes is ignored by ComputeSelection() 2017-09-01 14:39:38 +03:00
ssv
c6e1bcba1d Add specific key for two-sided coloring of AIS shape in vdisplay command 2017-04-14 10:42:30 +03:00
ika
fca6240736 0028444: Data Exchange - Missed text blocks in Saved Views
Add new STEP entity to connect dimension semantic with presentation.
Fix number of GDTs in Saved View.
2017-03-30 12:39:05 +03:00
ika
d8dc870d20 0028315: Data Exchange - Import/Export GD&Ts without semantic
Implement import/export of Dimensions without semantic.
Add new type of dimension for GDTs with presentation and connecting to shapes.
Update test cases.
2017-01-10 17:31:28 +03:00
apn
9bcfd6f649 Fix compilation error on vc12 (MSVC++ 12.0) 2016-12-29 20:24:44 +03:00
apn
0fdbd10b91 Corrections for MacOS genproj.tcl (branch CR26866) 2016-12-29 20:02:35 +03:00
kgv
e22105a97c 0028312: Configuration, genproj.tcl - support CSF_ZLIB and CSF_LIBLZMA within project generator
Added CSF_ZLIB for searching zlib library, CSF_LIBLZMA for liblzma library
and CSF_FFmpeg for FFmpeg framework.
Unused CSF_AviLibs has been dropped.
2016-12-29 18:36:25 +03:00
emv
77a11d3df1 0028189: Result of Boolean operation is non-manifold wire
1. The result of Boolean operation on the arguments of collection type, containers WIRE/SHELL/COMPSOLID, is also a collection.
The containers of type WIRE included into result should now also (as the SHELLs) have coherent orientation of its sub-shapes.
For that the new method has been implemented (BOPTools_AlgoTools::OrientEdgesOnWire(TopoDS_Shape&)) which reorients edges for correct ordering.
The duplicating containers, i.e. containers with the contents completely included in other containers, are now avoided in the result of BOP.
2. The result of Fuse operation on Compsolids is now also will be Compsolid.
3. Documentation has been updated.
4. New test cases for the issue.
5. Adjusting test cases to current behavior.

Correction of test case bugs/modalg_4/bug726_2 according to the new behavior
2016-12-29 18:32:44 +03:00
ika
400af1bcf6 0028235: Data Exchange - DG&T datum XCAF object has incomplete list of shape references
Update STEP import and export of datums.
Update test cases.
2016-12-29 14:57:05 +03:00
ski
5da3dfdf08 0026866: Configuration, genproj - ensure consistency between FILES and actual content of inc and src folders
Added check of consistency between FILES and actual content of inc and src folders in genproj procedure.
2016-12-29 14:55:53 +03:00
ski
3b1a2e5158 0028197: Configuration - support Eigen template library as external dependency
Supporting of "Eigen" third party was added to CMake build procedure.
2016-12-29 14:54:51 +03:00
vpa
731c9b5bc0 0028047: Visualization - support objects with customized highlighting in AIS_InteractiveContext
- SelectMgr_SelectableObject::ClearHighlighted method is added to remove dynamic highlight data;
- interactive context will pass processing of dynamic highlight erase to the object if the owner returns false in SelectMgr_EntityOwner::IsAutoHilight;
- if owner returns true in SelectMgr_EntityOwner::IsForcedHilight, selection presentation will be re-highlighted at each ::Select call;
- redundant logic related to old object-oriented highlight mechanism was removed from AIS_InteractiveContext::MoveTo.
2016-12-29 14:53:36 +03:00
emv
a8232603a0 0028273: Inefficient implementation of the BRepOffset_MakeOffset::BuildSplitsOfFace function
The method for building splits of the face BRepOffset_MakeOffset::BuildSplitsOfFace has been redesigned to use the BOPAlgo_BuilderFace algorithm directly.
The methods FindInvalidFaces and TrimNewIntersectionEdges have been corrected to avoid possible instabilities.
The filtering of invalid edges by existing bounding edges has been corrected to avoid removal of valid splits.
The method BRepOffset_Analyse::Correct2dPoint has been modified to avoid unnecessary initialization of BRepAdaptor_Surface.

Adjustment of the test cases.
Test case bugs modalg_6 bug26513 has been modified to unify faces of the input shape before operation.
2016-12-29 14:50:24 +03:00
msv
0c5a6d479b 0028283: The command bopcheck crashes on the given shape
BOPAlgo_CheckerSI crashed due to building of pcurve for an edge not lying on surface. The fix avoids building of pcurves in this algorithm.
The new flag has been added in BOPAlgo_PaveFiller class (method SetAvoidBuildPCurve). It tells whether to avoid building pcurves. It is worth to set if the result is not used to create splits of faces, as in example with BOPAlgo_CheckerSI.
2016-12-29 14:48:36 +03:00
abv
b3d20c7f46 0028217: Error handling is not thread safe and causing memory corruption and sporadic crashes
Static variable holding handle to the last raised exception is made thread-local on compilers that support C++11 keyword thread_local (MCVC++ 14+, GCC 4.8+, ICC 14+, CLang).
Test bugs fclasses bug28217 is added (BAD on vc < 14 and gcc < 4.8).

Test case tuning bugs/fclasses/bug28217
2016-12-29 14:38:02 +03:00
isk
96fffdc609 0028285: Configuration - add missing macro Standard_EXPORT to OpenGl_StateInterface subclasses 2016-12-29 14:34:49 +03:00
kgv
5c20836e0d 0028281: Draw Harness - remove unused command vperf 2016-12-29 14:33:52 +03:00
kgv
09f30297f4 0028276: Visualization, Graphic3d_ArrayOfPrimitives - fix usage of 16-bit indices
Graphic3d_ArrayOfPrimitives now check the amount of vertex data rather than amount of indices.
2016-12-29 14:31:29 +03:00
ski
ad03c23449 0028110: Configuration - specify Unicode charset instead of multibyte in project files for Visual Studio
Eliminated usage of ANSI methods.
All Visual Studio projects generated by genproj or CMake use Unicode character set.

Draw Harness now handles Unicode input on Windows.
Tcl test scripts are now expected in UTF-8 encoding by default.
2016-12-29 14:29:16 +03:00
ifv
0a40a30da5 0028223: Projection of closed curve onto cylinder is wrong
Algorithm of calculation UV bounds of projected curve for periodic surfaces is modified.
2016-12-29 14:27:22 +03:00
ski
a20cce397a 0028135: Configuration - adopt building script for using built-in Android cross-compiling support in CMake 3.7
Added toolchain file for using built-in Android cross-compiling support in CMake 3.7

Added variable CMAKE_ANDROID_STL_TYPE for Android platform build via CMake.

Updated documentation about building of occt for UWP and Android via CMake.

Eliminated CMake warning CMP0054 for Android platform build.
2016-12-29 14:23:20 +03:00
apn
9f951ebc44 Warnings on vc14 were eliminated 2016-12-23 10:10:55 +03:00
isk
0f0f0c06d1 0028244: Visualization - AIS_AngleDimension throws exception for 180 degree
Small correction of test case for issue CR28244
2016-12-22 17:24:31 +03:00
ika
51663cb434 0028250: Data Exchange - Wrong number of geometric tolerance modifiers.
fix some copy paste mistakes,
update test cases.
2016-12-22 17:24:30 +03:00