[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27704] branches/bge_eigen2/source/ gameengine: Some work on the rasterizer.
Mitchell Stokes
mogurijin at gmail.com
Wed Mar 24 04:23:03 CET 2010
Revision: 27704
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27704
Author: moguri
Date: 2010-03-24 04:23:00 +0100 (Wed, 24 Mar 2010)
Log Message:
-----------
Some work on the rasterizer. It's still not compiling, but it's using BGE_* functions now.
Also, I've disabled vectorization for Eigen2 at the moment. First we get things ported and working again, then worry about getting the vectorization working.
Modified Paths:
--------------
branches/bge_eigen2/source/gameengine/Expressions/KX_EigenMatrixAddons.h
branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTransformAddons.h
branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTypes.h
branches/bge_eigen2/source/gameengine/Rasterizer/CMakeLists.txt
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.cpp
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IRasterizer.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IRenderTools.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_LightObject.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_MaterialBucket.cpp
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_MaterialBucket.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_MeshObject.cpp
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_MeshObject.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/CMakeLists.txt
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.cpp
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_OpenGLRasterizer.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_OpenGLRasterizer/RAS_VAOpenGLRasterizer.cpp
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_TexMatrix.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_TexVert.cpp
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_TexVert.h
branches/bge_eigen2/source/gameengine/Rasterizer/RAS_texmatrix.cpp
Modified: branches/bge_eigen2/source/gameengine/Expressions/KX_EigenMatrixAddons.h
===================================================================
--- branches/bge_eigen2/source/gameengine/Expressions/KX_EigenMatrixAddons.h 2010-03-23 23:36:24 UTC (rev 27703)
+++ branches/bge_eigen2/source/gameengine/Expressions/KX_EigenMatrixAddons.h 2010-03-24 03:23:00 UTC (rev 27704)
@@ -3,7 +3,7 @@
// XXX - stub
}
-inline void getValue(Scalar *m) const
+inline void getValue(_Scalar *m) const
{
// XXX -stub
}
Modified: branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTransformAddons.h
===================================================================
--- branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTransformAddons.h 2010-03-23 23:36:24 UTC (rev 27703)
+++ branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTransformAddons.h 2010-03-24 03:23:00 UTC (rev 27704)
@@ -1,5 +1,17 @@
-inline Eigen::Matrix<float, 3, 1> operator()(const Eigen::Matrix<float, 3, 1>) const
+inline Eigen::Matrix<_Scalar, 3, 1> operator()(const Eigen::Matrix<_Scalar, 3, 1>) const
{
// XXX - stub
- return Eigen::Matrix<float, 3, 1>(0, 0, 0);
+ return Eigen::Matrix<_Scalar, 3, 1>(0, 0, 0);
+}
+
+inline Eigen::Matrix<_Scalar, 3, 3>& getBasis()
+{
+ // XXX - stub
+ return Eigen::Matrix<_Scalar, 3, 3>::Identity();
+}
+
+inline const Eigen::Matrix<_Scalar, 3, 3>& getBasis() const
+{
+ // XXX - stub
+ return Eigen::Matrix<_Scalar, 3, 3>::Identity();
}
\ No newline at end of file
Modified: branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTypes.h
===================================================================
--- branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTypes.h 2010-03-23 23:36:24 UTC (rev 27703)
+++ branches/bge_eigen2/source/gameengine/Expressions/KX_EigenTypes.h 2010-03-24 03:23:00 UTC (rev 27704)
@@ -16,6 +16,9 @@
// Add some functions to Eigen::Matrix
#define EIGEN_MATRIX_PLUGIN "KX_EigenMatrixAddons.h"
+// Disable vectorization/alignment for now and deal with alignment issues later
+#define EIGEN_DONT_ALIGN
+
#include <Eigen/Core>
#include <Eigen/Geometry>
#include "KX_AlignedObjectArray.h"
@@ -30,7 +33,10 @@
typedef Eigen::Matrix<BGE_Scalar, 4, 1> BGE_Vector4;
typedef Eigen::Matrix<BGE_Scalar, 3, 3> BGE_Matrix3;
-typedef Eigen::Matrix<BGE_Scalar, 4, 4> BGE_Matrix4;
+//typedef Eigen::Matrix<BGE_Scalar, 4, 4> BGE_Matrix4;
+#define BGE_Matrix4 Eigen::Matrix<BGE_Scalar, 4, 4>
+#define BGE_CmMatrix4 BGE_Matrix4
+//typedef Eigen::Matrix<BGE_Scalar, 4, 4, Eigen::ColMajor> BGE_CmMatrix4;
typedef Eigen::Transform<BGE_Scalar, 3> BGE_Transform;
@@ -50,9 +56,12 @@
inline BGE_Scalar BGE_abs(BGE_Scalar x) { return fabs(x); }
-inline bool BGE_fuzzyZero(BGE_Scalar x) { return BGE_abs(x) < BGE_EPSILON; }
-inline bool BGE_fuzzyZero2(BGE_Scalar x) { return BGE_abs(x) < BGE_EPSILON2; }
+inline bool BGE_fuzzyZero(BGE_Scalar x) { return BGE_abs(x) < BGE_EPSILON; }
+inline bool BGE_fuzzyZero2(BGE_Scalar x) { return BGE_abs(x) < BGE_EPSILON2; }
+inline bool BGE_fuzzyEqual(BGE_Vector3, BGE_Vector3) { return false; } // XXX -stub
+inline bool BGE_fuzzyEqual(BGE_Vector2, BGE_Vector2) { return false; } // XXX -stub
+
inline BGE_Scalar BGE_radians(BGE_Scalar x) {
return x * BGE_RADS_PER_DEG;
}
Modified: branches/bge_eigen2/source/gameengine/Rasterizer/CMakeLists.txt
===================================================================
--- branches/bge_eigen2/source/gameengine/Rasterizer/CMakeLists.txt 2010-03-23 23:36:24 UTC (rev 27703)
+++ branches/bge_eigen2/source/gameengine/Rasterizer/CMakeLists.txt 2010-03-24 03:23:00 UTC (rev 27704)
@@ -30,6 +30,7 @@
.
../../../source/kernel/gen_system
../../../source/blender/makesdna
+ ../../../source/gameengine/Expressions
../../../source/gameengine/SceneGraph
../../../source/gameengine/Ketsji
../../../intern/string
@@ -37,7 +38,6 @@
../../../extern/glew/include
../../../extern/Eigen2
../../../intern/guardedalloc
- ../Expressions
${PYTHON_INC}
)
Modified: branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.cpp
===================================================================
--- branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.cpp 2010-03-23 23:36:24 UTC (rev 27703)
+++ branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.cpp 2010-03-24 03:23:00 UTC (rev 27704)
@@ -32,6 +32,7 @@
#endif
#include "GEN_Map.h"
+#include "KX_EigenTypes.h"
#include "RAS_MaterialBucket.h"
#include "STR_HashedString.h"
#include "RAS_MeshObject.h"
@@ -48,18 +49,18 @@
struct RAS_BucketManager::sortedmeshslot
{
public:
- MT_Scalar m_z; /* depth */
+ BGE_Scalar m_z; /* depth */
RAS_MeshSlot *m_ms; /* mesh slot */
RAS_MaterialBucket *m_bucket; /* buck mesh slot came from */
sortedmeshslot() {}
- void set(RAS_MeshSlot *ms, RAS_MaterialBucket *bucket, const MT_Vector3& pnorm)
+ void set(RAS_MeshSlot *ms, RAS_MaterialBucket *bucket, const BGE_Vector3& pnorm)
{
// would be good to use the actual bounding box center instead
- MT_Point3 pos(ms->m_OpenGLMatrix[12], ms->m_OpenGLMatrix[13], ms->m_OpenGLMatrix[14]);
+ BGE_Vector3 pos(ms->m_OpenGLMatrix[12], ms->m_OpenGLMatrix[13], ms->m_OpenGLMatrix[14]);
- m_z = MT_dot(pnorm, pos);
+ m_z = pnorm.dot(pos);//BGE_dot(pnorm, pos);
m_ms = ms;
m_bucket = bucket;
}
@@ -102,7 +103,7 @@
m_AlphaBuckets.clear();
}
-void RAS_BucketManager::OrderBuckets(const MT_Transform& cameratrans, BucketList& buckets, vector<sortedmeshslot>& slots, bool alpha)
+void RAS_BucketManager::OrderBuckets(const BGE_Transform& cameratrans, BucketList& buckets, vector<sortedmeshslot>& slots, bool alpha)
{
BucketList::iterator bit;
list<RAS_MeshSlot>::iterator mit;
@@ -110,7 +111,7 @@
/* Camera's near plane equation: pnorm.dot(point) + pval,
* but we leave out pval since it's constant anyway */
- const MT_Vector3 pnorm(cameratrans.getBasis()[2]);
+ const BGE_Vector3 pnorm(cameratrans.getBasis()[2]);
for (bit = buckets.begin(); bit != buckets.end(); ++bit)
{
@@ -138,7 +139,7 @@
}
void RAS_BucketManager::RenderAlphaBuckets(
- const MT_Transform& cameratrans, RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools)
+ const BGE_Transform& cameratrans, RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools)
{
vector<sortedmeshslot> slots;
vector<sortedmeshslot>::iterator sit;
@@ -165,7 +166,7 @@
}
void RAS_BucketManager::RenderSolidBuckets(
- const MT_Transform& cameratrans, RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools)
+ const BGE_Transform& cameratrans, RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools)
{
BucketList::iterator bit;
@@ -223,7 +224,7 @@
}
void RAS_BucketManager::Renderbuckets(
- const MT_Transform& cameratrans, RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools)
+ const BGE_Transform& cameratrans, RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools)
{
/* beginning each frame, clear (texture/material) caching information */
rasty->ClearCachingInfo();
@@ -259,7 +260,7 @@
return bucket;
}
-void RAS_BucketManager::OptimizeBuckets(MT_Scalar distance)
+void RAS_BucketManager::OptimizeBuckets(BGE_Scalar distance)
{
BucketList::iterator bit;
Modified: branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.h
===================================================================
--- branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.h 2010-03-23 23:36:24 UTC (rev 27703)
+++ branches/bge_eigen2/source/gameengine/Rasterizer/RAS_BucketManager.h 2010-03-24 03:23:00 UTC (rev 27704)
@@ -31,7 +31,7 @@
#ifndef __RAS_BUCKETMANAGER
#define __RAS_BUCKETMANAGER
-#include "MT_Transform.h"
+#include "KX_EigenTypes.h"
#include "RAS_MaterialBucket.h"
#include "GEN_Map.h"
@@ -51,11 +51,11 @@
RAS_BucketManager();
virtual ~RAS_BucketManager();
- void Renderbuckets(const MT_Transform & cameratrans,
+ void Renderbuckets(const BGE_Transform & cameratrans,
RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools);
RAS_MaterialBucket* FindBucket(RAS_IPolyMaterial * material, bool &bucketCreated);
- void OptimizeBuckets(MT_Scalar distance);
+ void OptimizeBuckets(BGE_Scalar distance);
void ReleaseDisplayLists(RAS_IPolyMaterial * material = NULL);
void ReleaseMaterials(RAS_IPolyMaterial * material = NULL);
@@ -76,11 +76,11 @@
private:
- void OrderBuckets(const MT_Transform& cameratrans, BucketList& buckets, vector<sortedmeshslot>& slots, bool alpha);
+ void OrderBuckets(const BGE_Transform& cameratrans, BucketList& buckets, vector<sortedmeshslot>& slots, bool alpha);
- void RenderSolidBuckets(const MT_Transform& cameratrans,
+ void RenderSolidBuckets(const BGE_Transform& cameratrans,
RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools);
- void RenderAlphaBuckets(const MT_Transform& cameratrans,
+ void RenderAlphaBuckets(const BGE_Transform& cameratrans,
RAS_IRasterizer* rasty, RAS_IRenderTools* rendertools);
#ifdef WITH_CXX_GUARDEDALLOC
Modified: branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp
===================================================================
--- branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp 2010-03-23 23:36:24 UTC (rev 27703)
+++ branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IPolygonMaterial.cpp 2010-03-24 03:23:00 UTC (rev 27704)
@@ -62,9 +62,9 @@
m_flag = 0;
m_multimode = 0;
m_shininess = 35.0;
- m_specular.setValue(0.5,0.5,0.5);
+ m_specular = BGE_Vector3(0.5,0.5,0.5);
m_specularity = 1.0;
- m_diffuse.setValue(0.5,0.5,0.5);
+ m_diffuse = BGE_Vector3(0.5,0.5,0.5);
}
RAS_IPolyMaterial::RAS_IPolyMaterial()
@@ -83,9 +83,9 @@
m_multimode(0)
{
m_shininess = 35.0;
- m_specular = MT_Vector3(0.5,0.5,0.5);
+ m_specular = BGE_Vector3(0.5,0.5,0.5);
m_specularity = 1.0;
- m_diffuse = MT_Vector3(0.5,0.5,0.5);
+ m_diffuse = BGE_Vector3(0.5,0.5,0.5);
}
RAS_IPolyMaterial::RAS_IPolyMaterial(const STR_String& texname,
@@ -113,9 +113,9 @@
m_multimode(0)
{
m_shininess = 35.0;
- m_specular = MT_Vector3(0.5,0.5,0.5);
+ m_specular = BGE_Vector3(0.5,0.5,0.5);
m_specularity = 1.0;
- m_diffuse = MT_Vector3(0.5,0.5,0.5);
+ m_diffuse = BGE_Vector3(0.5,0.5,0.5);
}
Modified: branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h
===================================================================
--- branches/bge_eigen2/source/gameengine/Rasterizer/RAS_IPolygonMaterial.h 2010-03-23 23:36:24 UTC (rev 27703)
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list