|
From: <sgv...@us...> - 2009-12-17 22:21:57
|
Revision: 124
http://simspark.svn.sourceforge.net/simspark/?rev=124&view=rev
Author: sgvandijk
Date: 2009-12-17 22:21:49 +0000 (Thu, 17 Dec 2009)
Log Message:
-----------
- Render transparent objects after solid objects
- Comment out Accelerometer for now
Modified Paths:
--------------
trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg
trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg
trunk/spark/lib/kerosin/renderserver/rendernode.cpp
trunk/spark/lib/kerosin/renderserver/rendernode.h
trunk/spark/lib/kerosin/renderserver/rendernode_c.cpp
trunk/spark/lib/kerosin/renderserver/renderserver.cpp
trunk/spark/lib/kerosin/renderserver/renderserver.h
trunk/spark/lib/kerosin/sceneserver/staticmesh_c.cpp
trunk/spark/plugin/sparkmonitor/sparkmonitor.cpp
Modified: trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg
===================================================================
--- trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/rcssserver3d/data/rsg/agent/nao/goal.rsg 2009-12-17 22:21:49 UTC (rev 124)
@@ -46,9 +46,10 @@
(setLocalPos $GoalHalfDepth 0.0 (eval -1 * $GoalHalfHeight))
(setLocalRotation 90 90 0)
(nd StaticMesh
- (load $GoalObj)
- (setScale $ObjWidth $ObjWidth $ObjWidth)
- )
+ (load $GoalObj)
+ (setScale $ObjWidth $ObjWidth $ObjWidth)
+ (setTransparent)
+ )
)
;; create the left goal post
Modified: trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg
===================================================================
--- trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/rcssserver3d/data/rsg/agent/nao/nao.rsg 2009-12-17 22:21:49 UTC (rev 124)
@@ -71,7 +71,7 @@
)
(nd GyroRatePerceptor (setName torso))
- (nd Accelerometer (setName torso))
+ ;(nd Accelerometer (setName torso))
;(nd HMDPPerceptor)
;(nd HMDPEffector)
Modified: trunk/spark/lib/kerosin/renderserver/rendernode.cpp
===================================================================
--- trunk/spark/lib/kerosin/renderserver/rendernode.cpp 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/spark/lib/kerosin/renderserver/rendernode.cpp 2009-12-17 22:21:49 UTC (rev 124)
@@ -26,10 +26,16 @@
using namespace kerosin;
RenderNode::RenderNode()
- : BaseNode()
+ : BaseNode(),
+ mTransparent(false)
{
}
RenderNode::~RenderNode()
{
}
+
+void RenderNode::SetTransparent()
+{
+ mTransparent = true;
+}
Modified: trunk/spark/lib/kerosin/renderserver/rendernode.h
===================================================================
--- trunk/spark/lib/kerosin/renderserver/rendernode.h 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/spark/lib/kerosin/renderserver/rendernode.h 2009-12-17 22:21:49 UTC (rev 124)
@@ -42,6 +42,11 @@
/** renders the node */
virtual void RenderInternal() = 0;
+
+ bool IsTransparent() { return mTransparent; }
+ void SetTransparent();
+private:
+ bool mTransparent;
};
DECLARE_ABSTRACTCLASS(RenderNode);
Modified: trunk/spark/lib/kerosin/renderserver/rendernode_c.cpp
===================================================================
--- trunk/spark/lib/kerosin/renderserver/rendernode_c.cpp 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/spark/lib/kerosin/renderserver/rendernode_c.cpp 2009-12-17 22:21:49 UTC (rev 124)
@@ -23,7 +23,14 @@
using namespace kerosin;
+FUNCTION(RenderNode,setTransparent)
+{
+ obj->SetTransparent();
+ return true;
+}
+
void CLASS(RenderNode)::DefineClass()
{
DEFINE_BASECLASS(oxygen/BaseNode);
+ DEFINE_FUNCTION(setTransparent);
}
Modified: trunk/spark/lib/kerosin/renderserver/renderserver.cpp
===================================================================
--- trunk/spark/lib/kerosin/renderserver/renderserver.cpp 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/spark/lib/kerosin/renderserver/renderserver.cpp 2009-12-17 22:21:49 UTC (rev 124)
@@ -123,7 +123,8 @@
}
// standard rendering
- RenderScene(mActiveScene);
+ RenderScene(mActiveScene, 0);
+ RenderScene(mActiveScene, 1);
// reset GL lights
glDisable(GL_LIGHTING);
@@ -244,7 +245,7 @@
}
void
-RenderServer::RenderScene(boost::shared_ptr<BaseNode> node)
+RenderServer::RenderScene(boost::shared_ptr<BaseNode> node, unsigned pass)
{
#if 0
shared_ptr<SphereCollider> collider = shared_dynamic_cast<SphereCollider>(node);
@@ -254,7 +255,9 @@
}
#endif
shared_ptr<RenderNode> renderNode = shared_dynamic_cast<RenderNode>(node);
- if (renderNode.get() != 0)
+ if (renderNode.get() != 0 &&
+ ((pass == 0 && !renderNode->IsTransparent()) || (pass == 1 && renderNode->IsTransparent()))
+ )
{
glPushMatrix();
@@ -268,7 +271,7 @@
glMultMatrixf(node->GetWorldTransform().m);
- renderNode->RenderInternal();
+ renderNode->RenderInternal();
if (mEnablePicking)
{
@@ -294,7 +297,7 @@
continue;
}
- RenderScene(node);
+ RenderScene(node, pass);
}
}
Modified: trunk/spark/lib/kerosin/renderserver/renderserver.h
===================================================================
--- trunk/spark/lib/kerosin/renderserver/renderserver.h 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/spark/lib/kerosin/renderserver/renderserver.h 2009-12-17 22:21:49 UTC (rev 124)
@@ -105,7 +105,7 @@
/** render a scene recursively.
\param node the scene base node
*/
- void RenderScene(boost::shared_ptr<oxygen::BaseNode> node);
+ void RenderScene(boost::shared_ptr<oxygen::BaseNode> node, unsigned pass);
/** sets the OpenGl view parameters for a camera
*/
Modified: trunk/spark/lib/kerosin/sceneserver/staticmesh_c.cpp
===================================================================
--- trunk/spark/lib/kerosin/sceneserver/staticmesh_c.cpp 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/spark/lib/kerosin/sceneserver/staticmesh_c.cpp 2009-12-17 22:21:49 UTC (rev 124)
@@ -144,6 +144,12 @@
return true;
}
+FUNCTION(RenderNode,setTransparent)
+{
+ obj->SetTransparent();
+ return true;
+}
+
void CLASS(StaticMesh)::DefineClass()
{
DEFINE_BASECLASS(oxygen/BaseNode);
@@ -154,4 +160,5 @@
DEFINE_FUNCTION(setExternalMeshName)
DEFINE_FUNCTION(setExternalMeshScale)
DEFINE_FUNCTION(resetMaterials)
+ DEFINE_FUNCTION(setTransparent);
}
Modified: trunk/spark/plugin/sparkmonitor/sparkmonitor.cpp
===================================================================
--- trunk/spark/plugin/sparkmonitor/sparkmonitor.cpp 2009-12-17 08:11:25 UTC (rev 123)
+++ trunk/spark/plugin/sparkmonitor/sparkmonitor.cpp 2009-12-17 22:21:49 UTC (rev 124)
@@ -249,6 +249,11 @@
ss << "(nd StaticMesh";
}
+ if (mesh->IsTransparent())
+ {
+ ss << " (setTransparent)";
+ }
+
ss << " (load " << mesh->GetMeshName();
const ParameterList& params = mesh->GetMeshParameter();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|