![]() |
Problemas al aplicar texturas a un Dodecahedro en GLScene
Tengo problemas para aplicar una textura a un dodecahedro.
He encontrado esto en Internet, está en inglés pero creo que es la respuesta a mi problema, a ver si entre todos sacamos la solución en español. Lo que he conseguido traducir va en negrita. Ahí va: Displays a polyhedron with 12 faces. Mostrar un polihedro con 12 caras. By default a texture will not be displayed on a dodecahedron even if the material library and material is set. This is because a dodecahedron has no default texture coordinates. To set a texture you can either Por defecto una textura no se mostrará en un dodecahedro incluso si la librería de materiales y el material están establecidos. Esto se debe a que un dodecahedro no tiene por defecto las coordenadas de las texturas. Para establecer una textura debes además 1. using the MappingMode of the texture to generate textures (but they may not allow a mapping that'll please your eyes) 1. Usar el MappingMode de la textura para generar texturas (pero esto puede no permitir mapear todo ... por favor tus ojos?¿?¿ 2. finding and adding texture mapping coords for a dodecahedron (it is a "handcrafted" object, for which no std texture coordinates exist that I know of) 2. encontrar y añadir el mapeado de las coordenadas de textura de un dodecahedro (esto es un objeto "manufacturado", para el cual no std?¿?¿?¿ coordenadas de textura existentes que yo sepa) Unit GLPolyhedron |
you can either = puedes hacer una o la otra
aqui se refiere a que puedes usar la opción 1 o la 2, pero NO que "debes" hacer las dos. "but they may not allow a mapping that'll please your eyes" Significa que usar el MappingMode: puede no permitir un resultado visual idoneo para la textura. la traducción tal cual sería: pero puede no permitir un mapeo que sea agradable a tus ojos. "it is a "handcrafted" object, for which no std texture coordinates exist that I know of" Se refiere a que hay que sacar las coordenadas a mano, a eso se refiere con "handCrafted". Es decir, lo tienes que hacer tu mismo, coordenada por coordenada. std se refiere a "estandar", refiriéndose que no existen coordenadas estandar. |
Os he puesto este problema porque está muy relacionado con el verdadero problema que os cuento a continuación:
Como sabreis estoy haciendo un minitutorial sobre como hacer un First Person Shooter sencillo, he hecho una escena tridimensional por la que me puedo mover y apuntar libremente llevando conmigo un arma y he introducido además objetos tridimensionales. He sido capaz de hacer que un arma dispare balas (esferas). He empezado con colisiones, cuando disparo a un cubo hago que se genere un plano pequeñito con textura de balazo a modo de balazo en la pared allí donde se ha generado el impacto. Disparando a un cubo soy capaz de generar el balazo de impacto, disparando a un cilindro y a una esfera también soy capaz, pero con un dodecahedro no hay forma, no se dibuja mi plano donde debe sino al lado opuesto y más alejado del dodecahedro. Os pongo mi código: Código:
Obj.RayCastIntersect(Bullet.Position.AsVector,Bullet.Direction.AsVector,@Point,@Normal); Para el cilindro uso: BoundingMode --> cmbFaces Para la esfera utilizo: BoundingMode --> cmbSphere La propiedad GroupIndex siempre la dejo a 0. De todas formas puedo pasar sin meter dodecahedros en el juego pero si tengo problemas con las coordenadas de un dodecahedro no me quiero ni imaginar los problemas que tendré al disparar a un personaje o a una casa o a un coche. Miedo me da. Un saludo. |
La franja horaria es GMT +2. Ahora son las 17:38:03. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi