| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | Expose Camera's aspect ratio | Dan Goodliffe | 17 hours |
| | | |||
| * | Fix class/struct mix-up friending test case | Dan Goodliffe | 18 hours |
| | | |||
| * | Bump ctre to latest | Dan Goodliffe | 18 hours |
| | | |||
| * | Don't pass null to Texture constructor pixel data | Dan Goodliffe | 19 hours |
| | | | | | | Pixel data variant now proxies to the simple version and then uploads the image data, instead of vice versa with nullptr pixels. | ||
| * | Shared VAO for all 3 parts of RailVehicleClass | Dan Goodliffe | 4 days |
| | | | | | | | Rearranges its LocationVertex to be 3 repeated Parts. Adds helpers to glvglVertexArray for useBuffer with various offsets. Render is then an iteration of the meshes and the location data at the nth offset. | ||
| * | Reuse vertex array objects for common structures with DSA | Dan Goodliffe | 4 days |
| | | | | | Slashes the number of VAOs required and the amount of setup required. | ||
| * | Add missing typename exporting base::value_type from InstanceVertices | Dan Goodliffe | 4 days |
| | | |||
| * | Sprinkling of glDebugScope in assets and render parts | Dan Goodliffe | 5 days |
| | | |||
| * | Split addAttribsFor away from requiring a buffer to bind | Dan Goodliffe | 5 days |
| | | |||
| * | Replace hacky m4 shader preprocessing with proper glslang version | Dan Goodliffe | 5 days |
| | | |||
| * | Refactor glMappedBufferWriter into a DSA wrapper for std::span | Dan Goodliffe | 5 days |
| | | |||
| * | Switch frame and render buffer to DSA helpers | Dan Goodliffe | 6 days |
| | | |||
| * | Switch to floating point, camera relative position buffer | Dan Goodliffe | 6 days |
| | | |||
| * | Specialise glTexture::savePosition | Dan Goodliffe | 6 days |
| | | | | | | Normalises the range of position information into the range 0-255 so the resulting image is remotely useful. | ||
| * | Remove identifier naming lint comments, gl* is fine | Dan Goodliffe | 7 days |
| | | |||
| * | Move all low level texture operations to DSA helpers in glTexture | Dan Goodliffe | 7 days |
| | | |||
| * | Replace gl_traits glTexParameter with glTexture::parameter DSA wrapper | Dan Goodliffe | 8 days |
| | | |||
| * | Fix naming violations in Mesh | Dan Goodliffe | 8 days |
| | | | | | | They've existed and been annoying since the day I first created it from online examples. | ||
| * | Add glVertexArray useBuffer | Dan Goodliffe | 8 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 textures | Dan Goodliffe | 8 days |
| | | |||
| * | Merge branch 'glalloc' | Dan Goodliffe | 8 days |
| |\ | |||
| | * | Replace glContainer with glAllocator | Dan Goodliffe | 8 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 helpers | Dan Goodliffe | 9 days |
| | | | |||
| | * | Replace use of VertexArrayObject with glVertexArray/glBuffer DSA versions | Dan Goodliffe | 9 days |
| | | | |||
| | * | Extend glVertexArray with VertexArrayConfigurator | Dan Goodliffe | 9 days |
| | | | | | | | | | DSA version of VertexArrayObject. | ||
| | * | Replace generic glBuffer type alias with a full implementation | Dan Goodliffe | 9 days |
| | | | | | | | | | Adds wrappers for DSA storage and data uploads. | ||
| | * | Define SequentialCollection in terms of contiguous_range | Dan Goodliffe | 9 days |
| | | | |||
| | * | Add vertexAttribFormatFunc to gl_traits for DSA vertex configuration | Dan Goodliffe | 9 days |
| | | | |||
| | * | Include a stacktrace in Boost test context reported for OpenGL errors | Dan Goodliffe | 9 days |
| | | | |||
| | * | Replace basic glVertexArray with a specific class ready for helpers | Dan Goodliffe | 11 days |
| |/ | |||
| * | Update stencils and billboards less often | Dan Goodliffe | 12 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 useMeshClipDist | Dan Goodliffe | 13 days |
| | | | | | Removes hard coded arbitrary numbers for 256px sq and 140m. | ||
| * | Wrap up some low level texture operations in glTexture class | Dan Goodliffe | 13 days |
| | | | | | Fixes previously hard coded billboard texture size. | ||
| * | Refactor glArrays to better expose underlying types | Dan Goodliffe | 2026-02-28 |
| | | | | | | Current they're all glNamed, but this can be sub-classed for specific things, e.g. glTexture. | ||
| * | Billboard foliage | Dan Goodliffe | 2026-02-28 |
| | | | | | | | 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 SceneShader | Dan Goodliffe | 2026-02-28 |
| | | | | | | 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 variables | Dan Goodliffe | 2026-02-28 |
| | | |||
| * | Allow specifying all three partition functions independently | Dan Goodliffe | 2026-02-28 |
| | | | | | | Two predicate version behaviour is unchanged, the second predicate is just the inverse of the third. | ||
| * | Support for the BillboardPainter | Dan Goodliffe | 2026-02-28 |
| | | | | | | 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 SceneRenderer | Dan Goodliffe | 2026-02-23 |
| | | | | | | Clients now just call that one helper and SceneProvider passes in all the renderables. | ||
| * | Simplified Frustum | Dan Goodliffe | 2026-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 Detail | Dan Goodliffe | 2026-02-20 |
| | | |||
| * | Simplified and tidied ShadowMapper | Dan Goodliffe | 2026-02-20 |
| | | | | | | No arbitrary 10m extra extents. No runtime vectors. Simpler code. Consts. etc. | ||
| * | Correctly scale frustum plane vectors | Dan Goodliffe | 2026-02-20 |
| | | | | | Fixes comparison with real world (sphere) size parameter. | ||
| * | Fix up the preFrame process to use both frustums | Dan Goodliffe | 2026-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 work | Dan Goodliffe | 2026-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 Frustum | Dan Goodliffe | 2026-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 fixture | Dan Goodliffe | 2026-02-14 |
| | | | | | Includes exposure of InstanceVertices::reserve because why not. | ||
| * | Add support for partitioning by 2 unary predicates | Dan Goodliffe | 2026-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::partition | Dan Goodliffe | 2026-02-14 |
| | | | | | More useful in the context of passing them to OpenGL. | ||
