summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Replace gl_traits glTexParameter with glTexture::parameter DSA wrapperHEADmainDan Goodliffe2 days
|
* Fix naming violations in MeshDan Goodliffe2 days
| | | | | They've existed and been annoying since the day I first created it from online examples.
* Add glVertexArray useBufferDan Goodliffe2 days
| | | | | | Wraps glVertexArrayVertexBuffer automatically getting the buffer name from the argument and deriving the stride from the container's value_type.
* Don't create and then replace shadow and billboard texturesDan Goodliffe2 days
|
* Merge branch 'glalloc'Dan Goodliffe2 days
|\
| * Replace glContainer with glAllocatorDan Goodliffe2 days
| | | | | | | | | | | | | | 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.
| * Remove VertexArrayObject and supporting non-DSA gl_traits helpersDan Goodliffe3 days
| |
| * Replace use of VertexArrayObject with glVertexArray/glBuffer DSA versionsDan Goodliffe3 days
| |
| * Extend glVertexArray with VertexArrayConfiguratorDan Goodliffe3 days
| | | | | | | | DSA version of VertexArrayObject.
| * Replace generic glBuffer type alias with a full implementationDan Goodliffe3 days
| | | | | | | | Adds wrappers for DSA storage and data uploads.
| * Define SequentialCollection in terms of contiguous_rangeDan Goodliffe3 days
| |
| * Add vertexAttribFormatFunc to gl_traits for DSA vertex configurationDan Goodliffe3 days
| |
| * Include a stacktrace in Boost test context reported for OpenGL errorsDan Goodliffe3 days
| |
| * Replace basic glVertexArray with a specific class ready for helpersDan Goodliffe5 days
|/
* Update stencils and billboards less oftenDan Goodliffe6 days
| | | | | | | 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.
* Calculate an appropriate billboardSize and useMeshClipDistDan Goodliffe7 days
| | | | Removes hard coded arbitrary numbers for 256px sq and 140m.
* Wrap up some low level texture operations in glTexture classDan Goodliffe7 days
| | | | Fixes previously hard coded billboard texture size.
* Refactor glArrays to better expose underlying typesDan Goodliffe9 days
| | | | | Current they're all glNamed, but this can be sub-classed for specific things, e.g. glTexture.
* Billboard foliageDan Goodliffe9 days
| | | | | | 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.
* Add BillboardProgram to SceneShaderDan Goodliffe9 days
| | | | | The implementation is overly simple/incomplete, I'm not even convince what is there is right, but it's a decent start.
* Use RelativeDistance in Camera near/fear and expose member variablesDan Goodliffe9 days
|
* Allow specifying all three partition functions independentlyDan Goodliffe9 days
| | | | | Two predicate version behaviour is unchanged, the second predicate is just the inverse of the third.
* Support for the BillboardPainterDan Goodliffe9 days
| | | | | Based on the ShadowStenciller, creates flattened images of a model for simplified mass use in a scene.
* Tidy the preFrame logic into a single function in SceneRendererDan Goodliffe2026-02-23
| | | | | Clients now just call that one helper and SceneProvider passes in all the renderables.
* Simplified FrustumDan Goodliffe2026-02-21
| | | | | | | | | | | 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.
* Reduce shader includes, doesn't use materialInterface, just DetailDan Goodliffe2026-02-20
|
* Simplified and tidied ShadowMapperDan Goodliffe2026-02-20
| | | | | No arbitrary 10m extra extents. No runtime vectors. Simpler code. Consts. etc.
* Correctly scale frustum plane vectorsDan Goodliffe2026-02-20
| | | | Fixes comparison with real world (sphere) size parameter.
* Fix up the preFrame process to use both frustumsDan Goodliffe2026-02-18
| | | | | | (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.
* Add Renderable::preFrame for doing non-const frame prep workDan Goodliffe2026-02-16
| | | | | In theory, this phase should be parallelisable before being pushed out by the render loop.
* Support for testing if a point/sphere is within a FrustumDan Goodliffe2026-02-15
| | | | Use case is the sphere approximating a scenery item such as a tree.
* Refactor test-instancing so the data is generated in a common fixtureDan Goodliffe2026-02-14
| | | | Includes exposure of InstanceVertices::reserve because why not.
* Add support for partitioning by 2 unary predicatesDan Goodliffe2026-02-14
| | | | | Second predicate creates a single block of truthy values in the middle, and two falsy blocks at each end.
* Return indices instead of iterates from InstanceVertices::partitionDan Goodliffe2026-02-14
| | | | More useful in the context of passing them to OpenGL.
* Ensure ANALYSIS_DIRECTORY root folder is created up frontDan Goodliffe2026-02-14
|
* Fix initialising new entries in glContainer::resizeDan Goodliffe2026-02-14
|
* Don't write test output to /tmp, use ANALYSIS_DIRECTORY insteadDan Goodliffe2026-02-06
|
* Merge branch 'glmax'Dan Goodliffe2026-02-06
|\
| * Make similar array tidy-up to networkStraight shadersDan Goodliffe2026-01-31
| | | | | | | | And merge common functionality from networkCurve.
| * Tidy networkCurve shadersDan Goodliffe2026-01-31
| | | | | | | | | | | | | | | | | | 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/
| * Rename shader source in keeping with glsl expectationsDan Goodliffe2026-01-31
| | | | | | | | | | Swaps name/type of generated files to match class names and source files.
| * Initial commit using tesselation shader to create curvesDan Goodliffe2026-01-31
| | | | | | | | Disables glslangValidator because of file extension mess up.
| * Update OpenGL context and shaders to v4.6Dan Goodliffe2026-01-29
| | | | | | | | | | Note: doesn't remove/replace older functions where newer ones might be better.
| * Fix search/replace of GL_* macros in glslDan Goodliffe2026-01-29
| |
| * Explicit cast to vec3 to disambiguate length/distance calcDan Goodliffe2026-01-26
| |
| * Fix warnings and minor tidy for GL lookupsDan Goodliffe2026-01-26
| |
| * Include GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS in networkCurve output calcDan Goodliffe2026-01-23
|/
* Add glDebugScopeDan Goodliffe2026-01-16
| | | | | Wrapper for glPushDebugGroup/glPopDebugGroup which allows neatly grouping OpenGL calls in diagnostic tools.
* Tidy thirdparty jam, use -isystem for thirdparty includesDan Goodliffe2026-01-16
| | | | Removes the need to disable warnings for imgui includes.
* Pass shaders through glslangValidatorDan Goodliffe2026-01-16
| | | | Fixes the issues it picked up.