GRAUX Ludovic (LUDOVIC.GRAUX++at++siege.aerospatiale.fr)
Wed, 29 May 1996 11:02:08 +0200
look at this : i specify a front and a back material, without
forgetting to disable the cullface mode,
and performer seems to ignore my back material, and apply the
front material to both the sides of my square.
could you have a look on my piece of program.
help
Mike
-------------------------------------------------------------
#include <Performer/pr/pfGeoSet.h>
#include <Performer/pr/pfGeoState.h>
#include <Performer/pr/pfMaterial.h>
#include <Performer/pf/pfNode.h>
#include <Performer/pf/pfLightSource.h>
#include <Performer/pfdu.h>
pfNode *CreateCarre(void);
pfNode*
CreateTruc(void)
<
static void *arena = pfGetSharedArena();
//Les etoiles
pfNode *Starsf = pfdLoadFile("/usr/share/Performer/data/3010.star");
pfMatrix mats;
mats.makeScale(100.0f, 100.0f, 100.0f);
pfSCS *scsStars = new pfSCS(mats);
scsStars->addChild(Starsf);
pfNode *Stars = scsStars;
pfSphere sph;
Stars->getBound(&sph);
sph.radius /= 10;
Stars->setBound(&sph, PFBOUND_STATIC);
// Cree la source de lumiere, et l'attache a la scene
pfLightSource *Lsoleil = new pfLightSource;
Lsoleil->setColor(PFLT_DIFFUSE, 1.0f, 1.0f, 0.8f);
Lsoleil->setColor(PFLT_AMBIENT, 0.0f, 0.0f, 0.0f);
Lsoleil->setPos(-90.0f, -50.0f, 30.0f, 0.0f);
Lsoleil->on(); // And The Light Was.
pfNode *carre = CreateCarre();
pfGroup *ret = new pfGroup;
ret->addChild(Stars);
ret->addChild(Lsoleil);
ret->addChild(carre);
return ret;
>
pfNode*
CreateCarre(void)
<
static void *arena = pfGetSharedArena();
pfGeoSet *gset1 = pfdNewCarre(arena);
pfGeoState *gstate1 = new(arena) pfGeoState;
pfMaterial *backmtl = new(arena) pfMaterial;
backmtl->setColor(PFMTL_EMISSION, 0.0f, 1.0f, 1.0f);
gstate1->setMode(PFSTATE_ENLIGHTING, PF_ON);
gstate1->setAttr(PFSTATE_BACKMTL, backmtl);
pfMaterial *frontmtl = new(arena) pfMaterial;
frontmtl->setColor(PFMTL_DIFFUSE, 1.0f, 0.0f, 0.0f);
gstate1->setAttr(PFSTATE_FRONTMTL, frontmtl);
gstate1->setMode(PFSTATE_CULLFACE, PFCF_OFF);
gset1->setGState(gstate1);
pfGeode *geode1 = new pfGeode;
geode1->addGSet(gset1);
return geode1;
>
===================================List Archives, FAQ, FTP: http://www.sgi.com/Technology/Performer.html
Submissions: info-performer++at++sgi.com
Admin. requests: info-performer-request++at++sgi.com
This archive was generated by hypermail 2.0b2 on Mon Aug 10 1998 - 17:52:55 PDT