View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0005795 | DarkRadiant | Renderer | public | 31.10.2021 08:39 | 02.04.2022 05:22 |
Reporter | greebo | Assigned To | greebo | ||
Priority | normal | Severity | normal | Reproducibility | have not tried |
Status | closed | Resolution | no change required | ||
Product Version | 2.13.0 | ||||
Fixed in Version | 3.0.0 | ||||
Summary | 0005795: Refactor Wireframe Rendering Methods | ||||
Description | There are a couple of "low-hanging fruits" in the wireframe rendering code. In a profiler run of a decently sized map, a couple things are noticeable: - Brush wireframe updates are trying to evaluate view-dependent things: this is no longer necessary since all visible faces are always rendered, independent of the ortho view type. The visibility of the faces is not view-dependent, so this step doesn't need to be run on every frame. - PatchRenderables are updating the control vertices vector (including colour) on every frame, even though component mode is not even enabled. - Face vertices are being updated on every frame, without component mode being enabled. - Matrix4::getIdentity() is taking up 1.6% of the whole time, since it returns the Matrix by value. The EntityNode is rendering two curve sub-structures, with a lot of entities, that's a lot of matrices being copied around for nothing. And possibly more. | ||||
Tags | No tags attached. | ||||
DarkRadiant: wireframe_rendering f35bc34b 31.10.2021 08:58 Details Diff |
0005795: Add benchmark code for development |
Affected Issues 0005795 |
|
mod - libs/debugging/ScopedDebugTimer.h | Diff File | ||
mod - radiant/xyview/GlobalXYWnd.cpp | Diff File | ||
mod - radiant/xyview/GlobalXYWnd.h | Diff File | ||
DarkRadiant: wireframe_rendering 115cdd26 31.10.2021 13:09 Details Diff |
0005795: Only run tests in evaluateViewDependent() if the visibility of any face actually changed. This can be the case either by forcing a brush to be visible or by its material filter status. |
Affected Issues 0005795 |
|
mod - libs/scene/Node.h | Diff File | ||
mod - radiantcore/brush/BrushNode.cpp | Diff File | ||
mod - radiantcore/brush/BrushNode.h | Diff File | ||
mod - radiantcore/brush/Face.cpp | Diff File | ||
DarkRadiant: wireframe_rendering aba19372 31.10.2021 14:55 Details Diff |
0005795: Remove the bounds check in the StaticModelNode::renderWireframe method. This is already handled by the space partition system. |
Affected Issues 0005795 |
|
mod - radiantcore/model/StaticModelNode.cpp | Diff File | ||
DarkRadiant: wireframe_rendering 83c21865 31.10.2021 15:17 Details Diff |
0005795: PatchNode is rebuilding the selected vertex array only when necessary |
Affected Issues 0005795 |
|
mod - radiantcore/patch/PatchNode.cpp | Diff File | ||
mod - radiantcore/patch/PatchNode.h | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
31.10.2021 08:39 | greebo | New Issue | |
31.10.2021 08:39 | greebo | Relationship added | related to 0005582 |
31.10.2021 08:39 | greebo | Assigned To | => greebo |
31.10.2021 08:39 | greebo | Status | new => assigned |
31.10.2021 16:09 | greebo | Changeset attached | => DarkRadiant wireframe_rendering f35bc34b |
31.10.2021 16:09 | greebo | Changeset attached | => DarkRadiant wireframe_rendering 115cdd26 |
31.10.2021 16:09 | greebo | Changeset attached | => DarkRadiant wireframe_rendering aba19372 |
31.10.2021 16:09 | greebo | Changeset attached | => DarkRadiant wireframe_rendering 83c21865 |
02.04.2022 05:22 | greebo | Status | assigned => closed |
02.04.2022 05:22 | greebo | Resolution | open => no change required |
02.04.2022 05:22 | greebo | Fixed in Version | => 3.0.0 |