No the mtl contains a reference to a material, and eventually with an
url to a bitmap source. Away do not support all mtl tags yet.
the uv information is stored in the obj file.
Its in the vt tag, texture vertexes.
Fabrice
On Jul 28, 2009, at 7:42 AM, David Parks wrote:
Aha, I understand now! The MTL file contains the UV mapping data.
That was what I didn’t understand. I found that L3DT (the terrain
generator I’m using) only outputs this info in the pro version. I
performed the mapping in Blender and did the output, with the MTL
file, and it loads properly now (and now I see that the loader can
import the texture as well, once I got all the pieces in the right
place).
Thanks Rob and Pete for your great help!
Dave
p.s. charglerode: I’ve been following your issue as I was also
trying to get an OBJ to load, so I can report now that if I have the
OBJ, MTL, and JPG all in the same dir the loader works correctly
with just Obj.load(myURL). I did verify that the MTL has a reference
to the JPG texture in it. I did all of this as an OBJ export from
Blender. Perhaps I can suggest trying to import the whole thing into
a typical 3D utility, verifying it’s working and exporting it again.
I used that technique to hone in on my problems successfully (and
now that I know what my problems were I can go back to steam line
the workflow).
From: [email protected] [mailto:away3d-
[email protected]] On Behalf Of Rob Bateman
Sent: Tuesday, July 28, 2009 12:51 AM
To: [email protected]
Subject: [away3d] Re: Newbie question: how to apply a texture to a
mesh
Since writing this I did get the texture to apply to the mesh using
the BitmapFileMaterial (code below), but the entire JPG image is
applied to each face independently rather than stretched smoothly
across all faces.
sounds like a classic case of missing uvs. even if you have them
innblender, they may not be exporting correctly with the obj
exporter. Is there an options panel you can check?
Also in the near future there may be a chance Away3D has the
ability to map your object for you if the UV isn't present, from
different angles, (in your case top down), but you didn't hear that
from me :)
actually, that's already possible with transformBitmapMaterial and
any material that inherits from it:
var material:TransformBitmapMaterial = new
TransformBitmapMaterial(myBitmap);
material.projectionVector = new Number3D(0,1,0);
material.scaleX = 0.1;
material.scaleY = 0.1;
material.repeat = true;
give that a go and see if it improves matters. I'm assuming your
terrain is oriented y-up, otherwise you may need to adjust the
projectionVector values to get it correct.
cheers
Rob
On Mon, Jul 27, 2009 at 4:48 PM, Peter Kapelyan
<[email protected]> wrote:
If your object doesn't have UV mapping, maybe try to load it into
another program and apply a top down projection UV mapping to it.
UV maps are triangles which tell you what part of the JPG or image
to use for which triangles on the mesh.
If the UV mapping isnt present, then Away3D will not know where to
apply the jpg on your mesh.
Being that it's a terrain you can get away easily by mapping it
staright down from the top.
If you have trouble applying a UV map to it, or checking if it
exists in the first place, I do you the favor and check , and/or
apply the UV map for you, but of course it would be better for you
to find an app or process to apply the UV mapping to your models
yourself.
Also in the near future there may be a chance Away3D has the ability
to map your object for you if the UV isn't present, from different
angles, (in your case top down), but you didn't hear that from me :)
-Pete
On Mon, Jul 27, 2009 at 11:41 AM, David Parks
<[email protected]> wrote:
I’ll be honest, I’m pretty new at everything 3D, so I’m not sure how
to verify that my object “has UV mapping”, I understand UV mapping,
but don’t follow what you are asking, or how to verify.
I used a terrain generation app called L3DT which builds a terrain
map & heightmap, and can export a mesh from the heightmap.
I started by importing that mesh into blender, then loaded the JPG
texture and applied it to the object in Blender. Everything looked
perfect there, but not so good yet in the Away3D environment.
Since writing this I did get the texture to apply to the mesh using
the BitmapFileMaterial (code below), but the entire JPG image is
applied to each face independently rather than stretched smoothly
across all faces.
Mesh(my3DLoaderObj.handle).material = myBitmapFileMaterial;
I’m not clear if that’s really the best approach (or even the right
approach at all), and I must be doing something reasonably simple
wrong to have the image apply independently to each face rather than
across the entire mesh.
Thanks!
Dave
From: [email protected] [mailto:away3d-
[email protected]] On Behalf Of Peter Kapelyan
Sent: Monday, July 27, 2009 7:45 PM
To: [email protected]
Subject: [away3d] Re: Newbie question: how to apply a texture to a
mesh
Are you sure your object has UV mapping? If so, a simple apply of
any material would suffice.
-Pete
On Mon, Jul 27, 2009 at 3:30 AM, David Parks
<[email protected]> wrote:
Hi, I hate to ask simple questions, but, well, here goes.
I have an OBJ mesh generated by the terrain generated L3DT, and I
have a separate JPG texture map it generated. It does not generate
an MRT file (I’m not familiar with what that is, but I have seen it
mentioned in relation to OBJ files). As far as I can see the OBJ
file has no reference to the JPG.
I can import the OBJ mesh just fine, but I haven’t found a good
example of how to apply the texture.
I just need to load the mesh and materials from a URL at runtime.
But the Object3D provided by the loader only has a null-value
MaterialsLibrary object which I haven’t been able to work out how to
use. Other examples only apply textures to primitives which all have
a primObj.material attribute – unlike the Object3D in which the mesh
is stored.
Also I notice there’s a TextureLoader class as well as a
BitmapMaterialFile class. I don’t understand if one is better to use
over the other, or even if they do similar or different things (I
haven’t noticed any docs for TextureLoader).
I have loaded the material into the BitmapFileMaterial class
successfully, but haven’t gotten that to apply to my Object3D mesh
yet.
If there’s a document or tutorial that I missed I would love to know
about it. I’ve been through the code examples and tutorials on
away3d.com site so far and am still scratching my head.
Thanks as always!
David
--
___________________
Actionscript 3.0 Flash 3D Graphics Engine
HTTP://AWAY3D.COM
--
___________________
Actionscript 3.0 Flash 3D Graphics Engine
HTTP://AWAY3D.COM
--
Rob Bateman
Flash Development & Consultancy
[email protected]
www.infiniteturtles.co.uk
www.away3d.com