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

3771 Commits

Author SHA1 Message Date
kgv
9693be9e51 0028811: Visualization - merge texturing support into AIS_Shape class and get rid of AIS_TexturedShape
AIS_Shape and AIS_ColoredShape now computes Shaded presentation
with UV coordinates if texture mapping is enabled in Drawer.

OpenGl_Context::SetTextureMatrix() - fixed inconsistent handling
of texture cooridnates translation vector.

vtexture command has been extended to handle new arguments:
* -trsfTrans, -trsfScale, -trsfAngle defining transformation matrix
* -setFilter, -setAnisoFilter to setup texture filtering
2018-03-17 15:29:56 +03:00
kgv
720916b871 0028979: Coding rules - eliminate GCC compiler warnings -Wstrict-aliasing within Graphic3d_ArrayOfPrimitives.lxx
# Conflicts:
#	src/Graphic3d/Graphic3d_ArrayOfPrimitives.cxx
#	src/Graphic3d/Graphic3d_ArrayOfPrimitives.hxx
#	src/Graphic3d/Graphic3d_ArrayOfPrimitives.lxx
2018-03-17 15:29:55 +03:00
kgv
401488c4f1 0029477: Visualization, TKOpenGl - MSAA FBO initialization failure on OpenGL ES 3.2 device
OpenGl_View::myFboColorFormat now initialized using sized texture format GL_RGBA8
on mobile platforms (as in case of desktop platform).
2018-03-17 15:29:55 +03:00
kgv
4e1131b0f3 0029300: Visualization, TKOpenGl - provide depth pre-pass option
OpenGl_LayerList::Render() now handles new option Graphic3d_RenderingParams::ToEnableDepthPrepass
which prepends additional pass to rendering pipeline filling Depth Buffer in advance.
2018-03-17 15:29:54 +03:00
kgv
d8c530bdf6 0028789: Visualization, TKV3d - extend API for accessing and assigning BVH builders
Several methods in Selection classes have been moved to header files for better inlining.

BVH_Constants - added new enumeration defining common constant values used with BVH trees.
BVH - replaced NCollection_Handle with Standard_Transient handle
in classes BVH_Properties, BVH_Builder, BVH_Tree, BVH_Object.

Defined global BVH-builders instead of allocating a new one for each object set.
SelectMgr_ViewerSelector - added new method ::SetEntitySetBuilder() defining
default BVH Tree builder for SelectMgr_SensitiveEntitySet.

Added new method SelectMgr_SensitiveEntitySet::SetBuilder()
for overriding default BVH tree builder.

