» Calibrate and Re-Project
This site relies heavily on Javascript. You should enable it if you want the full experience. Learn more.

Calibrate and Re-Project

tool workshop projection-mapping projection projector calibration tutorial
Credits: joreg, robotanton, emarao

about

Semi-automatically calibrate your projector and throw generated content on to your physical object. These are convenience patches providing a simple workflow for using the projector-calibration that is coming with the ImagePack.

It was presented at Mapping Festival, Gray Area Festival and CGEvent in 2016.

Two Patches are explaining the techniques and show how to use the modules:

  • Step01_CalibrateProjector.v4p
  • Step02_ReProjectionSetup.v4p
Projector Calibration
  1. Place your projector anywhere and point it to a physical object (your "screen") you want to project on to.
  2. Measure several physical points on your "screen" and type their positions into the patch.
  3. Match the points in the projection to the measured points with a few simple clicks.
  4. Hit 'Solve' to get the View/Projection matrices needed for the Renderer.
Re-Projection
  1. Create a 3d Content and render it from the spectator's point of view.
  2. Project. For more about this projection mapping technique, see: Projection Mapping Primer.
Requirements
Known issues

ATI cards
There is a known problem with the ImagePack and Radeon graphic cards.
The solution was proposed by tekcor:

  1. Download "nvcuda.dll": http://www.symbioticcube.com/Downloads/nvcuda.dll
  2. Place it in your ImagePack's nodes/plugins/dependencies/opencv/x86/ folder.

At the moment only 32bit version of the pack is working on my ATI machine.

Foldable model by Emarao based on A4 dimensions

download

vvvv_Calibrate-And-Re-Project_v1_0.zip
22.02.17 [21:06 UTC] by robotanton | 529 downloads
Initial Release

Aurel 11/09/2018 - 13:53

Hi,
from Wisp Festival in Leipzig, wanted to use a photogrammetrie of the room to calibrate 9 Video projectors.
I have two problems,

  • First the patch crash when I hit solve button... (already tryed different versions of 4v but always crash.
  • Is there a simple way to make those patch in Dx11 ? I am not expert in shaders...

Please,

Aurélien

robotanton 11/09/2018 - 21:13

Hey Aurel,

I've just tried clean install of beta37 x86, DX11 pack, Image pack.
When I click Solve, the node turns red.
Then, when I copy the nvcuda.dll into the Image pack folder (see the detailed description above) and restart vvvv, everything works. Unfortunately the link to the .dll from the @teckor site doesn't work anymore.

This is how the problem solves on my machine.

Hope this helps a bit.

Best,
Anton

Aurel 13/09/2018 - 15:35

Thanks Anton,
It was due to the Version of 4V and the Cuda dll.
Do you know if there is a way to do in DX11 what is done in Step02_ReProjectionSetup by ProjectToScreen shader which calculate the projection on the Mesh surface...?

A

anonymous user login

Shoutbox

~22h ago

tonfilm: @beyon you can also use F# together with #vl, see: #fsharp #dotnet #visualprogramming https://github.com/vvvv/VL.DemoLib/tree/master/src/VL.FSharpDemoLib

~1d ago

beyon: tonfilm: Ok,currently using F# though but maybe I should look into sharpdx vs xenko math

~2d ago

tonfilm: @beyon #vl also fills these gaps with huge range of collision detection math from #sharpdx which is basically the same as #xenko's

~2d ago

tonfilm: vvvv #audio pack update: better buffer reader and fixed #vl template #visualprogramming #creativecoding #dotnet vvvv.audio-pack-alpha

~2d ago

beyon: microdee: Good, I found Xenko.Core.Mathematics filled many gaps in SlimDX ray/point/plane/bbox functions

~2d ago

microdee: "if you want to make a custom project only using Xenko graphics API without the full Xenko engine, you can!" https://xenko.com/blog/feature-spotlight-xenko-3-1-and-nuget/

~3d ago

m4d: @circuitb: looking good :)

~4d ago

joreg: berlin, london, paris, who's next? thanks for organizing this @sebescudie

~5d ago

sebescudie: in Paris and into #vvvv ? Let's have a bier next Wednesday ! https://bit.ly/2z4BnKQ