-
-
Notifications
You must be signed in to change notification settings - Fork 334
Fix mesh/surface with NaN points #2598
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Compile Times benchmarkNote, that these numbers may fluctuate on the CI servers, so take them with a grain of salt. All benchmark results are based on the mean time and negative percent mean faster than the base branch. Note, that GLMakie + WGLMakie run on an emulated GPU, so the runtime benchmark is much slower. Results are from running: using_time = @ctime using Backend
# Compile time
create_time = @ctime fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @ctime Makie.colorbuffer(display(fig))
# Runtime
create_time = @benchmark fig = scatter(1:4; color=1:4, colormap=:turbo, markersize=20, visible=true)
display_time = @benchmark Makie.colorbuffer(display(fig))
|
This generates some black triangles around the NaN values, probably because normals at the edge become NaN: It also happens in GLMakie to a lesser degree. I think there NaN points are ignored when generating normals. Makie.jl/GLMakie/assets/shader/util.vert Lines 264 to 288 in db55264
|
Good point - will probably reimplement the normal finding in CairoMakie then, for ease of use. |
Would be nice to put that into makie, since Wglmakie also calculates normals on the cpu |
Missing reference imagesFound 1 new images without existing references. |
Also allows NaN points to propagate ahead from surface to mesh. Solves https://www.github.com/MakieOrg/GeoMakie.jl/issues/133
Basically replicates what's done in GLMakie's utils shader. Skips any combination of points which has a NaN when computing normals.
Simplify the code a lot as well.
12c19b9
to
5978840
Compare
Missing reference imagesFound 1 new images without existing references. |
removed an extra 'end'
Missing reference imagesFound 1 new images without existing references. |
CI is green now, we should be good to go! |
src/utilities/utilities.jl
Outdated
function nan_aware_orthogonal_vector(v1, v2, v3) | ||
centroid = Vec3f(((v1 .+ v2 .+ v3) ./ 3)...) | ||
normal = [0.0, 0.0, 0.0] | ||
# if the coord is NaN, then do not add. | ||
(isnan(v1) | isnan(v2)) || (normal += cross(v2 .- centroid, v1 .- centroid)) | ||
(isnan(v2) | isnan(v3)) || (normal += cross(v3 .- centroid, v2 .- centroid)) | ||
(isnan(v3) | isnan(v1)) || (normal += cross(v1 .- centroid, v3 .- centroid)) | ||
return Vec3f(normal).*-1 | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This produces a NaN vector with one NaN input because centroid cmbines all 3:
julia> Makie.nan_aware_orthogonal_vector(Point3f(0), Point3f(1,0,0), Point3f(NaN))
3-element Vec{3, Float32} with indices SOneTo(3):
NaN
NaN
NaN
I'm not sure why this doesn't affect things down the line, but you can probably just do
any(isnan, (v1, v2, v3)) && return Vec3f(0)
return cross(v2 - v1, v3 - v1)
instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
any(isnan, (v1, v2, v3))
this is in the drawing code, so I guess that's why it isn't a problem
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, no, it is affecting things down the line.
If we have two faces
a --- b
| \ |
| \ |
c --- d
and only b is NaN, orthogonal_vector will produce NaN as the face normal of (a, b, d). This is getting added to the normal at vertex a, b and d via
for i in 1:length(F)
fi = face[i]
normals_result[fi] = normals_result[fi] + n
end
When we iterate the faces, (a, b, d) but (a, c, d) is not. It seems like the shading is doing something differently though, so it's not as obvious.
With a plain color you can see the effect
zs = rand(10, 10)
ns = copy(zs)
ns[4, 3:6] .= NaN
f, a, p = surface(1..10, 1..10, ns, colormap = [:lightblue, :lightblue])
scatter!(a, [Point3f(i, j, zs[i, j]) for i in 1:10 for j in 1:10], color = isnan.(ns'[:]), depth_shift = -1f-3)
wireframe!(a, CairoMakie.surface2mesh(to_value.(p.converted)...), depth_shift = -1f-3, color = :black)
f
If you check the number of NaN normals you get 15.
m = CairoMakie.surface2mesh(to_value.(p.converted)...)
isnan.(m.normals) |> sum
If you mark them you get this (not showing position with NaN values in z)
The bottom right corner is probably not in a triangle with a NaN position, so the normal is clean. The two on left - no idea...
With
function nan_aware_orthogonal_vector(v1, v2, v3)
(isnan(v1) || isnan(v2) || isnan(v3)) && return Vec3f(0)
Vec3f(cross(v2 - v1, v3 - v1))
end
you get
in CairoMakie (with NaN normals still marked, new zs/ns)
Looking at this in more detail also brings up two more questions:
- Why is GLMakie extending the surface past the vertex positions around NaN?
- Should CairoMakie be iterating quad faces to avoid getting triangles in corners? (I think we could just filter faces containing a NaN coordinate for this in
surface2mesh
)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I had tried quad faces for surface earlier, but file sizes ballooned so it turned out to be counterproductive.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huh, good to know. The changes I pushed just remove some faces so it shouldn't be a problem
This can look quite a bit different from GLMakie in extreme cases, e.g. surface([0,1,1], [0, 1], [0 0; 1 0; 0 1], colormap = [:lightblue, :lightblue]) (CairoMakie | GLMakie) but I'm not sure whether CairoMakie or GLMakie should be seen as the problem here. In terms of NaN values this produces nicer results than GLMakie (no darkening) and it also happens to clean up the little artifact you get when rendering a sphere as a surface plot: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I pushed a fix for the NaN normals and removed the triangles by filtering. I now get
with
zs = rand(10, 10)
ns = copy(zs)
ns[4, 3:6] .= NaN
f, a, p = surface(1..10, 1..10, ns, colormap = [:lightblue, :lightblue])
m = CairoMakie.surface2mesh(to_value.(p.converted)...)
scatter!(a, m.position, color = isnan.(m.normals), depth_shift = -1f-3)
wireframe!(a, m, depth_shift = -1f-3, color = :black)
f
I think with that I'm happy. Now GLMakie needs to catch up.
Missing reference imagesFound 1 new images without existing references. |
Thanks! Yeah, in surfaces we really should skip any cell with a NaN. Do you mind if I add your example as a reference test @ffreyer? |
Co-committed-by: Frederic Freyer <[email protected]>
I think this may just need a refimg update |
Missing reference imagesFound 1 new images without existing references. |
Missing reference imagesFound 1 new images without existing references. |
Missing reference imagesFound 1 new images without existing references. |
WGLMakie flakiness should be fixed by #2661 |
@@ -48,7 +49,8 @@ function _position_calc( | |||
""" | |||
int index1D = index + offseti.x + offseti.y * dims.x + (index/(dims.x-1)); | |||
ivec2 index2D = ind2sub(dims, index1D); | |||
vec2 index01 = vec2(index2D) / (vec2(dims)-1.0); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With vec2(index2D) / (vec2(dims)-1.0)
you get values between 0 and 1, so the first index will sample the left edge of a pixel in a texture and the last index will sample the right edge of a pixel.
With vec2(index2D) / (vec2(dims))
you'd always sample the left edge of a pixel. With the 0.5
shift that becomes the center of a pixel.
I think I made this change to fix the discrepancy between GLMakies generated mesh and the wireframe representation of CairoMakies mesh: (right)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think is also an expected/desired change.
The color data we have here is:
1.0 NaN NaN 5.0
2.5 2.66667 2.83333 3.0
In surface these should map directly to vertices and we should be interpolating between them. Assuming quad faces, this should generate all NaN's.
With vertices marked as +
and the positions where the texture is sampled without interpolation marked with pink dots, this should be the before:
And this the after:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, but we shouldn't render the edges pretty much outside the visible field?
I think, if we do this, we'll need to move the interpolation center to the middle of the quad!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe to get this branch merged, revert things for now, so that we dont have a regression?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My understanding of surface plots is that it's a mesh generating method where vertex positions follow from xs and ys and the colors/values passed should exactly map to those positions. That's not the case on master. That's a bug imo.
Moving the color to the center of a quad doesn't work because we have N colors for N vertices. We could move the full vertex to quad center but then we would need to generate an N+1 grid to keep quad sizes regular.
Maybe it would be useful to compare to some other plotting libraries? To me it should just be like my after example.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we look at this with automatically chosen color values, i.e. z values, I would expect the first color in the colormap to directly correspond to the lowest z value, the last to the highest and anything in between to be smoothly interpolated. That's not the case on master, but is the case in the pr.
This example makes the difference very obvious:
scene = Scene()
surface!(scene, [1 2 3; 1 2 3; 1 2 3], colormap = [:black, :white, :black], shading = false)
cam3d!(scene, projectiontype = Makie.Orthographic)
center!(scene)
axis3d!(scene)
lines!(scene, Point3f[(3, 3, 1), (3, 3, 2), (3, 3, 3)], color = [:black, :white, :black], linewidth = 50)
update_cam!(scene, Vec3f(5.5, 5, 2), Vec3f(1.5, 1.5, 2))
scene
The line to the left reaches full black at the line start/end, i.e. at minimum and maximum z. The surface on the other hand at z values significantly larger than the minimum and significantly lower than the maximum.
On another note, why is surface
offset like heatmap? As a continuous thing I would expect it to use axes(zs, 1)
and axes(zs, 2)
, not some larger range like heatmap.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe it would be useful to compare to some other plotting libraries? To me it should just be like my after example.
MatPlotLibs surf
seems to be discrete so it's not comparable.
Plots with GR backend
Plots with Plotly backend
Plots with PythonPlot backend
Plots with Gaston backend
All of these are
Plots.surface([1 1 1; 2 2 2; 3 3 3], colormap = cgrad([:black, :white, :black], 3))
This PR
Out of those, none do our 0.0:1.5:3.0
x and y range, half do flat face coloring, half do smooth coloring and all match min/max z to the first/last color in the colormap like in this pr.
Missing reference imagesFound 1 new images without existing references. |
Missing reference imagesFound 1 new images without existing references. |
Missing reference imagesFound 1 new images without existing references. |
Docs failure should be unrelated. The code it highlights works fine locally |
commit 2a0da7e Merge: 338441e 07496e9 Author: Frederic Freyer <[email protected]> Date: Tue Jul 11 15:52:45 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 338441e Merge: 4e44a6b fb1f7f7 Author: Simon <[email protected]> Date: Wed Apr 5 15:51:02 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 4e44a6b Merge: 598ad24 91a036d Author: SimonDanisch <[email protected]> Date: Wed Mar 29 21:21:39 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 598ad24 Merge: 7682d0b b108c4d Author: Anshul Singhvi <[email protected]> Date: Wed Mar 29 21:18:42 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 7682d0b Merge: d82fb0e 939c5a5 Author: Anshul Singhvi <[email protected]> Date: Wed Mar 15 06:53:21 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit d82fb0e Merge: 8e79b41 576bbb9 Author: Frederic Freyer <[email protected]> Date: Tue Mar 14 16:40:36 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e79b41 Author: ffreyer <[email protected]> Date: Sun Jan 29 20:44:22 2023 +0100 use texelFetch for normal calc commit aa551be Merge: 8e00d10 8a2bc5d Author: ffreyer <[email protected]> Date: Sun Jan 29 01:37:28 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e00d10 Author: ffreyer <[email protected]> Date: Sun Jan 29 01:24:11 2023 +0100 simplify test commit 7ef034c Author: ffreyer <[email protected]> Date: Sun Jan 29 01:08:41 2023 +0100 fix the wrong uv instead commit 2af2845 Author: ffreyer <[email protected]> Date: Sat Jan 28 21:46:35 2023 +0100 fix WGLMakie surfaces commit db0e400 Author: ffreyer <[email protected]> Date: Sat Jan 28 16:38:50 2023 +0100 fix NaN value rendering in GLMakie commit d6452c9 Merge: 8fb0706 07c5f61 Author: Simon <[email protected]> Date: Fri Jan 27 15:18:58 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8fb0706 Merge: 4c2e4b4 19a4401 Author: Anshul Singhvi <[email protected]> Date: Fri Jan 27 08:32:02 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 4c2e4b4 Author: Frederic Freyer <[email protected]> Date: Tue Jan 24 19:48:30 2023 +0100 fix test commit 9402fce Author: Anshul Singhvi <[email protected]> Date: Thu Jan 19 08:01:14 2023 +0530 Add a better test Co-committed-by: Frederic Freyer <[email protected]> commit fd93548 Author: ffreyer <[email protected]> Date: Tue Jan 17 16:42:18 2023 +0100 simplify orthogonal_vector and avoid triangles in surface commit 3313da0 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:03:20 2023 +0530 Complete the switch to Makie commit c6725f6 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:58 2023 +0530 Finally fix tests removed an extra 'end' commit 9b14ec3 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:45 2023 +0530 Move functionality from CairoMakie to Makie commit 5978840 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 20:25:16 2023 +0530 Fix typo commit dd60f10 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:15 2023 +0530 Add a test commit 5440a23 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:08 2023 +0530 Apply nan code only to surfaces, not meshes Simplify the code a lot as well. commit ce2a22b Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 16:26:32 2023 +0530 Add NaN-aware normal calculation code Basically replicates what's done in GLMakie's utils shader. Skips any combination of points which has a NaN when computing normals. commit d817155 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 12:27:02 2023 +0530 Skip NaN faces in the other mesh methods also commit 079c553 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:15:14 2023 +0530 Update NEWS.md commit a5cd052 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:05:07 2023 +0530 Do not plot faces with NaN points in meshes Also allows NaN points to propagate ahead from surface to mesh. Solves https://www.github.com/MakieOrg/GeoMakie.jl/issues/133
commit 2a0da7e Merge: 338441e 07496e9 Author: Frederic Freyer <[email protected]> Date: Tue Jul 11 15:52:45 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 338441e Merge: 4e44a6b fb1f7f7 Author: Simon <[email protected]> Date: Wed Apr 5 15:51:02 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 4e44a6b Merge: 598ad24 91a036d Author: SimonDanisch <[email protected]> Date: Wed Mar 29 21:21:39 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 598ad24 Merge: 7682d0b b108c4d Author: Anshul Singhvi <[email protected]> Date: Wed Mar 29 21:18:42 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 7682d0b Merge: d82fb0e 939c5a5 Author: Anshul Singhvi <[email protected]> Date: Wed Mar 15 06:53:21 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit d82fb0e Merge: 8e79b41 576bbb9 Author: Frederic Freyer <[email protected]> Date: Tue Mar 14 16:40:36 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e79b41 Author: ffreyer <[email protected]> Date: Sun Jan 29 20:44:22 2023 +0100 use texelFetch for normal calc commit aa551be Merge: 8e00d10 8a2bc5d Author: ffreyer <[email protected]> Date: Sun Jan 29 01:37:28 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e00d10 Author: ffreyer <[email protected]> Date: Sun Jan 29 01:24:11 2023 +0100 simplify test commit 7ef034c Author: ffreyer <[email protected]> Date: Sun Jan 29 01:08:41 2023 +0100 fix the wrong uv instead commit 2af2845 Author: ffreyer <[email protected]> Date: Sat Jan 28 21:46:35 2023 +0100 fix WGLMakie surfaces commit db0e400 Author: ffreyer <[email protected]> Date: Sat Jan 28 16:38:50 2023 +0100 fix NaN value rendering in GLMakie commit d6452c9 Merge: 8fb0706 07c5f61 Author: Simon <[email protected]> Date: Fri Jan 27 15:18:58 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8fb0706 Merge: 4c2e4b4 19a4401 Author: Anshul Singhvi <[email protected]> Date: Fri Jan 27 08:32:02 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 4c2e4b4 Author: Frederic Freyer <[email protected]> Date: Tue Jan 24 19:48:30 2023 +0100 fix test commit 9402fce Author: Anshul Singhvi <[email protected]> Date: Thu Jan 19 08:01:14 2023 +0530 Add a better test Co-committed-by: Frederic Freyer <[email protected]> commit fd93548 Author: ffreyer <[email protected]> Date: Tue Jan 17 16:42:18 2023 +0100 simplify orthogonal_vector and avoid triangles in surface commit 3313da0 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:03:20 2023 +0530 Complete the switch to Makie commit c6725f6 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:58 2023 +0530 Finally fix tests removed an extra 'end' commit 9b14ec3 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:45 2023 +0530 Move functionality from CairoMakie to Makie commit 5978840 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 20:25:16 2023 +0530 Fix typo commit dd60f10 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:15 2023 +0530 Add a test commit 5440a23 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:08 2023 +0530 Apply nan code only to surfaces, not meshes Simplify the code a lot as well. commit ce2a22b Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 16:26:32 2023 +0530 Add NaN-aware normal calculation code Basically replicates what's done in GLMakie's utils shader. Skips any combination of points which has a NaN when computing normals. commit d817155 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 12:27:02 2023 +0530 Skip NaN faces in the other mesh methods also commit 079c553 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:15:14 2023 +0530 Update NEWS.md commit a5cd052 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:05:07 2023 +0530 Do not plot faces with NaN points in meshes Also allows NaN points to propagate ahead from surface to mesh. Solves https://www.github.com/MakieOrg/GeoMakie.jl/issues/133
commit 2a0da7e Merge: 338441e 07496e9 Author: Frederic Freyer <[email protected]> Date: Tue Jul 11 15:52:45 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 338441e Merge: 4e44a6b fb1f7f7 Author: Simon <[email protected]> Date: Wed Apr 5 15:51:02 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 4e44a6b Merge: 598ad24 91a036d Author: SimonDanisch <[email protected]> Date: Wed Mar 29 21:21:39 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 598ad24 Merge: 7682d0b b108c4d Author: Anshul Singhvi <[email protected]> Date: Wed Mar 29 21:18:42 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 7682d0b Merge: d82fb0e 939c5a5 Author: Anshul Singhvi <[email protected]> Date: Wed Mar 15 06:53:21 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit d82fb0e Merge: 8e79b41 576bbb9 Author: Frederic Freyer <[email protected]> Date: Tue Mar 14 16:40:36 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e79b41 Author: ffreyer <[email protected]> Date: Sun Jan 29 20:44:22 2023 +0100 use texelFetch for normal calc commit aa551be Merge: 8e00d10 8a2bc5d Author: ffreyer <[email protected]> Date: Sun Jan 29 01:37:28 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e00d10 Author: ffreyer <[email protected]> Date: Sun Jan 29 01:24:11 2023 +0100 simplify test commit 7ef034c Author: ffreyer <[email protected]> Date: Sun Jan 29 01:08:41 2023 +0100 fix the wrong uv instead commit 2af2845 Author: ffreyer <[email protected]> Date: Sat Jan 28 21:46:35 2023 +0100 fix WGLMakie surfaces commit db0e400 Author: ffreyer <[email protected]> Date: Sat Jan 28 16:38:50 2023 +0100 fix NaN value rendering in GLMakie commit d6452c9 Merge: 8fb0706 07c5f61 Author: Simon <[email protected]> Date: Fri Jan 27 15:18:58 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8fb0706 Merge: 4c2e4b4 19a4401 Author: Anshul Singhvi <[email protected]> Date: Fri Jan 27 08:32:02 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 4c2e4b4 Author: Frederic Freyer <[email protected]> Date: Tue Jan 24 19:48:30 2023 +0100 fix test commit 9402fce Author: Anshul Singhvi <[email protected]> Date: Thu Jan 19 08:01:14 2023 +0530 Add a better test Co-committed-by: Frederic Freyer <[email protected]> commit fd93548 Author: ffreyer <[email protected]> Date: Tue Jan 17 16:42:18 2023 +0100 simplify orthogonal_vector and avoid triangles in surface commit 3313da0 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:03:20 2023 +0530 Complete the switch to Makie commit c6725f6 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:58 2023 +0530 Finally fix tests removed an extra 'end' commit 9b14ec3 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:45 2023 +0530 Move functionality from CairoMakie to Makie commit 5978840 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 20:25:16 2023 +0530 Fix typo commit dd60f10 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:15 2023 +0530 Add a test commit 5440a23 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:08 2023 +0530 Apply nan code only to surfaces, not meshes Simplify the code a lot as well. commit ce2a22b Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 16:26:32 2023 +0530 Add NaN-aware normal calculation code Basically replicates what's done in GLMakie's utils shader. Skips any combination of points which has a NaN when computing normals. commit d817155 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 12:27:02 2023 +0530 Skip NaN faces in the other mesh methods also commit 079c553 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:15:14 2023 +0530 Update NEWS.md commit a5cd052 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:05:07 2023 +0530 Do not plot faces with NaN points in meshes Also allows NaN points to propagate ahead from surface to mesh. Solves https://www.github.com/MakieOrg/GeoMakie.jl/issues/133
commit 2a0da7e Merge: 338441e 07496e9 Author: Frederic Freyer <[email protected]> Date: Tue Jul 11 15:52:45 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 338441e Merge: 4e44a6b fb1f7f7 Author: Simon <[email protected]> Date: Wed Apr 5 15:51:02 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 4e44a6b Merge: 598ad24 91a036d Author: SimonDanisch <[email protected]> Date: Wed Mar 29 21:21:39 2023 +0200 Merge branch 'master' into as/cairomakie_surface_nan commit 598ad24 Merge: 7682d0b b108c4d Author: Anshul Singhvi <[email protected]> Date: Wed Mar 29 21:18:42 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 7682d0b Merge: d82fb0e 939c5a5 Author: Anshul Singhvi <[email protected]> Date: Wed Mar 15 06:53:21 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit d82fb0e Merge: 8e79b41 576bbb9 Author: Frederic Freyer <[email protected]> Date: Tue Mar 14 16:40:36 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e79b41 Author: ffreyer <[email protected]> Date: Sun Jan 29 20:44:22 2023 +0100 use texelFetch for normal calc commit aa551be Merge: 8e00d10 8a2bc5d Author: ffreyer <[email protected]> Date: Sun Jan 29 01:37:28 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8e00d10 Author: ffreyer <[email protected]> Date: Sun Jan 29 01:24:11 2023 +0100 simplify test commit 7ef034c Author: ffreyer <[email protected]> Date: Sun Jan 29 01:08:41 2023 +0100 fix the wrong uv instead commit 2af2845 Author: ffreyer <[email protected]> Date: Sat Jan 28 21:46:35 2023 +0100 fix WGLMakie surfaces commit db0e400 Author: ffreyer <[email protected]> Date: Sat Jan 28 16:38:50 2023 +0100 fix NaN value rendering in GLMakie commit d6452c9 Merge: 8fb0706 07c5f61 Author: Simon <[email protected]> Date: Fri Jan 27 15:18:58 2023 +0100 Merge branch 'master' into as/cairomakie_surface_nan commit 8fb0706 Merge: 4c2e4b4 19a4401 Author: Anshul Singhvi <[email protected]> Date: Fri Jan 27 08:32:02 2023 +0530 Merge branch 'master' into as/cairomakie_surface_nan commit 4c2e4b4 Author: Frederic Freyer <[email protected]> Date: Tue Jan 24 19:48:30 2023 +0100 fix test commit 9402fce Author: Anshul Singhvi <[email protected]> Date: Thu Jan 19 08:01:14 2023 +0530 Add a better test Co-committed-by: Frederic Freyer <[email protected]> commit fd93548 Author: ffreyer <[email protected]> Date: Tue Jan 17 16:42:18 2023 +0100 simplify orthogonal_vector and avoid triangles in surface commit 3313da0 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:03:20 2023 +0530 Complete the switch to Makie commit c6725f6 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:58 2023 +0530 Finally fix tests removed an extra 'end' commit 9b14ec3 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 21:02:45 2023 +0530 Move functionality from CairoMakie to Makie commit 5978840 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 20:25:16 2023 +0530 Fix typo commit dd60f10 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:15 2023 +0530 Add a test commit 5440a23 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 19:20:08 2023 +0530 Apply nan code only to surfaces, not meshes Simplify the code a lot as well. commit ce2a22b Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 16:26:32 2023 +0530 Add NaN-aware normal calculation code Basically replicates what's done in GLMakie's utils shader. Skips any combination of points which has a NaN when computing normals. commit d817155 Author: Anshul Singhvi <[email protected]> Date: Mon Jan 16 12:27:02 2023 +0530 Skip NaN faces in the other mesh methods also commit 079c553 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:15:14 2023 +0530 Update NEWS.md commit a5cd052 Author: Anshul Singhvi <[email protected]> Date: Sun Jan 15 21:05:07 2023 +0530 Do not plot faces with NaN points in meshes Also allows NaN points to propagate ahead from surface to mesh. Solves https://www.github.com/MakieOrg/GeoMakie.jl/issues/133
Closing this since it's in the beta branch |
Continues #2831 ! Still needs to check, if I rebased correctly and didn't incorrectly apply some of the changes! ## Merged PRs - #2598 - #2746 - #2346 - #2544 - #3082 - #2868 - #3062 - #3106 - #3281 - #3246 ## TODOS - [x] fix flaky test `@test GLMakie.window_size(screen.glscreen) == scaled(screen, (W, H))` - [x] Merge axis type inferences from #2220 - [x] Test on different resolution screens, IJulia, Pluto, VSCode, Windowed - [x] rebase to only have merge commits from the PRs - [x] investigate unexpected speed ups - [x] reset camera settings from tests - [ ] check doc image generation - [x] rethink default near/far in Camera3D (compatability with OIT) - [x] merge #3246 - [x] fix WGLMakie issues/tests: - [x] fix line depth issues (see tests: ~~hexbin colorrange~~ (not new), LaTeXStrings in Axis3, Axis3 axis reversal) - [x] fix lighting of surface with nan points (fixed in #3246) - ~~volume/3D contour artifacts (see 3D Contour with 2D contour slices)~~ not new - ~~artifacting in "colorscale (lines)"~~ not new - [x] GLMakie: - [x] slight outline in "scatter image markers" test - ~~clipping/z-fighting in "volume translated"~~ not new - [x] CairoMakie: - ~~Artfiacting in `colorscale (lines)"~~ not new - ~~markersize in "scatter rotations" changed?~~ not new - ~~color change in "colorscale (poly)"~~ not new - ~~transparency/render order of "OldAxis + Surface"~~ not new - ~~render order in "Merged color mesh"~~ not new - ~~render order of "Surface + wireframe + contour"~~ not new - [x] Check "SpecApi in convert_arguments" (colors swapped?) ## Fixes the following errors - fixes #2721 via #2746 - fixes #1600 via #2746 - fixes #1236 via #2746 - fixes MakieOrg/GeoMakie.jl#133 via #2598 - closes #2522 - closes #3239 via #3246 - fixes #3238 via #3246 - fixes #2985 via #3246 - fixes #3307 via #3281
Description
Fixes MakieOrg/GeoMakie.jl#133
Type of change
Delete options that do not apply:
Checklist