Author Topic: GROS BUG sur Mesh  (Read 2717 times)

0 Members and 1 Guest are viewing this topic.

ougalougou

  • Thug
  • *
  • Posts: 18
GROS BUG sur Mesh
« on: December 15, 2005, 04:27:47 AM »
J'ai crée un model "jumbo" qui a normalement 2 sous-mesh et je rend visible seulement le mesh "homme" qui n'apparait pas mais c'est le mesh "Sphere" qui apparait.
Il me semble que le bug dépend de la taille du mesh aussi (construire un model avec seulement le mesh "homme").
En tout cas mon projet est pour l'instant à l'arrêt car je ne sait pes sur quel sentier je m'aventure :roll: !!
Merci de résoudre le problème  car j'ai besoin d'accéder aux vertices de mon mesh "homme"!!
Au fait , des bugs se produisent sur l'attribut "Render" dans ce cas bien précis (changer les valeurs!!).Gros travail en perspective, à moins que je me trompe :wink:
Voici la source :
http://perso.wanadoo.fr/d.ovar/hyperion/demos/squelette/mesh.zip

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2357
    • oZone3D.Net
GROS BUG sur Mesh
« Reply #1 on: December 15, 2005, 09:34:04 AM »
Tu as juste fait une petite erreur. Ton code est le suivant:

Code: [Select]

<model name="jumbo" filename="man.3ds"
       texturing="TRUE" lighting="TRUE" render="TRUE" >
<scale x="5" y="5" z="5" />
<remove_child name="homme" />
</model>  

<mesh name="homme" shape_type="MODEL_SUB_MESH"
      display_tripod="FALSE" parent_name="jumbo" render="TRUE">
<position x="50.0" y="0.0" z="0.0" />
<pivot_position x="0.0" y="0.0" z="0.0" />
</mesh>


L'erreur se situe au niveau du node model ou tu enlève l'enfant "homme". Ce sous-mesh est détaché de l'arbre de scene et se retrouve dans la liste des orphelins. Tant qu'il fait parti des orphelins, un objet ne peut pas être rendu. Tu dois ensuite le mettre enfant d'un objet soit dans le script XML soit par LUA.
Ton n'affiche que la sphere car c'est le seul mesh restant au niveau du modèle.

Voila le code que je propose pour n'afficher que le sous-mesh "homme":

Code: [Select]

<model name="jumbo" filename="man.3ds"
       texturing="TRUE" lighting="TRUE" render="TRUE" >
<scale x="5" y="5" z="5" />
</model>  

<mesh name="Sphere" shape_type="MODEL_SUB_MESH"
      parent_name="jumbo" render="FALSE" />


En gros il suffit de mettre le render state de la sphere à false.

ougalougou

  • Thug
  • *
  • Posts: 18
GROS BUG sur Mesh
« Reply #2 on: December 15, 2005, 10:49:53 PM »
Bon , je pense que j'ai finalement compris le fonctionnement!!
c'est à dire :
1 ere methode (avec du XML):
<model name="jumbo" filename="man.3ds"
       texturing="TRUE" lighting="TRUE" render="TRUE" >
   <scale x="5" y="5" z="5" />
</model>  

<mesh name="Sphere" shape_type="MODEL_SUB_MESH"
      parent_name="jumbo" render="FALSE" />
on fait comme tu as dit (on affiche tout puis on fait disparaitre ce qui nous interesse pas.

2 eme méthode :(code xml+lua):
<model name="jumbo" filename="man.3ds"   texturing="TRUE" lighting="TRUE"  render="FALSE">
      <scale x="5" y="5" z="5" />
</model>  
<mesh name="homme"  shape_type="MODEL_SUB_MESH" display_tripod="FALSE" parent_name="jumbo" render="FALSE">
<position x="50.0" y="0.0" z="0.0" />
   <pivot_position x="0.0" y="0.0" z="0.0" />
</mesh>   
on n'affiche rien dans le code XML puis
<script name="updateScene_01" filename="" active="TRUE" run_mode="EXECUTE_ONCE" >
   <raw_data><![CDATA[   
        id = HYP_Object.Clone( "homme" ,"homme1");
      HYP_Object.SetRenderState( id ,1  );

      ]]></raw_data>
</script>    
on n'affiche ce qui nous interesse dans le code lua.
J'appelle cela les conventions (si tu ne fais pas comme cela tu te plantes :cry:
Voici un cas ou on peut se planter :
<model name="jumbo" filename="man.3ds"   texturing="TRUE" lighting="TRUE"  render="FALSE">
      <scale x="5" y="5" z="5" />
</model>  
<mesh name="homme"  shape_type="MODEL_SUB_MESH" display_tripod="FALSE" parent_name="jumbo" render="TRUE">
<position x="50.0" y="0.0" z="0.0" />
   <pivot_position x="0.0" y="0.0" z="0.0" />
</mesh>   
ce code n'affice rien à l'écran.A méditer :roll: