I started with PhysX 3.x month ago.. documentation a getting started document are perfect, but its not tutorial in a way "lets do this". Tutorial would be better... but I looked and found nothing. For some purposes, 2.8 tutorial can be used... but SDK has changed significantly since. Some useful links (but for PhysX 2.x) http://www.physxforq...hysX_Actors.htm
Second problem for me are samples, that are very poor compred with eg. graphics samples provided by NVidia or Microsoft. Anyway.. before PhysX i tried Bullet (the worst API i have ever seen... no doc, no comments in code... ) and ODE... PhysX is the best for me from those APIs.
I am using Quad based LOD... Drawing every block independently....merging it into one VB / IB is waste of time and it will be probably slower than multiple draw-calls. I have had stitching done, so it looks like this
All is done by only working with IB. Can stitch any LOD quality on any other. Stitsching is computed every time scene changed, for discarding invisible (or out of frustrum blocks) is used quad-tree. Works fine, but for large terrain its not quite good in performance and calculating stitsching in real-time slow thing down... precalculation could be solution, but than it wouldn´t be so universal (conect every LOD on any other... and fro your 12 qualities even impossible). So I switch to skirts, which are far better. I even have geo-morphing with that and everything looks fine. Basicly speaking.. stitching really disapoint me in way of "quality vs. spend time and performance"
I tried to do stitching once... but i figured out, that skirts are better, faster and easier... thats for start
Now...why you need to remove duplicated vertices ? I would just send all vertices in one VB and not to bother change this VB... he will be sitting on GPU all the time unchanged. Than you will be changing only IB, which is faster and more elegant.
I have created 1 IB for every block and every LOD of this block ... gives me lot of IB... when rendering, i simply switching IB and render parts of terrain with different LOD.
Render block 1 (IB_Lod0)
Render block 2 (IB_Lod1)
If you wan to spare switching buffers, you can generate new one and send new one every time when LOD displacement changes. Depends on your terrain size, but due to my tests and results for terrain above 512x512 it starts to be rendering brake.