bon je suis partie de la méthode d'izguit pour faire une sphère

euh ... faut juste remplacé le "((btSphereShape*)Shape)->getRadius()" par le radius que vous voulez

il y a le principe pour les 3 axe m'enfin je trouve le dernier inutile ..... ( Y )
float precision;
irr::s32 dist = position.getDistanceFrom(device->getSceneManager()->getActiveCamera()->getPosition());//position correspond .. ba a un vector3df de la position du node
if(dist<99) precision = .2f;
else if(dist>100&&dist<301) precision = .5f;
else if(dist>300&&dist<801) precision = 1.f;
else if(dist>800&&dist<1501) precision = 1.5f;
else if(dist>1500&&dist<2501)precision = 2.5f;
else precision = 3.f;
float radius = ((btSphereShape*)Shape)->getRadius()+.5f;
for(float sangle=.2f;sangle<PI; sangle += radius/8.33333325)//nombre de tour équivalent a la taille de l'obj
{
irr::core::vector3df start;
float _sin = sin(sangle);
end.X = ((cos(.0f)*radius*_sin)+position.X+rotation.X);
end.Y = ((sin(.0f)*radius*_sin)+position.Y+rotation.Y);
end.Z = ((radius*cos(sangle))+position.Z+rotation.Z);
begin = end;
for(float angle = .0f;angle<PI*2.08f; angle += precision)//X
{
end.X = ((cos(angle)*radius*_sin)+position.X+rotation.X);
end.Y = ((sin(angle)*radius*_sin)+position.Y+rotation.Y);
end.Z = ((radius*cos(sangle))+position.Z+rotation.Z);
device->getVideoDriver()->draw3DLine(begin,end,debugColor);
begin = end;
}
end.Y = ((cos(.0f)*radius*_sin)+position.Y+rotation.Y);
end.Z = ((sin(.0f)*radius*_sin)+position.Z+rotation.Z);
end.X = ((radius*cos(sangle))+position.X+rotation.X);
begin = end;
for(float angle = .0f;angle<PI*2.08f; angle += precision)//Z
{
end.Y = ((cos(angle)*radius*_sin)+position.Y+rotation.Y);
end.Z = ((sin(angle)*radius*_sin)+position.Z+rotation.Z);
end.X = ((radius*cos(sangle))+position.X+rotation.X);
device->getVideoDriver()->draw3DLine(begin,end,debugColor);
begin = end;
}
end.X = ((sin(.0f)*radius*_sin)+position.X+rotation.X);
end.Y = ((radius*cos(sangle))+position.Y+rotation.Y);
end.Z = ((cos(.0f)*radius*_sin)+position.Z+rotation.Z);
begin = end;
for(float angle = .0f;angle<PI*2.08f; angle += precision)//Y
{
end.X = ((sin(angle)*radius*_sin)+position.X+rotation.X);
end.Y = ((radius*cos(sangle))+position.Y+rotation.Y);
end.Z = ((cos(angle)*radius*_sin)+position.Z+rotation.Z);
device->getVideoDriver()->draw3DLine(begin,end,debugColor);
begin = end;
}
}
voili voilou

ps : je voudrais rajouté la rotation, mais je ne sais pas trop comment mis prendre ...
