$\def\sC{\mathcal{C}}\def\sD{\mathcal{D}}\def\Set{\mathbf{\mathrm{Set}}}\DeclareMathOperator{\Sub}{Sub}\def\op{\circ}$I have a Cartesian category $\sC$. I would like to embed $\sC$ into a cartesian closed category (or better, a topos) $\sD$. However, $\Set^{\sC^\op}$ is bigger than I want -- in particular, I would like my embedding to preserve subobject lattices: $\Sub_\sC(x) \cong \Sub_\sD(x)$ for each object $x$ of $\sC$. I think I would also like it to preserve whatever limits already exist in $\sC$ and be a full embedding.
If $\sC$ already has a subobject classifier, can I hope for it to still be so in a topos $\sD$?
Is there a standard construction to construct a CCC or a Topos $\sD$ out of a Cartesian category $\sC$? What properties can I expect out of such constructions? Is there any hope that it could satisfy the properties I ask for?
If it matters, I'm particularly interested in the case where $\sC$ is the category of semi-algebraic varieties. That is, the category of definable objects in the first-order theory of real closed fields.