[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27976] branches/bge_eigen2/source/ gameengine/VideoTexture: Working on converting VideoTexture.
Mitchell Stokes
mogurijin at gmail.com
Sat Apr 3 21:19:33 CEST 2010
Revision: 27976
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27976
Author: moguri
Date: 2010-04-03 21:19:32 +0200 (Sat, 03 Apr 2010)
Log Message:
-----------
Working on converting VideoTexture. It's not compiling right now, but it should after other modules have been worked on. Also, a few more addons might have to be defined.
Modified Paths:
--------------
branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.cpp
branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.h
Modified: branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.cpp
===================================================================
--- branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.cpp 2010-04-03 17:38:43 UTC (rev 27975)
+++ branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.cpp 2010-04-03 19:19:32 UTC (rev 27976)
@@ -121,28 +121,28 @@
{
// mirror mode, compute camera frustrum, position and orientation
// convert mirror position and normal in world space
- const MT_Matrix3x3 & mirrorObjWorldOri = m_mirror->GetSGNode()->GetWorldOrientation();
- const MT_Point3 & mirrorObjWorldPos = m_mirror->GetSGNode()->GetWorldPosition();
- const MT_Vector3 & mirrorObjWorldScale = m_mirror->GetSGNode()->GetWorldScaling();
- MT_Point3 mirrorWorldPos =
+ const BGE_Matrix3 & mirrorObjWorldOri = m_mirror->GetSGNode()->GetWorldOrientation();
+ const BGE_Vector3 & mirrorObjWorldPos = m_mirror->GetSGNode()->GetWorldPosition();
+ const BGE_Vector3 & mirrorObjWorldScale = m_mirror->GetSGNode()->GetWorldScaling();
+ BGE_Vector3 mirrorWorldPos =
mirrorObjWorldPos + mirrorObjWorldScale * (mirrorObjWorldOri * m_mirrorPos);
- MT_Vector3 mirrorWorldZ = mirrorObjWorldOri * m_mirrorZ;
+ BGE_Vector3 mirrorWorldZ = mirrorObjWorldOri * m_mirrorZ;
// get observer world position
- const MT_Point3 & observerWorldPos = m_observer->GetSGNode()->GetWorldPosition();
+ const BGE_Vector3 & observerWorldPos = m_observer->GetSGNode()->GetWorldPosition();
// get plane D term = mirrorPos . normal
- MT_Scalar mirrorPlaneDTerm = mirrorWorldPos.dot(mirrorWorldZ);
+ BGE_Scalar mirrorPlaneDTerm = mirrorWorldPos.dot(mirrorWorldZ);
// compute distance of observer to mirror = D - observerPos . normal
- MT_Scalar observerDistance = mirrorPlaneDTerm - observerWorldPos.dot(mirrorWorldZ);
+ BGE_Scalar observerDistance = mirrorPlaneDTerm - observerWorldPos.dot(mirrorWorldZ);
// if distance < 0.01 => observer is on wrong side of mirror, don't render
if (observerDistance < 0.01f)
return;
// set camera world position = observerPos + normal * 2 * distance
- MT_Point3 cameraWorldPos = observerWorldPos + (MT_Scalar(2.0)*observerDistance)*mirrorWorldZ;
+ BGE_Vector3 cameraWorldPos = observerWorldPos + (BGE_Scalar(2.0)*observerDistance)*mirrorWorldZ;
m_camera->GetSGNode()->SetLocalPosition(cameraWorldPos);
// set camera orientation: z=normal, y=mirror_up in world space, x= y x z
- MT_Vector3 mirrorWorldY = mirrorObjWorldOri * m_mirrorY;
- MT_Vector3 mirrorWorldX = mirrorObjWorldOri * m_mirrorX;
- MT_Matrix3x3 cameraWorldOri(
+ BGE_Vector3 mirrorWorldY = mirrorObjWorldOri * m_mirrorY;
+ BGE_Vector3 mirrorWorldX = mirrorObjWorldOri * m_mirrorX;
+ BGE_Matrix3 cameraWorldOri(
mirrorWorldX[0], mirrorWorldY[0], mirrorWorldZ[0],
mirrorWorldX[1], mirrorWorldY[1], mirrorWorldZ[1],
mirrorWorldX[2], mirrorWorldY[2], mirrorWorldZ[2]);
@@ -150,12 +150,12 @@
m_camera->GetSGNode()->UpdateWorldData(0.0);
// compute camera frustrum:
// get position of mirror relative to camera: offset = mirrorPos-cameraPos
- MT_Vector3 mirrorOffset = mirrorWorldPos - cameraWorldPos;
+ BGE_Vector3 mirrorOffset = mirrorWorldPos - cameraWorldPos;
// convert to camera orientation
mirrorOffset = mirrorOffset * cameraWorldOri;
// scale mirror size to world scale:
// get closest local axis for mirror Y and X axis and scale height and width by local axis scale
- MT_Scalar x, y;
+ BGE_Scalar x, y;
x = fabs(m_mirrorY[0]);
y = fabs(m_mirrorY[1]);
float height = (x > y) ?
@@ -198,7 +198,7 @@
{
// frustrum was computed above
// get frustrum matrix and set projection matrix
- MT_Matrix4x4 projmat = m_rasterizer->GetFrustumMatrix(
+ BGE_Matrix4 projmat = m_rasterizer->GetFrustumMatrix(
frustrum.x1, frustrum.x2, frustrum.y1, frustrum.y2, frustrum.camnear, frustrum.camfar);
m_camera->SetProjectionMatrix(projmat);
@@ -213,7 +213,7 @@
float farfrust = m_camera->GetCameraFar();
float aspect_ratio = 1.0f;
Scene *blenderScene = m_scene->GetBlenderScene();
- MT_Matrix4x4 projmat;
+ BGE_Matrix4 projmat;
// compute the aspect ratio from frame blender scene settings so that render to texture
// works the same in Blender and in Blender player
@@ -247,8 +247,8 @@
m_camera->SetProjectionMatrix(projmat);
}
- MT_Transform camtrans(m_camera->GetWorldToCamera());
- MT_Matrix4x4 viewmat(camtrans);
+ BGE_Transform camtrans(m_camera->GetWorldToCamera());
+ BGE_Matrix4 viewmat(camtrans);
m_rasterizer->SetViewMatrix(viewmat, m_camera->NodeGetWorldOrientation(), m_camera->NodeGetWorldPosition(), m_camera->GetCameraData()->m_perspective);
m_camera->SetModelviewMatrix(viewmat);
Modified: branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.h
===================================================================
--- branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.h 2010-04-03 17:38:43 UTC (rev 27975)
+++ branches/bge_eigen2/source/gameengine/VideoTexture/ImageRender.h 2010-04-03 19:19:32 UTC (rev 27976)
@@ -72,10 +72,10 @@
float m_clip; // clipping distance
float m_mirrorHalfWidth; // mirror width in mirror space
float m_mirrorHalfHeight; // mirror height in mirror space
- MT_Point3 m_mirrorPos; // mirror center position in local space
- MT_Vector3 m_mirrorZ; // mirror Z axis in local space
- MT_Vector3 m_mirrorY; // mirror Y axis in local space
- MT_Vector3 m_mirrorX; // mirror X axis in local space
+ BGE_Vector3 m_mirrorPos; // mirror center position in local space
+ BGE_Vector3 m_mirrorZ; // mirror Z axis in local space
+ BGE_Vector3 m_mirrorY; // mirror Y axis in local space
+ BGE_Vector3 m_mirrorX; // mirror X axis in local space
/// canvas
RAS_ICanvas* m_canvas;
/// rasterizer
More information about the Bf-blender-cvs
mailing list