summaryrefslogtreecommitdiff
path: root/gfx
Commit message (Collapse)AuthorAge
* Simplified FrustumDan Goodliffe11 days
| | | | | | | | | | | 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 Goodliffe11 days
|
* Simplified and tidied ShadowMapperDan Goodliffe11 days
| | | | | No arbitrary 10m extra extents. No runtime vectors. Simpler code. Consts. etc.
* Correctly scale frustum plane vectorsDan Goodliffe11 days
| | | | Fixes comparison with real world (sphere) size parameter.
* Fix up the preFrame process to use both frustumsDan Goodliffe13 days
| | | | | | (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.
* 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.
* Pass shaders through glslangValidatorDan Goodliffe2026-01-16
| | | | Fixes the issues it picked up.
* Update the SceneShader's view port on sceneRenderer resizeDan Goodliffe2025-04-08
|
* Default environment direction light shines down, not upDan Goodliffe2025-04-07
|
* Merge branch 'imgui'Dan Goodliffe2025-04-02
|\
| * Remove unrequired UIShaderDan Goodliffe2025-03-19
| |
* | Add ManyPtr which tracks specified subclassesDan Goodliffe2025-03-22
|/ | | | | | This removes the need to repeated dynamic_cast the pointer. Provides interface which enforces the fastest option for the required types.
* Add support for resizing a SceneRendererDan Goodliffe2025-03-14
|
* Add support for changing the aspect ratio of a cameraDan Goodliffe2025-03-14
|
* Rebalance shadow band distributionDan Goodliffe2025-03-11
| | | | Extends the initial band from around 34m to around 100m.
* Initialise shadow bounding box to light view pointDan Goodliffe2025-03-11
| | | | Then extended to cover the view extents.
* Extend Frustum for testing for shaded byDan Goodliffe2025-03-11
| | | | | Like contains, but doesn't test the back plane as shadow caster can be anywhere behind the view point and still cast into it.
* Pass a Frustum to shadow renderersDan Goodliffe2025-03-11
| | | | The frustum might not be correct at this stage.
* Simplify ShadowMapper with AxisAlignedBoundingBoxDan Goodliffe2025-03-11
|
* Template AxisAlignedBoundingBox on unit typeDan Goodliffe2025-03-11
|
* AxisAlignedBoundingBox construct from range instead of spanDan Goodliffe2025-03-11
|
* Add function to test if an AABB is visible in a frustumDan Goodliffe2025-03-11
|
* Position is moved to FrustumDan Goodliffe2025-03-11
|
* Create AxisAlignedBoundingBoxDan Goodliffe2025-03-11
| | | | Used to define the extents of GeoData mesh
* Pass frustum into render functionsDan Goodliffe2025-03-07
| | | | Support for culling objects outside the view frustum
* Split core view definition out of Camera into FrustumDan Goodliffe2025-03-05
|
* Move camera out of gl folder, it's not OpenGL specificDan Goodliffe2025-03-05
|
* Have Camera keep an array of frustum plane definitionsDan Goodliffe2025-03-05
| | | | Based on code from https://ktstephano.github.io/rendering/stratusgfx/aabbs
* Cache the camera's view matrixDan Goodliffe2025-03-02
|
* Improve Terrain::generateMeshes performanceDan Goodliffe2025-02-25
| | | | | Creates mesh per surface based on a single buffer of all vertices and a collection of per surfuce indices. Makes ColourBias a uniform instead of a vertex attribute.
* Add VertexArrayObject::data for an external existing bufferDan Goodliffe2025-02-25
|
* Generate mipmaps if min/mag filter settings use themDan Goodliffe2024-12-24
|
* Basic soft shadowsDan Goodliffe2024-10-26
|
* Improve sun illumination based on angular size and astronomical twilightDan Goodliffe2024-10-24
|
* Merge branch 'billboard-shadows'Dan Goodliffe2024-10-22
|\
| * Further template maths functionsDan Goodliffe2024-10-21
| |