Hi Ying,
Hi Sebastian ,
The distortion value is a function of the position, and it's for per vextex. It
won't change over time. To be more details, the distortion function would
calculate pixel coordinates(2d) based on vertex positions(3d).
Okay, I somehow don't understand how this could be useful. Usually
distortion doesn't change the domain. So either the distortion maps 2d
-> 2d in the pixel domain or 3d vertex positions to 3d vertex positions.
The 3d -> 2d is usually done by the projection matrix, but you can of
course apply any projection function in the vertex shader. Maybe you
need to reformulate your question in a way I can understand what you are
really after.
So usually in the vertex shader:
local vertex position(3d) * ModelViewMatrix -> global vertex position
relative to view * ProjectionMatrix -> Eyespace position
The eyespace then is transformed into 2d coordinates before
rasterization (window matrix etc).
The point is, that you can basically do anything in the vertex shader to
change the 2d position of the vertex, but the edges will stay straight
lines.
If you need to do some non-linear distortion per pixel you will have to
use the fragment shader to distort the resulting image. This is usually
done to perform some projection onto curved surfaces or to model some
"fishlens" etc.
So If you can explain what you are after, we might be able to point you
into the right direction how to do it with OSG.
Cheers
Sebastian
Now I'm really confused about this problem. I found some tutorials and sample
code about Frame Buffer Object and rendering to texture, but there's no this
kind of functions in these code. Since I don't have much experience in OpenGL
and osg, I'm a little lost now.
I would be appreciate if you could give me some suggestions :)
Thanks,
Ying
SMesserschmidt wrote:
Hi Ying,
Hi Sebastian ,
The distortion will be applied to the 3D model's vertexes. So each vertex will
be changed to a different position. I wonder how could I achieve this? Should I
use 3D texture, and then applying the distortion to the coordinates of the 3D
texture?
I'm aware how distortion work I rather wanted to know if the distortion
value is per vertex and is constant or changes over time.
So we need to know if the distortion is a function of time, vertex
index, position or whatever.
Try to describe the problem more in depth so we can get an idea of what
you are trying to achieve.
Cheers
Sebastian
Thank you for the answer! :)
Cheers,
Ying
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=59951#59951
_______________________________________________
osg-users mailing list
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
------------------
Post generated by Mail2Forum
------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=60079#60079
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org