L'exportation d'un modèle simple avec une texture dans Blender three.js
Remarque: je veux éviter de modifier le modèle dans le code javascript et de faire tous les modèle de conception à l'intérieur de Blender.
Note #2: Alors que cette question est longue, il est en fait un problème de base (le titre dit tout). Ci-dessous est de type "walk-through" pour le problème.
Je suis en train d'exportation Blender modèles de threejs.org que DAE modèle, mais ont des problèmes avec des modèles avec de la texture (j'ai essayé JSON et format OBJ+MTL):
Pour rendre les choses plus simples, voici les étapes que j'ai effectuer (et l'échec), pour ajouter de la texture à une simple "fichier de Démarrage", qui contient un cube, la caméra et la lumière:
- Sélectionnez le cube
- Dans le Matériaux panneau, assurez-vous que le Matériau par défaut pour le cube est sélectionné.
- Dans le Texture panneau, assurez-vous que "Tex" (de la texture par défaut pour le matériel) est sélectionné.
- Pour cette texture, ensemble Type à "l'Image ou le Film"
- Dans le Image section de panneau, un grass1.jpg (une image 512x512) que la texture.
- Dans le Cartographie section, changer la Coordonnées aux UV.
- Exporter le modèle que Collada modèle, en cochant la case "Inclure les Textures UV", "Comprendre les Textures de Matériaux", et "Copie" des cases à cocher.
Vous pouvez télécharger mélange, dae, et le fichier de texture mentionné dans ces étapes.
Puis-je utiliser le code suivant pour charger le DAE modèle, mais j'ai cette erreur et le cube n'est pas affiché:
256 [.WebGLRenderingContext]GL ERREUR :GL_INVALID_OPERATION :
glDrawElements: tentative d'accès à la hors de portée des sommets dans l'attribut 2
WebGL: trop d'erreurs, plus d'erreurs seront signalées à la console pour ce contexte.
<script src="js/three.min.js"></script>
<script src="js/OrbitControls.js"></script>
<script src="js/ColladaLoader.js"></script>
<script>
var scene, camera, renderer;
init();
animate();
function init() {
scene = new THREE.Scene();
var WIDTH = window.innerWidth,
HEIGHT = window.innerHeight;
renderer = new THREE.WebGLRenderer({antialias:true});
renderer.setSize(WIDTH, HEIGHT);
document.body.appendChild(renderer.domElement);
camera = new THREE.PerspectiveCamera(45, WIDTH /HEIGHT, 0.1, 10000);
camera.position.set(10,10,10);
scene.add(camera);
window.addEventListener('resize', function() {
var WIDTH = window.innerWidth,
HEIGHT = window.innerHeight;
renderer.setSize(WIDTH, HEIGHT);
camera.aspect = WIDTH /HEIGHT;
camera.updateProjectionMatrix();
});
var loader = new THREE.ColladaLoader();
loader.load( 'models/untitled.dae', function(geometry) {
dae = geometry.scene;
scene.add(dae);
var gridXZ = new THREE.GridHelper(100, 10);
gridXZ.setColors( new THREE.Color(0x8f8f8f), new THREE.Color(0x8f8f8f) );
gridXZ.position.set(0,0,0);
scene.add(gridXZ);
});
controls = new THREE.OrbitControls(camera, renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
controls.update();
}
</script>
Et voici la capture d'écran de Mélangeur après avoir mentionné les 7 étapes:
Mise à jour: l'Exportation en tant que fichier js à l'aide de JSON exportateur pour Blender ne fonctionne pas non plus et a entraîné la même erreur.
Mise à jour 2: Même message d'erreur après l'exportation d'OBJ+MTL et de les charger avec OBJMTLLoader.
Absolument! Je suis actuellement sur r67. Va lui donner un essai.
Pouvez-vous fournir un lien vers un exemple vivant?
Assurez-vous: ztco.ir/emulate/index.html
Votre maillage de la géométrie n'a pas d'Uv, mais de votre matériel de maille a une texture.
OriginalL'auteur Isaac | 2014-07-21
Vous devez vous connecter pour publier un commentaire.
Le problème est que vous n'avez pas configuré de coordonnées UV pour votre modèle. Par défaut, chaque face s'applique à l'ensemble de la texture, mais dans blender, les Uv sont vides lors de l'exportation.
Vous souhaitez spécialement mis en place vos coordonnées UV. Ce sont les coordonnées qui montrent comment appliquer une texture sur chaque face.
Assurez-vous d'UV unwrap de votre modèle dans le blender. Passez en mode edit (onglet), sélectionnez toutes les faces, appuyez sur la touche "u", et cliquez sur "ouvrir". Puis essayer de ré-exportation.
Déballer est juste la méthode 1, il y a beaucoup de. Expérimenter avec différentes méthodes dans blender pour obtenir les résultats que vous voulez (peut-être le "reset" de l'option).
Bonjour, désolé que si tard, j'ai un problème similaire, mais l'UV cartographique ne permet pas de résoudre le problème. Il est peut-être parce que je suis en utilisant des cycles moteur de rendu au lieu de blender render?
Êtes-vous d'obtenir la même erreur que l'original de l'affiche? Vous devriez probablement faire une nouvelle question. Si vous obtenez "out of bounds" erreurs de type (attribut de type 2 est UV), assurez-vous que votre modèle exporté a des coordonnées UV.
OriginalL'auteur beiller