#include "fluid_common.hlsli" // Pixel float4 main(p_fluidsim input) : SV_Target { float pCenter = Texture_pressure.SampleLevel(samPointClamp, input.texcoords, 0).x; // Texture_tempvector contains the "divergence" computed by PS_DIVERGENCE float bC = Texture_tempvector.SampleLevel(samPointClamp, input.texcoords, 0).x; float pL = Texture_pressure.SampleLevel(samPointClamp, LEFTCELL, 0).x; float pR = Texture_pressure.SampleLevel(samPointClamp, RIGHTCELL, 0).x; float pB = Texture_pressure.SampleLevel(samPointClamp, BOTTOMCELL, 0).x; float pT = Texture_pressure.SampleLevel(samPointClamp, TOPCELL, 0).x; float pD = Texture_pressure.SampleLevel(samPointClamp, DOWNCELL, 0).x; float pU = Texture_pressure.SampleLevel(samPointClamp, UPCELL, 0).x; if (IsBoundaryCell(LEFTCELL)) { pL = pCenter; } if (IsBoundaryCell(RIGHTCELL)) { pR = pCenter; } if (IsBoundaryCell(BOTTOMCELL)) { pB = pCenter; } if (IsBoundaryCell(TOPCELL)) { pT = pCenter; } if (IsBoundaryCell(DOWNCELL)) { pD = pCenter; } if (IsBoundaryCell(UPCELL)) { pU = pCenter; } return (pL + pR + pB + pT + pU + pD - bC) / 6.0; }