From: Mattias Roupe (vx7roupe++at++hotmail.com)
Date: 10/31/2000 10:46:04
Hi pfworld,
I have problem to get my loaded geometry (gset) in to flux. I have used
pfdBuilder to generate my geometry.
I have tryed to modefy morph_engine.c but I think that my problem is that i
can't get my coords (gset) in to flux.
I have tryed ...
pfGetGSetAttrLists(gset,PFGS_COORD3, (void**)&coords, &icoords);
coord_flux = pfNewFlux(pfGetSize(coords), PFFLYX_DEFAULT_NUM_BUFFERS,ARENA);
... but no results. ;-(
Is it my "geoloader" that are wrong ?
Where does pfdBuilder put the geoSet and my coords ?
Hers are some of the "geoloader"-code.
...
if ((vizFile = pfdOpenFile(fileName)) == NULL)
return NULL;
/* allocate primitive buffer */
prim = pfdNewGeom(3);
group = pfNewGroup();
gstate = pfNewGState(NULL);
mtl = (pfMaterial*)pfdGetTemplateObject(pfGetMtlClassType());
pfMtlColor(mtl, PFMTL_AMBIENT, 0.0f, 0.0f, 0.0f);
pfMtlAlpha(mtl, 0.5f);
pfMtlColorMode(mtl,PFMTL_BOTH, PFMTL_CMODE_AD);
lm=pfNewLModel(NULL);
pfLModelAmbient(lm, 0.0f, 0.0f, 0.0f);
pfLModelTwoSide(lm, PF_ON);
/* Load Smoke texture */
tex = pfNewTex(NULL);
pfLoadTexFile(tex,
"/usr/share/Performer/src/lib/libpfdb/libpfviz/smokeviz.rgb");
pfTexRepeat(tex,PFTEX_WRAP_S ,PFTEX_REPEAT);
pfTexRepeat(tex,PFTEX_WRAP_T ,PFTEX_REPEAT);
tgen = pfNewTGen(NULL);
pfTGenMode(tgen, PF_S,PFTG_SPHERE_MAP);
pfTGenMode(tgen, PF_T,PFTG_SPHERE_MAP);
tenv = pfNewTEnv(NULL);
pfTEnvMode(tenv, PFTE_BLEND);
pfTEnvBlendColor(tenv, 1.0f, 1.0f, 1.0f, 0.6f);
/* Setup converter for viz-file */
pfdBldrStateAttr(PFSTATE_FRONTMTL, mtl);
pfdBldrStateAttr(PFSTATE_TEXTURE,tex);
pfdBldrStateAttr(PFSTATE_TEXENV,tenv);
pfdBldrStateAttr(PFSTATE_TEXGEN,tgen);
pfdBldrStateAttr(PFSTATE_ENLIGHTING,lm);
pfdBldrStateMode(PFSTATE_ENTEXTURE, PF_ON);
pfdBldrStateMode(PFSTATE_ENTEXGEN, PF_ON);
pfdBldrStateMode(PFSTATE_LIGHTMODEL, PF_ON);
pfdBldrStateMode(PFSTATE_CULLFACE, PFCF_OFF);
/* specify control data */
prim->numVerts = 3;
prim->primtype = PFGS_POLYS;
prim->nbind = PFGS_PER_VERTEX;
prim->cbind = PFGS_PER_PRIM;
prim->tbind = PFGS_PER_VERTEX;
/* read triangles from ".viz" file */
while (!feof(vizFile))
{
/* read vertices from ".viz" file
*-----------------------------------------*/
for (v = 0; v < 3; v++)
{
/* read vertex data
*-----------------------------*/
fscanf(vizFile, "%f %f %f",
&prim->coords[v][PF_X],
&prim->coords[v][PF_Y],
&prim->coords[v][PF_Z]);
}
/* add this line to builder
*-----------------------------------------*/
pfdAddBldrGeom(prim,1);
++numTris;
}
/* close ".viz" file*/
fclose(vizFile);
/* release primitive buffer */
pfdDelGeom(prim);
/* get a complete scene graph representing file's primitives*/
node = pfdBuild();
...
Thank you fore your help.
Regards,
Mattias
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
Share information about yourself, create your own public profile at
http://profiles.msn.com.
This archive was generated by hypermail 2b29 : Tue Oct 31 2000 - 10:46:46 PST