import d'objets 3d
import d'objets 3d
Bonjour,
voila, je suis en train de créer une application de configuration de meuble, et je me trouve face à un léger soucis >_< :
je possède une base de données avec notamment les objets 3d (.max ou . obj) hébergés sur le serveur, dans l'appli on ne voit qu'un objet à la fois, du coup, je ne vais pas charger l'ensemble des objets 3d au lancement, ça serait trop long, je cherche des solutions pour pouvoir charger les objets en runtime et les ajouter à la scène, un par un lors que l'on en a besoin.
Via WWW on peut facilement avoir le contenu de l'objet 3d mais malheureusement il n'y a pas de WWW.mesh qui est en fait ce que je cherche, de même ModelImporter ne fonctionne pas car il ne me permet pas de récupérer l'objet depuis une url.
La question étant donc : dois-je créer/améliorer un script d'import complet ou il y a t'il une méthode plus simple pour importer des objet 3d ?
merci d'avance :p
PS: je tiens à préciser que je ne suis sur unity que depuis peu de temps et que je ne connais pas la doc par coeur ^^ donc j'ai surement sauté quelques classes et fonctions
voila, je suis en train de créer une application de configuration de meuble, et je me trouve face à un léger soucis >_< :
je possède une base de données avec notamment les objets 3d (.max ou . obj) hébergés sur le serveur, dans l'appli on ne voit qu'un objet à la fois, du coup, je ne vais pas charger l'ensemble des objets 3d au lancement, ça serait trop long, je cherche des solutions pour pouvoir charger les objets en runtime et les ajouter à la scène, un par un lors que l'on en a besoin.
Via WWW on peut facilement avoir le contenu de l'objet 3d mais malheureusement il n'y a pas de WWW.mesh qui est en fait ce que je cherche, de même ModelImporter ne fonctionne pas car il ne me permet pas de récupérer l'objet depuis une url.
La question étant donc : dois-je créer/améliorer un script d'import complet ou il y a t'il une méthode plus simple pour importer des objet 3d ?
merci d'avance :p
PS: je tiens à préciser que je ne suis sur unity que depuis peu de temps et que je ne connais pas la doc par coeur ^^ donc j'ai surement sauté quelques classes et fonctions
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻
Re: import d'objets 3d
A moins de recoder un importeur a la main tu ne peux pas importer des models au runtime.
Mais tu peux creer un AssetBundle par model, et loader un AssetBundle avec la classe WWW.
http://docs.unity3d.com/Documentation/S ... undle.html
Sinon tu peux aussi placer tout tes models dans le repertoire Resources du projet et utiliser Resources.Load().
Ca évite de charger tout les models au chargement d'une scene. (Tu les charges que quand tu en as besoin)
Par contre tu ne pourras pas rajouter de models une fois l'application compilée.
http://docs.unity3d.com/Documentation/S ... urces.html
Mais tu peux creer un AssetBundle par model, et loader un AssetBundle avec la classe WWW.
http://docs.unity3d.com/Documentation/S ... undle.html
Sinon tu peux aussi placer tout tes models dans le repertoire Resources du projet et utiliser Resources.Load().
Ca évite de charger tout les models au chargement d'une scene. (Tu les charges que quand tu en as besoin)
Par contre tu ne pourras pas rajouter de models une fois l'application compilée.
http://docs.unity3d.com/Documentation/S ... urces.html
Re: import d'objets 3d
merci de ta réponse ^^
Bon j'avais déjà vu assetbundle mais j'ai besoin de unity pro T_T ( bon de toute façon je vais certainement devoir le prendre ^^)
et ça me semble effectivement le moyen le plus efficace >_<, dans ce cas j'aimerais savoir si il est possible de faire un assetbundle via script ou si on ne peut faire l'export que par l'éditeur.
(ce qui voudrais dire que pour chaque objet 3D ajouté sur le serveur il faut que je le dl, l'export en .unity3d et l'upload à nouveau)
s'il n'y a pas moyen de faire une conversion objet 3D --> .unity3d , j'ai plus qu'à revenir sur la création d'un script d'import ^^'
Bon j'avais déjà vu assetbundle mais j'ai besoin de unity pro T_T ( bon de toute façon je vais certainement devoir le prendre ^^)
et ça me semble effectivement le moyen le plus efficace >_<, dans ce cas j'aimerais savoir si il est possible de faire un assetbundle via script ou si on ne peut faire l'export que par l'éditeur.
(ce qui voudrais dire que pour chaque objet 3D ajouté sur le serveur il faut que je le dl, l'export en .unity3d et l'upload à nouveau)
s'il n'y a pas moyen de faire une conversion objet 3D --> .unity3d , j'ai plus qu'à revenir sur la création d'un script d'import ^^'
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻
Re: import d'objets 3d
Les classes qui permettent de compiler un assetBundle sont des classes Editor.
Donc pas possible de les utiliser au runtime.
Donc pas possible de les utiliser au runtime.
oui(ce qui voudrais dire que pour chaque objet 3D ajouté sur le serveur il faut que je le dl, l'export en .unity3d et l'upload à nouveau)
Re: import d'objets 3d
T_T pas d'assetbundle donc ...
Bon ben maintenant j'ai du pain sur la planche ^^'
merci bien pour ta rapidité
quand j'aurais fini le script d'import de fichier 3D ( ça va prendre un moment) je pense le mettre sur le forum, ce sera, je pense utile à pas mal de monde.
EDIT : je ne peux pas utiliser ressource.load car l'appli sera en webplayer ^^ et n'est pas sensé être built à chaque ajout d'objet
Bon ben maintenant j'ai du pain sur la planche ^^'
merci bien pour ta rapidité
quand j'aurais fini le script d'import de fichier 3D ( ça va prendre un moment) je pense le mettre sur le forum, ce sera, je pense utile à pas mal de monde.
EDIT : je ne peux pas utiliser ressource.load car l'appli sera en webplayer ^^ et n'est pas sensé être built à chaque ajout d'objet
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻
- artemisart
- Messages : 1893
- Inscription : 21 Juin 2011 19:51
- Localisation : Centre
- Contact :
Re: import d'objets 3d
Salut,
Effectivement, dans la version free on peut pas faire autrement que passer par un import fait main, mais si tu veux je peux t'aider là dessus (j'ai déjà fait un script d'export obj à la main, mais pas encore l'import).
Évidemment, tu seras toujours obligé d'uploader un fichier obj quelque part, pour le "recevoir" dans le webplayer par WWW.
Effectivement, dans la version free on peut pas faire autrement que passer par un import fait main, mais si tu veux je peux t'aider là dessus (j'ai déjà fait un script d'export obj à la main, mais pas encore l'import).
Évidemment, tu seras toujours obligé d'uploader un fichier obj quelque part, pour le "recevoir" dans le webplayer par WWW.
Re: import d'objets 3d
oui , ça me parait logique, mais un .obj s'exporte directement de n'importe quel logiciel de 3D donc c'est pas un soucis à upload sur un serveur (fillezilla ou ftp), l'import en obj devrait pas etre si dur vu que je connais déjà bien la manière donc fonctionne le format ^^
mais ton export m'intéresse bien tout de même
mais ton export m'intéresse bien tout de même
┬─┬ノ(º - ºノ) - (╯°□°)╯︵ ┻━┻
- artemisart
- Messages : 1893
- Inscription : 21 Juin 2011 19:51
- Localisation : Centre
- Contact :
Re: import d'objets 3d
Voilà pour l'export (dans cette version (très basique, j'ai juste mis le minimum), je génère juste un string qui correspond au mesh "convertit" en obj, il n'y a pas de sauvegarde de fichier sur le disque) :
Code : Tout sélectionner
public static string ToText (this Mesh mesh) {
StringBuilder text = new StringBuilder ();
text.AppendFormat("# Exported obj file\no {0}\n", mesh.name);
foreach (Vector3 v in mesh.vertices) {
text.AppendFormat ("v {0} {1} {2}", v.x, v.y, v.z); // faut peut-être mettre un paramètre spécial au ToString pour l'obliger à mettre le float en entier (l'empêcher d'arrondir), je sais pas trop
}
text.Append ("s off\n");
for (int i = 0; i < mesh.triangles.Length; i += 3) {
text.AppendFormat ("f {0} {1} {2}\n", mesh.triangles[i]+1, mesh.triangles[i+1]+1, mesh.triangles[i+2]+1);
}
return text.ToString ();
}
- artemisart
- Messages : 1893
- Inscription : 21 Juin 2011 19:51
- Localisation : Centre
- Contact :
Re: import d'objets 3d
Bonjour,
quelqu'un aurait'il réussi à faire de l'import de model ?
quelqu'un aurait'il réussi à faire de l'import de model ?