diff --git a/projects/indirect_dispatch/src/App.cpp b/projects/indirect_dispatch/src/App.cpp
index 16f27932521cdb725a1356def171e988d466acce..ab79b76103d306bc76afb8eac39c4e663551af70 100644
--- a/projects/indirect_dispatch/src/App.cpp
+++ b/projects/indirect_dispatch/src/App.cpp
@@ -62,6 +62,12 @@ bool App::initialize() {
 		vkcv::SamplerMipmapMode::LINEAR,
 		vkcv::SamplerAddressMode::CLAMP_TO_EDGE);
 
+	m_nearestSampler = m_core.createSampler(
+		vkcv::SamplerFilterType::NEAREST,
+		vkcv::SamplerFilterType::NEAREST,
+		vkcv::SamplerMipmapMode::NEAREST,
+		vkcv::SamplerAddressMode::CLAMP_TO_EDGE);
+
 	m_renderTargets = createRenderTargets(m_core, m_windowWidth, m_windowHeight);
 
 	const int cameraIndex = m_cameraManager.addCamera(vkcv::camera::ControllerType::PILOT);
@@ -331,7 +337,7 @@ void App::run() {
 			motionVectorVisualisationDescriptorWrites.sampledImageWrites = {
 				vkcv::SampledImageDescriptorWrite(0, visualisationInput) };
 			motionVectorVisualisationDescriptorWrites.samplerWrites = {
-				vkcv::SamplerDescriptorWrite(1, m_linearSampler) };
+				vkcv::SamplerDescriptorWrite(1, m_nearestSampler) };
 			motionVectorVisualisationDescriptorWrites.storageImageWrites = {
 				vkcv::StorageImageDescriptorWrite(2, m_renderTargets.motionBlurOutput) };
 
diff --git a/projects/indirect_dispatch/src/App.hpp b/projects/indirect_dispatch/src/App.hpp
index 5f4fd7eb835840ba5b832ab922d38fd30302600a..ea8a04154e58c1e75c42acab03e8c967b7904b2f 100644
--- a/projects/indirect_dispatch/src/App.hpp
+++ b/projects/indirect_dispatch/src/App.hpp
@@ -34,4 +34,5 @@ private:
 
 	RenderTargets       m_renderTargets;
 	vkcv::SamplerHandle m_linearSampler;
+	vkcv::SamplerHandle m_nearestSampler;
 };
\ No newline at end of file