This commit converts `Canvas` from an abstract class to a concrete
class by converting the pure virtual methods to empty/default
implementations. It provides an implementation for `Canvas::AddLine`
using Bresenham's line drawing algorithm.
bbf84c11 Clear framebuffer to black instead of white.
3210e502 Adds an small Z offset to the wireframe edges to solve z-fights
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !907
This commit solved z-fighting issues with two changes:
- A small offset, proportional to distance between near and far planes, is
applied in camera space to the edges.
- The minimum screenspace offset is increased as well for the same reason.
A new test case is added for uniform grids.
Additionally, the line plotting algorithm is changed to round off the
edge endpoints to fill in empty pixels seen on uniform grids.
8e0a0308 Handles the case when the passed canvas has rendered data.
b727377f Refactoring
44357d51 Apply external faces filter on cellset before wireframing
7e95269c Refactoring wireframing code
5738e895 Wireframe rendering
657b0b94 Applies `clang-format` and minor refactoring
af2acc57 Implements a simple line renderer using Xialin Wu's algorithm
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <mlarsen@cs.uoregon.edu>
Merge-request: !895
This change adds a option via `SetIsOverlay` which causes the
`MapperWireframer` to use the existing depth buffer instead of
generating a new one.
This change refactors the line color blending to
retain the alpha value separately instead of pre-multiplying it.
5429f120 fixed energy error and fix for ray camera
ac784330 Merge remote-tracking branch 'upstream/master' into x_ray_add_emmission
521e445b emission now functioning
52959d91 testing emission
5fc80517 initial version on absorption and emission integration
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !893
The algorithm is parallelized using a custom Mapper and Canvas class.
It is parallelized over the expected pixels that will be colored,
blending with any previous color value. This does not use the depth buffer
and hence will naively overrwite all pixels while drawing a line segment.
df185a67 removing background colors from tracers. Background color is now the responsiblitiy of the canvas.
28b1e6b1 initializing ray color buffer to 0
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !881
f3e455eb Adding 2D, 3D annotations, fixing GL color mapper.
7c0b15a5 Adding ability to have y-axis log scaling in 1D.
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !863
2b5e8e9f Removing debug statements
0459913a Multi canvas rendering
35877cd9 Adding missing file
b1e3688b multi-canvas working for ray tracer + volume renderer
33af0fec composing ray tracer and volume renderer is successful. Still need a strategy for the background color.
8e5f309e adding support in rendering triangulator for cell set permutation
92fde35b fixing depth
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !862
6b53a01c Removing print.
1eb58512 Adding ability to modify axis color as well as legend label color.
bd561b1e Trying to fix color for mesa.
c9bd71f9 Trying to fix color in mesa.
14c69183 Adding color to RenderTest.
7674d2cc Adding color to mesa test.
686f9823 Updating rendering unit tests for 1D plots.
3b79e4d7 Updating way 1D test plots are made, adding title.
...
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !854
dd4efb51 Uses `Color` in the unit tests for basic sanity check
812f11d3 Moves class-wide visibility macro to just the static class members.
68648863 Exports Color class, adding visibility to static members
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !850
This file was creating a C array using the size of an array handle.
Generally, you cannot create a C array of a static size with a
variable created at runtime. Apparently some compilers were able
to trace back to fact that the array handle was a given size and
used that, but not all compilers can do this. To get around the
problem, just use a std::vector, which allows the data to be
dynamically allocated.