KiCad PCB EDA Suite
|
#include <render_3d_raytrace_base.h>
Public Member Functions | |
RENDER_3D_RAYTRACE_BASE (BOARD_ADAPTER &aAdapter, CAMERA &aCamera) | |
~RENDER_3D_RAYTRACE_BASE () | |
int | GetWaitForEditingTimeOut () override |
Give the interface the time (in ms) that it should wait for editing or movements before (this works for display preview mode). | |
void | Reload (REPORTER *aStatusReporter, REPORTER *aWarningReporter, bool aOnlyLoadCopperAndShapes) |
BOARD_ITEM * | IntersectBoardItem (const RAY &aRay) |
virtual void | SetCurWindowSize (const wxSize &aSize)=0 |
Before each render, the canvas will tell the render what is the size of its windows, so render can take actions if it changed. | |
virtual bool | Redraw (bool aIsMoving, REPORTER *aStatusReporter=nullptr, REPORTER *aWarningReporter=nullptr)=0 |
Redraw the view. | |
void | ReloadRequest () |
bool | IsReloadRequestPending () const |
Query if there is a pending reload request. | |
void | SetBusyIndicatorFactory (BUSY_INDICATOR::FACTORY aNewFactory) |
Set a new busy indicator factory. | |
Static Public Attributes | |
static constexpr float | MIN_DISTANCE_IU = 4 * PCB_IU_PER_MM |
Protected Member Functions | |
virtual void | initPbo ()=0 |
virtual void | deletePbo ()=0 |
void | createItemsFromContainer (const BVH_CONTAINER_2D *aContainer2d, PCB_LAYER_ID aLayer_id, const MATERIAL *aMaterialLayer, const SFVEC3F &aLayerColor, float aLayerZOffset) |
void | restartRenderState () |
void | renderTracing (uint8_t *ptrPBO, REPORTER *aStatusReporter) |
void | postProcessShading (uint8_t *ptrPBO, REPORTER *aStatusReporter) |
void | postProcessBlurFinish (uint8_t *ptrPBO, REPORTER *aStatusReporter) |
void | renderBlockTracing (uint8_t *ptrPBO, signed int iBlock) |
void | renderFinalColor (uint8_t *ptrPBO, const SFVEC4F &rgbColor, bool applyColorSpaceConversion) |
void | renderRayPackets (const SFVEC4F *bgColorY, const RAY *aRayPkt, HITINFO_PACKET *aHitPacket, bool is_testShadow, SFVEC4F *aOutHitColor) |
void | renderAntiAliasPackets (const SFVEC4F *aBgColorY, const HITINFO_PACKET *aHitPck_X0Y0, const HITINFO_PACKET *aHitPck_AA_X1Y1, const RAY *aRayPck, SFVEC4F *aOutHitColor) |
void | setupMaterials () |
SFVEC4F | shadeHit (const SFVEC4F &aBgColor, const RAY &aRay, HITINFO &aHitInfo, bool aIsInsideObject, unsigned int aRecursiveLevel, bool is_testShadow) const |
void | createObject (CONTAINER_3D &aDstContainer, const OBJECT_2D *aObject2D, float aZMin, float aZMax, const MATERIAL *aMaterial, const SFVEC3F &aObjColor) |
Create one or more 3D objects form a 2D object and Z positions. | |
void | addPadsAndVias () |
void | insertHole (const PCB_VIA *aVia) |
void | insertHole (const PAD *aPad) |
void | load3DModels (CONTAINER_3D &aDstContainer, bool aSkipMaterialInformation) |
void | addModels (CONTAINER_3D &aDstContainer, const S3DMODEL *a3DModel, const glm::mat4 &aModelMatrix, float aFPOpacity, bool aSkipMaterialInformation, BOARD_ITEM *aBoardItem) |
MODEL_MATERIALS * | getModelMaterial (const S3DMODEL *a3DModel) |
void | initializeBlockPositions () |
void | render (uint8_t *ptrPBO, REPORTER *aStatusReporter) |
void | renderPreview (uint8_t *ptrPBO) |
std::unique_ptr< BUSY_INDICATOR > | CreateBusyIndicator () const |
Return a created busy indicator, if a factory has been set, else a null pointer. | |
Static Protected Member Functions | |
static SFVEC4F | premultiplyAlpha (const SFVEC4F &aInput) |
Static Protected Attributes | |
static const wxChar * | m_logTrace = wxT( "KI_TRACE_3D_RENDER" ) |
Trace mask used to enable or disable the trace output of this class. | |
Private Attributes | |
BUSY_INDICATOR::FACTORY | m_busyIndicatorFactory |
< Factory that returns a suitable busy indicator for the context. | |
Definition at line 54 of file render_3d_raytrace_base.h.
|
explicit |
Definition at line 40 of file render_3d_raytrace_base.cpp.
References m_accelerator, m_antioutlineBoard2dObjects, m_blockRenderProgressCount, m_cameraLight, m_converted2dRoundSegmentCount, m_convertedDummyBlockCount, m_firstHitinfo, m_is_canvas_initialized, m_isPreview, RENDER_3D_BASE::m_logTrace, m_oldWindowsSize, m_outlineBoard2dObjects, m_renderStartTime, m_renderState, m_shaderBuffer, m_xoffset, m_yoffset, and RT_RENDER_STATE_MAX.
RENDER_3D_RAYTRACE_BASE::~RENDER_3D_RAYTRACE_BASE | ( | ) |
Definition at line 70 of file render_3d_raytrace_base.cpp.
References m_accelerator, m_antioutlineBoard2dObjects, RENDER_3D_BASE::m_logTrace, m_outlineBoard2dObjects, and m_shaderBuffer.
|
protected |
Definition at line 1411 of file raytracing/create_scene.cpp.
References CONTAINER_3D_BASE::Add(), ConvertSRGBToLinear(), getModelMaterial(), MATERIAL::GetTransparency(), RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, SMESH::m_Color, SMATERIAL::m_Diffuse, SMESH::m_FaceIdx, SMESH::m_FaceIdxSize, SMESH::m_MaterialIdx, S3DMODEL::m_Materials, S3DMODEL::m_MaterialsSize, S3DMODEL::m_Meshes, S3DMODEL::m_MeshesSize, SMESH::m_Normals, SMESH::m_Positions, EDA_3D_VIEWER_SETTINGS::m_Render, SMESH::m_VertexSize, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::material_mode, MaterialDiffuseToColorCAD(), OBJECT_3D::SetBoardItem(), TRIANGLE::SetColor(), OBJECT_3D::SetMaterial(), OBJECT_3D::SetModelTransparency(), v1, and v2.
Referenced by load3DModels().
|
protected |
Definition at line 1167 of file raytracing/create_scene.cpp.
References BOARD::Footprints(), BOARD_ADAPTER::GetBoard(), insertHole(), RENDER_3D_BASE::m_boardAdapter, pad, PCB_VIA_T, BOARD::Tracks(), and via.
Referenced by Reload().
|
protectedinherited |
Return a created busy indicator, if a factory has been set, else a null pointer.
Settings reference in use for this render.
Definition at line 69 of file render_3d_base.cpp.
References RENDER_3D_BASE::m_busyIndicatorFactory.
Referenced by RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::Redraw().
|
protected |
Definition at line 230 of file raytracing/create_scene.cpp.
References CONTAINER_2D_BASE::Add(), CONTAINER_3D_BASE::Add(), B_Mask, B_Paste, B_SilkS, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::clip_silk_on_via_annuli, ConvertSRGBToLinear(), CSGITEM_EMPTY, CSGITEM_FULL, F_Mask, F_Paste, F_SilkS, OBJECT_2D::GetBoardItem(), BVH_CONTAINER_2D::GetIntersectingObjects(), BOARD_ADAPTER::GetLayerBottomZPos(), BOARD_ADAPTER::GetLayerHoleMap(), BOARD_ADAPTER::GetLayerMap(), BOARD_ADAPTER::GetLayerTopZPos(), CONTAINER_2D_BASE::GetList(), BOARD_ADAPTER::GetTH_ODs(), BOARD_ADAPTER::GetViaAnnuli(), m_antioutlineBoard2dObjects, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, m_containerWithObjectsToDelete, m_objectContainer, EDA_3D_VIEWER_SETTINGS::m_Render, LAYER_ITEM::SetColor(), OBJECT_3D::SetMaterial(), and EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::subtract_mask_from_silk.
Referenced by Reload().
|
protected |
Create one or more 3D objects form a 2D object and Z positions.
It tries to optimize some types of objects that will be faster to trace than the LAYER_ITEM object.
Definition at line 179 of file raytracing/create_scene.cpp.
References CONTAINER_3D_BASE::Add(), ConvertSRGBToLinear(), OBJECT_2D::GetBBox(), OBJECT_2D::GetObjectType(), m_converted2dRoundSegmentCount, m_convertedDummyBlockCount, BBOX_2D::Max(), BBOX_2D::Min(), LAYER_ITEM::SetColor(), XY_PLANE::SetColor(), ROUND_SEGMENT::SetColor(), and OBJECT_3D::SetMaterial().
Referenced by Reload().
|
protectedpure virtual |
Implemented in RENDER_3D_RAYTRACE_GL, and RENDER_3D_RAYTRACE_RAM.
|
protected |
Definition at line 1308 of file raytracing/create_scene.cpp.
References ConvertSRGBToLinear(), SMATERIAL::m_Ambient, RENDER_3D_BASE::m_boardAdapter, m_brushedMetalMaterial, BOARD_ADAPTER::m_Cfg, SMATERIAL::m_Diffuse, SMATERIAL::m_Emissive, S3DMODEL::m_Materials, S3DMODEL::m_MaterialsSize, m_modelMaterialMap, m_plasticMaterial, EDA_3D_VIEWER_SETTINGS::m_Render, SMATERIAL::m_Shininess, m_shinyPlasticMaterial, SMATERIAL::m_Specular, SMATERIAL::m_Transparency, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::material_mode, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_procedural_textures, RGBtoGray(), and MATERIAL::SetGenerator().
Referenced by addModels().
|
overridevirtual |
Give the interface the time (in ms) that it should wait for editing or movements before (this works for display preview mode).
Implements RENDER_3D_BASE.
Definition at line 88 of file render_3d_raytrace_base.cpp.
|
protected |
Definition at line 1660 of file render_3d_raytrace_base.cpp.
References DecodeMorton2X(), DecodeMorton2Y(), initPbo(), m_blockPositions, m_blockPositionsFast, m_fastPreviewModeSize, m_postShaderSsao, m_realBufferSize, m_shaderBuffer, RENDER_3D_BASE::m_windowSize, m_xoffset, m_yoffset, RAYPACKET_DIM, RAYPACKET_INVMASK, and POST_SHADER::UpdateSize().
Referenced by RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::Redraw().
|
protectedpure virtual |
Implemented in RENDER_3D_RAYTRACE_GL, and RENDER_3D_RAYTRACE_RAM.
Referenced by initializeBlockPositions().
|
protected |
Definition at line 996 of file raytracing/create_scene.cpp.
References CONTAINER_2D_BASE::Add(), CONTAINER_3D_BASE::Add(), B_Cu, BOARD_ADAPTER::BiuTo3dUnits(), ConvertSRGBToLinear(), CSGITEM_EMPTY, CSGITEM_FULL, F_Cu, BOARD_ADAPTER::GetBackCopperThickness(), OBJECT_2D::GetBBox(), PAD::GetDrillSize(), BOARD_ADAPTER::GetFrontCopperThickness(), BOARD_ADAPTER::GetHolePlatingThickness(), BVH_CONTAINER_2D::GetIntersectingObjects(), BOARD_ADAPTER::GetLayerBottomZPos(), CONTAINER_2D_BASE::GetList(), PAD::GetOrientation(), PAD::GetPosition(), BOARD_ADAPTER::GetTH_IDs(), OBJECT_2D::Intersects(), m_antioutlineBoard2dObjects, RENDER_3D_BASE::m_boardAdapter, m_containerWithObjectsToDelete, BOARD_ADAPTER::m_CopperColor, m_materials, m_objectContainer, RotatePoint(), LAYER_ITEM::SetColor(), OBJECT_3D::SetMaterial(), VECTOR2< T >::x, and VECTOR2< T >::y.
|
protected |
Definition at line 965 of file raytracing/create_scene.cpp.
References CONTAINER_2D_BASE::Add(), CONTAINER_3D_BASE::Add(), BOARD_ADAPTER::BiuTo3dUnits(), ConvertSRGBToLinear(), BOARD_ADAPTER::GetBackCopperThickness(), PCB_VIA::GetDrillValue(), BOARD_ADAPTER::GetFrontCopperThickness(), BOARD_ADAPTER::GetHolePlatingThickness(), BOARD_ADAPTER::GetLayerBottomZPos(), PCB_TRACK::GetStart(), PCB_VIA::LayerPair(), RENDER_3D_BASE::m_boardAdapter, m_containerWithObjectsToDelete, BOARD_ADAPTER::m_CopperColor, m_materials, m_objectContainer, LAYER_ITEM::SetColor(), OBJECT_3D::SetMaterial(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by addPadsAndVias().
BOARD_ITEM * RENDER_3D_RAYTRACE_BASE::IntersectBoardItem | ( | const RAY & | aRay | ) |
Definition at line 1762 of file render_3d_raytrace_base.cpp.
References OBJECT_3D::GetBoardItem(), ACCELERATOR_3D::Intersect(), m_accelerator, HITINFO::m_tHit, and HITINFO::pHitObject.
Referenced by EDA_3D_CANVAS::OnLeftDown(), and EDA_3D_CANVAS::OnMouseMove().
|
inlineinherited |
Query if there is a pending reload request.
Definition at line 77 of file render_3d_base.h.
References RENDER_3D_BASE::m_reloadRequested.
Referenced by EDA_3D_CANVAS::DoRePaint(), EDA_3D_CANVAS::IsReloadRequestPending(), and EDA_3D_CANVAS::OnMouseMove().
|
protected |
Definition at line 1196 of file raytracing/create_scene.cpp.
References addModels(), BOARD_ADAPTER::BiuTo3dUnits(), FP_LIB_TABLE::FindRow(), BOARD::Footprints(), BOARD_ADAPTER::Get3dCacheManager(), BOARD_ADAPTER::GetBoard(), BOARD_ADAPTER::GetFootprintZPos(), LIB_TABLE_ROW::GetFullURI(), S3D_CACHE::GetModel(), BOARD::GetProject(), BOARD_ADAPTER::IsFootprintShown(), RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, BOARD_ADAPTER::m_IsPreviewer, EDA_3D_VIEWER_SETTINGS::m_Render, PROJECT_PCB::PcbFootprintLibs(), EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::show_footprints_insert, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::show_footprints_normal, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::show_footprints_virtual, UNITS3D_TO_UNITSPCB, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by Reload().
|
protected |
Definition at line 730 of file render_3d_raytrace_base.cpp.
References RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, m_realBufferSize, EDA_3D_VIEWER_SETTINGS::m_Render, and EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_post_processing.
Referenced by render().
|
protected |
Definition at line 678 of file render_3d_raytrace_base.cpp.
References _, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, m_postShaderSsao, m_realBufferSize, EDA_3D_VIEWER_SETTINGS::m_Render, m_renderState, m_shaderBuffer, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_post_processing, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_shadows, REPORTER::Report(), RT_RENDER_STATE_POST_PROCESS_BLUR_AND_FINISH, POST_SHADER_SSAO::SetShadedBuffer(), and POST_SHADER_SSAO::SetShadowsEnabled().
Referenced by render().
Definition at line 119 of file render_3d_raytrace_base.cpp.
Referenced by RENDER_3D_RAYTRACE_GL::Redraw(), render(), and renderPreview().
|
pure virtualinherited |
Redraw the view.
aIsMoving | if the user is moving the scene, it should be render in preview mode. |
aStatusReporter | a pointer to the status progress reporter. |
Implemented in RENDER_3D_OPENGL, RENDER_3D_RAYTRACE_GL, and RENDER_3D_RAYTRACE_RAM.
Referenced by EDA_3D_CANVAS::DoRePaint().
void RENDER_3D_RAYTRACE_BASE::Reload | ( | REPORTER * | aStatusReporter, |
REPORTER * | aWarningReporter, | ||
bool | aOnlyLoadCopperAndShapes | ||
) |
Definition at line 361 of file raytracing/create_scene.cpp.
References _, CONTAINER_2D_BASE::Add(), CONTAINER_3D_BASE::Add(), addPadsAndVias(), B_Adhes, B_CrtYd, B_Cu, B_Fab, B_Mask, B_Paste, B_SilkS, BOARD_ADAPTER::BiuTo3dUnits(), SHAPE_POLY_SET::BooleanSubtract(), buildBoardBoundingBoxPoly(), BVH_CONTAINER_2D::BuildBVH(), CONTAINER_2D_BASE::Clear(), CONTAINER_3D_BASE::Clear(), Cmts_User, ConvertPolygonToBlocks(), ConvertSRGBToLinear(), createItemsFromContainer(), createObject(), CSGITEM_EMPTY, CSGITEM_FULL, CAMERA::DEFAULT_MAX_ZOOM, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::differentiate_plated_copper, Dwgs_User, Eco1_User, Eco2_User, F_Adhes, F_CrtYd, F_Cu, F_Fab, F_Mask, F_Paste, F_SilkS, SHAPE_POLY_SET::Fracture(), BOARD_ADAPTER::GetAverageHoleDiameter(), BOARD_ADAPTER::GetAverageViaHoleDiameter(), BOARD_ADAPTER::GetBackCopperThickness(), CONTAINER_3D_BASE::GetBBox(), BOARD_ADAPTER::GetBBox(), BOARD_ADAPTER::GetBoard(), BOARD_ADAPTER::GetBoardCenter(), BOARD_ADAPTER::GetBoardPoly(), CAMERA::GetCameraInitPos(), BBOX_3D::GetCenter(), BOARD_ADAPTER::GetColor(), BOARD_ADAPTER::GetFrontCopperThickness(), BOARD_ADAPTER::GetHoleCount(), BVH_CONTAINER_2D::GetIntersectingObjects(), BOARD_ADAPTER::GetLayerBottomZPos(), BOARD_ADAPTER::GetLayerMap(), BOARD_ADAPTER::GetLayerTopZPos(), CONTAINER_2D_BASE::GetList(), CONTAINER_3D_BASE::GetList(), BBOX_3D::GetMaxDimension(), BOARD_ADAPTER::GetPlatedPadsBack(), BOARD_ADAPTER::GetPlatedPadsFront(), GetRunningMicroSecs(), BOARD_ADAPTER::GetSphericalCoord(), BOARD_ADAPTER::GetTH_ODs(), BOARD_ADAPTER::GetViaCount(), BOARD_ADAPTER::GetVisibleLayers(), BOARD_ADAPTER::InitSettings(), OBJECT_2D_STATS::Instance(), OBJECT_3D_STATS::Instance(), IsCopperLayer(), BBOX_3D::IsInitialized(), LAYER_3D_BOARD, LAYER_3D_SOLDERMASK_BOTTOM, LAYER_3D_SOLDERMASK_TOP, load3DModels(), m_accelerator, m_antioutlineBoard2dObjects, BOARD_ADAPTER::m_BgColorTop, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_BoardBodyColor, RENDER_3D_BASE::m_camera, m_cameraLight, BOARD_ADAPTER::m_Cfg, m_containerWithObjectsToDelete, BOARD_ADAPTER::m_CopperColor, BOARD_ADAPTER::m_ECO1Color, BOARD_ADAPTER::m_ECO2Color, m_lights, m_materials, m_modelMaterialMap, m_objectContainer, m_outlineBoard2dObjects, RENDER_3D_BASE::m_reloadRequested, EDA_3D_VIEWER_SETTINGS::m_Render, BOARD_ADAPTER::m_SilkScreenColorBot, BOARD_ADAPTER::m_SilkScreenColorTop, BOARD_ADAPTER::m_SolderMaskColorBot, BOARD_ADAPTER::m_SolderMaskColorTop, BOARD_ADAPTER::m_SolderPasteColor, BOARD_ADAPTER::m_UserCommentsColor, BOARD_ADAPTER::m_UserDrawingsColor, BBOX_3D::Max(), BBOX_3D::Min(), MIN_DISTANCE_IU, NextFloatDown(), NextFloatUp(), SHAPE_POLY_SET::OutlineCount(), SHAPE_POLY_SET::PM_FAST, RANGE_SCALE_3D, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_backfloor, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColor, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColorBottom, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColorCamera, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_lightColorTop, REPORTER::Report(), OBJECT_2D_STATS::ResetStats(), OBJECT_3D_STATS::ResetStats(), BBOX_3D::Scale(), CAMERA::SetBoardLookAtPos(), LIGHT::SetCastShadows(), TRIANGLE::SetColor(), CYLINDER::SetColor(), LAYER_ITEM::SetColor(), OBJECT_3D::SetMaterial(), CAMERA::SetMaxZoom(), CAMERA::SetMinZoom(), setupMaterials(), SphericalToCartesian(), v1, v2, v3, v4, v5, VECTOR2< T >::x, VECTOR3< T >::x, VECTOR2< T >::y, VECTOR3< T >::y, and VECTOR3< T >::z.
Referenced by EDA_3D_CANVAS::DoRePaint(), RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::Redraw().
|
inlineinherited |
Definition at line 70 of file render_3d_base.h.
References RENDER_3D_BASE::m_reloadRequested.
Referenced by EDA_3D_CANVAS::ReloadRequest(), EDA_3D_CANVAS::RenderEngineChanged(), and EDA_3D_CANVAS::RenderRaytracingRequest().
|
protected |
Definition at line 125 of file render_3d_raytrace_base.cpp.
References _, ConvertSRGBAToLinear(), EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::engine, CAMERA::GetDir(), GetRunningMicroSecs(), m_backgroundColorBottom, m_backgroundColorTop, BOARD_ADAPTER::m_BgColorBot, BOARD_ADAPTER::m_BgColorTop, RENDER_3D_BASE::m_boardAdapter, RENDER_3D_BASE::m_camera, m_cameraLight, BOARD_ADAPTER::m_Cfg, m_realBufferSize, EDA_3D_VIEWER_SETTINGS::m_Render, m_renderStartTime, m_renderState, postProcessBlurFinish(), postProcessShading(), premultiplyAlpha(), renderTracing(), REPORTER::Report(), restartRenderState(), RT_RENDER_STATE_FINISH, RT_RENDER_STATE_MAX, RT_RENDER_STATE_POST_PROCESS_BLUR_AND_FINISH, RT_RENDER_STATE_POST_PROCESS_SHADE, RT_RENDER_STATE_TRACING, and DIRECTIONAL_LIGHT::SetDirection().
Referenced by RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::Redraw().
|
protected |
Definition at line 343 of file render_3d_raytrace_base.cpp.
References ACCELERATOR_3D::Intersect(), HITINFO::m_acc_node_info, m_accelerator, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, HITINFO_PACKET::m_HitInfo, EDA_3D_VIEWER_SETTINGS::m_Render, HITINFO::m_tHit, RAYPACKET_DIM, RAYPACKET_RAYS_PER_PACKET, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_shadows, and shadeHit().
Referenced by renderBlockTracing().
|
protected |
Definition at line 467 of file render_3d_raytrace_base.cpp.
References RAY::at(), DISP_FACTOR, HITINFO_PACKET_init(), ACCELERATOR_3D::Intersect(), m_accelerator, m_backgroundColorBottom, m_backgroundColorTop, m_blockPositions, RENDER_3D_BASE::m_boardAdapter, RENDER_3D_BASE::m_camera, BOARD_ADAPTER::m_Cfg, HITINFO_PACKET::m_HitInfo, HITINFO::m_HitNormal, m_postShaderSsao, RAYPACKET::m_ray, m_realBufferSize, EDA_3D_VIEWER_SETTINGS::m_Render, HITINFO::m_ShadowFactor, HITINFO::m_tHit, RENDER_3D_BASE::m_windowSize, m_xoffset, m_yoffset, RAYPACKET_DIM, RAYPACKET_InitRays_with2DDisplacement(), RAYPACKET_RAYS_PER_PACKET, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_anti_aliasing, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_post_processing, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_shadows, renderAntiAliasPackets(), renderFinalColor(), renderRayPackets(), and POST_SHADER::SetPixelData().
Referenced by renderTracing().
|
protected |
Definition at line 286 of file render_3d_raytrace_base.cpp.
References color, and convertLinearToSRGB().
Referenced by renderBlockTracing().
|
protected |
Definition at line 787 of file render_3d_raytrace_base.cpp.
References BlendColor(), RAY::Init(), ACCELERATOR_3D::Intersect(), OBJECT_3D::Intersect(), m_accelerator, BOARD_ADAPTER::m_BgColorBot, BOARD_ADAPTER::m_BgColorTop, m_blockPositions, m_blockPositionsFast, RENDER_3D_BASE::m_boardAdapter, HITINFO::m_HitNormal, m_isPreview, m_realBufferSize, HITINFO::m_tHit, HITINFO::pHitObject, premultiplyAlpha(), RAYPACKET_DIM, RAYPACKET_RAYS_PER_PACKET, SetPixel(), and shadeHit().
Referenced by RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::Redraw().
|
protected |
Definition at line 321 of file render_3d_raytrace_base.cpp.
References RAYPACKET_DIM, and shadeHit().
Referenced by renderBlockTracing().
|
protected |
Definition at line 185 of file render_3d_raytrace_base.cpp.
References _, GetKiCadThreadPool(), m_blockPositions, m_blockPositionsWasProcessed, m_blockRenderProgressCount, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, m_isPreview, EDA_3D_VIEWER_SETTINGS::m_Render, m_renderState, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_post_processing, renderBlockTracing(), REPORTER::Report(), RT_RENDER_STATE_FINISH, RT_RENDER_STATE_POST_PROCESS_SHADE, and tp.
Referenced by render().
|
protected |
Definition at line 94 of file render_3d_raytrace_base.cpp.
References GetRunningMicroSecs(), POST_SHADER::InitFrame(), m_blockPositions, m_blockPositionsWasProcessed, m_blockRenderProgressCount, m_postShaderSsao, m_renderStartTime, m_renderState, and RT_RENDER_STATE_TRACING.
Referenced by render().
|
inherited |
Set a new busy indicator factory.
When set, this factory will be used to generate busy indicators when suitable. If not set, no busy indicator will be used.
Definition at line 63 of file render_3d_base.cpp.
References RENDER_3D_BASE::m_busyIndicatorFactory.
|
pure virtualinherited |
Before each render, the canvas will tell the render what is the size of its windows, so render can take actions if it changed.
aSize | the current size of the render window |
Implemented in RENDER_3D_OPENGL, RENDER_3D_RAYTRACE_GL, and RENDER_3D_RAYTRACE_RAM.
Referenced by EDA_3D_CANVAS::DoRePaint().
|
protected |
Definition at line 75 of file raytracing/create_scene.cpp.
References BOARD_ADAPTER::BiuTo3dUnits(), ConvertSRGBToLinear(), EDA_IU_SCALE::IU_PER_MM, BOARD_ADAPTER::m_BgColorTop, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_BoardBodyColor, m_boardMaterial, m_brushedMetalMaterial, BOARD_ADAPTER::m_Cfg, BOARD_ADAPTER::m_CopperColor, m_copperMaterial, m_materials, m_plasticMaterial, m_platedCopperMaterial, EDA_3D_VIEWER_SETTINGS::m_Render, m_shinyPlasticMaterial, BOARD_ADAPTER::m_SilkScreenColorTop, m_silkScreenMaterial, BOARD_ADAPTER::m_SolderMaskColorTop, m_solderMaskMaterial, BOARD_ADAPTER::m_SolderPasteColor, pcbIUScale, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_nrsamples_reflections, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_nrsamples_refractions, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_procedural_textures, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_recursivelevel_reflections, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_recursivelevel_refractions, MATERIAL::SetDefaultReflectionRayCount(), MATERIAL::SetDefaultReflectionRecursionCount(), MATERIAL::SetDefaultRefractionRayCount(), MATERIAL::SetDefaultRefractionRecursionCount(), and TransparencyControl().
Referenced by Reload().
|
protected |
Definition at line 1385 of file render_3d_raytrace_base.cpp.
References RAY::at(), MATERIAL::GetAbsorvance(), MATERIAL::GetAmbientColor(), OBJECT_3D::GetDiffuseColor(), MATERIAL::GetEmissiveColor(), OBJECT_3D::GetMaterial(), OBJECT_3D::GetModelTransparency(), BOARD_ADAPTER::GetNonCopperLayerThickness(), MATERIAL::GetReflection(), MATERIAL::GetReflectionRayCount(), MATERIAL::GetRefractionRayCount(), MATERIAL::GetRefractionRecursionCount(), MATERIAL::GetSpecularColor(), RAY::Init(), ACCELERATOR_3D::Intersect(), ACCELERATOR_3D::IntersectP(), m_accelerator, RENDER_3D_BASE::m_boardAdapter, BOARD_ADAPTER::m_Cfg, RAY::m_Dir, HITINFO::m_HitNormal, HITINFO::m_HitPoint, m_isPreview, m_lights, EDA_3D_VIEWER_SETTINGS::m_Render, HITINFO::m_ShadowFactor, HITINFO::m_tHit, HITINFO::pHitObject, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_anti_aliasing, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_nrsamples_shadows, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_reflections, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_refractions, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_spread_reflections, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_spread_refractions, EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::raytrace_spread_shadows, Refract(), MATERIAL::Shade(), shadeHit(), and UniformRandomHemisphereDirection().
Referenced by renderAntiAliasPackets(), renderPreview(), renderRayPackets(), and shadeHit().
|
protected |
Definition at line 176 of file render_3d_raytrace_base.h.
Referenced by IntersectBoardItem(), Reload(), RENDER_3D_RAYTRACE_BASE(), renderAntiAliasPackets(), renderBlockTracing(), renderPreview(), shadeHit(), and ~RENDER_3D_RAYTRACE_BASE().
|
protected |
Definition at line 174 of file render_3d_raytrace_base.h.
Referenced by createItemsFromContainer(), insertHole(), Reload(), RENDER_3D_RAYTRACE_BASE(), and ~RENDER_3D_RAYTRACE_BASE().
|
protected |
Used to see if the windows size changed.
Definition at line 179 of file render_3d_raytrace_base.h.
Referenced by render(), and renderBlockTracing().
|
protected |
Definition at line 178 of file render_3d_raytrace_base.h.
Referenced by render(), and renderBlockTracing().
|
protected |
Flag if a position was already processed (cleared each new render).
Definition at line 185 of file render_3d_raytrace_base.h.
Referenced by initializeBlockPositions(), renderBlockTracing(), renderPreview(), renderTracing(), and restartRenderState().
|
protected |
Definition at line 191 of file render_3d_raytrace_base.h.
Referenced by initializeBlockPositions(), and renderPreview().
|
protected |
Encode the Morton code positions (on fast preview mode).
Definition at line 188 of file render_3d_raytrace_base.h.
Referenced by renderTracing(), and restartRenderState().
|
protected |
Save the number of blocks progress of the render.
Definition at line 157 of file render_3d_raytrace_base.h.
Referenced by RENDER_3D_RAYTRACE_BASE(), renderTracing(), and restartRenderState().
|
protectedinherited |
Definition at line 102 of file render_3d_base.h.
Referenced by addModels(), RENDER_3D_OPENGL::addObjectTriangles(), addPadsAndVias(), RENDER_3D_OPENGL::createBoard(), createItemsFromContainer(), RENDER_3D_OPENGL::generate3dGrid(), RENDER_3D_OPENGL::generateHoles(), RENDER_3D_OPENGL::generateLayerList(), RENDER_3D_OPENGL::generateViasAndPads(), RENDER_3D_OPENGL::get3dModelsFromFootprint(), RENDER_3D_OPENGL::get3dModelsSelected(), RENDER_3D_OPENGL::getLayerZPos(), getModelMaterial(), insertHole(), load3DModels(), RENDER_3D_OPENGL::load3dModels(), postProcessBlurFinish(), postProcessShading(), RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_OPENGL::reload(), Reload(), render(), renderAntiAliasPackets(), renderBlockTracing(), RENDER_3D_OPENGL::renderBoardBody(), RENDER_3D_OPENGL::renderModel(), RENDER_3D_OPENGL::renderOpaqueModels(), renderPreview(), RENDER_3D_OPENGL::renderSolderMaskLayer(), renderTracing(), RENDER_3D_OPENGL::renderTransparentModels(), RENDER_3D_OPENGL::setLayerMaterial(), RENDER_3D_OPENGL::setupMaterials(), setupMaterials(), and shadeHit().
|
protected |
Definition at line 138 of file render_3d_raytrace_base.h.
Referenced by setupMaterials().
|
protected |
Definition at line 144 of file render_3d_raytrace_base.h.
Referenced by getModelMaterial(), and setupMaterials().
|
privateinherited |
< Factory that returns a suitable busy indicator for the context.
Definition at line 125 of file render_3d_base.h.
Referenced by RENDER_3D_BASE::CreateBusyIndicator(), and RENDER_3D_BASE::SetBusyIndicatorFactory().
|
protectedinherited |
Flag if the canvas specific for this render was already initialized.
Definition at line 104 of file render_3d_base.h.
Referenced by RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), RENDER_3D_OPENGL::reload(), Reload(), render(), RENDER_3D_OPENGL::render3dArrows(), renderBlockTracing(), and RENDER_3D_OPENGL::renderTransparentModels().
|
protected |
Definition at line 163 of file render_3d_raytrace_base.h.
Referenced by RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), Reload(), render(), and RENDER_3D_RAYTRACE_BASE().
|
protectedinherited |
Definition at line 107 of file render_3d_base.h.
Referenced by RENDER_3D_OPENGL::initializeOpenGL(), RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), and RENDER_3D_BASE::RENDER_3D_BASE().
|
protected |
Definition at line 171 of file render_3d_raytrace_base.h.
Referenced by createItemsFromContainer(), insertHole(), and Reload().
|
protected |
Definition at line 209 of file render_3d_raytrace_base.h.
Referenced by createObject(), and RENDER_3D_RAYTRACE_BASE().
|
protected |
Definition at line 208 of file render_3d_raytrace_base.h.
Referenced by createObject(), and RENDER_3D_RAYTRACE_BASE().
BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_Copper |
Definition at line 133 of file render_3d_raytrace_base.h.
|
protected |
Definition at line 139 of file render_3d_raytrace_base.h.
Referenced by setupMaterials().
BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_EpoxyBoard |
Definition at line 132 of file render_3d_raytrace_base.h.
|
protected |
Definition at line 194 of file render_3d_raytrace_base.h.
Referenced by initializeBlockPositions().
|
protected |
Definition at line 196 of file render_3d_raytrace_base.h.
Referenced by RENDER_3D_RAYTRACE_BASE().
BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_Floor |
Definition at line 135 of file render_3d_raytrace_base.h.
|
protected |
Definition at line 147 of file render_3d_raytrace_base.h.
Referenced by RENDER_3D_RAYTRACE_BASE().
|
protected |
Definition at line 148 of file render_3d_raytrace_base.h.
Referenced by RENDER_3D_RAYTRACE_BASE(), renderPreview(), renderTracing(), and shadeHit().
|
protected |
Definition at line 161 of file render_3d_raytrace_base.h.
Referenced by Reload(), and shadeHit().
struct { ... } RENDER_3D_RAYTRACE_BASE::m_materials |
Referenced by insertHole(), Reload(), and setupMaterials().
|
protected |
Stores materials of the 3D models.
Definition at line 205 of file render_3d_raytrace_base.h.
Referenced by getModelMaterial(), and Reload().
BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_NonPlatedCopper |
Definition at line 134 of file render_3d_raytrace_base.h.
|
protected |
Store the list of created objects special for RT that will be clear in the end.
Definition at line 168 of file render_3d_raytrace_base.h.
Referenced by createItemsFromContainer(), insertHole(), and Reload().
|
protected |
Encode Morton code positions.
Definition at line 182 of file render_3d_raytrace_base.h.
Referenced by RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), and RENDER_3D_RAYTRACE_BASE().
|
protected |
Definition at line 173 of file render_3d_raytrace_base.h.
Referenced by Reload(), RENDER_3D_RAYTRACE_BASE(), and ~RENDER_3D_RAYTRACE_BASE().
BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_Paste |
Definition at line 129 of file render_3d_raytrace_base.h.
|
protected |
Definition at line 142 of file render_3d_raytrace_base.h.
Referenced by getModelMaterial(), and setupMaterials().
|
protected |
Definition at line 140 of file render_3d_raytrace_base.h.
Referenced by setupMaterials().
|
protected |
Definition at line 159 of file render_3d_raytrace_base.h.
Referenced by initializeBlockPositions(), postProcessShading(), renderBlockTracing(), and restartRenderState().
|
protected |
Definition at line 193 of file render_3d_raytrace_base.h.
Referenced by RENDER_3D_RAYTRACE_RAM::GetRealBufferSize(), initializeBlockPositions(), RENDER_3D_RAYTRACE_GL::initPbo(), RENDER_3D_RAYTRACE_RAM::initPbo(), postProcessBlurFinish(), postProcessShading(), RENDER_3D_RAYTRACE_GL::Redraw(), render(), renderBlockTracing(), and renderPreview().
|
protectedinherited |
The window size that this camera is working.
Definition at line 110 of file render_3d_base.h.
Referenced by RENDER_3D_BASE::IsReloadRequestPending(), RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), RENDER_3D_OPENGL::reload(), Reload(), RENDER_3D_BASE::ReloadRequest(), and RENDER_3D_BASE::RENDER_3D_BASE().
|
protected |
Time that the render starts.
Definition at line 154 of file render_3d_raytrace_base.h.
Referenced by render(), RENDER_3D_RAYTRACE_BASE(), and restartRenderState().
|
protected |
State used on quality render.
Definition at line 151 of file render_3d_raytrace_base.h.
Referenced by postProcessShading(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), render(), RENDER_3D_RAYTRACE_BASE(), renderTracing(), and restartRenderState().
|
protected |
Definition at line 198 of file render_3d_raytrace_base.h.
Referenced by initializeBlockPositions(), postProcessShading(), RENDER_3D_RAYTRACE_BASE(), and ~RENDER_3D_RAYTRACE_BASE().
|
protected |
Definition at line 143 of file render_3d_raytrace_base.h.
Referenced by getModelMaterial(), and setupMaterials().
BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_SilkS |
Definition at line 130 of file render_3d_raytrace_base.h.
|
protected |
Definition at line 145 of file render_3d_raytrace_base.h.
Referenced by setupMaterials().
BLINN_PHONG_MATERIAL RENDER_3D_RAYTRACE_BASE::m_SolderMask |
Definition at line 131 of file render_3d_raytrace_base.h.
|
protected |
Definition at line 141 of file render_3d_raytrace_base.h.
Referenced by setupMaterials().
|
protectedinherited |
Definition at line 113 of file render_3d_base.h.
Referenced by initializeBlockPositions(), RENDER_3D_OPENGL::Redraw(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), RENDER_3D_OPENGL::render3dArrows(), RENDER_3D_BASE::RENDER_3D_BASE(), renderBlockTracing(), RENDER_3D_OPENGL::SetCurWindowSize(), RENDER_3D_RAYTRACE_GL::SetCurWindowSize(), and RENDER_3D_RAYTRACE_RAM::SetCurWindowSize().
|
protected |
Definition at line 201 of file render_3d_raytrace_base.h.
Referenced by initializeBlockPositions(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_BASE(), and renderBlockTracing().
|
protected |
Definition at line 202 of file render_3d_raytrace_base.h.
Referenced by initializeBlockPositions(), RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_BASE(), and renderBlockTracing().
|
staticconstexpr |
Definition at line 59 of file render_3d_raytrace_base.h.
Referenced by Reload().