WorldViz User Forum  

Go Back   WorldViz User Forum > Vizard

Thread Tools Rate Thread Display Modes
Old 10-09-2009, 06:36 AM
stefs stefs is offline
Join Date: Mar 2008
Posts: 10
linear transform in 2D screen space

I intend to do some linear transform in 2D window (screen) space in order to do on-the-fly h-/v-keystone correction. I have all the code ready to calculate the linear distortion matrix from four registered corner points of the projection image. At the moment I choose this approach:

current_pm = viz.MainWindow.getProjectionMatrix()
Where distortion_matrix is a 4x4 matrix that leaves the z untouched. The distortion in 2D space works fine but I still get some strange clipping artifacts.

My question: Is there a more elegant way in Vizard to implement this final viewport distortion as a 2D transform only rather than as a distortion of the 3D projection matrix?
Reply With Quote
Old 10-09-2009, 10:15 AM
farshizzo farshizzo is offline
WorldViz Team Member
Join Date: Mar 2003
Posts: 2,849
You can use a post-process shader to perform your keystone correction. A shader may be overkill for a simple linear transformation, but it allows for more flexibility for distortion correction. The vizlens module that comes with Vizard uses a post-process shader to perform the lens correction. Here is a simple example of a post-process shader:
import viz
import vizpp

KeystoneShader = """
uniform sampler2D vizpp_InputTex;
uniform float osg_FrameTime;
void main (void)
	float s = gl_TexCoord[0].s + (gl_TexCoord[0].t * sin(osg_FrameTime) * 0.3);
	float t = gl_TexCoord[0].t;
	gl_FragColor = texture2D( vizpp_InputTex, vec2(s,t) );
vizpp.addEffect( vizpp.ShaderEffect(frag=KeystoneShader) )

Reply With Quote

Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
split screen honey006 Vizard 3 05-21-2009 09:57 AM
screen image erchrastil Vizard 8 06-27-2008 11:45 AM
position of html-file on screen active_world Vizard 1 05-16-2008 07:24 PM
Smooth transition from Linear to Bezier in animation masaki Vizard 2 01-13-2008 11:22 AM
Tracking a small space aaThomas Precision Position Tracker (PPT) 3 05-31-2007 10:59 AM

All times are GMT -7. The time now is 11:14 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2022, vBulletin Solutions, Inc.
Copyright 2002-2018 WorldViz LLC