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. |