corpus.blog
Most cited
Talked about
Blogs
56,966 blogs · [ { "id": "01a0b0ba-8303-727b-a28e-312385155e5f", "title": "Being lazy in C++", "url": "https://cpp-rendering.io/being-lazy-in-c/", "published_at": "2026-09-12T21:45:51+00:00" }, { "id": "01a08764-41d2-739f-a33a-4c5669c07f6f", "title": "Simplify hashing in C++", "url": "https://cpp-rendering.io/hashing-in-c/", "published_at": "2025-11-16T14:38:30+00:00" }, { "id": "01a08764-41d2-739f-a33a-4c566a2df5e9", "title": "C++ type erasure: a std::polymorphic implementation", "url": "https://cpp-rendering.io/c-type-erasure-a-polymorphic-implementation/", "published_at": "2025-11-02T20:37:43+00:00" }, { "id": "01a08764-41d2-739f-a33a-4c566a4ae689", "title": "Sky and Atmosphere rendering: A physical approach", "url": "https://cpp-rendering.io/sky-and-atmosphere-rendering/", "published_at": "2025-05-10T16:47:16+00:00" }, { "id": "01a08764-41d2-739f-a33a-4c566aa1fa27", "title": "Small-Object Optimization applied to std::variant", "url": "https://cpp-rendering.io/small-object-optimization/", "published_at": "2025-01-12T20:32:36+00:00" }, { "id": "01a08764-41d2-739f-a33a-4c566ad93e55", "title": "How to implement a vtable for our custom type erasure type", "url": "https://cpp-rendering.io/how-to-implement-a-vtable-for-type-erasure/", "published_at": "2024-12-26T12:36:26+00:00" }, { "id": "01a0c504-62f3-71cd-bce3-fb0f8f45e08e", "title": "C++ type erasure without macros", "url": "https://cpp-rendering.io/c-type-erasure-without-macros/", "published_at": "2024-12-21T18:10:54+00:00" }, { "id": "01a0c504-62f3-71cd-bce3-fb0f9006c1ae", "title": "C++ type erasure implementation: a low boilerplate approach", "url": "https://cpp-rendering.io/c-type-erasure-implementation-a-low-boilerplate-approach/", "published_at": "2024-12-15T18:18:31+00:00" }, { "id": "01a0c504-62f3-71cd-bce3-fb0f901e1e5c", "title": "C++ Memory Safety: Safe Pointer", "url": "https://cpp-rendering.io/c-memory-safety-borrow-checker-safe-pointer/", "published_at": "2024-10-13T19:04:26+00:00" }, { "id": "01a0c504-62f3-71cd-bce3-fb0f90487b0f", "title": "An attempt to remove dangling pointers in C++", "url": "https://cpp-rendering.io/an-attempt-to-remove-dangling-pointers-in-c/", "published_at": "2024-05-05T12:50:23+00:00" }, { "id": "01a0c516-65ff-7372-b208-eaefa7b3ac74", "title": "Stop using bool in C++ for function parameters !", "url": "https://cpp-rendering.io/using-bool-in-c/", "published_at": "2022-08-11T09:15:28+00:00" }, { "id": "01a0c516-65ff-7372-b208-eaefa7f6409b", "title": "Having fun with Detection idiom and macros in C++", "url": "https://cpp-rendering.io/having-fun-with-detection-idiom-and-macros-in-c/", "published_at": "2021-06-27T10:21:53+00:00" }, { "id": "01a0c516-65ff-7372-b208-eaefa8913871", "title": "Thoughts about getters and setters in C++", "url": "https://cpp-rendering.io/thoughts-about-getters-and-setters-in-c/", "published_at": "2021-05-01T16:05:20+00:00" }, { "id": "01a0c516-65ff-7372-b208-eaefa93a1324", "title": "C++ error handling, let’s abuse the co_await operator", "url": "https://cpp-rendering.io/c-error-handling-lets-abuse-the-co_await-operator/", "published_at": "2021-04-25T15:59:16+00:00" }, { "id": "01a0c516-65ff-7372-b208-eaefaa175411", "title": "Thread pool with coroutines: Threads (1/3)", "url": "https://cpp-rendering.io/thread-pool-with-coroutines-threads/", "published_at": "2021-04-21T18:04:35+00:00" }, { "id": "01a0c521-46ae-72ec-90a0-e4c8d99219d3", "title": "Create a future with coroutine in C++", "url": "https://cpp-rendering.io/create-a-future-using-coroutine/", "published_at": "2021-04-09T11:29:32+00:00" }, { "id": "01a0c521-46ae-72ec-90a0-e4c8da23e21a", "title": "Multithreading in an expressive way with monadic expression", "url": "https://cpp-rendering.io/multithreading-monadic-expression/", "published_at": "2017-12-02T00:08:18+00:00" }, { "id": "01a0c521-46ae-72ec-90a0-e4c8da7f6fe9", "title": "Range : Be expressive using smart iterators with Range based containers", "url": "https://cpp-rendering.io/range-expressive-smart-iterators/", "published_at": "2017-01-19T00:28:12+00:00" }, { "id": "01a0c521-46ae-72ec-90a0-e4c8daa1d51d", "title": "Mipmap generation : Transfers, transition layout", "url": "https://cpp-rendering.io/mipmap-generation/", "published_at": "2017-01-12T01:46:04+00:00" }, { "id": "01a0c521-46ae-72ec-90a0-e4c8dac0fb58", "title": "Buffer management with Vulkan : transfer, Staging buffer", "url": "https://cpp-rendering.io/buffer-management-vulkan/", "published_at": "2016-11-13T09:19:43+00:00" }, { "id": "01a0c52c-8bd7-725c-b46c-c0a8e7c35286", "title": "Barriers in Vulkan : They are not that difficult", "url": "https://cpp-rendering.io/barriers-vulkan-not-difficult/", "published_at": "2016-11-10T01:53:01+00:00" }, { "id": "01a0c52c-8bd7-725c-b46c-c0a8e8061ac2", "title": "Vulkan Memory Management : How to write your own allocator", "url": "https://cpp-rendering.io/vulkan-memory-management-2/", "published_at": "2016-11-06T04:58:42+00:00" }, { "id": "01a0c52c-8bd7-725c-b46c-c0a8e8ca8a22", "title": "Indirect Rendering : “A way to a million draw calls”", "url": "https://cpp-rendering.io/indirect-rendering/", "published_at": "2016-09-16T03:58:20+00:00" }, { "id": "01a0c52c-8bd7-725c-b46c-c0a8e9848725", "title": "OpenGL AZDO : Bindless Textures : batching problem solved", "url": "https://cpp-rendering.io/opengl-azdo-bindless-textures/", "published_at": "2016-04-16T19:07:30+00:00" }, { "id": "01a0c52c-8bd7-725c-b46c-c0a8ea8424d7", "title": "Vulkan Pipelines, Barrier, memory management", "url": "https://cpp-rendering.io/vulkan-and-pipelines/", "published_at": "2016-03-22T02:50:49+00:00" }, { "id": "01a0c537-5c15-717f-9902-b43065619c07", "title": "Lava erupting from Vulkan : Initialization or Hello World", "url": "https://cpp-rendering.io/lava-erupting-vulkan/", "published_at": "2016-03-06T22:55:59+00:00" }, { "id": "01a0c537-5c15-717f-9902-b4306654e80b", "title": "Flux: Qt Quick with unidirectional data flow", "url": "https://cpp-rendering.io/flux-qt-quick-with-unidirectional-data-flow/", "published_at": "2016-02-22T03:11:51+00:00" }, { "id": "01a0c537-5c15-717f-9902-b43066785af6", "title": "How to make a Photon Mapper : Photons everywhere", "url": "https://cpp-rendering.io/how-to-make-a-photon-mapper-photons-everywhere/", "published_at": "2016-02-08T23:16:12+00:00" }, { "id": "01a0c537-5c15-717f-9902-b4306678fd71", "title": "How to make a Photon Mapper : Whitted Ray Tracer", "url": "https://cpp-rendering.io/how-to-make-a-photon-mapper-whitted-ray-tracer/", "published_at": "2016-01-11T13:21:43+00:00" }, { "id": "01a0c537-5c15-717f-9902-b43066bb2bfd", "title": "How to make a Photon Mapper : Rendering Equation Debunked", "url": "https://cpp-rendering.io/how-to-make-a-photon-mapper-rendering-equation-debunked/", "published_at": "2016-01-11T12:57:03+00:00" } ] posts
Claim your blog
Back to cpp-rendering.io
Blog · corpus.blog/blogs/cpp-rendering.io/posts
cpp-rendering.io
cpp-rendering.io
2026
Being lazy in C++
original ↗
12 Sept 2026
2025
Simplify hashing in C++
original ↗
16 Nov 2025
C++ type erasure: a std::polymorphic implementation
original ↗
2 Nov 2025
Sky and Atmosphere rendering: A physical approach
original ↗
10 May 2025
Small-Object Optimization applied to std::variant
original ↗
12 Jan 2025
2024
How to implement a vtable for our custom type erasure type
original ↗
26 Dec 2024
C++ type erasure without macros
original ↗
21 Dec 2024
C++ type erasure implementation: a low boilerplate approach
original ↗
15 Dec 2024
C++ Memory Safety: Safe Pointer
original ↗
13 Oct 2024
An attempt to remove dangling pointers in C++
original ↗
5 May 2024
2022
Stop using bool in C++ for function parameters !
original ↗
11 Aug 2022
2021
Having fun with Detection idiom and macros in C++
original ↗
27 Jun 2021
Thoughts about getters and setters in C++
original ↗
1 May 2021
C++ error handling, let’s abuse the co_await operator
original ↗
25 Apr 2021
Thread pool with coroutines: Threads (1/3)
original ↗
21 Apr 2021
Create a future with coroutine in C++
original ↗
9 Apr 2021
2017
Multithreading in an expressive way with monadic expression
original ↗
2 Dec 2017
Range : Be expressive using smart iterators with Range based containers
original ↗
19 Jan 2017
Mipmap generation : Transfers, transition layout
original ↗
12 Jan 2017
2016
Buffer management with Vulkan : transfer, Staging buffer
original ↗
13 Nov 2016
Barriers in Vulkan : They are not that difficult
original ↗
10 Nov 2016
Vulkan Memory Management : How to write your own allocator
original ↗
6 Nov 2016
Indirect Rendering : “A way to a million draw calls”
original ↗
16 Sept 2016
OpenGL AZDO : Bindless Textures : batching problem solved
original ↗
16 Apr 2016
Vulkan Pipelines, Barrier, memory management
original ↗
22 Mar 2016
Lava erupting from Vulkan : Initialization or Hello World
original ↗
6 Mar 2016
Flux: Qt Quick with unidirectional data flow
original ↗
22 Feb 2016
How to make a Photon Mapper : Photons everywhere
original ↗
8 Feb 2016
How to make a Photon Mapper : Whitted Ray Tracer
original ↗
11 Jan 2016
How to make a Photon Mapper : Rendering Equation Debunked
original ↗
11 Jan 2016