| Commit message (Collapse) | Author | Age |
| | |
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| | |
glContainer is no longer required, as we can use std::vector with a
custom allocator which uses OpenGL buffers for storage. Minor irritation
is that the mapped buffers aren't guaranteed to be flushed in the tests,
so sometimes we're missing bits in a test render.
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
DSA version of VertexArrayObject.
|
| | |
| |
| |
| | |
Adds wrappers for DSA storage and data uploads.
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
|
|
|
| |
No need to update these every frame when little of nothing has changed.
Instead, track the angle previously rendered and updated only when the
new angle has diverged sufficiently from this. Larger updates update
more frequently.
|
| |
|
|
| |
Removes hard coded arbitrary numbers for 256px sq and 140m.
|
| |
|
|
| |
Fixes previously hard coded billboard texture size.
|
| |
|
|
|
| |
Current they're all glNamed, but this can be sub-classed for specific
things, e.g. glTexture.
|
| |
|
|
|
|
| |
Partition the instances by within/without the view frustum, then by
proximity to the view point and within/without the sunlight shadow
frustum. Use billboards for far away/out of view instances.
|
| |
|
|
|
| |
The implementation is overly simple/incomplete, I'm not even convince
what is there is right, but it's a decent start.
|
| | |
|
| |
|
|
|
| |
Two predicate version behaviour is unchanged, the second predicate is
just the inverse of the third.
|
| |
|
|
|
| |
Based on the ShadowStenciller, creates flattened images of a model for
simplified mass use in a scene.
|
| |
|
|
|
| |
Clients now just call that one helper and SceneProvider passes in all
the renderables.
|
| |
|
|
|
|
|
|
|
|
|
| |
Don't need to differentiate between shadedBy by contains. The 5
plane/face variant is actually fine in both cases. For a perspective
projection, the near plane is essentially at the origin and is handled
by the left/right/top/bottom planes meeting. For the directional light
case (orthographic projection) the near plane is omitted as objects in
front of the clip space still cast shadows into it.
Also includes a fix the distance calculation to not add .w, don't know
where I got the idea this was right.
|
| | |
|
| |
|
|
|
| |
No arbitrary 10m extra extents. No runtime vectors. Simpler code.
Consts. etc.
|
| |
|
|
| |
Fixes comparison with real world (sphere) size parameter.
|
| |
|
|
|
|
| |
(camera and directional light frustums)
This has made the whole preFrame process far more fiddly and repetitive
than I'd like, but it does work. Maybe we can tidy it up later.
|
| |
|
|
|
| |
In theory, this phase should be parallelisable before being pushed out
by the render loop.
|
| |
|
|
| |
Use case is the sphere approximating a scenery item such as a tree.
|
| |
|
|
| |
Includes exposure of InstanceVertices::reserve because why not.
|
| |
|
|
|
| |
Second predicate creates a single block of truthy values in the middle,
and two falsy blocks at each end.
|
| |
|
|
| |
More useful in the context of passing them to OpenGL.
|
| | |
|
| | |
|
| | |
|
| |\ |
|
| | |
| |
| |
| | |
And merge common functionality from networkCurve.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Arrays for start/end position/angle, smaller centre position, dynamic
segment count based on max error, calculate distance in tessellation
evaluation, use start/end position directly to avoid rounding errors at
joins.
See https://schneide.blog/2025/05/21/calculating-the-number-of-segments-for-accurate-circle-rendering/
|
| | |
| |
| |
| |
| | |
Swaps name/type of generated files to match class names and source
files.
|
| | |
| |
| |
| | |
Disables glslangValidator because of file extension mess up.
|
| | |
| |
| |
| |
| | |
Note: doesn't remove/replace older functions where newer ones might be
better.
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
|
| |
Wrapper for glPushDebugGroup/glPopDebugGroup which allows neatly
grouping OpenGL calls in diagnostic tools.
|
| |
|
|
| |
Removes the need to disable warnings for imgui includes.
|
| |
|
|
| |
Fixes the issues it picked up.
|
| | |
|
| | |
|
| |
|
|
|
| |
Fixes order of destruction so assets are fully destructed before the GL
context is destroyed.
|