# Conflicts:
#	dox/dev_guides/upgrade/upgrade.md
#	src/Select3D/Select3D_SensitiveSet.hxx
#	src/SelectBasics/SelectBasics_SensitiveEntity.cxx
#	src/SelectBasics/SelectBasics_SensitiveEntity.hxx
2018-03-17 15:29:54 +03:00
kgv
314354d6cf 0028793: Visualization, TKV3d - make BVH_Builder::Build() const for propagating builder by value
Added const for method BVH_Builder::Build().
Added missing Standard_OVERRIDE to overridden methods.
Merged code from .lxx in BVH package directly into .hxx headers.
2018-03-17 15:29:53 +03:00
abk
994fe35cfd 0028495: The maximal depth of the tree is used implicitly in type 'BVH_PrimitiveSet'
Type 'BVH_PrimitiveSet' was extended by a static constant to access the maximal depth of the tree.
2018-03-17 15:29:53 +03:00
dbp
462686eb3f 0028368: TKMath, BVH -- Fix invalid tree height in QBVH 2018-03-17 15:29:53 +03:00
kgv
e591ee0af9 0029125: Visualization, OpenGl_Text - fix access violation within OpenGL1.1 context
OpenGl_Context::DiagnosticInformation() - added OpenGL version check before retrieving GL_SHADING_LANGUAGE_VERSION string.
2018-03-17 15:29:52 +03:00
vsv
bc6dfc06d5 0025464: Visualization - provide package for Volume Rendering 2018-03-17 15:29:52 +03:00
kgv
6cb747249a 0029051: Visualization, TKOpenGl - wrong color of transparent dynamic highlight with OIT tuned ON
OpenGl_PrimitiveArray::Render() - removed obsolete code, which become redundant (and broken)
after moving rendering of transparent objects into OpenGl_LayerList::renderTransparent().
2018-03-17 15:29:51 +03:00
kgv
c45e639d66 0028907: Coding Rules, OpenGl_GraphicDriver - fix class fields accidentally marked public 2018-03-17 15:29:51 +03:00
duv
bfcbe940bb 0028762: Visualization, Ray tracing - Implement depth-of-field effect
Graphic3d_RenderingParams - introduced new parameters CameraFocalPlaneDist and CameraApertureRadius managing DOF effect.
TKOpenGl - added new ray generation logic to RaytraceBase.fs.
vrenderparams command - added -focal and -aperture parameters.
OpenGl_View.hxx - function for ray generating was split into two functions (ray tracing and path tracing).
OpenGl_View_Raytrace.cxx - fixed interaction between adaptive sampling and stereo camera
2018-03-17 15:29:50 +03:00
kgv
6719c14318 0028826: Visualization, TKOpenGl - fix compatibility with strict OpenGL ES drivers
OpenGl_ShaderProgram::Initialize() - precision declarations have been moved
after the list of enabled extensions.

Declarations.glsl - the fragment shader outputs have been re-declared as array
for proper assignment of default locations (draw buffers).

OpenGl_FrameBuffer - GL_HALF_FLOAT is now used instead of GL_HALF_FLOAT_OES on OpenGL ES 3.2+.
OpenGl_Texture - fixed initialization of Image_Format_RGB32 image format on OpenGL ES 3.0+.
2018-03-17 15:29:50 +03:00
age
7ab3bd4b1c 0028794: Visualization, Ray tracing - Implement tone mapping
Added enum Graphic3d_ToneMappingMethod for choosing tone mapping mode.
Added new rendering parameters.
Added tone mapping to Display.fs shader.
2018-03-17 15:29:50 +03:00
kgv
bdd1f5d5fc 0028806: Coding Rules - remove not implemented method OpenGl_ShaderObject::Initialize() 2018-03-17 15:29:49 +03:00
age
2e0a5cfae3 0028758: Visualization - Implement exporting generated image to HRD/EXR images
OpenGl_View::BufferDump() - added support for dumping RayTracing HDR buffers.
Added new buffer type Graphic3d_BT_RGB_RayTraceHdrLeft.
2018-03-17 15:29:49 +03:00
age
32cd7f83fc 0028744: Visualization, OpenGl_FrameBuffer missing GL_RGB8 format
Missing GL_RGB8 and GL_RGB formats added to getColorDataFormat function.
2018-03-17 15:29:48 +03:00
akz
b1a6fac180 0028738: Data Exchange, XCAFPrs_Style - add transparency property
Use Quantity_ColorRGBA as surface color to store a transparency in XCAFPrs_Style.

# Conflicts:
#	tests/bugs/xde/bug28641
2018-03-17 15:29:48 +03:00
ika
7a316afeb8 0028641: Data Exchange - Support alpha-channel of color
Use Quantity_ColorRGBA instead Quantity_Color in XCAFDoc_Color attribute
Add methods to color tool for processing RGBA
Update Color driver
Update Draw commands
2018-03-17 15:29:47 +03:00
kgv
a6158edf4f 0028257: XCAFPrs_Style - uninitialized memory usage within ::HashCode()
XCAFPrs_Style::HashCode() function has been corrected.
XCAFPrs_Style::SetVisibility() does not reset assigned colors anymore.
2018-03-17 12:59:30 +03:00
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